https://create.arduino.cc/projecthub/da ... tor-3594a6
Usando un Arduino Mega o Due (mejor este último), es fácil montarse un Altair 8800 con todas estas características:
Highlights
Accurately reproduces the behavior of the Altair's front panel elements.
Runs at about the same speed as the original Altair 8800 (when using Arduino Due) or 25% original speed when using Arduino Mega.
Emulated RAM size is 64KB (Due) or 6K (Mega)
A number of Altair programs are included and can easily be loaded into the emulator, including Pong, Altair 4K BASIC (the first Microsoft product), Altair extended BASIC, MITS Programming System II (Due only), Altair Time Sharing BASIC (allows multiple users to use BASIC at the same time).
BASIC and Assembler example programs are included in the emulator software and can easily be loaded into BASIC/Assembler.
Emulates one 88-SIO, 88-2SIO and 88-ACR (audio cassette recorder interface) board. Each simulated serial device can be mapped to an Arduino's serial interface. By default, the two most common (88-SIO and 88-2SIO port 1) are mapped to the Arduino's main serial port at 115200 baud 8n1, which can be accessed via the USB cable. I recommend connecting a serial-to-Bluetooth dongle to the RX/TX serial pins. That way any bluetooth-enabled device can serve as a terminal for the Altair.
On the Arduino Due, both the main serial interface (USB) and the Serial1 interface (pins 18/19) can be used simultaneously.
Data sent to each serial device (including the ACR tape) can be captured and replayed in up to 256 files which are kept in the Arduino's local storage (EEPROM or FLASH).
The cassette interface supports using the CSAVE/CLOAD commands in extended BASIC (support is automatic with no user interaction required). Great for developing your own BASIC programs!
Emulates up to 16 88-DCDD disk drives (4 in default configuration). Disk drive emulation is optional but requires hooking a SD card up to the Arduino's SPI header. Only supported when using Arduino Due.
Emulates a 88-RTC-VI board with real-time clock and vector interrupt handling. This makes it possible to run Altair Time Sharing Basic.
256-byte pages of memory can be saved to permanent storage and loaded back to memory. This provides a simple way of saving programs entered via the front panel switches.
Many settings can be easily changed via the integrated configuration editor.
Vamos, diversión para rato.
Si usamos el Arduino Due y nos montamos una caja currada, tendríamos un clon 100% operativo de este mítico aparato, ampliado a tope e incluso con unidades de disco virtuales. Supongo que dadas esas características no habría problema en correr CP/M en semejante montaje.
Fijaos si la simulación es buena a nivel hardware, que hasta provoca las mismas interferencias de radiofrecuencia que el Altair original, pudiendo hacer cosas como cargar un programa musical (¿os acordáis de la famosa canción "Daisy" de la peli 2001?) y escuchar la melodía al poner una radio en AM cerca del aparato.
Y lo mejor, que los componentes son bastante asequibles
EDITO:
CP/M is on one of the disks provided in the "disks" subdirectory in the repository (along with Altair DOS, Altair Disk Basic, Altair Time Sharing Basic and a few disks containing CP/M and BASIC examples). See the "Disk Drive Support" section of the manual about how to use virtual disks.
Pues eso, funciona el CP/M.