Emulador de Cromemco Z-2 con Teensy 4.1
En este artículo vamos a emular el Cromenco Z-2 sobre una Teensy 4.1.
Sobre Cromenco Z-2
Entre los años 1977 y 1978, Cromenco lanza la serie Z-2, orientada a empresas y laboratorios. Esta consta de un diseño mucho más robusto y sencillo, sin panel de LED y switches, incluyendo de serie unidades de disco flexible, para la Z-2D, o disco duro para la Z-2H.
Su arquitectura hardware se basa en un conjunto de placas interconectadas mediante un bus S-100. Así, la placa de CPU monta un Zilog Z80A seleccionable entre 2 y 4 MHz, entre 16 y 64 KB de RAM. Utilizaba una ROM del propio fabricante denominada RDOS y solía apoyarse en el sistema operativo CDOS de Cromenco, aunque también admitía CP/M.
Emulador
Utilizaremos como base el emulador de Cromemco integrado en Z80pack.
Cambios en nuestro emulador
Se realizan cambios en el código original incluyendo:
- Se excluye el core 8080.
- Arranque con ROM RDOS.
- Añadidos comandos locales para carga de imágenes de disco desde microSD.
Entorno e instalación del emulador
Elementos
Vamos a necesitar los siguientes elementos:
- Placa Teensy 4.1.
- Tarjeta microSD con formato FAT32.
Instalación
Nos basta con descargar el código fuente de GitHub.
$ git clone https://github.com/RafaGS/cromemco4Teensy.git Editamos el archivo platform.io y descomentamos el flag CROMEMCO_BOOT_DEFAULT con el valor Z2.
build_flags = -DCORE_DEBUG_LEVEL=0 -DUSB_SERIAL -DEXCLUDE_I8080 -I./src -I./z80core -DCROMEMCO_SERIAL_WAIT_MS=4000 ; Auto-boot profile (optional). Leave undefined to show menu. ; -DCROMEMCO_BOOT_DEFAULT=Z1 -DCROMEMCO_BOOT_DEFAULT=Z2 ; -DCROMEMCO_BOOT_DEFAULT=ST ; Optional tuning: ; -DCROMEMCO_MENU_TIMEOUT_MS=2000 ; -DCROMEMCO_SERIAL_WAIT_MS=300Construimos los binarios y los subimos a la placa.
Preparación de la microSD
Prepararemos una microSD en formato FAT32 donde creamos un directorio cromemco y ahí pondremos los archivos DSK.
Emulación
Una vez realizada la subida, y conectada la microSD a la Teensy, nos conectamos vía serie. Aparecerá información sobre el emulador. Pulsaremos una tecla para comenzar la emulación.
Aparecerá la versión del monitor ROM de Z-2.
CROMEMCO RDOS1Dispondremos de un prompt en forma de punto y coma.
Monitor
El monitor para estos modelos es el RDOS.
En el monitor podemos realizar operaciones sencillas como realizar un volcado de memoria con D M.
;D M 0 10 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 000010: 00
Se han añadido dos funciones que son carga de imagen de disco a unidad (:L) y estado de las unidades (:Z).
CDOS
CDOS es el sistema operativo propio de Cromemco, que viene a ser una customización muy fuerte de CP/M. Lo cargaremos en el disco A con :L.
;:L A cdos258_8.dsk Luego, realizamos boot del disco.
;B Inmediatamente aparecerá el banner de inicio de este sistema operativo.
Podremos introducir comandos típicos, como dir.
El comando stat nos da información acerca de nuestro sistema.
Hay un BASIC, que podremos ejecutar.
Y escribir un nuevo «hola mundo».
CP/M
Si, por opciones de compatibilidad, necesitamos CP/M, podemos cargarlo desde RDOS con :L.
;:L A cpm22.dsk Con :Z comprobamos el estado de nuestros discos.
;:Z A: cromemco/cpm22.dsk boot:yesB: <sin imagen> boot:no
C: <sin imagen> boot:no
D: <sin imagen> boot:no
Unidad activa: A
Realizamos el boot y entramos en CP/M.
;B Podremos probar los comandos de este sistema operativo, como dir.
O stat.
Nótese que, para este último caso, da mucha menos información.
#1977 #Cromemco #PJRCTeensy41 #ZilogZ80A












