All Topics  
CP/M

 

   Email Print
   Bookmark   Link






 

CP/M



 
 
CP/M (Control Program for Microcomputers) is an operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
 originally created for Intel 8080
Intel 8080

The Intel 8080 was an early microprocessor designed and manufactured by Intel. The 8-bit microprocessor was released in April 1974 running at 2 megahertz , and is generally considered to be the first truly usable microprocessor....
/85
Intel 8085

The Intel 8085 is an 8-bit microprocessor introduced by Intel in 1977. It was binary-compatible with the more-famous Intel 8080 but required less supporting hardware, thus allowing simpler and less expensive microcomputer systems to be built....
 based microcomputer
Microcomputer

A microcomputer is a computer with a microprocessor as its central processing unit. Another general characteristic of these computers is that they occupy physically small amounts of space when compared to mainframe computer and minicomputers....
s by Gary Kildall
Gary Kildall

Gary Arlen Kildall was an American computer scientist and microcomputer entrepreneur who created the CP/M operating system and founded Digital Research ....
 of Digital Research, Inc
Digital Research

Digital Research, Inc. was the company created by Dr. Gary Kildall to market and develop his CP/M operating system and related products. It was the first large software company in the microcomputer world....
. Initially confined to single tasking on 8-bit processors and no more than 64 kilobyte
Kilobyte

Kilobyte is a unit of Computer data storage equal to either 1,024 bytes or 1,000 bytes , depending on context.It is abbreviated in a number of ways: KB, kB, K and Kbyte....
s (64 KiB
Kibibyte

A kibibyte is a unit of information or computer storage, established by the International Electrotechnical Commission in 2000. Its symbol is KiB....
) of memory, later versions of CP/M added multi-user variations, and were migrated to 16-bit processors.

The combination of CP/M and S-100 bus
S-100 bus

The S-100 bus, IEEE696-1983 , was an early computer bus designed in 1974 as a part of the Altair 8800, generally considered today to be the first personal computer ....
 computers patterned on the MITS Altair
Altair 8800

The Micro Instrumentation and Telemetry Systems Altair 8800 was a microcomputer design from 1975, based on the Intel 8080 central processing unit and sold as a mail-order kit through advertisements in Popular Electronics, Radio-Electronics and other hobbyist magazines....
 was an early "industry standard" for microcomputers, and was widely used through the late 1970s and into the mid-1980s.






Discussion
Ask a question about 'CP/M'
Start a new discussion about 'CP/M'
Answer questions from other users
Full Discussion Forum



Encyclopedia


CP/M (Control Program for Microcomputers) is an operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
 originally created for Intel 8080
Intel 8080

The Intel 8080 was an early microprocessor designed and manufactured by Intel. The 8-bit microprocessor was released in April 1974 running at 2 megahertz , and is generally considered to be the first truly usable microprocessor....
/85
Intel 8085

The Intel 8085 is an 8-bit microprocessor introduced by Intel in 1977. It was binary-compatible with the more-famous Intel 8080 but required less supporting hardware, thus allowing simpler and less expensive microcomputer systems to be built....
 based microcomputer
Microcomputer

A microcomputer is a computer with a microprocessor as its central processing unit. Another general characteristic of these computers is that they occupy physically small amounts of space when compared to mainframe computer and minicomputers....
s by Gary Kildall
Gary Kildall

Gary Arlen Kildall was an American computer scientist and microcomputer entrepreneur who created the CP/M operating system and founded Digital Research ....
 of Digital Research, Inc
Digital Research

Digital Research, Inc. was the company created by Dr. Gary Kildall to market and develop his CP/M operating system and related products. It was the first large software company in the microcomputer world....
. Initially confined to single tasking on 8-bit processors and no more than 64 kilobyte
Kilobyte

Kilobyte is a unit of Computer data storage equal to either 1,024 bytes or 1,000 bytes , depending on context.It is abbreviated in a number of ways: KB, kB, K and Kbyte....
s (64 KiB
Kibibyte

A kibibyte is a unit of information or computer storage, established by the International Electrotechnical Commission in 2000. Its symbol is KiB....
) of memory, later versions of CP/M added multi-user variations, and were migrated to 16-bit processors.

The combination of CP/M and S-100 bus
S-100 bus

The S-100 bus, IEEE696-1983 , was an early computer bus designed in 1974 as a part of the Altair 8800, generally considered today to be the first personal computer ....
 computers patterned on the MITS Altair
Altair 8800

The Micro Instrumentation and Telemetry Systems Altair 8800 was a microcomputer design from 1975, based on the Intel 8080 central processing unit and sold as a mail-order kit through advertisements in Popular Electronics, Radio-Electronics and other hobbyist magazines....
 was an early "industry standard" for microcomputers, and was widely used through the late 1970s and into the mid-1980s. By greatly reducing the amount of programming required to install an application on a new manufacturer's computer, CP/M increased the market size for both hardware and software.

Hardware model

A minimal 8-bit CP/M system would contain the following components:
  • A computer terminal
    Computer terminal

    A computer terminal is an electronic or electromechanical computer hardware device that is used for entering data into, and displaying data from, a computer or a computing system....
     using the ASCII
    ASCII

    American Standard Code for Information Interchange , is a coding standard that can be used for interchanging information, if the information is expressed mainly by the written form of English words....
     character set
  • An Intel 8080 (and later the 8085) microprocessor
  • At least 16 kilobytes of RAM
  • A means to bootstrap
    Bootstrapping (computing)

    In computing, bootstrapping is a technique by which a simple computer program activates a more complicated system of programs. In the start up process of a computer system, a small program such as BIOS, initializes and tests that computer hardware, peripherals and external memory devices are connected, then loads a program from one of them a...
     the first sector of the diskette.
  • At least one floppy disk
    Floppy disk

    A floppy disk is a data storage medium that is composed of a disk of thin, flexible magnetic storage medium encased in a square or rectangle plastic shell....
     drive.


The only hardware system that CP/M, as sold by Digital Research, would support was the Intel 8080 Development System. Manufacturers of CP/M compatible systems customized portions of the operating system for their own combination of installed memory, disk drives, and console devices. CP/M would also run on systems based on the Zilog Z80
Zilog Z80

The Zilog Z80 is an 8-bit microprocessor designed and sold by Zilog from July 1976 onwards. It was widely used both in desktop and embedded computer designs as well as for military purposes....
 processor since the Z80 was able to execute 8080 code. While CP/M itself did not use any of the Z80-specific instructions, many applications were dedicated to Z80 based CP/M machines.

On most machines the "bootstrap" was a minimal bootloader in ROM, for others this bootstrap had to be entered into memory using front panel
Front panel

A front panel was used on early electronic computers to display and allow the alteration of the state of the machine's internal CPU register and computer memory....
 controls each time the system was started.

CP/M used the 7-bit ASCII set. The other 128 characters made possible by the 8-bit byte were not standardized. For example, one Kaypro used them for Greek characters, and Osborne machines used the 8th bit set to indicate an underlined character. International CP/M systems most commonly used the ISO 646 norm for localized character sets, replacing certain ASCII characters with localized characters rather than adding them beyond the 7-bit boundary.

Components of the operating system

In the 8-bit versions, CP/M's software was separated into three components
  • console command processor or CCP,
  • basic disk operating system or BDOS, and
  • basic input/output system or BIOS
    BIOS

    In computing, the Basic Input/Output System , also known as the System BIOS, is a de facto standard defining a firmware interface for IBM PC Compatible computers....
    .
The CCP and BDOS were the same in all installations of a particular revision of CP/M, but the BIOS portion was always adapted to the particular hardware. Adding memory to a computer, for example, meant that the CP/M system had to be reinstalled. Once installed, the operating system was stored in reserved areas at the beginning of any disk which would be used to boot the system. On start-up, the bootloader would load the operating system from the disk in drive A:.

By modern standards CP/M was primitive owing to the extreme constraints on program size. With version 1.0 there was no provision for detecting a changed disk. If a user changed disks without manually rereading the disk directory the system would write on the new disk using the old disk's directory information, ruining the data stored on the disk. Starting with 1.1 or 1.2 this danger was reduced: if one changed disks without reading the new disk's directory, and tried to write to it, the operating system would signal a fatal error, avoiding overwriting but requiring a reboot (which took no more than a few seconds, but losing whatever data you were trying to save).

The majority of the complexity in CP/M was isolated in the BDOS, and to a lesser extent, the CCP. This meant that by porting the limited number of simple commands in the BIOS to a particular hardware platform, the entire OS would work. This significantly reduced the development time needed to support new machines, and was one of the main reasons for CP/M's widespread use. Today this sort of abstraction is common to most OSs, but at the time of CP/M's birth, OSs were typically intended to run on only one machine platform, and multilayer designs were considered unnecessary.

Command processor

The Console Command Processor, or CCP, accepted input from the keyboard and conveyed results to the terminal. All CP/M commands had to be typed in on the "command line" — the console would show most often A> and would await input from the user.

CP/M's command line interface
Command line interface

A command-line interface is a mechanism for interacting with a computer operating system or software by typing commands to perform specific tasks....
 was patterned after the operating systems from Digital Equipment
Digital Equipment Corporation

Digital Equipment Corporation was a pioneering United States company in the computer industry. It is often referred to within the computing industry as DEC ....
, such as RSTS/E
RSTS/E

RSTS is a multi-user time-sharing operating system, developed by Digital Equipment Corporation , for the PDP-11 series of 16-bit minicomputers....
 for the PDP-11
PDP-11

The PDP-11 was a series of 16-bit minicomputers sold by Digital Equipment Corporation from 1970 into the 1990s. Though not explicitly conceived as successor to DEC's PDP-8 computer in the Programmed Data Processor series of computers , the PDP-11 replaced the PDP-8 in many Real-time computing....
.

Commands generally took the form of a keyword followed by a list of parameters separated by spaces or special characters. If an internal command was recognized, it was carried out by the CCP itself. Otherwise it would attempt to find an executable file on the currently logged disk drive and (in later versions) user area, load it, and pass it any additional parameters from the command line. These were referred to as "transient" programs. On completion, CP/M would reload the part of the CCP that had been overwritten by application programs — this allowed transient programs a larger memory space.

The commands themselves could sometimes be obscure. For instance, the command to duplicate files was named PIP
Peripheral Interchange Program

Peripheral Interchange Program was a utility to transfer files on and between devices on Digital Equipment Corporation's computers. It was first implemented on the PDP-6 architecture by Harrison "Dit" Morse early in the 1960s....
(Peripheral-Interchange-Program), the name of the old DEC
Digital Equipment Corporation

Digital Equipment Corporation was a pioneering United States company in the computer industry. It is often referred to within the computing industry as DEC ....
 utility used for that purpose. The format of parameters given to a program was not standardized, so that there was no single "option character" that differentiated options from file names.

Basic disk operating system

The Basic Disk Operating System, or BDOS, provided access to such operations as opening a file, output to the console, or printing. Application programs would load processor registers with a function code for the operation, and addresses for parameters or memory buffers, and call a fixed address in memory. Since the address was the same independent of the amount of memory in the system, application programs would run the same way for any type or configuration of hardware.

Basic input output system

The Basic Input Output System, or BIOS, provided the lowest level functions required by the operating system. These included reading or writing single characters to the system consoles and reading or writing a sector of data from the disk. The BDOS handled some of the buffering of data from the diskette, but before CP/M 3.0 it assumed a fixed disk sector size of 128 Bytes, as used on single-density 8-inch floppy disks. Since most 5.25-inch disk formats used larger sectors, the blocking and deblocking and the management of a disk buffer area was handled by model-specific code in the BIOS.

File system

File names consisted of up to 8 characters, a period, then up to three characters as a file name extension (8.3 filename convention). The extension usually identified the type of the file. For example, .COM indicated a binary executable program file, and .TXT indicated a file containing ASCII
ASCII

American Standard Code for Information Interchange , is a coding standard that can be used for interchanging information, if the information is expressed mainly by the written form of English words....
 text.

Each disk drive was identified by a drive letter. Typically, dual floppy disk drives would be identified as drives A and B. To refer to a file on a specific drive, the drive letter was prepended to the file name, separated by a colon, e.g. A:FILE.TXT.With no drive letter prefixed, the default was to use files on the current drive (for example, a program running off a B drive would access files on the B drive unless the file names were prefixed with a drive letter).

File size was specified as the number of 128-byte records (directly corresponding to disk sectors on 8-inch drives) occupied by a file on the disk. There was no generally supported way of specifying byte-exact file sizes. The current size of a file was maintained in the file's file control block
File control block

A File Control Block is a file system structure in which the state of an open Computer file is maintained.The FCB originates from CP/M and is also present in all versions of MS-DOS....
 (FCB) by the operating system. Since many application programs (such as text editors) prefer to deal with files as sequences of characters rather than as sequences of records, by convention text files were terminated with a control-Z
Control-Z

In computing, control-Z is a control character in ASCII code, also known as the substitute character. It is generated by pressing the key while holding down the key on a computer keyboard....
 character (ASCII
ASCII

American Standard Code for Information Interchange , is a coding standard that can be used for interchanging information, if the information is expressed mainly by the written form of English words....
 SUB
Substitute character

Substitute character : A control character that is used in the place of a character that is recognized to be invalid or in error or that cannot be represented on a given device....
, hexadecimal 1A). Determining the end
End-of-file

In computing, end-of-file, commonly abbreviated EOF, is a condition in a computer operating system where no more data can be read from a data source....
 of a text file
Text file

A text file is a kind of computer file that is structured as a sequence of line . A text file exists within a computer file system. The end of a text file is often denoted by placing one or more special characters, known as an end-of-file marker, after the last line in a text file....
 therefore involved examining the last record of the file to locate the terminating control-Z. This also meant that inserting a control-Z character into the middle of a file usually had the effect of truncating the text contents of the file.

File modification times (timestamps) were not supported, although some later variants of CP/M added this feature as an extension.

CP/M 2.2 had no sub-directories in the file structure but provided 16 "user areas" to organize files on a disk. The user area concept was to make the single-user version of CP/M somewhat compatible with multi-user MP/M
MP/M

MP/M was the multi-user version of the CP/M operating system, created by Digital Research developer Tom Rolander in 1979. It allowed multiple users to connect to a single computer, each using a separate computer terminal....
 systems. A common patch for the CP/M and derivative operating systems was to make one user area accessible to the user independent of the currently set user area. A supported command was "USER x" where x is a value from 0 to 15. User 0 was the default. If one changed to another user, such as USER 1, the material saved on the disk for this user would only be available to USER 1; USER 2 would not be able to see it or access it. Since CP/M was a single-user operating system, no security was provided for the user command; nothing would prevent any user from accessing any of the 16 user areas. The user area feature arguably had little utility on small floppy disks, though it was more useful for organizing files on machines equipped with large hard drives.

History


The beginning and CP/M's heyday


Gary Kildall
Gary Kildall

Gary Arlen Kildall was an American computer scientist and microcomputer entrepreneur who created the CP/M operating system and founded Digital Research ....
 originally developed CP/M during 1973-74, as an operating system to run on an Intel Intellec-8 development system, equipped with an Shugart Associates
Shugart Associates

Shugart Associates was a computer peripheral manufacturer that dominated the floppy disk drive market in the late 1970s and is famous for introducing the Floppy_disk_drive#The_5.C2.BC-inch_minifloppy....
 8-inch floppy disk drive interfaced via a custom floppy disk controller
Floppy disk controller

A floppy disk controller is a special-purpose chip and associated circuitry that directs and controls reading from and writing to a computer floppy disk ....
. It was written in Kildall's own PL/M
PL/M

The PL/M programming languageis a high-level programming language developed byGary Kildall in 1972 for Intel for its list of Intel microprocessors....
 (Programming Language
Programming language

A programming language is a machine-readable artificial language designed to express computations that can be performed by a machine, particularly a computer....
 for Microcomputers
). Various aspects of CP/M were influenced by the TOPS-10
TOPS-10

The TOPS-10 System was a computer operating system from Digital Equipment Corporation for the PDP-10 mainframe computer launched in 1967. TOPS-10 evolved from the earlier "Monitor" software for the PDP-6 and -10 computers; this was renamed TOPS-10 in 1970....
 operating system of the DECsystem-10 mainframe
Mainframe

Mainframe may refer to one of the following:* Mainframe computer, large data processing systems* Mainframe Entertainment, a Canadian computer animation and design company....
 computer, which Kildall had used as a development environment.

The name
CP/M originally stood for "Control Program/Monitor". However, during the conversion of CP/M to a commercial product, trademark registration documents filed in November 1977 gave the product's name as "Control Program for Microcomputers". The CP/M name shows a prevailing naming scheme of the time, as in Kildall's PL/M language, and Prime Computer's PL/P
PL/P

The PL/P programming language is a medium-level programming language developed by Prime Computer to serve as their second primary operating system programming language after FORTRAN....
 (Programming Language for Prime), both suggesting IBM's PL/I
PL/I

PL/I is an imperative programming computer programming programming language designed for scientific, engineering, and business applications. It is one of the most feature-rich programming languages and one of the very first in the highly-feature-rich category....
; and IBM's CP/CMS
CP/CMS

CP/CMS was a time-sharing operating system of the late 60s and early 70s, known for its excellent performance and advanced features. It had three distinct versions:...
 operating system, which Kildall had used when working at the Naval Postgraduate School
Naval Postgraduate School

The Naval Postgraduate School is an accredited research university operated by the United States Navy. Located in Monterey, California, it grants both master's degree and Doctor of Philosophy....
.

This renaming of CP/M was part of a larger effort by Kildall and his business-partner wife to convert Kildall's personal project of CP/M and the Intel-contracted PL/M compiler into a commercial enterprise. The Kildalls astutely intended to establish the Digital Research brand and its product lines as synonymous with "microcomputer" in the consumer's mind, similar to what IBM and Microsoft together later successfully accomplished in making "personal computer" synonymous with IBM and Microsoft product offerings. Intergalactic Digital Research, Inc. was later renamed via a corporation change-of-name filing to Digital Research, Inc.

Portability
CP/M was described as a "software bus", allowing multiple programs to interact with different hardware in a standardized way. Programs written for CP/M were typically portable between different machines, usually only requiring specification of the escape sequence
Escape sequence

An escape sequence is a series of character used to change the state of computers and their attached peripheral devices. These are also known as control sequences, reflecting their use in device control....
 for control of the screen
Computer terminal

A computer terminal is an electronic or electromechanical computer hardware device that is used for entering data into, and displaying data from, a computer or a computing system....
 and printer. This portability made CP/M popular, and much more software was written for CP/M than for operating systems that only ran on one brand of hardware. One restriction on portability was that certain programs used the extended instruction set of the Z80 processor and would not operate on an 8080 or 8085 processor.

Many different brands of machines ran CP/M, some notable examples being the Altair, the IMSAI 8080
IMSAI 8080

The IMSAI 8080 was an early microcomputer released in late 1975, based on the Intel Corporation Intel 8080 and later Intel 8085 and S-100 bus. It was compatible with its main competitor, the earlier Altair 8800, by which it was inspired....
, the Osborne 1
Osborne 1

The Osborne 1 was the first commercially successful portable computer microcomputer, released in April, 1981 by Osborne Computer Corporation. It weighed 23.5 pounds , cost United States dollar1795, and ran the then-popular CP/M operating system operating system....
 and Kaypro
Kaypro

Kaypro Corporation, commonly called Kaypro, was an American home computer/personal computer manufacturer of the 1980s. The company was founded by Non-Linear Systems to develop computers to compete with the then popular Osborne 1 portable microcomputer....
 portables, and MSX
MSX

MSX was the name of a standardized home computer architecture in the 1980s. It was a Microsoft-led attempt to create unified standards among hardware makers, conceived by one-time Microsoft Japan executive Kazuhiko Nishi....
 computers. Even the Apple II could run CP/M when an extra Z80-card was installed. The best selling CP/M capable system of all time was probably the Commodore 128
Commodore 128

The Commodore 128 home computer/personal computer was the last 8-bit machine commercially released by Commodore International . Introduced in January of 1985 at the Consumer Electronics Show in Las Vegas metropolitan area, it appeared three years after its predecessor, the bestselling Commodore 64....
, although few people actually used its CP/M abilities. In the UK, CP/M was also available for the BBC Micro
BBC Micro

The BBC Microcomputer System, or BBC Micro, was a series of microcomputers and associated peripherals designed and built by Acorn Computers for the BBC Computer Literacy Project, operated by the British Broadcasting Corporation....
 when equipped with a Z80 co-processor. Furthermore, it powered the popular Amstrad PCW
Amstrad PCW

The Amstrad PCW series was United Kingdom company Amstrad's versatile line of home/personal microcomputers pitched as a complete, integrated home/office solution....
 word-processing system and was available for the Amstrad CPC
Amstrad CPC

The Amstrad CPC is a series of 8-bit home computers produced by Amstrad during the 1980s and early 1990s. "CPC" stands for 'Colour Personal Computer', although it was possible to purchase a CPC with a Green screen display as well as with the standard colour screen ....
 series and later models of the ZX Spectrum
ZX Spectrum

The Sinclair ZX Spectrum is an 8-bit personal home computer released in the United Kingdom in 1982 by Sinclair Research Ltd. Referred to during development as the ZX81 Colour and ZX82, the machine was launched as the ZX Spectrum by Sinclair to highlight the machine's colour display, compared with the black-and-white of its predec...
.

Applications
WordStar
WordStar

WordStar was a word processor application, published by MicroPro International, originally written for the CP/M operating system but later ported to DOS, that enjoyed a dominant market share during the early to mid-1980s....
, one of the first widely used word processor
Word processor

A word processor is a computer Application software used for the production of any sort of printable material.Word processor may also refer to an obsolete type of stand-alone office machine, popular in the 1970s and 80s, combining the keyboard text-entry and printing functions of an electric typewriter with a dedicated computer for th...
s, and dBASE
DBASE

dBase II was the first widely used database management system for microcomputers, published by Ashton-Tate for CP/M, and later on the Apple II, Apple Macintosh, UNIX, OpenVMS, and IBM PC under DOS where it and its successors dBase III and dBase IV became one of the best-selling software titles for a number of years....
, an early and popular database program for small computers, were originally written for CP/M. An early outliner
Outliner

An outliner is a computer program that allows one to organize text into discrete sections that are related in a tree data structure or hierarchy....
, KAMAS (Knowledge and Mind Amplification System) was also written for CP/M, though later rewritten for MS-DOS. Turbo Pascal
Turbo Pascal

Turbo Pascal is a complete software development system that includes a compiler and an Integrated Development Environment for the Pascal programming language running under CP/M, CP/M-86, and MS-DOS, developed by Borland under Philippe Kahn's leadership....
, the ancestor of Borland Delphi
Borland Delphi

Delphi is a software development environment for Microsoft Windows applications. It has always supported development of native Windows applications in the Delphi programming language, a further development of Object Pascal....
, and Multiplan
MultiPlan

Multiplan was an early spreadsheet program developed by Microsoft. Known initially by the List of computer technology code names "EP" , it was introduced in 1982 as a competitor for VisiCalc....
, the ancestor of Microsoft Excel
Microsoft Excel

Microsoft Excel is a spreadsheet-application written and distributed by Microsoft for Microsoft Windows and Mac OS X. It features calculation, graphing tools, pivot tables and a macro programming language called VBA ....
, also debuted on CP/M before MS-DOS versions became available. Various character and text-based adventure games were ported, such as Colossal Cave Adventure
Colossal Cave Adventure

Colossal Cave Adventure was the first computer adventure game. It was originally designed by William Crowther, a programmer and spelunking enthusiast who based the layout on part of the Mammoth Cave National Park system in Kentucky....
, and other early interactive fiction
Interactive fiction

Interactive fiction, often abbreviated IF, describes Computer software simulating environments in which players use text Command to control Player character and influence the environment....
. Lifeboat Associates started collecting and distributing user-written "free" software. One of the first was XMODEM
XMODEM

XMODEM is a simple file transfer protocol developed as a quick hack by Ward Christensen for use in his 1977 MODEM.ASM terminal program. XMODEM became extremely popular in the early bulletin board system market, largely because it was so simple to implement....
, which allowed communication via modem
Modem

Modem is a peripheral device that modulation an analog carrier wave Signal to encode digital information, and also demodulation such a carrier signal to decode the transmitted information....
 and phone line.

Disk formats
While the 8-inch single density floppy disk
Floppy disk

A floppy disk is a data storage medium that is composed of a disk of thin, flexible magnetic storage medium encased in a square or rectangle plastic shell....
 format (so-called "distribution format") was standardized, various 5¼ inch formats were used depending on the characteristics of particular systems and to some degree the choices of the designers. CP/M supported options to control the size of reserved and directory areas on the disk, and the mapping between logical disk sectors (as seen by CP/M programs) and physical sectors as allocated on the disk. There were very many ways to customize these parameters for every system but once they had been set, no standardized way existed to for a system to load parameters from a disk formatted on another system. No single manufacturer prevailed in the 5¼ inch era of CP/M use, and disk formats were not portable between hardware manufacturers. A software manufacturer had to prepare a separate version of the program for each brand of hardware on which it was to run. With some manufacturers (Kaypro is an example), there was not even standardization across the company's different models. Because of this situation, disk format translation programs, which allowed a machine to read many different formats, became popular and reduced the confusion, as did programs like kermit
Kermit (protocol)

Kermit is a computer file transfer/management protocol and a set of communications software tools primarily used in the early years of personal computing in the 1980s; it provides a consistent approach to file transfer, terminal emulator, scripting language programming, and character set conversion across many different computer hardware and...
 which allowed transfer of data and programs from one machine to another using the serial ports that most CP/M machines had. The fragmented CP/M market, requiring distributors either to stock multiple formats of disks or to invest in multiformat duplication equipment, compared with the more standardized IBM PC
IBM PC

The IBM Personal Computer, commonly known as the IBM PC, is the original version and progenitor of the IBM PC compatible hardware platform ....
 disk formats, was a contributing factor to the rapid obsolescence of CP/M after 1981.

Graphics
Although graphics-capable S100 systems existed from the commercialization of the S100 bus, CP/M did not provide any standardized graphics support until the release of CP/M 3.0 with GSX (Graphic System eXtension). Owing to the small memory available, graphics was never a common feature associated with 8-bit CP/M operating systems.

The 16-bit world

Versions of CP/M were later completed for some 16-bit
16-bit

16-bit architectureThe HP 2100#Descendants and variants , introduced in 1975, was the world's first 16-bit microprocessor.Prominent 16-bit processors include the PDP-11, Intel 8086, Intel 80286 and the WDC 65C816....
 CPUs as well, although they required the application programs to be re-compiled for the new CPUs -- or, if they were written in assembly language
Assembly language

An assembly language is a low-level language for programming computers. It implements a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture....
, to be largely rewritten from scratch.

One of the first was CP/M-86
CP/M-86

CP/M-86 was a version of the CP/M operating system that Digital Research made for the Intel 8086 and Intel 8088. The commands are those of CP/M-80....
 for the Intel 8086
Intel 8086

The 8086 is a 16-bit microprocessor chip designed by Intel and introduced on the market in 1978, which gave rise to the x86 architecture. Intel 8088, released in 1979, was essentially the same chip, but with an external 8-bit bus , and is notable as the processor used in the original IBM PC....
, which was soon followed by CP/M-68k for the Motorola 68000
Motorola 68000

The Motorola 68000 is a 16/32-bit Complex instruction set computer microprocessor core designed and marketed by Freescale Semiconductor ....
. At this point the original 8-bit
8-bit

Eight-bit CPUs normally use an 8-bit data bus and a 16-bit address bus which means that their address space is limited to 64 KBs. This is not a "natural law", however, so there are exceptions....
 CP/M became known by the retronym
Retronym

A retronym is the modification of the original name of an object or concept to differentiate it from a more recent version of the object, which acquired a modifier or adjective through later developments of the object or concept itself....
 CP/M-80 to avoid confusion. There was also a port to the Zilog Z8000
Zilog Z8000

The Z8000 was a 16-bit microprocessor introduced by ZiLOG in 1979. The architecture was designed by Bernard Peuto while the logic and physical implementation was done by Masatoshi Shima, assisted by a small group of people....
, named CP/M-8000.

CP/M-68k was initially used in the Atari ST
Atari ST

The Atari ST is a home computer/personal computer that was commercially available from 1985 to the early 1990s. It was released by Atari Corporation in 1985....
 computer, but Atari decided to go with a newer DOS called GEMDOS
Graphical Environment Manager

GEM was a windowing system created by Digital Research for use with the CP/M operating system on the Intel 8088 and Motorola 68000 microprocessors....
. It also was used on the SORD M68 and M68MX computers. CP/M-86 was expected to be the standard operating system of the new IBM PCs, but DRI and IBM
IBM

International Business Machines Corporation, abbreviated IBM and nicknamed "Big Blue" , is a multinational corporation computer technology and consulting corporation headquartered in Armonk, New York, New York, United States....
 were unable to negotiate development and licensing terms. IBM turned to Microsoft
Microsoft

Microsoft Corporation is a multinational corporation computer technology corporation that develops, manufactures, licenses, and supports a wide range of computer software products for computing devices....
 instead, and Microsoft delivered PC-DOS
PC-DOS

IBM PC DOS was a DOS operating system for the IBM Personal Computer, sold throughout the 1980s and 2000s....
 based on a CP/M "clone," 86-DOS. Although CP/M-86 became an option for the IBM PC after DRI threatened legal action, it never overtook Microsoft's system.

When Digital Equipment Corporation
Digital Equipment Corporation

Digital Equipment Corporation was a pioneering United States company in the computer industry. It is often referred to within the computing industry as DEC ....
 put out the Rainbow 100
Rainbow 100

The Rainbow 100 was a microcomputer introduced by Digital Equipment Corporation in 1982 to compete in the IBM PC market. This desktop unit had the video-terminal display circuitry from the VT102, a video monitor similar to the VT220 in a box with both Zilog Z80 and Intel 8088 CPUs....
 to compete with IBM, it came with CP/M-80 using a Z80 chip, and CP/M-86 or MS-DOS using an 8088 microprocessor. The Z80 and 8088 CPUs ran concurrently. A benefit of the Rainbow was that it could continue to run 8-bit CP/M software as users moved into the 16-bit world of MS-DOS.

MS-DOS takes over

The first version of MS-DOS
MS-DOS

MS-DOS is an operating system commercialized by Microsoft. It was the most commonly used member of the DOS family of operating systems and was the main operating system for personal computers during the 1980s....
 had some resemblance to CP/M-86, but rapidly diverged after the first release. Many of the basic concepts and internal mechanisms of early versions of MS-DOS
MS-DOS

MS-DOS is an operating system commercialized by Microsoft. It was the most commonly used member of the DOS family of operating systems and was the main operating system for personal computers during the 1980s....
 resembled those of CP/M. Internals like file-handling data structures were identical, and both referred to disk drives with a letter (A:, B:, etc.). The main innovation was MS-DOS's FAT
File Allocation Table

File Allocation Table or FAT is a computer file system architecture now widely used on most computer systems and most memory cards, such as those used with digital cameras....
 file system
File system

In computing, a file system is a method for store and organize computer files and the data they contain to make it easy to find and access them....
. This intentional similarity made it easier to port popular CP/M software like WordStar
WordStar

WordStar was a word processor application, published by MicroPro International, originally written for the CP/M operating system but later ported to DOS, that enjoyed a dominant market share during the early to mid-1980s....
 and dBase
DBASE

dBase II was the first widely used database management system for microcomputers, published by Ashton-Tate for CP/M, and later on the Apple II, Apple Macintosh, UNIX, OpenVMS, and IBM PC under DOS where it and its successors dBase III and dBase IV became one of the best-selling software titles for a number of years....
. However, CP/M's concept of separate user areas for files on the same disk was never ported to MS-DOS. Since MS-DOS had access to more memory (as few IBM PCs were sold with less than 64 KB
KB

The abbreviation KB or kb can refer to:*Kilobit , a unit of information used, for example, to quantify computer memory or storage capacity...
 of memory, while CP/M had to run in 16 KB if necessary), more commands were built in to the command-line user interface
User interface

The user interface is the aggregate of means by which people—the User s—Interaction with the system—a particular machine, device, computer program or other complex tools....
 logic, making MS-DOS somewhat faster and easier to use on floppy-based computers.

CP/M rapidly lost market share as the microcomputing market moved to the PC platform, and it never regained its former popularity. Byte Magazine, at the time one of the leading industry magazines for microcomputers, essentially ceased covering CP/M products within a few years of the introduction of the IBM PC. For example, in 1983 there were still a few advertisements for S100 boards and articles on CP/M software, but by 1987 these were no longer found in the magazine.

Later versions of CP/M-86 made significant strides in performance and usability and were made compatible with MS-DOS. For some time in the 1980s, the resulting system was considered to be a better x86 OS than MS-DOS. To reflect this compatibility the name was changed, and CP/M-86 became DOS Plus
DOS Plus

DOS Plus is an operating system written by Digital Research, first released in 1985. It can be seen as an intermediate step between CP/M-86 and DR-DOS....
, which in turn became DR-DOS
DR-DOS

DR-DOS is a DOS-type operating system for IBM PC-PC compatible personal computers, originally developed by Gary Kildall's Digital Research and derived from CP/M-86....
.

ZCPR

ZCPR (the Z80 Command Processor Replacement) was introduced on February 2, 1982 as a drop-in replacement for the standard Digital Research command processor (CCP) and was initially written by a group of computer hobbyists who called themselves "The CCP Group". They were Frank Wancho, Keith Petersen (the archivist behind Simtel
Simtel

Simtel is an Internet-based archive of shareware for various operating systems, particularly Microsoft Windows and MS-DOS. The Simtel archive has been available on the public Internet since 1993, when its older ARPANET host was shut down....
 at the time), Ron Fowler, Charlie Strom, Bob Mathias
Bob Mathias

Robert Bruce Mathias was an United States Decathlon, two-time Olympic Games gold medalist, and United States House of Representatives....
, and Richard Conn. Richard was, in fact, the driving force in this group (all of whom maintained contact through email).

ZCPR1 was released on a disk put out by SIG/M (Special Interest Group/Microcomputers), a part of the Amateur Computer Club of New Jersey
New Jersey

New Jersey is a state in the Mid-Atlantic States and Northeastern United States regions of the United States. It is bordered on the north by New York, on the east by the Hudson River and the Atlantic Ocean, on the southwest by Delaware, and on the west by Pennsylvania....
.

ZCPR2 was released on February 14, 1983. It was released as a set of ten disks from SIG/M. ZCPR2 was upgraded to 2.3, and also was released in 8080 code, permitting the use of ZCPR2 on 8080
Intel 8080

The Intel 8080 was an early microprocessor designed and manufactured by Intel. The 8-bit microprocessor was released in April 1974 running at 2 megahertz , and is generally considered to be the first truly usable microprocessor....
 and 8085
Intel 8085

The Intel 8085 is an 8-bit microprocessor introduced by Intel in 1977. It was binary-compatible with the more-famous Intel 8080 but required less supporting hardware, thus allowing simpler and less expensive microcomputer systems to be built....
 systems.

ZCPR3 was released on Bastille Day
Bastille Day

Bastille Day is the France National Day, celebrated on 14 July each year . In France, it is called F?te Nationale in official parlance, or more commonly le quatorze juillet ....
, July 14, 1984, as a set of nine disks from SIG/M. The code for ZCPR3 could also be compiled (with reduced features) for the 8080 and would run on systems that did not have the requisite Z80 microprocessor.

In January 1987, Richard Conn decided to stop developing ZCPR, and Echelon asked Jay Sage (who already had a privately enhanced ZCPR 3.1) to continue work on ZCPR. Thus, ZCPR 3.3 was developed and released. ZCPR33 no longer supported the 8080 series of microprocessors, and added the most features of any upgrade in the ZCPR line.

Features of ZCPR as of version 3 included:

  • shells
  • aliases
  • I/O redirection
  • flow control
  • named directories
  • search paths
  • custom menus
  • passwords
  • on line help


ZCPR3.3 also included a full complement of utilities with considerably extended capabilities. While enthusiastically supported by the CP/M user base of the time, ZCPR alone was insufficient to slow the demise of CP/M.

Further reading

  • ZCPR3, The Manual by Richard Conn: ISBN 0918432596
  • (also present at this related site)
  • - part of The Computer Journal, issue 54


See also

  • List of machines running CP/M
    List of machines running CP/M

    Many microcomputer makes and models could run some version or derivation of the CP/M disk operating system. Eight-bit computers running CP/M 80 were built around an Intel 8080/Intel 8085, Zilog Z80, or compatible central processing unit ....
  • MP/M
    MP/M

    MP/M was the multi-user version of the CP/M operating system, created by Digital Research developer Tom Rolander in 1979. It allowed multiple users to connect to a single computer, each using a separate computer terminal....
  • Multiuser DOS
    Multiuser DOS

    Multiuser DOS is a soft Real-time operating system operating system for IBM PC-compatible microcomputers.An evolution of the older Concurrent CP/M and Concurrent DOS operating systems, it was originally developed by Digital Research....


External links

  • – A PowerPoint
    Microsoft PowerPoint

    Microsoft PowerPoint is a presentation program developed by Microsoft. It is part of the Microsoft Office system, and runs on Microsoft Windows and the Mac OS computer operating systems....
     (PPT) presentation
  • - Technical information site
  • - Includes source code
  • - This PBS series includes the details of IBM's choice of Microsoft DOS over Digital Research's CP/M for the IBM PC
  • - includes ZCPR materials
  • - An active group (2008) building open source CP/M boards, peripherals and wireless links.