Creación

Desarrollo de Videojuegos en Amstrad CPC

Código BASIC de Alien Shooter
Código BASIC de Alien Shooter

Si no tienes un Amstrad CPC, te recomendamos descargar el emulador WinAPE para Windows.

5 comentarios en “Creación

  1. Hola, buenos días, estoy empezando en CPCtelera y empapándome de los tutoriales de Fran Gallego y tengo este error al compilar el archivo main.s. Gracias.
    [email protected] ~
    $ cd practica

    [email protected] ~/practica
    $ ls
    cfg Makefile obj src

    [email protected] ~/practica
    $ make
    /home/cpctelera/cpctelera/tools/sdcc-3.6.8-r9946/bin/sdasz80 -l -o -s -I/home/cp ctelera/cpctelera/src -Isrc obj/main.rel src/main.s
    src/main.s:9: Error: machine specific addressing or addressing mode error
    removing obj/main.rel
    make: *** [/home/cpctelera/cpctelera//cfg/global_main_makefile.mk:43: obj/main.r el] Error 2

    [email protected] ~/practica
    $

    • Hola Daniel,

      Es imposible saber a qué se debe tu error sin ver el código de tu fichero main.s. Se trata de un error que has cometido en alguna de las instrucciones que has tecleado, en la línea 9, como indica el error. Esto se debe, normalmente, a poner algún número o etiqueta sin la almohadilla (#) delante, pero puede ser alguna otra cosa. Son errores de sintaxis típicos, como en C olvidarse de un ;. En cualquier caso, es algo que te va a suceder muchas veces (a mi me sigue sucediendo de vez en cuando), por lo que tienes que acostumbrarte a indagar en tú código buscando los motivos de estos errores.

      Espero que esta orientación te ayude, pero si no, hace falta que envíes tu código para poder saber a qué se debe el error.

      Un saludo.

      • Buenos días Fran, efectivamente era una dichosa almohadilla, aquí sigo avanzando con tus videos, es una cosa que siempre he querido hacer en el pasado, pero con un par de libros sobre el tema se quedo hay en el pasado, pero por casualidad di con este proyecto y he retrocedido 30 años de golpe, muchas gracias por el esfuerzo.

        Un saludo.

  2. Hola de nuevo Fran, la función cpct_disableFirmware.asm no figura en la instalación de cpctelera, claro al llamarla la compilación me da un error: ?ASlink-Warning-Undefined Global ‘cpct_disableFirmware.asm’ referenced by module ”.
    He mirado en Github y no figura tampoco, no se si hay alguna manera de hacer o descargarse de algún sitio el fichero .s de la función y si lo hay lo copio en la carpeta cpctelera/src/firmware directamente y ya esta, gracias de antemano.

    Un saludo.

    • Hola Daniel,

      No tienes que hacer nada. La función está incluida en CPCtelera. No hay archivo cpct_disableFirmware.asm porque la función es un alias de cpct_removeInterruptHandler. Puedes verla en este archivo: https://github.com/lronaldo/cpctelera/blob/master/cpctelera/src/firmware/cpct_removeInterruptHandler.s

      Tienes un problema si estás intentando llamar a la función desde C con el nombre “cpct_disableFirmware_asm” puesto que esa etiqueta no está definida en las cabeceras de C. Es una etiqueta para llamadas desde ensamblador, en las que debe declararse con .globl y luego llamarse. La función a llamar desde C es “cpct_disableFirmware()”.

      Para este tipo de detalles, lo mejor es que mires los ejemplos en la carpeta examples: muchos ejemplos usan las funciones y puedes ver cómo se usan correctamente.

      Un saludo.

Deja un comentario