sábado, 28 de abril de 2012

Fuse e z80asm

Com a emulação ficou fácil programar para o TK90X. Nada melhor do que usar as ferramentas de computador PC moderno, com a vantagem de ter um teclado muito melhor do que do tipo "chiclete", e a possibilidade de salvar o trabalho no disco rígido. Eu uso Linux, portanto estarei apresentado as ferramentas para este sistema operacional. 

Para criar um programa em assembly Z80,  basta digitar as instruções num editor de texto qualquer e gravar no disco rígido. Abaixo, como exemplo, há um pequeno programa assembly que será salvo e depois montado: 



O programa montador (assembler) que costumo usar é o z80asm, cujo site oficial encontra- neste link. Este é um programa para o shell, isto é, para o console de texto, como é comum no Linux e pode desgostar aqueles que preferem trabalhar em ambiente gráfico. Seu uso mais comum é:
z80asm -o [arquivo de saída] [arquivo de entrada]
onde arquivo de entrada é o nome do arquivo contendo o código fonte assembly e arquivo de saida é onde será salvo o código de máquina. Se a opção -o for omitida, o código será salvo no arquivo a.bin.

Prosseguindo no exemplo, o arquivo editado e salvo como Out254Loop2.asm será montado para produzir o arquivo Out254Loop2.bin:


A opção -v foi acrescentada para que o z80asm mostre mensagens durante o processamento.

Agora falta colocar o código binário no emulador. Eu uso o Fuse que cheguei a comentar em postagem passada. Para isto, basta usar a opção do menu File > Load binary data...:


Aparecerá uma janela para escolher o arquivo a inserir que, no caso deste exemplo, será Out254Loop2.bin. Em seguida será pedido para digitar o endereço inicial da RAM para carregar o código de máquina:


No exemplo acima foi digitado o endereço inicial (Start) 60000. O comprimento (legth) já é automaticamente determinado pelo comprimento do arquivo a inserir. A propósito, dependendo do endereço, pode ser necessário reservar espaço de RAM ajustando a RAMTOP com o comando BASIC  CLEAR.

Para rodar o programa em linguagem de máquina, basta usar o comando RAND USR [endereço]. O programa assembly dado como exemplo é bastante simples, ao ser rodado produz o seguinte resultado:


porém acaba ficando travado e obriga a fazer um reset (tecla F5) no emulador.

O programa assim produzido pode ser gravado em arquivos imagens de fitas ou discos e, eventualmente, transferido para o TK90X real. Espero que estas informações incentivem na elaboração de programas assembly.

Nenhum comentário:

Postar um comentário

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