Ejemplo 02 Params

Descripción

Este proyecto es una prueba sencilla de paso de argumentos de la línea de comandos MSX-DOS al programa. Necesita la variante advanced de la inicialización.

Pertenece a la página de Avelino Herrera Morales: http://msx.atlantes.org/index_es.html

Hemos añadido también dos llamadas a dos funciones para probar que el usuario puede añadir otros ficheros fuente con nuestro Makefile.

Compilación

Como requisito, aparte de la retrolib, está el tener instalado el compilador SDCC. También es necesario tener el make de GNU.

Para compilarlo, simplemente se entra en el directorio build y se ejecuta 'make’. El fichero resultante se llama params.com.

[user@gatatac.org build]$ make
sdcc -D_MSX_CROSS_COMPILER -mz80  -c ../src/func.c
sdcc -D_MSX_CROSS_COMPILER -mz80  -c ../src/func2.c
sdcc -D_MSX_CROSS_COMPILER -mz80  --data-loc 0 --no-std-crt0 ../../../retrolib/computers/msx/targets/com/variants/advanced/lib/crt0msx_msxdos_advanced.rel --code-loc 0x0178   ../../../retrolib/computers/msx/targets/com/lib/conio.rel  ../../../retrolib/computers/msx/targets/com/lib/dos.rel ../../../retrolib/computers/msx/targets/com/lib/getchar.rel ../../../retrolib/computers/msx/targets/com/lib/putchar.rel -I .. -I ../../../retrolib/computers/msx/system/include -I ../../../retrolib/computers/msx/targets/com/include -I ../../../retrolib/computers/msx/versions/msx1/include -I ../../../retrolib/cpus/z80/include -I /usr/share/sdcc/include  func.rel func2.rel -o params.ihx ../src/params.c
../src/params.c:75: warning 85: in function print unreferenced function argument : 'str'
../src/params.c:4: warning 196: pointer target lost const qualifier
../src/params.c:5: warning 196: pointer target lost const qualifier
hex2bin params.ihx
hex2bin v1.0.10, Copyright (C) 2012 Jacques Pelletier & contributors

Lowest address  = 00000100
Highest address = 00000502
Pad Byte        = FF
8-bit Checksum = 0D
cp params.bin params.com
[user@gatatac.org build]$ ls
func2.asm  func2.rel  func.asm  func.rel  Makefile    params.bin  params.ihx  params.lst  params.noi  params.sym
func2.lst  func2.sym  func.lst  func.sym  params.asm  params.com  params.lk   params.map  params.rel
[user@gatatac.org build]$ 

Comprobado con:

Linux Fedora 18 64 bits
GNU Make 3.82
SDCC v3.2.0 #8008

Ejecución

Para ejecutarlo, copiarlo en un disquette y arrancarlo desde la línea de comandos de MSX-DOS con o sin argumentos, p.e.

> params pelota coche scalextric

Para ejecutarlo en un emulador openMSX, ejecutar una máquina emulada que tenga disquetera (recomendamos catapult) y decirle que una de las disqueteras sea un directorio de la máquina anfitrión (el PC). En ese directorio copiaremos el programa y los ficheros necesarios para que se arranque el MSX-DOS (command.com y msxdos.sys). Arrancaremos la máquina y desde la línea de comandos MSX-DOS ejecutaremos la prueba:

> params pelota coche scalextric

Podemos ver el resultado de la ejecución aquí:

NOTAS

Hemos hecho uso de las macros _MSX_CROSS_COMPILER para lograr que compile y ejecute también en GNU C sobre una máquina PC (Linux).

(c) 2013 gatATAC.org en lo que no se reconozca expresamente la autoría a otra persona.
Licencia GPL v2.

01params.png View (26.8 KB) Txinto Vaz, 09/08/2013 04:36 PM