Javi Lavandeira lançou Tatara, um novo conjunto de ferramentas de desenvolvimento que roda no próprio computador MSX. Em vez de usar um cross-assembler em outro sistema, Tatara opera em máquinas MSX2, MSX2+ e MSX turbo R sob MSX-DOS2 ou Nextor, oferecendo TATARA como montador macro e TANREN como ligador.
Como funciona e requisitos
Ambos os programas foram escritos em assembly Z80 e compilados no próprio MSX com o próprio Tatara. Para projetos pequenos basta um disquete, enquanto cartões SD ou CompactFlash tornam o trabalho com projetos maiores mais prático. As ferramentas fazem uso do memory mapper — um recurso de hardware que permite acessar mais memória além da área de programas transitórios (TPA) — o que significa que o tamanho máximo de um projeto fica limitado pela RAM instalada na máquina, e não pela TPA.
Compatibilidade e sintaxe
Tatara é compatível com o M80: códigos-fonte escritos para MSX-M80 montam com poucas ou nenhuma alteração, e o manual inclui um checklist para conversão. O montador aceita nomes de símbolos longos (até 255 caracteres) e oferece uma opção para tornar os nomes sensíveis a maiúsculas e minúsculas.
Recursos de linguagem e organização
O montador suporta macros, montagem condicional e blocos de repetição (REPT, IRP e IRPC), além de rótulos locais. Há também suporte a segmentos separados para código e dados, que podem ser nomeados. Segmentos transitórios permitem que variáveis que nunca coexistem em memória compartilhem espaço, útil para economizar RAM.
Fluxo de arquivos e bibliotecas
Os comandos INCLUDE e a localização de arquivos-objeto seguem uma ordem: diretório do arquivo-fonte, diretório atual e as variáveis de ambiente TATARA e TANREN. O pacote traz arquivos de include prontos com 904 nomes, contemplando funções e códigos de erro do MSX-DOS2, entradas de BIOS e SUB-ROM, a área de trabalho do sistema, hooks, portas de I/O e mais.
Saída, erros e instruções especiais
O ligador TANREN gera vários formatos: programas .COM, binários para BLOAD do MSX-BASIC, imagens de cartucho ROM e binários raw para qualquer endereço. As mensagens de erro informam o arquivo e a linha onde o problema ocorreu, mesmo quando a origem vem de macros ou arquivos incluídos.
Tatara também reconhece instruções do R800 — especificamente MULUB e MULUW — e monta instruções Z80 não documentadas, como SLL e operações envolvendo IXH, IXL, IYH e IYL.
Documentação e licença
Há um manual completo em inglês e japonês, disponibilizado online e em PDF, com guias passo a passo que vão do primeiro programa até a criação de um cartucho ROM de 16 KB. Tatara é gratuito e open source, distribuído sob a licença Apache 2.0; o pacote de download inclui os exemplos presentes no manual.
Fonte: MSX Resource Center
