Patinho Feio

De Garoa Hacker Clube
Ir para: navegação, pesquisa

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)