Preservação histórica do computador 'Patinho Feio' (de 1971)

por Felipe C. da S. Sanches <juca@members.fsf.org>
Maio de 2016

Se eu escrever um livro algum dia, a capa provavelmente vai ser mais ou menos assim...

Introdução

Esta página contém uma compilação do emulador do Patinho Feio que estou desenvolvendo junto ao projeto MAME, compilado para bytecode de máquina virtual da linguagem Javascript usando as ferramentas do projeto Emscripten. Com isso, busco tornar estes esforços de preservação por meio da emulação mais acessíveis ao público geral, tendo também em mente o potencial educacional deste tipo de trabalho.

Funcionamento e instruções de uso

Ao pressionar a tecla F3 o emulador é reiniciado. Apesar de parecer apenas uma imagem (como um GIF animado), na realidade estas imagens são geradas pela execução de um programa "Hello World" que foi extraído do Manual do Montador do Patinho Feio (1977), sendo executado uma instrução por vez no emulador do Patinho, e gerando eventos de I/O para a TeleType ASR33, o que resulta na renderização dos ícones dos caracteres correspondentes na janela do emulador. No caso dessa compilação para javascript, a "janela" é substituída por um elemento CANVAS do HTML, inserido na página.

Problemas conhecidos

Emulação do programa 'Hello World'

Versão mais recente

Veja aqui a versão mais atualizada do emulador!

Detalhes técnicos

Esta compilação foi feita a partir deste commit disponível no GitHub. Em particular, fiz algumas alterações "inadequadas" nesta compilação, para conseguir um aspecto visual agradável. Modifiquei a largura e a altura default da teletype para que a janela do emulador mostre apenas o cantinho onde é impresso o texto "PATINHO FEIO". A largura desta compilação está setada para 16 caracteres, enquanto a largura real da teletype ASR33 era de 72 caracteres.

A linha de comando que utilizei para esta compilação foi:
~/devel/prebuilt/emsdk_portable/emscripten/master/emmake make SUBTARGET=patinho SOURCES=src/mame/drivers/patinho_feio.cpp
    

Planos para o futuro

Work in progress...

2016-Maio-09: preparando o layout do painel frontal

Em breve irei fazer uma atualização detalhada. Segue abaixo uma "aguinha na boca" de como está agora a emulação do painel frontal de luzes e switches do Patinho Feio no MAME:

preview do painel frontal do patinho feio no MAME em 9 de maio de 2016