Disassembly da ROM da interface de drive CAS
Eletrônica

Disassembly da ROM da interface de drive CAS


Depois de um longuíssimo tempo, finalmente um clone brasileiro da interface de drive Beta 48 tem sua ROM totalmente desmontada (disassembly) e analisada.


O primeiro trabalho que tenho conhecimento nesse sentido é o disassembly comentado da ROM da interface IDS-91 do Jorge Braga, com última modificação datada de 2004. Embora esteja longe de estar completo, foi um início na tentativa de desvendar o sistema operacional da Beta (DOS). Fiz algumas tentativas de prosseguir o trabalho com IDS e CBI, mas somente agora consegui ir até o fim.

A escolha pela interface da Cheyenne Advanced Systems (CAS) não foi por acaso; ela é a que mais se aproxima da Beta 48 original (por sua vez, também pouco conhecida ao contrário da Beta 128, mesmo no exterior). Os arquivos binários foram fornecidos pelo Eduardo Luccas (meus sinceros agradecimentos), que teve um trabalho adicional de decodificar a EPROM, cujos pinos de dados estão embaralhados devido ao leiaute da placa de circuito impresso.

A listagem do disassembly foi relativamente fácil de se produzir, usei o utilitário z80dasm v. 1.1.3 da distribuição GNU/Linux. Porém a parte mais trabalhosa foi a análise de toda a listagem e a edição dos comentários. Igualmente extenuante foi criar rótulos para as rotinas, sub-rotinas, variáveis e constantes, para auxiliar na legibilidade do disassembly. Pode ser que as escolhas nem sempre foram as mais felizes, mas foi o que eu consegui. Como compensação, tive a oportunidade de estudar bastante e aprendi muita coisa; não é exagero dizer que sempre consigo aprender alguma coisa com estes equipamentos antigos. Foram meses revirando o disassembly da ROM do ZX Spectrum, o Guia Avançado para o Spectrum, artigos do Toni Baker sobre streams e canais na ZX Computing e cheguei até a consultar disassembly do Shadow ROM da Interface 1 (impressionante o cuidado para que a Beta 48 funcionasse em harmonia com a Interface 1 e o sistema de microdrives). A parte mais complicada foi o tratamento de streams e canais, um assunto pouco explorado no manual do TK90X e do ZX Spectrum, sendo igualmente pouco mencionado nos manuais dos clones brasileiros da Beta 48. Não obstante a dificuldade, esta parte me causou admiração, pois a Beta dotou um tratamento bastante completo para streams que é uma ferramenta bastante poderosa, capaz de permitir que um programa BASIC possa manipular centenas de quilobytes de dados no disco. Infelizmente não foi um recurso muito conhecido, nem aproveitado.

A listagem encontra-se neste link, não deixei claro o licenciamento uma vez que a ROM da CAS deve ser ilegal, além dos direitos da Technology Research estarem em situação desconhecida. Só recomendo que usem o arquivo com bom senso.



loading...

- Disassembly Da Rom Do Spectrum
Um dos livros que eu uso com grande frequência é O sistema operativo do Spectrum: ROM disassembly de Ian Logan e Franck O'Hara. Pela capa do meu exemplar dá para notar que foi bastante manuseado e, mesmo encapado em plástico, está judiado....

- Consumo De Ram Da Beta 48 E 128
Uma das coisas complicadas de se adaptar programas da fita cassete para a interface de drive Beta é a memória. O sistema operacional TR-DOS usa 112 bytes extras de RAM para as suas próprias variáveis de sistema, nos endereços 23734 a 23845 (#5CB6...

- Lsd Megademo (pentagram)
Mais um demo para TK90X com Explorer foi adaptado para a interface de drive padrão Beta 48, o LSD Megademo do grupo Pentagram. Uma dificuldade adicional  na adaptação foi a presença de código de máquina dentro de linha BASIC, prática que...

- Headers Para Programação (atualização)
Postei anteriormente sobre meus arquivos com constantes (cabeçalhos ou headers) para programação assembly Z80 no TK90X. Fiz atualização nos seguintes arquivos:Headers_Beta48_CAS.asmHeaders_Beta48_CBI.asmque são relacionados às interfaces de drive...

- Ikari Warriors: Uniloader No Beta 48
Finalmente consegui adaptar o jogo Ikari Warriors para a interface de drive Beta 48. Este jogo possui som para a interface Explorer (ou qualquer uma com PSG AY-3-8912) e, por isso só, justificaria a adaptação. Porém um desafio adicional foi tentar...



Eletrônica








.