Jam Like It’s The 1980s With A Mini-IBM PC

A lot of retrocomputer enthusiasts have a favourite system, to the point of keeping up 40 year old flame wars over which system was “best”.   In spite of the serious, boring nature of t…

Hackaday

Emulador de MSX con Adafruit Fruit Jam

MSX fue un serio intento de crear un estándar en la segmentada informática doméstica de los años 80. Vamos a emular un sistema MSX sobre una tarjeta Fruit Jam de Adafruit.

+ MSX + Retroinformática

Sobre el sistema MSX

El sistema MSX surge como una iniciativa conjunta de Microsoft y ASCII Corporation en 1983 para el mercado japonés con objeto de crear un estándar en la informática doméstica a imagen y semejanza de lo que fue el sistema VHS para los reproductores de vídeo en el hogar. Pronto se unirían grandes empresas locales, como Panasonic o Sony, además de otras extranjeras como Philips o Samsung.

A nivel de arquitectura, los sistemas MSX constaban de un procesador Z80A a 3,58 MHz y un mínimo de 8 KB de RAM, aunque lo normal es que llevasen 32 KB o 64 KB. Disponían de un procesador de vídeo (VDP) Texas Instruments TMS9918A, un generador de sonido (PSG) General Instrument AY-3-8910 o Yamaha YM2149 y un interfaz de periféricos (PPI) Intel 8255. En ocasiones, montaban el chip MSX-Engine que integraba a algunos de los anteriores además de la lógica de direccionamiento y control de la DRAM y periféricos. En cuanto a ROM, solía constar de 32 KB e incluía la BIOS y el MSX BASIC 1.0.

Entorno e instalación del emulador

Elementos

Vamos a necesitar los siguientes elementos:

  • Adafruit Fruit Jam.
  • Tarjeta microSD con formato FAT32.
  • Monitor con entrada HDMI.
  • Teclado con conector USB.

Emulador

Nos basaremos en la versión para RP2350 (Pico2) de Adafruit de MCUME de Jean-Marc Harvengt. Vamos a actualizar el código fuente para que arranque adecuadamente.

Los cambios realizados sobre la versión de Adafruit implica a estos archivos:

  • tusb_config.h:
    • Configuración de TinyUSB para modo host con PIO USB.
  • picomsx.cpp:
    • Configuración condicional de reloj del sistema según PIO USB esté activo.
  • hid_app.c:
    • Mejoras en la gestión de teclado.
  • emuapi.cpp:
    • Inicialización del host USB PIO (GPIO y TinyUSB).
    • Configuración de VBUS (GPIO11).
    • Auto-boot a BASIC cuando no hay archivos en la microSD.
    • Lectura de configuración de layout desde kbd.cfg.
    • Puente entre USB HID y emulador.
  • fmsx.c:
    • Gestión de estados del teclado.
    • Corrección de símbolos.
  • platform_config.h:
    • Habilitado HAS_USBHOST y HAS_USBPIO.

Instalación

Se puede descargar de GitHub directamente el binario en formato UF2.

$ wget https://github.com/RafaGS/Pico2MSX/releases/download/0.1/picomsx.uf2

Lo siguiente es conectar la Fruit Jam vía USB-C al PC con el botón [Button#1] pulsado, luego pulsaremos y soltaremos el botón [Reset] para finalmente liberar el primer botón. Copiaremos el archivo antes descargado a la partición recién detectada (RP2350).

Opcionalmente, podemos introducir una tarjeta microSD con un directorio msx donde pondremos nuestro software para MSX.

Emulación

Una vez terminada la copia, alimentamos la Fruit Jam vía USB-C y le conectamos el teclado al puerto USB disponible. El monitor, al HDMI. En unos segundos nos aparecerá la pantalla clásica de MSX.

Por fin podemos probar su BASIC.

#1983 #AdafruitFruitJam #MSX #OrdenadoresDomésticos #RP2350 #SistemaMSX #ZilogZ80A