Mudanças entre as edições de "Patinho Feio"
(13 revisões intermediárias por 3 usuários não estão sendo mostradas) | |||
Linha 1: | Linha 1: | ||
− | == |
+ | == 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 |
+ | 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 29: | Linha 29: | ||
* adaptar o código do arduino para fazer a leitura 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 |
* 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 === |
=== Transcrição dos esquemáticos === |
||
Linha 50: | Linha 54: | ||
* Depende também da transcrição completa dos esquemáticos, descrita acima. |
* 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]] |
+ | * '''Aylons''' está planejando fazer uma parte desse projeto durante o [[Garoa Hacker Camp 2017]] |
=== Escaneamento de documentação técnica === |
=== Escaneamento de documentação técnica === |
||
Linha 57: | Linha 61: | ||
* '''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''': 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 |
* '''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
- 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 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)