CPCBasic

Compilador cruzado BASIC para Amstrad CPC

Español Français English

Inicio Características Modo de uso Documentación Descargas Enlaces Errores conocidos Contacto Novedades


CPCBasic está orientado a programadores que quieran escribir aplicaciones para Amstrad CPC desde el entorno Windows. Es una aplicación en modo línea de comando que permite generar un fichero fuente ensamblador a partir de un fichero fuente escrito en el lenguaje CPCBasic, basado en el Locomotive Basic incluido en los ordenadores Amstrad CPC.

El fichero ensamblador generado se puede ensamblar para generar un fichero binario para ejecutar en un ordenador Amstrad CPC o emulador. Para crear este fichero binario puede utilizarse un ensamblador cruzado como pasmoo el ensamblador incluido en algunos emuladores como WinCPCo WinApe.

Una vez creado el fichero binario, si no se ha hecho con el ensamblador incluido en un emulador que genere el resultado directamente sobre la memoria del mismo, se pude utilizar alguna utilidad como InsSNApara llevar el fichero a un archivo .DSK que permita leerlo también en un emulador o alguna utilidad de transferencia para transportar el código binario del fichero a un Amstrad CPC real.

Para poder utilizar la aplicación CPCBasic o InsSNA debe estar instalada la librería Microsoft .NET Framework 2.0o superior. Para el resto de programas que se vayan a utilizar en el desarrollo de aplicaciones sobre CPCBasic consultar la documentación de dichas aplicaciones.

Características

Las principales diferencias del código CPCBasic respecto al intérprete Locomotive Basic del CPC son:

Como mejoras de CPCBasic se podrían mencionar:

En cuanto a la velocidad de ejecución, se ha intentado que sea el punto fuerte de este compilador, incluso en detrimento del espacio ocupado. En operaciones con números, el tiempo de ejecución es un 10% respecto al tiempo del intérprete (por supuesto si se usan correctamente los tipos de datos). En cuanto a otras operaciones que hagan uso del firmware la ganancia ya no es tanta, aunque nunca será superior el tiempo en CPCBasic respecto a Locomotive Basic. En global y con carácter general un programa en CPCBasic tarda menos de la mitad de tiempo en ejecutarse que el mismo en Locomotive Basic.

Por otra parte, el uso del firmware es bastante intenso en toda la aplicación, sobre todo en lo que se refiere a las órdenes y funciones y el uso de valores de tipo real. En cualquier caso siempre se puede crear una nueva orden o función y reescribirla sin usar el firmware si éste no se considera adecuado para la velocidad.

Modo de uso

Para crear el fichero fuente CPCBasic será necesario un editor cualquiera que genere un fichero de texto plano. Se recomienda cualquier editor bajo Windows orientado a programación, como UltraEdit(shareware) o PSPad.

Tras escribir y grabar el fichero fuente CPCBasic se debe compilar con CPCBasic desde la línea de comandos, de la forma:

CPCBASIC fichero.bas /destino

donde fichero.bas es el nombre del fichero fuente creado con el editor (se recomienda extensión .BAS) y /destino es la especificación del modelo de Amstrad CPC para el que se quiere genera el código ensamblador. Se puede indicar /464, /664 y /6128, siendo estas dos últimas posibilidades de idéntico efecto. Si se omite este segundo parámetro se interpreta como si se hubiese especificado /464.

Si no aparece ningún error se habrá generado un fichero con el mismo nombre que el fuente, pero con extensión .ASM que contendrá el código ensamblador equivalente al programa CPCBasic. Este fichero se deberá ensamblar con algún programa ensamblador cruzado que genere código binario, como pasmou otro similar que admita la misma sintaxis. Consultar la documentación del ensamblador elegido para ver el modo de uso.

Si también se ha generado correctamente el fichero binario a partir del fichero ensamblador, será necesario llevar el contenido de este fichero a un Amstrad CPC real, mediante uno de los diferentes métodos existentes: cable, creación de disquete de 3½ para la lectura desde el CPC sobre disquetera externa, etc.

El otro sistema a partir de haber generado el fichero ensamblador es llevarlo a la herramienta de un emulador que permita ensamblarlo directamente a la memoria del emulador.

Ejemplo 1: Suponiendo que se tenga en la misma carpeta el programa en CPCBasic, el compilador CPCBasic, el ensamblador pasmo, la utilidad InsSNA y una imagen de memoria de emulador en un estado recién iniciado llamada inicial.sna, se utilizarían la siguientes sentencias desde la ventana de modo de símbolo de sistema:

cpcbasic fichero.bas

pasmo fichero.asm fichero.bin

inssna inicial.sna final.sna fichero.bin 16384

Posteriormente se cargaría en el emulador la imagen final.sna y se ejecutaría el programa con CALL &4000.

Ejemplo 2: Otra alternativo utilizando un emulador que permita ensamblar directamente sería realizar únicamente la compilación (primera línea del ejemplo anterior) y en el mencionado emulador abrir el fichero .ASM generado y ensamblarlo, llamando igualmente al programa con CALL &4000.

Ejemplo 3: Si se quiere ejecutar el programa en un Amstrad CPC real se realizaría la compilación y ensamblado (dos primeras líneas del primer ejemplo) y el fichero.bin generado se llevaría al CPC real con el método que se prefiera (consultar otras páginas web) y realizar igualmente la sentencia CALL &4000 en el Amstrad.

Documentación

Documentación del compilador CPCBasic

Descripción de órdenes y funciones incluidas en la librería estándar CPCBasic.bas

Documentación para librería Sprites Alive

Descargas

Compilador CPCBasic

Librería estándar de órdenes y funciones

Librería para utilizar las rutinas de Sprites Alive

Utilidad InsSNA para inserción de código binario en archivos .SNA

Microsoft .NET Framework

Acrobat Reader para leer la documentación de esta web

Enlaces

Ensamblador cruzado pasmo

Emulador WinCPC

Emulador WinAPE

Emulador Caprice32

Página web Amstrad.es (contiene enlaces a otros muchos sitios sobre Amstrad CPC)

FTP con contenido en español sobre Amstrad CPC

FTP con contenido en inglés sobre Amstrad CPC

Errores conocidos

Hasta ahora se han detectado en el compilador los siguientes problemas que según se resuelvan se irán eliminando de esta lista:

Contacto

Por favor, espero cuestiones sobre dudas, comentarios, críticas, sugerencias, comunicaciones de errores, comportamientos extraños, etc. que permitan mejorar esta aplicación a emilioguerrero@terra.es. También acepto cualquier tipo de ayuda para mejoras, traducción de documentación, ... Puedo responder en español, inglés, francés, italiano y portugués. Gracias.

Novedades


27/08/2007



28/08/2007



02/09/2007



15/09/2007



18/09/2007



22/09/2007



24/09/2007



25/09/2007



26/12/2008