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.