Ano 1 · Ano 2 · Ano 3 · Ano 4 · Ano 5 · Ano 6 · Ano 7 · Ano 8 · Ano 9
Tópicos › Terceiro ano › Engenharia reversa, código e ferramentas
Várias conversas trataram de código de máquina e de ferramentas para analisá-lo. L. começou a escrever um conversor do GW-BASIC de 8086 para Z80, Felipe "Juca" Sanches estava escrevendo um disassembler de 286 como extensão do ExecTrace e RicBit compartilhou a disassembly comentada do Metal Gear do MSX2. Também foram discutidos o scroll fino em EGA/CGA, o protocolo do Microsoft Comic Chat e o protocolo de atualização de firmware do Technics KN5000.
Terceiro ano: novembro de 2019 a outubro de 2020
Com a liberação do código-fonte do GW-BASIC sob licença MIT, L. começou a escrever em Python um conversor de assembly 8086 para Z80, pensando no MSX. A conversa tratou do mapeamento de registradores e das rotinas de I/O a escrever à mão.
L. divulgou a liberação do código-fonte do GW-BASIC sob licença MIT e começou a escrever em Python um conversor do assembly 8086 para Z80, pensando no MSX. A conversa tratou do mapeamento de registradores (AX/AH não têm equivalente direto no Z80) e das rotinas de I/O que precisariam ser escritas à mão. Depois L. publicou um post sobre a conversão.
Felipe "Juca" Sanches estava escrevendo em Python um disassembler de 286 como extensão do ExecTrace, que já suportava o 8048 do Odyssey² e o Z80, para retomar a engenharia reversa do Pinball Fantasies.
Felipe "Juca" Sanches contou que estava escrevendo em Python um disassembler de 286, consultando o do MAME, como extensão do ExecTrace. A ferramenta já suportava o 8048 do Odyssey², o Z80 (com funções para a BIOS do MSX) e passaria a suportar x86, para retomar a engenharia reversa do Pinball Fantasies. L. observou que as instruções do 8086 se agrupam de 8 em 8 quando vistas em octal.
Lord Spy pediu referências sobre o scroll fino de Dangerous Dave in Copyright Infringement. RicBit concluiu que o CGA permite emular scroll fino e que o MAME não implementa esse recurso no CGA, ressalvando que só o hardware confirmaria.
Lord Spy pediu referências sobre a implementação do scroll fino no PC por Carmack em Dangerous Dave in Copyright Infringement. Consultando um manual, o código do MAME e o datasheet, RicBit concluiu que o CGA permite emular scroll fino por set scroll e que o MAME não implementa esse recurso no CGA, ressalvando que só o hardware confirmaria. Mais tarde Lord Spy relatou que Carmack trabalhou por tentativa e erro, sem documentação das placas, e aparentemente sem usar os registradores de scroll.
L. e Erin Pinheiro 🐿 explicaram que o Comic Chat é um cliente IRC comum que codifica as informações dos quadrinhos num prefixo de texto, e L. indicou um cliente web baseado nele.
Felipe "Juca" Sanches perguntou se seria possível reativar o Microsoft Comic Chat original depois do fim dos servidores da Microsoft. L. e Erin Pinheiro 🐿 explicaram que se trata de um cliente IRC comum, que codifica as informações dos quadrinhos num prefixo em texto nas mensagens. L. também indicou um cliente web com servidor node.js baseado no Comic Chat.
RicBit compartilhou a disassembly totalmente comentada do Metal Gear do MSX2 e explicou como os 64 KB extras de VRAM da maioria dos MSX2 permitiriam reduzir o tempo entre telas.
RicBit compartilhou a disassembly totalmente comentada do Metal Gear do MSX2, que começou a otimizar. Ele explicou que o jogo pressupõe 64 KB de VRAM e descomprime dados durante o jogo, e que os 64 KB a mais presentes na maioria dos MSX2 permitiriam guardar esses dados em cache e reduzir o tempo entre telas.
Felipe "Juca" Sanches compartilhou uma alternativa de código aberto ao Gotek e explicou que pretende usá-la para entender o protocolo de atualização de firmware do teclado Technics SX-KN5000.
Felipe "Juca" Sanches compartilhou uma alternativa de código aberto ao Gotek USB floppy. Ele explicou que pretende usá-la num ataque "man-in-the-middle" para entender o protocolo de atualização de firmware do teclado Technics SX-KN5000, cujos disquetes de update usam um formato que ele desconhece.
L. compartilhou artigos de Ken Shirriff sobre o die do 8086 e o HP Nanoprocessor e o AtomBusMon, um ICE de código aberto para processadores de 8 bits.
L. compartilhou artigos de Ken Shirriff sobre a engenharia reversa do die do 8086 (registradores, latches do registrador de instrução) e do HP Nanoprocessor. RicBit comentou os 6 bytes de cache de código do 8086.
L. compartilhou o AtomBusMon, um ICE de código aberto para processadores de 8 bits.