Emulador de Commodore MAX Machine con Lilygo TTgo VGA32
El mítico Commodore 64 tuvo un hermano que suele pasar desapercibido en la historia de la informática.
En este artículo vamos a emular un MAX Machine sobre un módulo TTgo VGA32 de Lilygo.
+ Commodore + RetroinformáticaSobre el Commodore MAX Machine
El Commodore MAX Machine se presentó en Japón en 1982 como respuesta al empuje en aquel país de las consolas de videojuegos y ordenadores domésticos de bajo coste. Prácticamente no tuvo recorrido al tener que competir con un VIC-20 totalmente implantado en los mercados y el rotundo éxito del C64, llegando a cancelarse sus versiones para Norteamérica, Ultimate, y Alemania, VC-10.
Compartía la misma arquitectura que su hermano C64, salvo que solo llevaba 2 KB de RAM, no incluía chips CIA para control de E/S y dependía de cartuchos, pues no incluía ROM alguna en su placa base.
Entorno e instalación del emulador
Emulador
Vamos a basarnos en el emulador Tiny C64, que ya utilizamos en otro artículo, cuyo código fuente adaptaremos para este ordenador según estos criterios:
- MAX no tiene ROM interna, por lo que depende 100% de cartuchos para arrancar.
- Mapa de memoria:
- $0000-$07FF: RAM (2KB) – Única memoria de trabajo
- $0800-$7FFF: Bus abierto (no mapeado)
- $8000-$9FFF: Cartucho ROM (opcional, 8KB)
- $A000-$DFFF: Bus abierto (no mapeado)
- $E000-$FFFF: Cartucho ROM (OBLIGATORIO, 8KB)
Por cuestiones de simplificación, se integran en el código varios cartuchos de ejemplo.
Elementos
Vamos a necesitar los siguientes elementos:
- Placa Lilygo TTgo VGA32 v1.4.
- Monitor con entrada VGA.
- Teclado con conector PS/2 o, en su defecto, convertidor USB a teclado PS/2.
Instalación
Vamos a descargar el código fuente del emulador desde GitHub en nuestro directorio de trabajo:
$ git clone https://github.com/RafaGS/ESP32TinyCMAX.git Si no hemos instalado aún PlatformIO, procederemos a ello:
$ paru -Ss platformio platformio-udev-rules Entramos al directorio donde acabamos de descargar los fuentes del emulador del Commodore MAX Machine.
$ cd ESP32TinyCMAX Conectamos la placa VGA32 al PC, sin microSD, y procedemos a generar y subir los binarios.
$ pio run --target upload Emulación
Una vez realizada la subida, desconectamos la TTgo del PC y la conectamos a un monitor y teclado.
Una vez encendida la alimentación, vía microUSB, veremos el proceso de arranque de nuestro «Commodore MAX» con el cartucho MiniBASIC conectado por defecto.
Este BASIC es plenamente funcional y permite escribir nuestro código sin problemas.
Si pulsamos [Ctrl][F2] podremos acceder al cartucho MaxBASIC, que incluía todos los comandos de la versión 2 de CBM BASIC y acceso a cinta de casete.
Por supuesto, también podremos escribir nuestro código en BASIC.
Con [Ctrl][F3] hasta [Ctrl][F6] podremos acceder a cartuchos de juegos. El primero sería Omega Race.
El siguiente, Wizard of Wor.
También estaría Radar Rat Race.
Que, como podemos ver, no parece demasiado atractivo.
Y, por último, Clowns.
Se observa que los cartuchos de juegos no son muy fluidos, debido posiblemente a la ausencia de joystick o a algún elemento no considerado en la emulación.
#1982 #Commodore #LilygoTTgoVGA32 #MOS6510 #OrdenadoresDomésticos




