Ano 1 · Ano 2 · Ano 3 · Ano 4 · Ano 5 · Ano 6 · Ano 7 · Ano 8 · Ano 9
Tópicos › Quarto ano › Outros projetos de engenharia reversa e software
Além do KN5000, Felipe "Juca" Sanches tocou vários projetos menores, como os esquemáticos do Itautec I-7000 em KiCad, o editor HexItch e ideias de "refatoração de hardware" com Pinball Fantasies e Another World. Erin Pinheiro extraiu dados das ROMs dos videokês Raf, e Felipe começou a refazer em vetor o pôster de sintaxe Pascal.
Quarto ano: novembro de 2020 a outubro de 2021
Sem acesso aos esquemáticos originais, Felipe passou a desenhá-los em KiCad a partir da placa para completar o driver do MAME, publicou o repositório e criou símbolos KiCad para os chips.
Felipe "Juca" Sanches retomou o driver do Itautec I-7000 G (CP/M) no MAME e, sem esquemáticos, passou a mapear os sinais da placa-mãe com multímetro. FTMaciel relatou que o detentor dos esquemáticos originais (em formato A0) não os enviou para digitalização, e o grupo discutiu o transporte e o risco de extravio; Aylons Hazzud se ofereceu para levar os documentos a São Paulo e devolvê-los depois. Felipe publicou um repositório com os esquemáticos que está desenhando a partir da PCB e criou símbolos KiCad para NSC800D, M5L8279P-5, TMP8251AP e WD2793.
Felipe "Juca" Sanches relatou o quarto dia seguido de trabalho no levantamento dos esquemáticos do Itautec I-7000 em KiCad e comparou o processo a montar um quebra-cabeça de componentes.
Erin Pinheiro intercalou os dumps das EPROMs do Raf VMP-3700 e extraiu fontes, strings e MIDIs; Felipe contou ter um driver incompleto do aparelho no MAME.
Uma pergunta sobre a fonte usada nos videokês dos anos 2000 levou Felipe "Juca" Sanches, dono de aparelhos Raf VMP-3700 e VMP-2000S, a compartilhar os dumps das EPROMs. Erin Pinheiro intercalou as ROMs par e ímpar e extraiu com o binxelview as fontes bitmap e fragmentos do logotipo; também encontrou as strings do sistema e, com um script em Python, extraiu os MIDIs contidos na ROM. Felipe contou que tem um driver MAME incompleto do VMP-3700, parado na emulação do 386EX, e ofereceu publicar o branch.
Felipe testou gerar os diagramas com o script bubble-gen do SQLite, vetorizou o logotipo "Pascal" em domínio público e criou o repositório PascalSyntaxPoster para redesenhar o pôster.
L. perguntou quão trabalhoso seria refazer no Inkscape o pôster de diagramas de sintaxe Pascal. Felipe "Juca" Sanches testou gerar os diagramas com o script Tcl bubble-gen do SQLite, e L. sugeriu o pikchr. Felipe vetorizou o logotipo "Pascal" em 3D e publicou o pascal3d.svg em domínio público; diante dos casos especiais na geração automática, passou a desenhar o diagrama à mão e criou o repositório PascalSyntaxPoster. Felipe lembrou que ele e Aylons Hazzud haviam vetorizado um cartaz sobre eletromagnetismo cerca de 15 anos antes e perderam o trabalho; Aylons compartilhou o repositório spectrum-poster.
Felipe pretendia usar o GCC ia16 para escrever ROMs homebrew para o painel do mixer, com CPU NEC V20, emulado no MAME.
Felipe "Juca" Sanches pretendia compilar o port do GCC para x86 de 16 bits para escrever ROMs homebrew para o painel do mixer de vídeo Sony DFS-500, que usa uma NEC V20 e está sendo emulado no MAME. Ele compartilhou também o artigo sobre o microcódigo do 8086 desmontado, e L. destacou os comportamentos não documentados descritos ali, como o prefixo REP negando o resultado de MUL/IMUL e o quociente de IDIV.
Felipe notou que o Pinball Fantasies força o volume da Sound Blaster 16 no seu 386, e L. compartilhou o código do port para MS-DOS. Juca propôs carregar uma mesa do jogo sem o MS-DOS, como firmware de uma placa controladora de pinball, ideia que seria validada num fork do MAME.
Felipe "Juca" Sanches arranjou um 386 com DOS 5 e Windows 3.1. Depois de abrir e cancelar por engano o configurador do Windows, o Windows passou a acusar configuração incompleta; ele o recuperou trocando o SYSTEM.INI pelo backup SYSTEM.000. Também notou que o Pinball Fantasies força o mixer da Sound Blaster 16 ao volume máximo, o que levou a uma conversa sobre a qualidade de ports.
L. compartilhou o repositório com o código-fonte do port de Pinball Fantasies para MS-DOS e perguntou se Felipe "Juca" Sanches o tinha enviado ao archive.org, o que ele negou. L. também compartilhou o acervo digitalizado da revista BYTE no vintageapple.org, que Shideravan sugeriu como material para o Datassette.
Juca perguntou como o MS-DOS carrega e executa um .EXE e como se roda um programa maior que o espaço de endereçamento de um segmento. Kretcheu indicou o pev. Ismael Luceno explicou o cabeçalho do .EXE, a carga de segmentos e os loaders do DJGPP e do FreeDOS. Juca descreveu a ideia de carregar uma mesa do Pinball Fantasies sem o MS-DOS, substituindo as chamadas do DOS e da VGA BIOS, para fazer do jogo o firmware de uma placa controladora de pinball. A ideia seria validada com um emulador da placa num fork do MAME. RicBit sugeriu um emulador num Raspberry Pi, e Ismael lembrou a questão do copyright.
Felipe pediu a Toy que examinasse um bug nas ferramentas de disassembly do jogo e descreveu o projeto AnotherWorld_JAMMA, uma CPU que executaria o bytecode da VM do jogo.
Felipe "Juca" Sanches pediu a Toy que examinasse uma issue (IndexError) nas ferramentas de disassembly do jogo Another World, reportada por um usuário. Toy aceitou verificar.
Partindo do 68000 e das máquinas Lisp, discutiu-se arquiteturas de computador de linguagem de alto nível e se é viável fazer análise sintática em hardware. RicBit contou ter feito um analisador sintático em FPGA no chip de som do Dona Barata e citou as máquinas de Mealy. Juca descreveu o projeto AnotherWorld_JAMMA, uma CPU que executaria o bytecode da VM do Another World, com duas abordagens. A primeira usa esquemáticos em KiCad de uma CPU microprogramada; a segunda, três Z80 e um esboço de driver de MAME.
Juca programou em lives um clone livre do editor hexadecimal HexIt, em Python e curses, e Ismael Luceno passou a contribuir com o modo de código e a navegação.
Juca começou o HexItch, clone em Python e curses do HexIt, editor hexadecimal proprietário do MS-DOS, e o programou em quatro lives no YouTube. Ele planejava usar o pybfd3 para desmontar binários de várias arquiteturas. Depois, Ismael Luceno passou a contribuir com o modo de código (CodeMode) e a navegação e enviou um pull request.