terça-feira, 7 de março de 2023

TK Disassembler

 Este é um novo disassembler para o TK90X, com algoritmo baseado no DisassemBASIC.

Se o programa anterior era 100% em BASIC, o TK Disassembler é totalmente em assembly. Embora tenha sido feito mais como objeto de estudo para mim, acredito que ficou bem usável. Estou disponibilizando o código fonte em assembly repleto de comentário, para facilitar sua compreensão e estudo. Ele consegue decodificar todas as instruções do Z80, incluindo as que não são documentadas pela Zilog. A tela acima é do All Opcodes que contém todas as instruções possíveis. Outro ponto é que consegui fazer o programa ficar razoavelmente pequeno, ocupando 1838 bytes de memória.

Também disponibilizo o arquivo TZX que contém uma versão na parte mais baixa da memória (TKDIS_low), residente a partir de 24500, e outra na parte alta da RAM (TKDIS_high), residente a partir de 60000. Foi incluído também o All Opcodes.

Os programas do TZX não definem os atributos de cores da tela como dá a entender a primeira figura deste artigo. Na verdade, se for dar RUN logo após carregado o programa, a tela fica em preto e branco como na segunda figura, logo acima. O usuário pode escolher as cores diretamente no BASIC, a única coisa que o TK Disassembler faz é diferenciar as colunas da listagem com diferentes valores de BRIGHT.

Aproveitando as duas figuras deste artigo, devo mencionar que o TK Disassembler pode exibir a listagem em decimal (primeira figura) ou hexadecimal (segunda figura). 

Para baixar o TK Disassembler, clique neste link. Não sei se ele vai ser útil para alguém. O que posso dizer é que aprendi muito durante seu desenvolvimento.

2 comentários:

Seu comentário é bem vindo, mas peço que use este espaço adequadamente.