THE HISTORY
THE PROBLEM
Back in 2014 I was restoring a copy of a long lost CP/M programming language called Z80 Micromumps, developed by the UC Davis team led by Prof. Emeritus Richard Walters.
During this process I was fixing some of the Z80 code on a Windows computer and then using a CP/M emulator which implemented disk images for testing.
Running the modified code was a clumsy process, as it required me to copy the compiled program onto a disk image, reboot the CP/M emulator and then try again. This was not very practical or productive.
THE IDEA
To be more productive on my restoration, I then decided to create a method to execute a Z80 CP/M application directly from Windows command line, from inside a regular folder, without the need of a disk image,
This basically meant I would be writing a Z80 "interpreter", capable of serving the Z80 Micromumps with the files it needed to execute.
This became the very first version of RunCPM, which, at that time was a simple command line application that received the requested CPM application as a command line parameter.
THE SOLUTION
The need for accessing multiple files, disk drives and also for running other CP/M applications led to the development of a Z80 "Virtual Machine" running CP/M 2.2. Now using the original CP/M 2.2 BDOS code, to maintain full compatibility with the original operating system from Digital Research.
That's when RunCPM became modular and portable to different platforms, with the help of many testers which came up with great ideas.
This is also when Krzysztof Klis added the Arduino compatibility module, which basically enabled the creation of an "IoT" capable version of RunCPM.
THE TECHNOLOGY
01 / FAST
RunCPM brings the joy of running vintage Z80 applications to modern computers and single boards, like the ARM based Arduino compatible devices.
It does this by implementing a fully optimized Z80 CPU emulation core.
The emulated operating system is the famous Z80 CP/M v2.2 created by Gary Kildall at Digital Research.
02 / USEFUL
CP/M programs can access the analog and digital components of the Arduino compatible boards by using extended BDOS calls.
This allows the development of Arduino programs on well known programming languages, like Turbo Pascal, mBasic, C, Modula2 and even dBaseII.
RunCPM for windows and linux also has the Lua scripting language fully integrated onto the CP/M operating system.
03 / EASY
The installation of RunCPM is a simple process and it doesn't require any clumsy binary disk images. The files are kept on the host OS filesystem and the CP/M disk is fully simulated for the Z80 applications.
The video terminal is also ANSI (vt100) compatible, which is the default for the Windows command prompt and most terminal applications like Windows Putty and MacOS Zterm.
This brings together compatibility and convenience.
COMPATIBLE
RunCPM is compatible with many host devices and operating systems.
Teensy
and more to come...
DOWNLOAD
All of RunCPM source code and instructions on how to build it are available from its GitHub page.
From there you can also obtain an initial CP/M "master disk" to start using it.
CP/M applications like Wordstar or dBaseII can be easily found all around the internet. Every CP/M v2.2 application that doesn't do physical disk acces should work fine running on RunCPM.