Hola mundo en Basic de Amstrad CPC464 sobre una ROM BIOS customizada

El objetivo de este post es realizar un «hola mundo» en «Locomotive Basic» desde GNU/Linux utilizando un emulador de Amstrad CPC464 sobre una ROM BIOS alterada.

Se explica como se puede realizar y como finalmente podemos aprender a programar sencillos programas.

Creo que a nivel de historia es interesante y puede servir para pasar un buen rato picando algo de código viejuno.

 

Material necesario:

  • xcpc (Un emulador de Amstrad CPC 464/664/6128 escrito en C).
  • libsdk (Es necesaria para el acceso del emulador a las imágenes de disquetes. Es una dependencia para compilar xcpc).

 

Proceso:

  • Compilar libsdk .
  • Compilar xcpc .
  • Alterar ROM BIOS a nuestro gusto.
  • Escribir un hola mundo en Locomotive Basic .

 

Compilar libsdk:

Se necesitarán algunas dependencias como make, gcc, …

$ wget http://www.seasip.info/Unix/LibDsk/libdsk-1.4.2.tar.gz
$ tar xfvz libdsk-1.4.2.tar.gz 
$ cd libdsk-1.4.2/
$ ./configure
$ make
# make install
# ldconfig

 

Compilar xcpc:

Descargamos xcpc desde aquí: https://sourceforge.net/projects/xcpc/files/latest/download
Lo descomprimimos y accedemos al directorio para compilarlo siguiendo estos pasos (teniendo en cuenta que tiene ciertas dependencias como por ejemplo libxaw7-dev):

$ cd xcpc-20070122/
$ ./configure 
$ make
# make install

 

Si todo va bien ya estará disponible xcpc en nuestro sistema GNU/Linux.

Podemos probar a ejecutar xcpc así por ejemplo:

 

$ xcpc --model=cpc664

 

Y veremos que se carga la ROM BIOS cp664.rom correspondiente a ese modelo de Amstrad.

ROM BIOS que incorpora un interprete BASIC.

 

 

Las roms que utiliza xcpc se han instalado en las siguientes rutas:

amsdos.rom -> ‘/usr/local/share/xcpc/roms/amsdos.rom’
cpc464.rom -> ‘/usr/local/share/xcpc/roms/cpc464.rom’
cpc6128.rom -> ‘/usr/local/share/xcpc/roms/cpc6128.rom’
cpc664.rom -> ‘/usr/local/share/xcpc/roms/cpc664.rom

 

Alterar ROM BIOS a nuestro gusto:

La gracia del articulo es ver como con un simple editor hexadecimal vamos a poder modificar el texto que aparece cuando la BIOS carga BASIC. Y luego ya con una BIOS customizada ponernos a hacer un hola mundo en BASIC.

Para ello se puede usar cualquier editor hexadecimal. Yo voy a recomendar usar el editor «le». Un editor de textos que con el parametro «-h» se convierte en un editor hexadecimal.

Distros como Debian tienen «le» en sus repositorios.

 

El proceso es el siguiente:

 

# le -h /usr/local/share/xcpc/roms/cpc464.rom

 

 

Abrimos con el editor hexadecimal el archivo cpc464.rom y bajamos con el cursor hasta encontrar la parte que pone 1984 y más texto.
Allí sustituiremos lo que queramos teniendo en cuenta que se ha de convertir de ASCII a hexadecimal (y que no existe la ñ).

Es importante activar insert (pulsando la tecla insert) al acceder ya que si no lo hacemos lo mismo vamos a estar desplazando información.

 

 

Con control + x se puede salir del editor y preguntará si queremos guardar los cambios.

Si todo va bien y ejecutamos ese modelo con xcpc (el cpc464) veremos algo así como esto:

 

 

Escribir un hola mundo en Locomotive Basic:

Antes de nada es bueno saber que para limpiar la pantalla se puede usar CLS.

Para picar el programa se ha de indicar 10, 20, 30, … y con RUN se ejecuta.

Ejemplo:

 

10 SALUDO$="HOLA MUNDO MUNDIAL"
20 PRINT SALUDO$
RUN

 

Para conocer más sobre Locomotive BASIC y practicar haciendo algunos programas aquí dejo esté enlace: http://www.cpcwiki.eu/index.php/Locomotive_BASIC

 

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Ir a la barra de herramientas