PatinhoFeio
August 5, 2025 · View on GitHub
Repositório contendo documentação técnica sobre o Patinho Feio, um computador pioneiro brasileiro desenvolvido na Escola Politécnica da USP em 1971 e inaugurado em 1972.
Para uma introdução mais direta ao projeto de desenvolvimento do "Patinho Feio" assista ao vídeo "A história do Patinho Feio" no canal da Escola Politécnica da USP no Youtube.
1972: EDSON FREGNI. "Projeto Lógico da Unidade de Controle de um Minicomputador"
- Dissertação de mestrado do professor Edson Fregni, de 1972
- Contém descrição detalhada do projeto da unidade de controle do Patinho Feio
- Inclui cartas de tempo das micro-instruções da CPU
- Contém esquemáticos dos circuitos de implementação da CPU
- Disponível em https://archive.org/details/ProjetoLogicoDaUnidadeDeControleDeUmMinicomputador
- Arquivos originais do escaneamento (para gerar imagens de maior resolução) disponíveis em: https://github.com/felipesanches/Projeto_Logico_da_Unidade_de_Controle_de_um_Minicomputador__EFregni_1972
1973: MARIA ALICE GRIGAS VARELLA FERREIRA. "Anexo 21: Sistema Cross Montador"
1973: MARIA ALICE GRIGAS VARELLA FERREIRA. "Anexo 22: Sistema Cross Carregador"
1974-DEZ-26: Relatório nº 1 - JJN e Eloah
- Relatório sobre representação de notação musical para armazenar partituras a serem tocadas no sintetizador do Guido Stolfi
- Autores: João José Neto e Eloah
- Disponível em https://archive.org/details/Relatrio1_1974-DEZ-26
- Arquivos originais do escaneamento (para gerar imagens de maior resolução) disponíveis em: https://github.com/felipesanches/SintetizadorGuidoStolfi
1974: MARIA ALICE GRIGAS VARELLA FERREIRA. "Sistema de Programação 'Cross-Montador' para um minicomputador"
- Dissertação de Mestrado - EPUSP, 1974.
- Digitalizado a partir de exemplar da Biblioteca Eng. Elétrica EPUSP: FD-85
- Disponível em https://archive.org/details/SistemaDeProgramacaoCrossMontadorParaUmMinicomputador
- Arquivos originais do escaneamento (para gerar imagens de maior resolução) disponíveis em: https://github.com/felipesanches/Sistema_de_Programacao_Cross-Montador_para_um_Minicomputador__MariaAliceFerreira__1974
1974: ANTONIO MARCOS DE AGUIRRA MASSOLA. "Automação de Projeto de Sistemas Digitais: Simulação em Nível de Portas Lógicas"
- Tese de Doutorado - EPUSP, 1974
- Escaneado a partir de exemplar da Biblioteca Eng. Elétrica EPUSP: FT-441
- Disponível em: https://archive.org/details/AutomacaoDeProjetoDeSistemasDigitaisSimulacaoEmNivelDePortasLogicas
- Arquivos originais do escaneamento (para gerar imagens de maior resolução) disponíveis em: https://github.com/felipesanches/Automacao_de_Projetos_de_Sistemas_Digitais__Simulacao_em_Nivel_de_Portas_Logicas__Massola_1974
1975: Dissertação de mestrado do prof. João José Neto
- A dissertação de mestrado "Aspectos do Projeto de Software de um Minicomputador" de JJNeto (1975) apresenta os diversos componentes de software que foram desenvolvidos para o Patinho Feio, incluindo montador, desmontador, debugger e outras ferramentas.
- Disponível em https://archive.org/details/AspectosDoProjetoDeSoftwareDeUmMinicomputador
- Arquivos originais do escaneamento (para gerar imagens de maior resolução) disponíveis em: https://github.com/felipesanches/Aspectos_do_Projeto_de_Software_de_um_Minicomputador__JJNeto_1975
1975: EDIT GRASSIANI. "Procedimentos Microprogramados num Minicomputador"
- Dissertação de Mestrado - EPUSP, 1975.
- Escaneado de exemplar da Biblioteca Eng. Elétrica EPUSP: FD-104
- SINOPSE: Após considerações gerais sobre microprogramação, esta dissetação apresenta as técnicas de microprogramação adotadas no computador G-10. São discutidos os compromissos entre implementação por hardware, software e mocroprogramação, bem como a otimização das instruções no G-10. Estuda-se a emulação do computador IBM 1130 concluindo-se por sua viabilidade, e analisa-se o desempenho resultande. Apêndices apresentam as micro-ordens e listagens de exemplos de mocroprogramas do G-10 e do emulador do IBM 1130.
- Disponível em: Procedimentos_Microprogramados_num_Minicomputador__EGrassiani_1975.pdf
- Arquivos originais do escaneamento (para gerar imagens de maior resolução) disponíveis em: https://github.com/felipesanches/Procedimentos_Microprogramados_num_Minicomputador__EGrassiani_1975
1975: WILSON VICENTE RUGGIERO. "Projeto de um Processador Central Microprogramado."
- Dissertação (Mestrado em Engenharia) – EPUSP, 1975.
- Digitalizado a partir de exemplar da Biblioteca Eng. Elétrica EPUSP: FD-87 e.2
- Disponivel em: Projeto_de_um_Processador_Central_Microprogramado__WRuggiero_1975.pdf
- Arquivos originais do escaneamento (para gerar imagens de maior resolução) disponíveis em: https://github.com/felipesanches/Projeto_de_um_Processador_Central_Microprogramado__WRuggiero_1975
1976: BENÍCIO JOSÉ DE SOUZA. "Software de um Minicomputador"
- Dissertação de Mestrado - EPUSP, 1976.
- Digitalizado a partir de exemplar da Biblioteca Eng. Elétrica EPUSP: FD-147 e.2
- Disponivel em: Software_de_um_Minicomputador__Sistema_Basico_de_Controle__BenicioJSouza_1976.pdf
- Arquivos originais do escaneamento (para gerar imagens de maior resolução) disponíveis em: https://github.com/felipesanches/Software_de_um_Minicomputador__Sistema_Basico_de_Controle__BenicioJSouza_1976
1977: Manual do Montador do Patinho Feio
- Este manual técnico foi o primeiro material relativo ao projeto do Patinho Feio que (eu, Felipe Sanches) tive acesso. Foi com base nas informações contidas aqui que grande parte do emulador do Patinho Feio junto ao projeto MAME foi desenvolvido. Os demais documentos foram (e continuam sendo) úteis para aprimorar o emulador e para complementar as informações técnicas.
- PDF disponível em: Montador_do_Patinho_Feio__Julho1977.pdf
- Arquivos originais do escaneamento (para gerar imagens de maior resolução) disponíveis em: https://github.com/felipesanches/Montador_do_Patinho_Feio__Julho1977/
1977: SELMA SHIMIZU. “Automação de projetos de sistemas digitais: posicionamento de componentes”
- Dissertação (EPUSP), 1977. FD-175
- Contém exemplo de posicionamento de componentes numa das placas do Patinho - Prancha XII
- PDF disponível em: Automação_de_Projetos_de_Sistemas_Digitais__Posicionamento_de_Componentes__Selma_Shimizu_1977.pdf
- Arquivos originais do escaneamento (para gerar imagens de maior resolução) disponíveis em: https://github.com/felipesanches/Automacao_de_Projetos_de_Sistemas_Digitais__Posicionamento_de_Componentes__Selma_Shimizu_1977
1974/79: Livro do prof. Edson Fregni
- Recebi em 10/Maio/2016 autorização do prof. Edson Fregni para escaneamento e publicação na internet da íntegra do livro "Projeto de Computadores Digitais" de Edson Fregni e Glen George Langdon Jr. (com publicação original impressa em 1974 e reimpressões em 1977 e 1979)
- PDF disponível em: Projeto_de_Computadores_Digitais_2a_ed__EFregni_GLangdonJr_1974__reimpressao_de_1979__escaneamento_incompleto.pdf
- Arquivos originais do escaneamento (para gerar imagens de maior resolução) disponíveis em: https://gitlab.com/fsanches/Projeto_de_Computadores_Digitais_2a_ed
aprox. 1975/78: GUIDO STOLFI. "Manual do Sintetizador"
- Escaneamento do caderno "Manual do Sintetizador" (também identificado como "Anexo 6.11").
- Disponivel em: Manual_do_Sintetizador__Guido_Stolfi.pdf
- Arquivos originais do escaneamento (para gerar imagens de maior resolução) disponíveis em: https://github.com/felipesanches/Manual_do_Sintetizador__Guido_Stolfi
1979: GUIDO STOLFI: "Descrição de um Sistema Modular de Sintese de Sons Com Controle Automático Por Computador"
- Visão geral sobre o Sintetizador de Guido Stolfi e sua integração aos computadores Patinho Feio e HP21MX.
- Contém fotos em preto-e-branco do sintetizador
- Contém alguns esquemáticos e equações de filtros
- PDF disponível em: Descrição_de_um_Sistema_Modular_de_Sintese_de_Sons_Com_Controle_Automático_Por_Computador__Guido_Stolfi__1979.pdf
- Arquivos originais do escaneamento (para gerar imagens de maior resolução) disponíveis em: https://github.com/felipesanches/SintetizadorGuidoStolfi
1979: MOACYR MARTUCCI JUNIOR: Projeto de uma memória monolítica: Recusto para ampliação da memória principal de um minicomputador
- Descreve modificações no Patinho Feio para expandir a memória de 4k em núcleo de ferrite para 32kbytes usando chips de memória disponíveis na época.
- Buscou-se manter compatibilidade com software pré-existente.
- O trabalho também inclui a instalação permanente de programa carregador (loader) em memória ROM.
- PDF disponível em: Projeto de uma memória monolítica: Recusto para ampliação da memória principal de um minicomputador Moacyr Martucci Junior__1979.pdf
2003: Dissertação de mestrado de Marcia de Oliveira Cardoso
- Em 2003, Marcia de Oliveira Cardoso desenvolveu uma dissertação de mestrado entitulada "O Patinho Feio como construção sociotécnica", defendida no Instituto de Matemática da Universidade Federal do Rio de Janeiro – IM/UFRJ.
- [Dissertação completa] O_Patinho_Feio_como_Construção_Sociotécnica__Marcia_de_Oliveira_Cardoso__2003_dissertação_de_mestrado_UFRJ.pdf
- [Resumo para apresentação em congresso] O_Patinho_Feio_como_Construção_Sociotécnica__Marcia_de_Oliveira_Cardoso__2003_JoaoPessoa_XXII_ANPUH.pdf
2016: Listagem do pre-loader por JJN
- Em Maio de 2016 o professor João José Neto fez um esforço para transcrever, com base em memórias, trechos do programa micro-pré-loader. Este documento é um relatório que documenta este esforço e contém a listagem resultante. Existe, entretanto, a possibilidade de haver erros nessa listagem, devido à incerteza sobre a precisão das memórias de cerca de 4 décadas.
- PDF disponível em: Micro_Pré_Loader_do_Pato__JJN_2016-05-06.pdf
2016: Transcrição do micro pré-loader do Moshe Bain (por JJN)
- Em Mrio de 2016 o professor João José Neto encontrou em meio a seus pertences e transcreveu um documento antigo contendo a listagem do micro-pré-loader de autoria de Moshe Bain.
- PDF disponível em: Micro_pré_loader__Moshe_Bain_1977_07_21.pdf
Videos relacionados ao Patinho Feio
Video da Escola Politécnica da Universidade de São Paulo sobre o desenvolvimento do projeto Patinho Feio disponível neste link: https://www.youtube.com/watch?v=wQ22Ymo0Spk
Arquivos binários
No diretório "binários" estão arquivos binários de programas para o Patinho:
apendice_g__hexam.bin
- programa absoluto para ser carregado no endereço /E00
- Programa HEXAM, para manipular dados da memória por meio do console da teletype.
- transcrito da listagem do apendice g do manual do montador.
- CRC(e608f6d3)
- SHA1(3f76b5f91d9b2573e70919539d47752e7623e40a)
exemplo_16.7.bin
- programa absoluto para ser carregado no endereço /006
- programa "hello world" extraído da página 16.7 do manual do montador. Imprime "PATINHO FEIO" na DECWRITER.
- CRC(0a87ac8d)
- SHA1(7c35ac3eed9ed239f2ef56c26e6f0c59f635e1ac)
loader.bin
- programa absoluto a ser carregado no endereço /F80
- mero "placeholder". Arquivo inteiramente composto de zeros.
- O loader original da década de 70 ainda não foi encontrado.
- CRC(c2a8fa9d)
- SHA1(0ae4f711ef5d6e9d26c611fd2c8c8ac45ecbf9e7)
micro-pre-loader.bin
- programa absoluto a ser carregado no endereço /000
- implementação mínimalista para facilitar a sua introdução manual pelo operador do computador em situações de bootstraping.
- Resgatado com base em memórias do professor João José Neto em Maio de 2016. Portanto, pode conter erros.
- CRC(1921feab)
- SHA1(bb063102e44e9ab963f95b45710141dc2c5046b0)
PROCURA-SE
Segue abaixo uma lista de documentos (possivelmente) relacionados direta ou indiretamente ao Patinho Feio mas que ainda não foram escaneados.
Documentos
Encontrados, falta escanear (Patinho Feio)
- Listagens do montador cruzado da prof. Maria Alice. Rodava no IBM-1130 e gerava código objeto do Patinho Feio em cartão perfurado. O HP2116B era usado para converter os cartões para código objeto em fita perfurada.
- Manuscritos do acervo pessoal de Guido Stolfi
- Manuscritos do acervo pessoal de João José Neto
- RANZINI, EDITH "Projeto e Ensaio de Memórias de Núcleos de Ferrite" Dissertação de Mestrado - EPUSP, 1975. DISPONIVEL: Biblioteca Eng. Elétrica EPUSP: FD-105
Encontrados, falta escanear (G-10)
- KOVACH, STEPHAN "Projeto de Um Sistema de Entrada e Saída de um Minicomputador" Dissertação de Mestrado - EPUSP, 1975. - DISPONIVEL: Biblioteca Eng. Elétrica EPUSP: FD-122 ex.2 "[...] descreve-se a estrutura do sistema de entrada e saída do minicomputador G-10, e em particular, o projeto de dois canais que fazem parte do sistema."
Publicações internas do LSD ainda não encontradas
- PINHEIRO, WANNER MONTEIRO "A linguagem Assembler do Patinho Feio" Publicação interna do Lab. de Sistemas Digitais (EPUSP), 1974.
- TACHIBANA, MÁRIO "Carregador Relocável para o Computador Pato Feio" Publicação interna do Lab.Digitais, 1974
Outros documentos ainda não encontrados
- Moshe Bain - um trabalho sobre o uso do Patinho Feio como RJE (Remote Job Entry) para o computador Borroughs B6700 que ficava localizado no CCE-USP (Centro de Computação Eletronica). Talvez tenha sido publicado nos anais de ~1976 da SUCESU. (dica do Tião)
- Resolução do trabalho final da cadeira de arquitetura de computadores PEL-727 (projeto de sistemas digitais), 1971. Uma versão escaneada encontra-se nos anexos da dissertação de Marcia de Oliveira Cardoso, 2003, mas seria desejável re-escanear o documento em uma resoluçao melhor.
- Áudio e/ou transcrições das entrevistas de Marcia de Oliveira Cardoso, caso existam.
- LANGDON, Glen George. Computer Design. San Jose, CA: Computeach Press Inc. 1982. 577 p.
Software
Localizados (falta digitalizar)
- Codificador de Partitura para o sintetizador (GStolfi tem binário e listagem armazenados em fita perfurada)
- Acervo pessoal de fitas perfuradas de João José Neto
- Acervo pessoal de fitas perfuradas de Sebastião Barreto
- Acervo pessoal de fitas perfuradas de Guido Stolfi
- Acervo pessoal de fitas perfuradas de Selma Shimizu
Ainda não encontrados:
- Loader/Carregador Relocável (listagem e/ou fita binária)
- acervos pessoais de fitas perfuradas de outros pesquisadores (para serem digitalizadas)
- Tião mencionou que Mario Tachibana escreveu em Patol um programa gerador de comandos CNC para uma máquina que fazia furos em PCBs. Há uma história interessante sobre um bug no compilador de Patol (de autoria do Tião e do Charlie Lin) que foi detectado pelo Mário durante o desenvolvimento do software de CNC.
Outros documentos possivelmente relacionados disponíveis na bibliteca de eng. elétrica EPUSP
- NETO, JOÃO JOSÉ. "SPD : um sistema automático de apoio ao projeto e desenvolvimento de sistemas digitais." Tese de Doutorado, 1980. (Bibl. Poli-Elétrica FT-452) http://dedalus.usp.br/F/X3PQ1FBIYLQ6VRV6NX6QPPVU5M414BH4GFD1L5FLI9HX4MAYIP-01055?func=full-set-set&set_number=005347&set_entry=000118&format=999
- MARTINI, JOSÉ SIDNEI COLOMBO. "Automação de projetos de sistemas digitais : rotas de circuito impresso" (Bibl. Poli-Elétrica FD-101) http://dedalus.usp.br/F/X3PQ1FBIYLQ6VRV6NX6QPPVU5M414BH4GFD1L5FLI9HX4MAYIP-11222?func=full-set-set&set_number=007973&set_entry=000005&format=999
- CUNHA JUNIOR, NESTOR DE MATOS. "Automação de projetos de sistemas digitais : partição de circuitos lógicos." (Bibl. Poli-Elétrica FD118) http://dedalus.usp.br/F/X3PQ1FBIYLQ6VRV6NX6QPPVU5M414BH4GFD1L5FLI9HX4MAYIP-08231?func=full-set-set&set_number=008208&set_entry=000013&format=999
- MASSOLA, ANTONIO MARCOS DE AGUIRRA. "Automacao de projetos de sistemas digitais : arquivo central." Tese de livre-docência (Bibl. Poli-Elétrica FT241) http://dedalus.usp.br/F/X3PQ1FBIYLQ6VRV6NX6QPPVU5M414BH4GFD1L5FLI9HX4MAYIP-01939?func=full-set-set&set_number=008367&set_entry=000048&format=999
- MARTUCCI JUNIOR, MOACYR. "Projeto de uma memória monolítica : recurso para ampliação da memória principal de um minicomputador." (Bibl. Poli-Elétrica FD904) http://dedalus.usp.br/F/X3PQ1FBIYLQ6VRV6NX6QPPVU5M414BH4GFD1L5FLI9HX4MAYIP-16877?func=full-set-set&set_number=008678&set_entry=000049&format=999