sexta-feira, 9 de abril de 2021

Nova versão 2.01 de file2loader

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