Introducción a la programación en C con z88dk: Compilando y probando un "Hola mundo"

Click here to see in English

En el momento de escribir este documento la última versión estable de z88dk liberada es la v1.9, que es del año 2009, aunque podemos bajar un snapshot con todo lo último, ya que se generan automáticamente todos los días. Bajamos la instalación de su web v1.9 estable o bien la ultima snapshot. La instalación en windows es automática y para cualquier otra plataforma o dudas podemos leer la documentación. Una vez instalado básicamente podemos invocar el compilador desde cualquier directorio del pc.

Con cualquier editor de texto o código (con el mismo notepad de Windows vale) generamos un fichero z88dk01.c con el siguiente contenido:

#include <stdio.h>

main()
{
  printf("Hola mundo");
  fgetc_cons();
}

Para compilarlo, desde la línea de comandos (o mejor hacemos un fichero bat) en el mismo directorio donde tenemos el fichero z88dk01.c ejecutamos:

zcc +cpc -lndos -o z88dk01.bin z88dk01.c

Si todo ha ido bien, se nos habrá generado un nuevo fichero z88dk01.bin, que ya se puede ejecutar en el Amstrad CPC. Para las pruebas, vamos a cargar los binarios generados en un emulador, para ello tendremos que generar un fichero dsk (imagen de disco) con el binario que hemos compilado, para poder cargarlo/ejecutarlo en el emulador. Para ello podemos utilizar por ejemplo ManageDSK o CPCDiskXP.

Para generar un Dsk con CPCDiskXP, ejecutamos el programa, pulsamos en "Dsk Editor", luego pulsamos en "New" seleccionamos el formato por defecto "CPC Data" y pulsamos Ok. Ahora pulsamos "Add Files" para añadir nuestro binario, buscamos el directorio donde hemos compilado y seleccionamos el fichero z88dk01.bin, ahora CPCDiskXP nos preguntará si queremos añadir la cabecera Amsdos, pulsamos Sí y dejamos los valores que aparecen por defecto y pulsamos Ok. Ahora pulsamos el botón "Save" para guardar nuestro Dsk, yo lo he llamado "z88dk01.dsk" en el mismo directorio. Con la última versión de CPCDiskXP también podemos generar un dsk desde la línea de comandos (o un bat) de la siguiente forma:

CPCDiskXP -File z88dk01.bin -AddAmsdosHeader 6000 -AddToNewDsk z88dk01.dsk

Cargamos el Dsk en nuestro emulador favorito (Yo suelo usar CPCE y Winape) y lo ejecutamos con run"z88dk01 y veremos lo siguiente:

 

z88dk también nos permite generar el binario directamente con la cabecera Amsdos para facilitarnos la vida, simplemente indicando "-create-app" nos generará aparte del fichero z88dk01.bin un fichero z88dk01.cpc que ya lleva la cabecera. Por otro lado, si queremos indicar una dirección de memoria para el programa diferente de la de por defecto (0x6000), se lo podemos decir usando el parámetro "-zorg=" seguido del valor en decimal. Por ejemplo:

zcc +cpc -create-app -lndos -zorg=384 -o z88dk01.bin z88dk01.c

Nos generará un fichero z88dk01.cpc con cabecera Amsdos y dirección de memoria para ejecutarse de 384 (0x180). Creamos un Dsk con él y lo cargamos en el emulador con run"z88dk01.cpc

Podéis bajar un zip con los ficheros z88dk01.c, z88dk01.bat y z88dk01.dsk aquí: Introduccion_a_la_programacion_en_Z88dk_Compilando_y_probando_un_Hola_mundo.zip

 

 

www.CPCMania.com 2012