Difference between revisions of "CP/M"

From Computer History Wiki
Jump to: navigation, search
(Fixed a typo, added some more info)
m (Added a tiny bit about the 8080/Z80/8085 versions - they're the same.)
Line 1: Line 1:
 
CP/M was an early OS for microcomputers.  It was ported to several CPUs, the most popular ports were for the [[i8080]] and the [[Z80]].
 
CP/M was an early OS for microcomputers.  It was ported to several CPUs, the most popular ports were for the [[i8080]] and the [[Z80]].
 +
 +
It should be noted thought that the core of CP/M (everything but the machine-specific BIOS) of CP/M on 8085 and Z80 was the 8080 version, Digital Research did not see much point in building a version with instructions outside of the 8080 set (so no Z80-specific version).  The versions for 8086 and 68000 were of course true ports, known as CP/M-86 and CP/M-68k respectively.
  
 
{{Infobox OS  
 
{{Infobox OS  
 
| name = CP/M
 
| name = CP/M
 
| creator = Gary Kildall at Digital Research, Inc.
 
| creator = Gary Kildall at Digital Research, Inc.
| architecture = 8080, z80, 8086, 68000
+
| architecture = 8080, z80, 8085, 8086, 68000
 
| current version = 3.1  
 
| current version = 3.1  
 
}}
 
}}

Revision as of 16:30, 13 March 2013

CP/M was an early OS for microcomputers. It was ported to several CPUs, the most popular ports were for the i8080 and the Z80.

It should be noted thought that the core of CP/M (everything but the machine-specific BIOS) of CP/M on 8085 and Z80 was the 8080 version, Digital Research did not see much point in building a version with instructions outside of the 8080 set (so no Z80-specific version). The versions for 8086 and 68000 were of course true ports, known as CP/M-86 and CP/M-68k respectively.


CP/M
Creator: Gary Kildall at Digital Research, Inc.
Architecture: 8080, z80, 8085, 8086, 68000
This Version: 3.1


CP/M was the inspiration to MS-DOS. It assigns letters for each drive, however it doesn't use directories. CP/M was a portable operating system, that was popularized because it was cheap, and was not resource intensive, unlike Unix which had very restrictive licensing. CP/M was also seen as a popular choice of an OS on the S-100 type machines, although not all machines that ran CP/M had S-100 slots (The Commodore 128 would be a good example of such).

The key to CP/M's portability and success was its division into core applications, CCP (command processor), BDOS and BIOS parts - the BIOS provides functions to the BDOS, and BDOS provides functions to applications. To port CP/M to a new computer platform it's only necessary to write a hardware-specific BIOS with a small set of routines, and a boot loader. A reference BIOS listing which is useful as a starting point can be found in the Digital Research documentation. This relatively simple concept meant that CP/M was quickly ported to a wide range of hardware.

Without doubt the 'killer' application that CP/M had was SuperCalc a VisiCalc clone. Not to mention there was a port of Zork to the CP/M z80 platform.

commands

The CCP provides a number of resident commands:

TYPE - list a file at the console

DIR - display the disk directory of files

ERA - erase a file or group of files

REN - rename a file

USER - move to a different user area

SAVE - save the contents of the TPA to disk for debugging

The remaining utilities take the form of transient programs which are loaded from disk when required:

ASM - assembler

LOAD - loader

DDT - Dynamic Debugging Tool

ED - line oriented editor

PIP - file copy program

STAT - disk status and statistics (free space, etc.)

DUMP - simple file hex dump

SUBMIT - batch command

XSUB - SUBMIT extension

Generally, at least two hardware dependent programs are supplied by the computer vendor:

FORMAT - Formats a blank disk

SYSGEN - Transfers the operating system between disks and memory

Digital Research, the authors of CP/M, also offer a number of upgraded utilities for CP/M:

MAC - macro assembler

RMAC - relocating macro assembler

LINK - linking loader (linkage editor)

LIB - relocatable module librarian

XREF - cross reference lister