There are several good software emulators that allow you to run CP/M on modern systems.
These are the ones I worked with for this presentation. They all can be run under Linux, Windows, and MacOS. With the exception of CPMemu which only supports Linux.
Z80Pack
z80pack is a Zilog Z80 and Intel 8080 cross development package for UNIX and Windows systems distributed with all sources under a BSD style license. The CPU emulations are generic and can be used to emulate any Z80 or 8080 based system, the I/O hardware abstraction is well isolated. Originally the software was written for emulation of proprietary Z80 controllers, to support development and testing.
This virtual computer system has then been used to r21546ebuild CP/M 1, CP/M 2, CP/M 3 and MP/M 2 completely from the sources. Also example implementations of CP/NET have been build, to network the virtual systems with this very early implementation of RPC (remote procedure calls). Additional disk images with all sources, tools and build scripts are available for download.

RunCPM
RunCPM is an application that can execute vintage CP/M 8-bit programs on many modern platforms, such as Windows, Mac OS X, Linux, FreeBSD, Arduino DUE, and variants like the Teensy or ESP32. It can be built both on 32 and 64 bits host environments and should be easily portable to other platforms.
RunCPM is fully written in C in a modular way, so porting to other platforms should only require writing an abstraction layer file for it. No modification to the main code modules should be necessary.
SIMH
SIMH is a multi-system emulator focused on preserving historic computer systems by simulating their hardware and software. It's a framework and collection of simulators, originally developed by Bob Supnik, that allows users to run software from a variety of old or historical computers on modern systems.
You will need to provide your own disk images to use in the simulation.
CPMemu
CPMemu is a CP/M 2.2 emulator running on the Raspberry Pi and on other Linux systems. On the raspberry Pi. CPMemu can be used as a bare metal solution based on the Circle environment.
Currently CPMemu does not implement a specific set of terminal control sequences. Instead it sends all characters unchanged to the console.
The installation instructions step you through creating a compatible disk image for use with the emulator.
Comments