Mudanças entre as edições de "Patinho Feio"

De Garoa Hacker Clube
Ir para navegação Ir para pesquisar
 
(17 revisões intermediárias por 3 usuários não estão sendo mostradas)
Linha 1: Linha 1:
== Intrudução ==
+
== Introdução ==
   
O '''Patinho Feio''' é considerado um dos primeiros computadores brasileiros, totalmente projetado e construído no país no início da década de 70<ref>http://www2.pcs.usp.br/pcsv6/index.php/institucional/historia-depto</ref>.
+
O '''Patinho Feio''' é considerado um dos primeiros computadores brasileiros, totalmente projetado e construído no país no início da década de 70 [http://www2.pcs.usp.br/pcsv6/index.php/institucional/historia-depto].
   
 
Foi projetado e construído na Escola Politécnica da USP, pela equipe do antigo Laboratório de Sistemas Digitais (atual Departamento de Engenharia de Computação e Sistemas Digitais), entre os anos de 1971 e 1972.
 
Foi projetado e construído na Escola Politécnica da USP, pela equipe do antigo Laboratório de Sistemas Digitais (atual Departamento de Engenharia de Computação e Sistemas Digitais), entre os anos de 1971 e 1972.
Linha 14: Linha 14:
   
 
Um relato mais completo desse trabalho está sendo feito [https://forum.fiozera.com.br/t/resgate-historico-do-computador-patinho-feio-usp-1971/58 neste fórum].
 
Um relato mais completo desse trabalho está sendo feito [https://forum.fiozera.com.br/t/resgate-historico-do-computador-patinho-feio-usp-1971/58 neste fórum].
  +
  +
== Próximos Passos ==
  +
  +
=== Réplica do Garoa ===
  +
'''Objetivo''': Montar a réplica em miniatura do painel do Patinho Feio para instalar numa parede do Garoa.
  +
  +
* '''Juca''': trazer o painel para o Garoa (está em uma loja de quadros aguardando a instalação de uma moldura)
  +
* Comprar botões, chaves e componentes eletrônicos
  +
* instalá-los no painel
  +
* '''Juca''' e '''Tiago''': portar o emulador do MAME para o Arduino em: https://github.com/felipesanches/PatinhoFeio_Arduino/
  +
* projetar pequenas PCBs para facilitar a instalação dos LEDs controlados por shift-registers
  +
* produzir as placas e soldar os componentes
  +
* ligar a fiação das chaves e botões
  +
* adaptar o código do arduino para fazer a leitura das chaves e botões
  +
* ligar um display LCD para simular a saída de texto na Teletype
  +
  +
'''Subprojeto''': "Painel Virtual" => Simular o painel utilizando Processing e integrar com o Arduino, via USB-Serial
  +
* '''Tiago''': Terminar o simulador do painel em Processing. Disponível em: https://github.com/felipesanches/PatinhoFeio_Arduino/tree/master/processing/PatinhoFeio
  +
* '''Juca''': Fazer as correções estéticas quando necessário
  +
  +
=== Transcrição dos esquemáticos ===
  +
'''Objetivo''': Gerar um desenho completo dos esquemáticos do computador usando o KICAD.
  +
  +
* Terminar a digitalização. O trabalho está sendo feito em https://github.com/felipesanches/PatinhoFeio_KICAD/
  +
  +
=== Construir uma réplica do computador ===
  +
'''Objetivo''': Reconstuir o computador usando as técnicas da época (chips TTL, PCBs com componentes through-hole).
  +
  +
Este projeto depende, em parte, da transcrição completa dos esquemáticos, descrita acima. Como o sistema é modular, dá pra já ir fazendo essa parte. A placa CDE-3 já foi projetada. Falta:
  +
  +
* Rodar um protótipo da placa CDE-3 e da placa de debugging CDE-3-debug.
  +
* Desenhar a PCB das demais placas
  +
* rodar cada uma delas
  +
* testar placas independentemente
  +
* testar as placas interligadas.
  +
  +
=== Recriar o computador em FPGA ===
  +
'''Objetivo''': Descrever o computador em VHDL (ou qualquer outra linguagem de descrição de hardware) e instanciá-lo em uma FPGA.
  +
  +
* Depende também da transcrição completa dos esquemáticos, descrita acima.
  +
* '''Aylons''' está planejando fazer uma parte desse projeto durante o [[Garoa Hacker Camp 2017]]
  +
  +
=== Escaneamento de documentação técnica ===
  +
  +
* '''Juca''' tem acesso a um documento (ainda não digitalizado por completo) sobre o sintetizador musical do professor Guido Stolfi. Esse sintetizador era utilizado em conjunto com o Patinho Feio (como um periférico).
  +
* '''Juca''': Terminar de escanear subindo as imagens das páginas em alta-resolução pro GitHub em https://github.com/felipesanches/Software_para_o_Sintetizador__Guido_Stolfi
  +
* '''Juca''': Gerar PDF e subir no Internet Archive em: https://archive.org/search.php?query=subject%3A%22patinho+feio%22
  +
  +
=== Catalogar os documentos técnicos ===
  +
  +
'''Objetivo''': Disponibilizar ao público a documentação técnica de forma acessível e guiada.
  +
  +
* Verificar se todos os documentos [https://github.com/felipesanches/PatinhoFeio deste repositório git] já têm PDFs disponibilizados no Internet Archive [https://archive.org/search.php?query=subject%3A%22patinho+feio%22 aqui].
  +
* Caso contrário, gerar os PDFs que faltam e fazer o upload pro Internet Archive
  +
* Criar um website (talvez no GitHub Pages) com uma "guia de museu" para facilitar a navegação dos visitantes em meio a todos esses documentos técnicos.
  +
  +
=== Melhorar a emulação no MAME ===
  +
  +
'''Objetivo''': Corrigir os erros de emulação da implementação atual do driver do Patinho Feio no MAME.
  +
  +
Bug conhecidos:
  +
* Interfaceamento com periféricos não está corretamente implementado. Funciona para a teletype, mas é preciso revisar o código em comparação com os esquemáticos.
  +
* Emulação é feita no nível de instruções e, portanto, as luzes e botões do modo de execução "ciclo único" não funcionam ainda. É necessário re-escrever essa parte do emulador para levar as fases de micro-operações da CPU em consideração.
  +
* O layout visual está feio. Hoje em dia é possível utilizar SVG para o desenho dos layouts, e já temos um SVG que foi usado para fabricar a réplica em miniatura. Então podemos tentar usá-lo também no MAME.
  +
  +
=== Simular o sintetizador musical ===
  +
  +
'''Objetivo''': Fazer o MAME tocar música numa simulação do sintetizador musical do professor Guido Stolfi.
  +
  +
Status deste sub-projeto:
  +
* Já temos acesso às [https://github.com/felipesanches/PatinhoFeio/tree/master/fitas_perfuradas fitas perfuradas] contendo o [https://github.com/felipesanches/PatinhoFeio/blob/master/fitas_perfuradas/FITA%23011.txt código fonte] (e o executável) do programa de controle do sintetizador.
  +
* Temos também fitas com dados de [https://github.com/felipesanches/PatinhoFeio/blob/master/fitas_perfuradas/2016_JULHO/fita050B.txt partituras musicais], e algumas descrições de como funciona o protocolo de comunicação.
  +
* Temos ainda rascunhos de esquemáticos eletrônicos (manuscritos) de como funciona a eletrônica do sintetizador musical
  +
  +
O que falta fazer:
  +
* '''Tarefa "low-hanging-fruit"''' pra quem quiser ajudar com algo simples: Converter a listagem de dumps de fitas perfuradas [https://github.com/felipesanches/PatinhoFeio/blob/master/fitas_perfuradas/2016_JULHO/Lista_Fitas_Perfuradas.xlsx desta planilha] em um arquivo README.md para o repositório.
  +
* Desta [https://github.com/felipesanches/PatinhoFeio/blob/master/fitas_perfuradas/Lista_Fitas_Perfuradas.xlsx aqui] também. (É altamente provável que sejam planilhas parcialmente redundantes)
  +
* Entender o código fonte do programa executor de partituras
  +
* Escrever um simulador do sintetizador
  +
* Emular o interfaceamento do emulador do Patinho Feio com o simulador do sintetizador musical
  +
* [https://github.com/felipesanches/PatinhoFeio/blob/master/fitas_perfuradas/2016_JULHO/fita075b.txt Dar umas gargalhadas!]
  +
  +
=== Gravar um documentário ===
  +
  +
'''Objetivo''': Gravar, editar e publicar um video-documentário sobre o tema.
  +
  +
* Escrever projeto do documentário definindo lista de pessoas a serem entrevistadas, assuntos a serem abordados, etc
  +
* Estimar um orçamento
  +
* Buscar patrocínios
  +
* formar um time
  +
* executar o projeto (gravar, editar, publicar)

Edição atual tal como às 12h59min de 20 de março de 2017

Introdução

O Patinho Feio é considerado um dos primeiros computadores brasileiros, totalmente projetado e construído no país no início da década de 70 [1].

Foi projetado e construído na Escola Politécnica da USP, pela equipe do antigo Laboratório de Sistemas Digitais (atual Departamento de Engenharia de Computação e Sistemas Digitais), entre os anos de 1971 e 1972.

https://pt.wikipedia.org/wiki/Patinho_Feio

Documentação técnica

Em Novembro de 2015 eu (Juca) tive acesso a um documento técnico sobre o montador (assembler) do Patinho Feio. Mais detalhes

O documento está disponível neste repositório do GitHub.

Um relato mais completo desse trabalho está sendo feito neste fórum.

Próximos Passos

Réplica do Garoa

Objetivo: Montar a réplica em miniatura do painel do Patinho Feio para instalar numa parede do Garoa.

  • Juca: trazer o painel para o Garoa (está em uma loja de quadros aguardando a instalação de uma moldura)
  • Comprar botões, chaves e componentes eletrônicos
  • instalá-los no painel
  • Juca e Tiago: portar o emulador do MAME para o Arduino em: https://github.com/felipesanches/PatinhoFeio_Arduino/
  • projetar pequenas PCBs para facilitar a instalação dos LEDs controlados por shift-registers
  • produzir as placas e soldar os componentes
  • ligar a fiação das chaves e botões
  • adaptar o código do arduino para fazer a leitura das chaves e botões
  • ligar um display LCD para simular a saída de texto na Teletype

Subprojeto: "Painel Virtual" => Simular o painel utilizando Processing e integrar com o Arduino, via USB-Serial

Transcrição dos esquemáticos

Objetivo: Gerar um desenho completo dos esquemáticos do computador usando o KICAD.

Construir uma réplica do computador

Objetivo: Reconstuir o computador usando as técnicas da época (chips TTL, PCBs com componentes through-hole).

Este projeto depende, em parte, da transcrição completa dos esquemáticos, descrita acima. Como o sistema é modular, dá pra já ir fazendo essa parte. A placa CDE-3 já foi projetada. Falta:

  • Rodar um protótipo da placa CDE-3 e da placa de debugging CDE-3-debug.
  • Desenhar a PCB das demais placas
  • rodar cada uma delas
  • testar placas independentemente
  • testar as placas interligadas.

Recriar o computador em FPGA

Objetivo: Descrever o computador em VHDL (ou qualquer outra linguagem de descrição de hardware) e instanciá-lo em uma FPGA.

  • Depende também da transcrição completa dos esquemáticos, descrita acima.
  • Aylons está planejando fazer uma parte desse projeto durante o Garoa Hacker Camp 2017

Escaneamento de documentação técnica

Catalogar os documentos técnicos

Objetivo: Disponibilizar ao público a documentação técnica de forma acessível e guiada.

  • Verificar se todos os documentos deste repositório git já têm PDFs disponibilizados no Internet Archive aqui.
  • Caso contrário, gerar os PDFs que faltam e fazer o upload pro Internet Archive
  • Criar um website (talvez no GitHub Pages) com uma "guia de museu" para facilitar a navegação dos visitantes em meio a todos esses documentos técnicos.

Melhorar a emulação no MAME

Objetivo: Corrigir os erros de emulação da implementação atual do driver do Patinho Feio no MAME.

Bug conhecidos:

  • Interfaceamento com periféricos não está corretamente implementado. Funciona para a teletype, mas é preciso revisar o código em comparação com os esquemáticos.
  • Emulação é feita no nível de instruções e, portanto, as luzes e botões do modo de execução "ciclo único" não funcionam ainda. É necessário re-escrever essa parte do emulador para levar as fases de micro-operações da CPU em consideração.
  • O layout visual está feio. Hoje em dia é possível utilizar SVG para o desenho dos layouts, e já temos um SVG que foi usado para fabricar a réplica em miniatura. Então podemos tentar usá-lo também no MAME.

Simular o sintetizador musical

Objetivo: Fazer o MAME tocar música numa simulação do sintetizador musical do professor Guido Stolfi.

Status deste sub-projeto:

  • Já temos acesso às fitas perfuradas contendo o código fonte (e o executável) do programa de controle do sintetizador.
  • Temos também fitas com dados de partituras musicais, e algumas descrições de como funciona o protocolo de comunicação.
  • Temos ainda rascunhos de esquemáticos eletrônicos (manuscritos) de como funciona a eletrônica do sintetizador musical

O que falta fazer:

  • Tarefa "low-hanging-fruit" pra quem quiser ajudar com algo simples: Converter a listagem de dumps de fitas perfuradas desta planilha em um arquivo README.md para o repositório.
  • Desta aqui também. (É altamente provável que sejam planilhas parcialmente redundantes)
  • Entender o código fonte do programa executor de partituras
  • Escrever um simulador do sintetizador
  • Emular o interfaceamento do emulador do Patinho Feio com o simulador do sintetizador musical
  • Dar umas gargalhadas!

Gravar um documentário

Objetivo: Gravar, editar e publicar um video-documentário sobre o tema.

  • Escrever projeto do documentário definindo lista de pessoas a serem entrevistadas, assuntos a serem abordados, etc
  • Estimar um orçamento
  • Buscar patrocínios
  • formar um time
  • executar o projeto (gravar, editar, publicar)