Emulador de IMSAI 8080 con Teensy 4.1

En este artículo vamos a emular sobre una Teensy 4.1 el IMSAI 8080, protagonista indiscutible de la historia de la informática.

Sobre IMSAI 8080

El éxito del Altair 8800 llevó a los ingenieros de IMSAI a desarrollar una versión mejorada, lo que supondría el primer clon de la historia de la informática. Esta máquina en particular consiguió el estatus de icónica al ser protagonista de la película de primeros de los 80 «Juegos de Guerra».

A nivel de arquitectura, mantenía el procesador Intel 8080 a 2 MHz, 4 KB de RAM y el bus S-100, aunque se integraba en una carcasa de aluminio más robusta, una fuente de alimentación más potente y una placa madre con 22 ranuras de expansión.

Emulador

Utilizaremos como base el emulador de IMSAI 8080 integrado en Z80pack.

Cambios en nuestro emulador

Se realizan cambios en el código original incluyendo:

  • Se deshabilita el panel LED y switches.
  • No se emula la APU.
  • Se conservan los archivos estrictamente necesarios para ejecutar el emulador.
  • El módulo imsai-hal.c se reimplementa para Teensy como imsai_hal_teensy.cpp.
  • Siempre usa la ROM MPU-A.
  • Se añaden comandos locales para la carga de archivos de disco DSK:
    • L X file.dsk: monta archivo imagen de disco file.dsk desde microSD en unidad X (A–D)
    • B: arranca unidad A
    • B X: arranca unidad X.
    • S: muestra estado de las cuatro unidades: archivos cargados y si permite boot.
    • [Ctrl][R]: reinicio software.
  • Se mantiene embebida imagen de IMDOS 2.02 como opción de arranque sin 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/imsai4Teensy.git

Construimos los binarios y los subimos a la placa.

Preparación de la microSD

Prepararemos una microSD en formato FAT32 donde creamos un directorio imsai 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 la barra espaciadora para comenzar la emulación.

Aparecerá la versión del monitor ROM de IMSAI.

IMSAI IEEE MONITOR VERS 1.0

Dispondremos de un prompt en forma de interrogante.

CP/M 2.2

Comenzaremos por CP/M, por lo que indicaremos con L que cargue el disco correspondiente.

?L A cpm22.dsk

A lo que el sistema nos dará una confirmación.

[LOADED A: cpm22.dsk]

Con la instrucción B, arrancaremos el sistema operativo.

Comenzaremos por CP/M, por lo que indicaremos con L que cargue el disco correspondiente.

?L A cpm22.dsk

A lo que el sistema nos dará una confirmación.

[LOADED A: cpm22.dsk]

Con la instrucción B, arrancaremos el sistema operativo.

Una vez que aparece el prompt de CP/M, podemos realizar tareas típicas en este sistema.

Podemos volver al monitor en cualquier momento mediante la pulsación de [Crtl][R].

IMDOS

IMDOS es la particularización de CP/M para IMSAI. Vamos a cargarlo mediante la orden L.

?L A imdos202.dsk

A lo que el sistema nos dará una confirmación.

[LOADED A: imdos202.dsk]

Asimismo, agregaremos en la unidad B el disco de BASIC.

?L B xybasic.dsk

Con la instrucción B, arrancaremos el sistema operativo.

Desde el prompt, podremos realizar tareas típicas.

Podemos, por ejemplo, ejecutar BASIC. Para ello, iremos a la unidad B y ejecutaremos XYCPMBCB.

A>B: B>XYCPMBCB

Se ejecutará el BASIC, pidiéndonos la típica información de ancho de pantalla y memoria.

Finalmente, podremos escribir un nuevo «Hola mundo».

#1975 #IMSAI #Intel8080 #PJRCTeensy41

me and the #intel8080 - I type M, but my head calls it HL ... I type MOV or MVI, but my head calls it LD ...

#z80
#assembler

My latest review of the Altair 8800 mini can also be found here on my blog:

https://ufud.org/posts/2025-12-27-return-of-the-8bit-bell-bottoms/

#Altair8800mini
#Review
#RetroComputing
#Intel8080

Return of the 8bit Bell Bottoms

@rc2014 I do hope that the server running on port 8080 only uses #Intel8080 instructions
@mattgodbolt `XOR EAX, EAX` is the descendant of `XRA A` on the #Intel8080 (aka `XOR A` on the #Z80). On those machines saving a single byte vs the two bytes of `MOV A, 0` *really* mattered, both in terms of not wasting any of your precious few kilobytes of memory but also avoiding the time taken for an extra fetch from memory. You could tell an experienced machine coder by whether they used this optimisation, which is now over 50 years old!
MMD-1 Restoration - Part 1: bringing up the cutest Intel 8080 microcomputer trainer

YouTube

Space Invaders: Tempo-Änderung im Spiel durch zufälligen Prozessor-Effekt
Viele von euch kennen den berühmten Tempowechsel im Space Invaders Arcade-Spiel. Doch nur wenige wissen, dass nicht geniale Programmierung, sondern ein Hardware-Zufall dahintersteckt.

Wie das Intel 8080 Bottlen
https://www.apfeltalk.de/magazin/news/space-invaders-tempo-aenderung-im-spiel-durch-zufaelligen-prozessor-effekt/
#News #Tellerrand #Arcade #Emulatoren #Hardware #Intel8080 #SpaceInvaders #Videospiele

Space Invaders: Tempo-Änderung im Spiel durch zufälligen Prozessor-Effekt

Ein Hardware-Fehler beim Intel 8080 sorgte zufällig für den berühmten Tempozuwachs im Spiel Space Invaders. Was steckt technisch dahinter?

Apfeltalk Magazin
I've heard it said the #mailstation firmware was produced by an 8080 compiler that was unaware of #z80 extensions, so I checked an #intel8080 instruction table and nope, even the 8080 could INC (HL)! So chalk up some more bytes and cycles for a less-than-brilliant compiler.

I put together most of my retrocomputing bookshelf while learning Intel 8080 and CP/M programming, which reflects in the selection of titles. For more great photos of retrocomputing bookshelfs see:

https://retrocomputingforum.com/t/shelfies-bookshelves-with-a-retrocomputing-angle/190

#retrocomputing #shelfie #books #cpm #intel8080 #pascal

IMSAI 8080 - You know that computer from War Games

https://makertube.net/w/wPFE51rS1KmpaV2GmvH9HD

IMSAI 8080 - You know that computer from War Games

PeerTube