Motivación
Se desea probar aplicaciones/demos de Commodore 64 en linux, particularmente en debian.
Instalar emulador vice
Para emular Commodore 64 y otras consolas se utilizará el emulador vice:
$ sudo apt-get install -Vy vice
Copiar roms
El problema con el paquete vice es que debido a las licencias de las roms necesarias para emular un sistema Commodore 64, estas no son distribuidas en el paquete de debian.
A pesar de que en el archivo README.ROMs se hace referencia a utilizar
ftp://ftp.zimmers.net/pub/cbm/crossplatform/emulators/VICE/old/index.html
para descargar las roms, se ha visto que estas también se encuentran en el
ódigo fuente de vice descargado de sourceforge:
https://sourceforge.net/projects/vice-emu/files/releases/vice-3.4.tar.gz. Las
ROMS se encuentran bajo el directorio data
. La lista de las roms necesarias
que se deben copiar al sistema, que fueron quitadas por problemas de licencias
se encuentran listadas en el archivo ROM.list
Para instalar las roms al sistema se puede utilizar el comando install
:
$ VERSION=$(apt-cache show vice | grep -oP '^Version: \K\d\.\d')
$ wget -P /tmp "https://sourceforge.net/projects/vice-emu/files/releases/vice-${VERSION}.tar.gz"
$ tar xf /tmp/vice-${VERSION}.tar.gz -C /tmp
$ cd /tmp/vice-${VERSION}
$ wget "https://sources.debian.org/data/contrib/v/vice/3.4.0.dfsg-1/debian/ROM.list"
$ sudo /bin/bash -c '
for i in $(cat ROM.list); do
/usr/bin/install -m 644 -o root -g root $i /usr/lib/vice/${i#data/}
done
'
Tener en cuenta que si no se copian las roms del directorio DRIVES
, no
podrán cargarse imagenes de disco para utilizar con el emulador. Omitir este
detalle puede llevar a unas horas sin entender porqué no funciona el attach de
las imágenes de disco. Por esto es que conviene copiar todas las roms, y no
algunas selectivamente.
Ejecutar programa de prueba
Como ejemplo de prueba, se descargará una imagen de disco con el programa durexforth:
$ FILE=durexforth-v2_0_0.d64
$ wget -P /tmp "https://github.com/jkotlinski/durexforth/releases/download/v2.0.0/${FILE}"
Para ejecutar el primer programa del disco:
$ x64 -nativemonitor /tmp/$FILE
Se utiliza la opción -nativemonitor
para que en lugar de abrirse una ventana
para el monitor que no permite copiar y pegar texto, se utilice la consola desde
la cual fué lanzado el emulador como terminal del monitor, lo que permite copiar
y pegar texto.
Si se quiere solamente atachear el disco y ejecutar algunos comandos al inicio del emulador se puede utilizar:
$ x64 -nativemonitor -8 /tmp/$FILE -keybuf 'load "$",8\nlist\n'
Aquí, -8
permite agregar (attach) el archivo indicado como una imagen de
disco en la unidad #8. La opción -keybuf
permite simular la introducción
por teclado de texto.
Como referencia, conviene previo a usar el emulador leer sobre los comandos de C64, en particular el comando LOAD, el cual permite la carga y ejecución de programas.