top of page

Run vintage Z80 CP/M 2.2 code on modern platforms

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.

History

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.

devenv_2018-11-08_11-33-10.png
zilog.png
Technology

COMPATIBLE

RunCPM is compatible with many host devices and operating systems.

windows.png
arduino.png
stm32.png
macos.png

Teensy

linux.png
esp32.png

and more to come...

Compatible

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.

Download
bottom of page