A versão 2.01 do utilitário file2loader de Rui Ribeiro foi disponibilizada em:
https://github.com/ruyrybeyro/file2tap/blob/master/file2loader.c
Para compilar, em MacOS ou Linux, fazer:
$ gcc file2loader.c -o file2loader
Este utilitário propõe-se automatizar o processo manual de criar loaders de código máquina, embebidos no bloco BASIC. O utilitário coloca o código máquina numa variável Basic. Para já, nesta versão convém que seja a primeira variável.
Na versão 2.x, o utilitário tenta usar os parâmetros passados ao programa de uma formação standard. Tentamos lidar também, ainda que de uma forma limitada, com paginação de modelos ZX Spectrum 128K.
O programa pega num bloco assemblado binário puro e tenta criar um loader .tap.
Colocando aqui o help:
% ./file2loader
Usage:
./file2loader [-n TAPE_BLOCK_NAME] [-x address_of_routine] [-s SP] [-p n] [-a n][-V A] z80.bin dest.tap
-n NAME name of the TAP BASIC section seen by LOAD ""
-x addr decimal address of code recolocation/execution
-t addr decimal address of code execution
-s SP SP to set code before transfer in decimal
-p n 128K block page to page in $C000
n page block 0-7
-a n post Amstrad special paging modes
n special paging mode 0-3
-V var var change BASIC variable in use for storing M/C
var A-Z, by default is A (A$)
-h (print help and exit)
-v (print version and exit)
z80.bin block of machine code file
dest.tap TAP file with the BASIC loader w/ machine code embedded
O file2loader "opções", na sua forma mais simples, apenas inclui um ficheiro "z80.bin" num bloco BASIC. No entanto, tem diversas opções de configuração. O código pode ser transferido para outras posições de memória, ou até paginação mudada. Por exemplo, para criar um loader BASIC standalone de joy.asm chamado joy.tap, cujo ORG começa em 32768, o comando -n dá ao nome de bloco cassete BASIC JOY, o -x transfere e executa o código máquina no endereço 32768 e o -s muda o stack pointer para 32767 antes de saltar.
$ pasmo joy.asm joy.bin
$ ./file2loader -n JOY -x 32768 -s 32767 joy.bin joy.tap
Sem comentários:
Enviar um comentário