Installing CP/M 2.2 with SCM

Below are detailed instructions on how to install CP/M 2.2 on a CompactFlash card using the Small Computer Monitor (SCM).

Once CP/M is installed, programs and files can be copied to the CompactFlash using Grant Searle’s DOWNLOAD.COM utility.

This method involves using SCM Apps, as described in detail here:
Detailed instructions for loading SCM Apps

Once you have CP/M installed you will probably want some classic CP/M software from the CP/M software library.

It is also worth reading this information about CompactFlash reliability.


First, you need to download the Apps to match your hardware.

There are sets of Apps for a number of popular combinations of hardware. It is important to use a set that matches your hardware. The tables below should help you identify the appropriate version.

Sets of Apps to download:
CPM-A CPM-B CPM-C CPM-D CPM-E CPM-F CPM-G CPM-H

Z50Bus compatible systems

The newer range of Z50Bus compatible designs (the SC500 series) is supported by the following CP/M Apps:

CP/M AppsHardware requirements
CPM-EZ80 CPU running at 7.3728 MHz
ROM/RAM paging at port 0x38 bit 0
A 9600 baud bit-bang serial port at 0x20 + 0x28
CompactFlash card at 0x90
SCM F1 v1.2.1 (2022-02-16) or later
CPM-FZ80 CPU (typical clock speed 7.3728 MHz)
ROM/RAM paging at port 0x38 bit 0
Z80 SIO at 0x80 + CTC at 0x88 (at 1.8432 MHz)
Z80 SIO at 0x80 with 7.3728 MHz clock
CompactFlash card at 0x90
SCM F2 v1.3 (2022-02-27) or later
CPM-GZ80 CPU (typical clock speed 7.3728 MHz)
ROM/RAM paging at port 0x38 bit 0
68B50 ACIA at 0xA2 with 7.3728 MHz clock
CompactFlash card at 0x90
SCM F2 v1.3 (2022-02-27) or later
CPM-HZ180 CPU running at 18.432 MHz
CompactFlash card at 0x90
SCM F3 v1.3 (2022-02-27) or later

Examples of compatible hardware:

Processor
(CPU+Memory)
Serial
Port(s)
CompactFlash
Interface
CP/M Apps
SC516SC516SC504 @ 0x90CPM-E
(Z80+BB9600)
SC516SC511 @ 0x80
SC521 @ 0x80
SC504 @ 0x90CPM-F
(Z80+SIO)
SC516SC520 @ 0xA2SC504 @ 0x90CPM-G
(Z80+ACIA)
SC518+SC519SC511 @ 0x80
SC521 @ 0x80
SC504 @ 0x90CPM-F
(Z80+SIO)
SC518+SC519SC520 @ 0xA2SC504 @ 0x90CPM-G
(Z80+ACIA)
SC503SC503SC504 at 0x90CPM-H
(Z180+ASCI)

The older range of Z50Bus compatible designs (the SC100 series) is supported by the following CP/M Apps:

CP/M AppsHardware requirements
CPM-AZ80 CPU running at 7.3728 MHz
ROM/RAM paging at port 0x38 bit 0
A 9600 baud bit-bang serial port at 0x20 + 0x28
CompactFlash card at 0x10
SCM F1 v1.2 (2020-05-27) or earlier
CPM-BZ80 CPU (typical clock speed 7.3728 MHz)
ROM/RAM paging at port 0x38 bit 0
Z80 SIO at 0x80 + CTC at 0x88 (at 7.3728 MHz)
CompactFlash card at 0x10
SCM F1 v1.2 (2020-05-27) or earlier
CPM-HZ180 CPU running at 18.432 MHz
CompactFlash card at 0x90
SCM F3 v1.3 (2022-02-27) or later

Examples of compatible hardware:

Processor
(CPU+Memory)
Serial
Port(s)
CompactFlash
Interface
CP/M Apps
SC118SC118SC117 @ 0x10CPM-A
(Z80+BB9600)
SC118SC125 @ 0x80SC117 @ 0x10CPM-B
(Z80+SIO)
SC140SC140SC117 @ 0x90CPM-H
(Z180+ASCI)

The older range can be updated to be compatible with the SC500 series CP/M Apps by replacing the SCM ROM with v1.3 or later, and changing the CompactFlash address from 0x10 to 0x90.

RC2014 bus compatible systems

The SC100 series of RC2014 bus compatible designs, along with standard RC2014 systems, is supported by the following CP/M Apps:

CP/M AppsHardware requirements
CPM-AZ80 CPU running at 7.3728 MHz
ROM/RAM paging at port 0x38 bit 0
A 9600 baud bit-bang serial port at 0x20 + 0x28
CompactFlash card at 0x10
SCM S2 v1.0 (2018-04-30) or later
CPM-BZ80 CPU (typical clock speed 7.3728 MHz)
ROM/RAM paging at port 0x38 bit 0
Z80 SIO at 0x80 + CTC at 0x88 (at 7.3728 MHz)
Z80 SIO at 0x80 with 7.3728 MHz clock
CompactFlash card at 0x10
SCM S2 v1.0 (2018-04-30) or later, or
SCM S3 v1.0 (2018-04-30) or later
CPM-CZ80 CPU (typical clock speed 7.3728 MHz)
ROM/RAM paging at port 0x38 bit 0
68B50 ACIA at 0x80 with 7.3728 MHz clock
CompactFlash card at 0x10
SCM S2 v1.0 (2018-04-30) or later, or
SCM S3 v1.0 (2018-04-30) or later
CPM-DZ180 CPU running at 18.432 MHz
CompactFlash card at 0x10
SCM S5 v1.0.2 (2019-06-02) or later, or
SCM S6 v1.1 (2019-07-15) or later

Examples of compatible hardware:

Processor
(CPU+Memory)
Serial
Port(s)
CompactFlash
Interface
CP/M Apps
RC2014 Mini+
Z80 CPU
RC2014 Mini+
(68B50 ACIA)
RC2014 Mini+
CompactFlash
CPM-C
NOT TESTED
RC2014 Pro
Z80 CPU
RC2014 Pro
(Dual serial)
RC2014 Pro
CompactFlash
CPM-B
(Z80+SIO)
RC2014 ZED
Z80 CPU
RC2014 ZED
(Dual serial)
RC2014 ZED
CompactFlash
Not
available
SC108SC104 @ 0x80
SC104+SC102
SC110
SC132 @ 0x80
SC145CPM-B
(Z80+SIO)
SC108SC139 @ 0x80SC145CPM-C
(Z80+ACIA)
SC111+SC119SC111SC145CPM-D
(Z180)
SC114SC114SC145CPM-A
(Z80+BB9600)
SC114SC104 @ 0x80
SC104+SC102
SC110
SC132 @ 0x80
SC145CPM-B
(Z80+SIO)
SC114SC139 @ 0x80SC145CPM-C
(Z80+ACIA)
SC126SC126SC145CPM-D
(Z180)
SC203SC111SC145CPM-D
(Z180)
SC204SC114SC145CPM-A
(Z80+BB9600)
SC706+SC707SC716 @ 0x80SC715CPM-B
(Z80+SIO)
SC706+SC707SC705 @ 0x80SC715CPM-C
(Z80+ACIA)
SC708SC708SC715CPM-A
(Z80+BB9600)
SC706+SC714SC716 @ 0x80SC715CPM-B
(Z80+SIO)
SC720SC720SC720CPM-B
(Z80+SIO)

The following steps use an SC204 system as an example. SC204 is a minimal CP/M system, formed from an SC114 Z80 SBC/motherboard plus an SC145 CompactFlash interface module. SC114 includes a very basic 9600 baud serial port which we use for all communications to a Windows 10 PC running Tera Term v4.96. You will need the CPM-A set of Apps or an equivalent set for your hardware.

SC204 – Minimal CP/M 2.2 system using SC114 and SC145

Tera Term is set to :
9600 baud, 8 data bits, 1 stop bit, no parity, and hardware (RTS/CTS) flow control.
Most systems use 115200 baud.

When the system running SCM is reset, the terminal should look something like this:

Small Computer Monitor following reset

The first thing we need to do is format the CompactFlash card. This will erase any files on the card. Note that this format is not the same as used by RomWBW or by a modern computer.

Select “Send File” from Tera Term’s File menu and locate the appropriate Compact Flash Format App. In this case:
CPM-A_SCM_CF_Format_code8000.hex

If all goes well the display should show “Ready”. You shouldn’t see the contents of the file being displayed in the terminal window. If you do it means SCM has not detected the start of the file.

After the SCM CFFormat App has been “Sent” from Tera Term

The program is now in memory and is executed with the SCM command “g 8000”. This means GO to location 8000 hex.

After executing the SCM CFFormat App

The next step is to install the CP/M 2.2 operating system onto the CompactFlash card. To do this, ‘send’ the appropriate PutSysPlus App. In this case, the file is:
CPM-A_SCM_PutSysPlus_128MB_code8000.hex

After the SCM PutSysPlus App has been “Sent” from Tera Term

Again, execute the App with the SCM command “g 8000”

After executing the SCM PutSysPlus App

CP/M can now be started with the SCM command “CPM”

WARNING: Some systems will require you to press the reset button before CP/M is started with the SCM command “CPM”

After starting CP/M and issuing the CP/M DIR command

CP/M is now installed but there are no files on the CompactFlash card.

The method described here to copy files to the CompactFlash card is Grant Searle’s DOWNLOAD.COM program.

Reset the SCM system to return to the SCM prompt.

Now send the SCM_Install_Download App. Execute the App with the SCM command “g 8000” and follow the on-screen instructions.

After installing DOWNLOAD.COM and issuing the DIR command

The system is now ready to accept files packed with Grant’s FilePackage program for Windows.

Now send pre-packaged programs to the CP/M system in the same way SCM Apps were sent.

In this example, the MBASIC.COM package file (pkgMBASIC.txt) is sent.

After the MBASIC package has been sent to CP/M

Now a quick test of MBASIC.

WARNING: It is important to select SCM Apps that are compatible with your hardware. There are many different systems available and this means some programs need to be versioned for each.

Homebrew 8-bit retro computing