Patinho Feio
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
- 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 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 planília 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)