CP/M is a disk operation system, developed late 1970s by Digital Research, and was the first system to be portable accross many systems sharing the Intel i8080 or Zilog z80 CPUs. Only the BIOS had to be modified, and the system enabled intercompatability between computers, giving the computers access to thousands of software titles. CP/M did influence the development of other systems, like MSDOS and UNIX/Linux.

To run CP/M on RC2014 you need the minimum components; CPU, Clock, 64kb RAM, ROM, Serial and a Storage module.

There are two main roads running CP/M on the RC systems.

1) Using a boot loader, loading and running CP/M from a storage device like a compact flash or a hardisk drive module.
There are two main options here; the first is provided by Spencer Owen (RFC2795 Ltd, Semachthemonkey) but written by Grant Seattle (www.rc2014.co.uk), and the second is the Small Computer Monitor (SCMon) by Stephen Cousins (www.scc.me.uk). Of these SCMon is probably the best one. SCMon is a very flexible monitor program and boot loader. It also supports many different systems, and it also has its own development system; The Small Computer Workshop. The system can start up different software witout the need of switching ROM banks. The project is well documented.

2) Using a ROM based CP/M system like ROMWBW developed by Wayne Warthen (https://github.com/wwarthen/RomWBW).
The ROMWBW system is very good, it is continously beeing updated, it supports a range of CPUs, modules and systems. It is also possible to participate in developing and adapting the codebase. The ROMWBW, although flexible, is a selfcontained system with CP/M, providing ROM and RAM disk, making it very robust. The project is well documented.

Using CP/M

Here comes a short overview of some commands in CP/M 2.2 which is the most widely adopted version.
Some commands are built into the system while others are executable on the disk.

Builtin Commands

X: (drive)
Swap to drive X, where X can be any letter from A to P followed by a colon. The drive letter X needs to be a valid drive.
e.g. >C: swap to drive C:

DIR (directory)
Shows the content of a drive.
usage: DIR (drive:)(filematch)
DIR —> shows the content of the active/current drive
DIR D: —> shows the files on drive D:
DIR C:*.COM —> shows the files on drive C: with COM extension

ERA (erase)
Erase one or more files.
usage ERA (drive:)(filematch)
ERA TEST.TXT —> erases the TEST.TXT file

REN (rename)
Rename a file.
usage: REN (drive:)(newname.typ)=(drive:)(oldname.typ)

Show the content of a file on screen. The file should be a text file or else garbage are shown.
usage: TYPE (drive:)(filename.typ)
TYPE D:ASSAY.TXT —> shows the content of the text file ASSAY.TXT

Save blocks (256 bytes) of memory starting at address &h0100 to file.
usage: SAVE n FILENAME.TYP, where n is a number from 1 to 255 followed by a file name to be saved to.
SAVE 2 DOWNLOAD.COM —> saves 2 blocks (256 bytes) of transient memory the file DOWNLOAD.COM.

Switch between user 0 (default) to user 15 (16 users).
usage: USER n
USER 3 —> switch to user 3.

Other Commands are present as seprate executable files on the drive(s).