Retro gaming has a large following in the hobbyist community. One of the most well-known examples is the RetroPie emulator through the Raspberry Pi. In addition to gaming, retro computing is also popular among makers. For those old enough it provides a bit of nostalgia. For the younger of us, it gives us a chance to experience what computing was like in the early days and an opportunity to learn about the history of computers.
Retro computing can come in many forms. Exact replicas of older systems are made, older systems are restored and rebuilt, and newer hardware is used to emulate the older systems. One of the more recent examples of this is a Z80 CP/M emulator running on Adafruit’s new Grand Central board.
The Adafruit Grand Central board looks similar to an Arduino Mega by design, however its brain power comes from a SAM D51 MCU, meaning it has a whole lot of processing power. This is used along with the SD card slot it has to run the Z80 emulator. To be clear, the Z80 is an 8-bit CPU from the seventies and eighties. It found its way into many successful products including the first Sinclair home computers, the ZX80 and Spectrum. It even was part of the original Nintendo Gameboy handheld consoles.
On the other hand, CP/M is the text-based OS that allows one to command the system. This can include things such as reading/writing files and executing programs. CP/M stands for Control Program/Monitor and in its later days Control Program for Microcomputers.
Getting the emulator to run on the Grand Central board required minor changes to the original RunCPM code that can be found on GitHub. Created by “MockbaTheBorg,” RunCPM is capable of operating on select Arduino devices and variants as well as Windows, Mac, and Linux.
However, thanks to Dave Astels, the official RunCPM repo now contains a Grand Central version of the code. The SD card must first be setup properly to support the RunCPM and then the code can be built for the Grand Central board. An explanation of the changes needed to get the code working along with a detailed guide can all be found on the Adafruit website. An example is also given explaining how to access the dev board’s pins through the CP/M assembly language. Once these steps are complete the door is now open to exploring part of the history of computing.
Learning about the history of computing is not only fun, it can be pretty interesting as well. The story of the fall of CP/M and the Rise of MS-DOS is an intriguing one in itself surrounded by its own speculation and urban legend, much too long to tell here. However, the legacy of CP/M still lives on through specific features of Microsoft. One of those examples is the labeling of hard drives and the familiar C:\> that appears at the beginning of the command prompt.