Last modified on 1 May 2018, at 02:53

CP/M

Revision as of 02:53, 1 May 2018 by Arnoldemu (Talk | contribs) (MicroDOS implementation for KC Compact)

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 had a machine independent part (implemented by Digital Research) and a machine dependent part implemented by the vendor (Amstrad).

CP/M was shipped with the disk models of the Amstrad CPC and the DDI-1 disc drive on one or two System Disks.

For the DDI-1 and CPC664 there was a single disc with CP/M 2.2 on it. For CPC6128 and later there were two discs with CP/M 2.2 on one disc and CP/M+ on the other.

Vortex also shipped their CP/M with their disc drives which used their memory expansion and 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.

CP/M versions relating to the Amstrad CPC

MicroDOS

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 (49/c9 etc)
  • If ID is not MicroDOS then follow normal AMSDOS CP/M boot procedure
  • 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 because the code on the disc initialises the hardware and configures the environment for MicroDOS specific to the computer booting it.

Links

Videos

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

{{#ev:youtube|BQq6ad9F3Xk|450}}

CP/M Programming Environment

{{#ev:youtube|YQNHg1XuFR4|450}}

Changing CP/M's RAM Size

{{#ev:youtube|DJvT-9Gykm8|450}}

CP/M Application Demos

{{#ev:youtube|_19ks4I5XwE|450}}