From CPCWiki - THE Amstrad CPC encyclopedia!
Jump to: navigation, search

CP/M is an operating system running on different computers with Intel 8080 and compatible CPUs. It was the most popular operating system for micro computers, before the 16 bit age started successfully with the IBM PC and MS-DOS. Most computer systems running CP/M were based on a Z80 CPU.

It was developed by Gary Kildall of Digital Research, Inc. as a private project from 1974 on, named Control Program/Monitor. When it became commercial software in November 1977 it was renamed to Control Program for Microcomputers.

CP/M is in three parts. The console command processor (CCP) which handles your input from the "A>" prompt. The basic disk operating system (BDOS) and the basic input/output system (BIOS).

The CCP and BDOS are machine independent and are made by Digital Research. The BIOS is implemented by the vendor (e.g. Amstrad).

There are other CP/M compatible systems or systems that replace part of CPM to fix bugs and enhance it:

Extracting CP/M archives under Windows/Linux

Most of these do not have windows 64-bit executables and need building from source.

Amstrad CPC and CP/M

CP/M was shipped with the disk models of the Amstrad CPC and the DDI-1 disc drive. See System_Disk.

Other versions of CP/M were also available:

  • Vortex also shipped their CP/M with their disc drives and their hard disk. This utilised their memory expansion and supported their disc format (which was widely used)
  • Dobbertin shipped CP/M to be used with their hard disk.
  • Graduate Software provided a version of CP/M+ on ROM.

Various utilities also patched CP/M to use extended disc formats and to support Amstrad peripherals which included:

CP/M versions relating to the Amstrad CPC


MicroDOS (Microcomputer Disc Operating System) is a CP/M clone made in East Germany (GDR) for computers of the brand Kleincomputer (KC). It was available for the KC Compact. Unfortunately it is not 100% compatible with CP/M.

MicroDOS implementation for KC Compact

MicroDOS disc format is 1024 bytes per sector (N=3), Sector IDs 1-5. Double sided (Head ids are 0 or 1).

The following are requirements:

  • KC Compact disc interface (which has the BASDOS ROM, 64KB RAM and disc interface) (a CPC6128 should be able to run MicroDOS with an appropiate boot program)
  • MicroDOS formatted disc with boot sector.

The boot sequence on KC Compact is:

  • |CPM from BASIC
  • An ID is read from drive 0, track 0, side 0. Both C and N from the result phase of the ID command are checked. N must be 3 and not have a CPC id (41/c1 etc)
  • If ID is not MicroDOS then follow normal AMSDOS CP/M boot procedure (therefore allowing boot into Amstrad's CP/M on system format discs)
  • If ID is MicroDOS then boot MicroDOS.

MicroDOS boot:

  • read drive 0, track 0, side 0, sector 1-5 to &3F80 in RAM.
  • read drive 0, track 0, side 1, sector 1-5 to &5380 in RAM.
  • read drive 0, track 1, side 0, sector 1-5 to &6780 in RAM.
  • read drive 0, track 1, side 1, sector 1 to &7B80 in RAM.
  • check if &3f80 starts with <0> "DOS". i.e. 0 byte followed by DOS text
  • execute &4000.

Therefore you require a MicroDOS specifically for the KC Compact (i.e. a MicroDOS for KC85/4 or other KC computers will not work because the hardware is different) because the code on the disc initialises the hardware and configures the environment for MicroDOS specific to the computer booting it.



These four introduction videos show the basic usage and programming environment of CP/M on a modern Altair 8800 simulator connected to a terminal emulator ("Vince Briel PockeTerm") via serial port. (These videos are made by the person who sells these Altair simulators, so you can ignore the small sales pitch at the end of each video.)

CP/M Introduction


CP/M Programming Environment


Changing CP/M's RAM Size


CP/M Application Demos