CP/M,
originally standing for Control Program/Monitor
and later Control Program for Microcomputers,
is a mass-market
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
created in 1974 for
Intel 8080/
85-based
microcomputer
A microcomputer is a small, relatively inexpensive computer having a central processing unit (CPU) made out of a microprocessor. The computer also includes memory and input/output (I/O) circuitry together mounted on a printed circuit board (PC ...
s by
Gary Kildall of
Digital Research, Inc.
Digital Research, Inc. (DR or DRI) was a company created by Gary Kildall to market and develop his CP/M operating system and related 8-bit, 16-bit and 32-bit systems like MP/M, Concurrent DOS, FlexOS, Multiuser DOS, DOS Plus, DR DOS and ...
Initially confined to single-tasking on
8-bit processors and no more than 64
kilobyte
The kilobyte is a multiple of the unit byte for digital information.
The International System of Units (SI) defines the prefix ''kilo'' as 1000 (103); per this definition, one kilobyte is 1000 bytes.International Standard IEC 80000-13 Quantiti ...
s of memory, later versions of CP/M added multi-user variations and were migrated to
16-bit processor
16-bit microcomputers are microcomputers that use 16-bit microprocessors.
A 16-bit register can store 216 different values. The range of integer values that can be stored in 16 bits depends on the integer representation used. With the two most ...
s.
The combination of CP/M and
S-100 bus computers became an early standard in the microcomputer industry. This
computer platform
A computing platform or digital platform is an environment in which a piece of software is executed. It may be the hardware or the operating system (OS), even a web browser and associated application programming interfaces, or other underlying s ...
was widely used in business through the late 1970s and into the mid-1980s.
CP/M increased the market size for both hardware and software by greatly reducing the amount of programming required to install an application on a new manufacturer's computer.
An important driver of software innovation was the advent of (comparatively) low-cost microcomputers running CP/M, as independent programmers and
hackers bought them and shared their creations in
user group
A users' group (also user's group or user group) is a type of Club (organization), club focused on the use of a particular technology, usually (but not always) computer-related.
Overview
Users' groups started in the early days of Mainframe compu ...
s.
CP/M was eventually
displaced by
DOS following the 1981 introduction of the
IBM PC
The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first microcomputer released in the IBM PC model line and the basis for the IBM PC compatible de facto standard. Released on August 12, 1981, it was created by a team ...
.
History
Early history
Gary Kildall originally developed CP/M during 1974,
as an operating system to run on an
Intel
Intel Corporation is an American multinational corporation and technology company headquartered in Santa Clara, California. It is the world's largest semiconductor chip manufacturer by revenue, and is one of the developers of the x86 seri ...
Intellec-8
The Intellec computers were a series of early microcomputers Intel produced in the 1970s as a development platform for their processors. The Intellec computers were among the first microcomputers ever sold, predating the Altair 8800 by at least ...
development system, equipped with a
Shugart Associates
Shugart Associates (later Shugart Corporation) was a computer peripheral manufacturer that dominated the floppy disk drive market in the late 1970s and is famous for introducing the -inch "Minifloppy" floppy disk drive. In 1979 it was one of the f ...
8-inch
floppy-disk drive
A floppy disk or floppy diskette (casually referred to as a floppy, or a diskette) is an obsolescent type of disk storage composed of a thin and flexible disk of a magnetic storage medium in a square or nearly square plastic enclosure lined wi ...
interfaced via a custom
floppy-disk controller
A floppy-disk controller (FDC) has evolved from a discrete set of components on one or more circuit boards to a special-purpose integrated circuit (IC or "chip") or a component thereof. An FDC directs and controls reading from and writing to ...
.
It was written in Kildall's own
PL/M (''
Programming Language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
for Microcomputers'').
Various aspects of CP/M were influenced by the
TOPS-10
TOPS-10 System (''Timesharing / Total Operating System-10'') is a discontinued operating system from Digital Equipment Corporation (DEC) for the PDP-10 (or DECsystem-10) mainframe computer family. Launched in 1967, TOPS-10 evolved from the earlier ...
operating system of the
DECsystem-10
Digital Equipment Corporation (DEC)'s PDP-10, later marketed as the DECsystem-10, is a mainframe computer family manufactured beginning in 1966 and discontinued in 1983. 1970s models and beyond were marketed under the DECsystem-10 name, especi ...
mainframe computer
A mainframe computer, informally called a mainframe or big iron, is a computer used primarily by large organizations for critical applications like bulk data processing for tasks such as censuses, industry and consumer statistics, enterpris ...
, which Kildall had used as a development environment.
Under Kildall's direction, the development of CP/M 2.0 was mostly carried out by John Pierce in 1978.
Kathryn Strutynski, a friend of Kildall from
Naval Postgraduate School
The Naval Postgraduate School (NPS) is a public graduate school operated by the United States Navy and located in Monterey, California.
It offers master’s and doctoral degrees in more than 70 fields of study to the U.S. Armed Forces, DOD ci ...
(NPS) times, became the fourth employee of Digital Research Inc. in early 1979. She started by debugging CP/M 2.0, and later became influential as key developer for CP/M 2.2 and CP/M Plus. Other early developers of the CP/M base included Robert "Bob" Silberstein and David "Dave" K. Brown.
CP/M originally stood for "Control Program/Monitor",
a name which implies a
resident monitor—a primitive precursor to the operating system. 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 follows a prevailing naming scheme of the time, as in Kildall's PL/M language, and Prime Computer's
PL/P
The PL/P programming language (an acronym of ''Programming Language for Prime (computers)'') is a mid-level programming language developed by Prime Computer to serve as their second primary system programming language after Fortran IV. PL/P was a ...
(''Programming Language for Prime''), both suggesting IBM's
PL/I; and IBM's
CP/CMS
CP/CMS (Control Program/Cambridge Monitor System) is a discontinued time-sharing operating system of the late 1960s and early 1970s, known for its excellent performance and advanced features. It had three distinct versions:
* CP-40/CMS, an imp ...
operating system, which Kildall had used when working at the NPS. This renaming of CP/M was part of a larger effort by Kildall and his wife with business partner, Dorothy McEwen
to convert Kildall's personal project of CP/M and the Intel-contracted PL/M compiler into a commercial enterprise. The Kildalls 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 their product offerings. Intergalactic Digital Research, Inc. was later renamed via a corporation change-of-name filing to Digital Research, Inc.
Initial success
![M Karte](https://upload.wikimedia.org/wikipedia/commons/f/f7/M_Karte.JPG)
By September 1981, Digital Research had sold more than CP/M licenses; ''
InfoWorld
''InfoWorld'' (abbreviated IW) is an information technology media business. Founded in 1978, it began as a monthly magazine. In 2007, it transitioned to a web-only publication. Its parent company today is International Data Group, and its siste ...
'' stated that the actual market was likely larger because of sublicenses. Many different companies produced CP/M-based computers for many different markets; the magazine stated that "CP/M is well on its way to establishing itself as ''the'' small-computer operating system".
The companies chose to support CP/M because of its large library of software. The
Xerox 820 ran the operating system because "where there are literally thousands of programs written for it, it would be unwise not to take advantage of it", Xerox said.
(Xerox included a
Howard W. Sams
Sams Publishing is dedicated to the publishing of technical training manuals and is an imprint of Pearson plc, the global publishing and education company.
Sams Publishing was founded in 1946 by Howard W. Sams, originally producing radio schemat ...
CP/M manual as compensation for Digital Research's documentation, which ''InfoWorld'' in 1982 described as atrocious.
) By 1984,
Columbia University
Columbia University (also known as Columbia, and officially as Columbia University in the City of New York) is a private research university in New York City. Established in 1754 as King's College on the grounds of Trinity Church in Manhatt ...
used the same source code to build
Kermit binaries for more than a dozen different CP/M systems, plus a generic version.
The operating system was described as a "
software bus
A software bus is a software architecture model where a shared communication channel facilitates connections and communication between software modules. This makes software buses conceptually similar to the bus term used in computer hardware for in ...
", allowing multiple programs to interact with different hardware in a standardized way.
Programs written for CP/M were typically portable among different machines, usually requiring only the specification of the
escape sequences for control of the
screen and printer. This portability made CP/M popular, and much more software was written for CP/M than for operating systems that ran on only 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. Another was graphics routines, especially in games and graphics programs, which were generally machine-specific as they used direct hardware access for speed, bypassing the OS and BIOS (this was also a common problem in early DOS machines).
Bill Gates
William Henry Gates III (born October 28, 1955) is an American business magnate and philanthropist. He is a co-founder of Microsoft, along with his late childhood friend Paul Allen. During his career at Microsoft, Gates held the positions ...
claimed that the
Apple II series
The Apple II series (trademarked with square brackets as "Apple ] ''" and rendered on later models as "Apple //") is a family of home computers, one of the first highly successful mass-produced microcomputer products, designed primaril ...
with a
Z-80 SoftCard was the single most-popular CP/M hardware platform.
Many different brands of machines ran the operating system, some notable examples being the
Altair 8800
The Altair 8800 is a microcomputer designed in 1974 by MITS and based on the Intel 8080 CPU. Interest grew quickly after it was featured on the cover of the January 1975 issue of Popular Electronics and was sold by mail order through advertiseme ...
, the
IMSAI 8080
The IMSAI 8080 was an early microcomputer released in late 1975, based on the Intel 8080 and later 8085 and S-100 bus. It was a clone of its main competitor, the earlier MITS Altair 8800. The IMSAI is largely regarded as the first "clone" micr ...
, the
Osborne 1 and Kaypro
luggable
A portable computer is a computer designed to be easily moved from one place to another and included a display and keyboard together, with a single plug, much like later desktop computers called '' all-in-ones'' (AIO), that integrate the sy ...
s, and
MSX
MSX is a standardized home computer architecture, announced by Microsoft and ASCII Corporation on June 16, 1983. It was initially conceived by Microsoft as a product for the Eastern sector, and jointly marketed by Kazuhiko Nishi, then vice-p ...
computers. The best-selling CP/M-capable system of all time was probably the
Amstrad PCW
The Amstrad PCW series is a range of personal computers produced by British company Amstrad from 1985 to 1998, and also sold under licence in Europe as the "Joyce" by the German electronics company Schneider in the early years of the series' life. ...
. In the UK, CP/M was also available on
Research Machines
RM Education is the principal division of RM plc, a British company that specialises in providing information technology products and services to educational organisations and establishments. Its key market is UK education including schools, col ...
educational computers (with the CP/M source code published as an educational resource), and for the
BBC Micro when equipped with a Z80 co-processor. Furthermore, it was available for the
Amstrad CPC series, the
Commodore 128
The Commodore 128, also known as the C128, C-128, C= 128,The "C=" represents the graphical part of the logo. is the last 8-bit home computer that was commercially released by Commodore Business Machines (CBM). Introduced in January 1985 at the ...
,
TRS-80
The TRS-80 Micro Computer System (TRS-80, later renamed the Model I to distinguish it from successors) is a desktop microcomputer launched in 1977 and sold by Tandy Corporation through their Radio Shack stores. The name is an abbreviation of '' ...
, and later models of the
ZX Spectrum
The ZX Spectrum () is an 8-bit computing, 8-bit home computer that was developed by Sinclair Research. It was released in the United Kingdom on 23 April 1982, and became Britain's best-selling microcomputer.
Referred to during development as t ...
. CP/M 3 was also used on the NIAT, a custom handheld computer designed for
A.C. Nielsen
The Nielsen Corporation, self-referentially known as The Nielsen Company, and formerly known as ACNielsen or AC Nielsen, is a global marketing research firm, with worldwide headquarters in New York City, United States. Regional headquarters for ...
's internal use with 1
MB of
SSD
A solid-state drive (SSD) is a solid-state storage device that uses integrated circuit assemblies to store data persistently, typically using flash memory, and functioning as secondary storage in the hierarchy of computer storage. It is ...
memory.
Multi-user
In 1979, a multi-user compatible derivative of CP/M was released.
MP/M allowed multiple users to connect to a single computer, using multiple
terminals to provide each user with a screen and keyboard. Later versions ran on 16-bit processors.
CP/M Plus
![CP-M Plus System Guide](https://upload.wikimedia.org/wikipedia/commons/a/a8/CP-M_Plus_System_Guide.jpg)
The last 8-bit version of CP/M was version 3, often called CP/M Plus, released in 1983.
Its BDOS was designed by Brown.
It incorporated the bank switching memory management of
MP/M in a single-user single-task operating system compatible with CP/M 2.2 applications. CP/M 3 could therefore use more than 64 KB of memory on an 8080 or Z80 processor. The system could be configured to support date stamping of files.
The operating system distribution software also included a relocating assembler and linker.
CP/M 3 was available for the last generation of 8-bit computers, notably the
Amstrad PCW
The Amstrad PCW series is a range of personal computers produced by British company Amstrad from 1985 to 1998, and also sold under licence in Europe as the "Joyce" by the German electronics company Schneider in the early years of the series' life. ...
, the
Amstrad CPC, the
ZX Spectrum +3 ZX may refer to:
Arts and entertainment
* Kamen Rider ZX (pronounced "Zed-Cross"), the tenth fictional superhero in the "Kamen Rider" franchise
* ''Mega Man ZX'', a video game for the Nintendo DS
* ''ZX Tunes'', remastered soundtracks of the "Meg ...
, the
Commodore 128
The Commodore 128, also known as the C128, C-128, C= 128,The "C=" represents the graphical part of the logo. is the last 8-bit home computer that was commercially released by Commodore Business Machines (CBM). Introduced in January 1985 at the ...
,
MSX
MSX is a standardized home computer architecture, announced by Microsoft and ASCII Corporation on June 16, 1983. It was initially conceived by Microsoft as a product for the Eastern sector, and jointly marketed by Kazuhiko Nishi, then vice-p ...
machines and the
Radio Shack TRS-80 Model 4.
16-bit versions
![PRO CPM-80](https://upload.wikimedia.org/wikipedia/commons/3/3c/PRO_CPM-80.jpg)
There were versions of CP/M for some
16-bit
16-bit microcomputers are microcomputers that use 16-bit microprocessors.
A 16-bit register can store 216 different values. The range of integer values that can be stored in 16 bits depends on the integer representation used. With the two mos ...
CPUs as well.
The first version in the 16-bit family was
CP/M-86
CP/M-86 was a version of the CP/M operating system that Digital Research (DR) made for the Intel 8086 and Intel 8088. The system commands are the same as in CP/M-80. Executable files used the relocatable .CMD file format. Digital Research als ...
for the
Intel 8086
The 8086 (also called iAPX 86) is a 16-bit microprocessor chip designed by Intel between early 1976 and June 8, 1978, when it was released. The Intel 8088, released July 1, 1979, is a slightly modified chip with an external 8-bit data bus (allowi ...
in November 1981.
Kathryn Strutynski was the project manager for the evolving CP/M-86 line of operating systems.
At this point, the original
8-bit
In computer architecture, 8-bit Integer (computer science), integers or other Data (computing), data units are those that are 8 bits wide (1 octet (computing), octet). Also, 8-bit central processing unit (CPU) and arithmetic logic unit (ALU) arc ...
CP/M became known by the
retronym ''CP/M-80'' to avoid confusion.
CP/M-86 was expected to be the standard operating system of the new
IBM PC
The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first microcomputer released in the IBM PC model line and the basis for the IBM PC compatible de facto standard. Released on August 12, 1981, it was created by a team ...
s, but DRI and
IBM were unable to negotiate development and licensing terms. IBM turned to Microsoft instead, and Microsoft delivered
PC DOS based on
86-DOS
86-DOS (known internally as QDOS, for Quick and Dirty Operating System) is a discontinued operating system developed and marketed by Seattle Computer Products (SCP) for its Intel 8086-based computer kit.
86-DOS shared a few of its commands wit ...
. Although CP/M-86 became an option for the IBM PC after DRI threatened legal action, it never overtook Microsoft's system. Most customers were repelled by the significantly greater price IBM charged for CP/M-86 over PC DOS ( and , respectively).
When
Digital Equipment Corporation
Digital Equipment Corporation (DEC ), using the trademark Digital, was a major American company in the computer industry from the 1960s to the 1990s. The company was co-founded by Ken Olsen and Harlan Anderson in 1957. Olsen was president unt ...
(DEC) put out the
Rainbow 100
The Rainbow 100 is a microcomputer introduced by Digital Equipment Corporation (DEC) in 1982. This desktop unit had a monitor similar to the VT220 and a dual-CPU box with both Zilog Z80 and Intel 8088 CPUs.
The Rainbow 100 was a triple-use ma ...
to compete with IBM, it came with CP/M-80 using a Z80 chip, CP/M-86 or MS-DOS using an 8088 microprocessor, or
CP/M-86/80 using both. The Z80 and 8088 CPUs ran concurrently.
A benefit of the Rainbow was that it could continue to run 8-bit CP/M software, preserving a user's possibly sizable investment as they moved into the 16-bit world of MS-DOS.
A similar
dual-processor adaption for the was named
CP/M 8-16. The CP/M-86 adaptation for the 8085/8088-based
Zenith Z-100
The Z-100 computer is a personal computer made by Zenith Data Systems (ZDS). It was a competitor to the IBM PC.
Design
The Zenith Data Systems Z-100 is a pre-assembled version of the Heathkit H100 electronic kit. In the same family, the Z-120 is ...
also supported running programs for both of its CPUs.
Soon following CP/M-86, another 16-bit version of CP/M was ''CP/M-68K'' for the
Motorola 68000
The Motorola 68000 (sometimes shortened to Motorola 68k or m68k and usually pronounced "sixty-eight-thousand") is a 16/32-bit complex instruction set computer (CISC) microprocessor, introduced in 1979 by Motorola Semiconductor Products Sector ...
. The original version of CP/M-68K in 1982 was written in
Pascal/MT+68k, but it was ported to C later on. CP/M-68K, already running on the Motorola
EXORmacs
VERSAdos is an operating system dating back to the early 1980s for use on the Motorola 68000 development system called the ''EXORmacs'' which featured the VERSAbus and an array of option cards. They were typically connected to CDC Phoenix disk driv ...
systems, was initially to be used in the
Atari ST
The Atari ST is a line of personal computers from Atari Corporation and the successor to the Atari 8-bit family. The initial model, the Atari 520ST, had limited release in April–June 1985 and was widely available in July. It was the first pers ...
computer, but Atari decided to go with a newer disk operating system called
GEMDOS
GEM (for Graphics Environment Manager) is an operating environment released by Digital Research (DRI) in 1985 for use with the DOS operating system on Intel 8088 and Motorola 68000 microprocessors.
GEM is known primarily as the graphical user i ...
. CP/M-68K was also used on the SORD M68 and M68MX computers.
In 1982, there was also a port from CP/M-68K to the 16-bit
Zilog Z8000 for the
Olivetti M20
The Olivetti M20 is a Zilog Z8000 based computer designed and released by Olivetti in 1982. Although it offered good performance, it suffered from a lack of software due to its use of the Z8000 processor and custom operating system, PCOS. The com ...
, written in
C, named ''CP/M-8000''.
These 16-bit versions of CP/M required application programs to be re-compiled for the new CPUs. Some programs written in
assembly language
In computer programming, assembly language (or assembler language, or symbolic machine code), often referred to simply as Assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence be ...
could be
automatically translated for a new processor. One tool for this was Digital Research's
XLT86
A source-to-source translator, source-to-source compiler (S2S compiler), transcompiler, or transpiler is a type of translator that takes the source code of a program written in a programming language as its input and produces an equivalent sou ...
, which translated .ASM source code for the Intel 8080 processor into .A86 source code for the Intel 8086. The translator would also optimize the output for code size and take care of calling conventions, so that
CP/M-80 and
MP/M-80 programs could be ported to the
CP/M-86
CP/M-86 was a version of the CP/M operating system that Digital Research (DR) made for the Intel 8086 and Intel 8088. The system commands are the same as in CP/M-80. Executable files used the relocatable .CMD file format. Digital Research als ...
and
MP/M-86
MP/M (Multi-Programming Monitor Control Program) is a discontinued 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 u ...
platforms automatically. XLT86 itself was written in
PL/I-80 and was available for CP/M-80 platforms as well as for
VAX/VMS.
Displacement by MS-DOS
Many expected that CP/M would be the standard operating system for 16-bit computers.
In 1980 IBM approached Digital Research, at
Bill Gates
William Henry Gates III (born October 28, 1955) is an American business magnate and philanthropist. He is a co-founder of Microsoft, along with his late childhood friend Paul Allen. During his career at Microsoft, Gates held the positions ...
' suggestion,
to license a forthcoming version of CP/M for its new product, the
IBM Personal Computer
The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first microcomputer released in the IBM PC model line and the basis for the IBM PC compatible de facto standard. Released on August 12, 1981, it was created by a team ...
. Upon the failure to obtain a signed
non-disclosure agreement
A non-disclosure agreement (NDA) is a legal contract or part of a contract between at least two parties that outlines confidential material, knowledge, or information that the parties wish to share with one another for certain purposes, but wish ...
, the talks failed, and IBM instead contracted with Microsoft to provide an operating system.
The resulting product,
MS-DOS
MS-DOS ( ; acronym for Microsoft Disk Operating System, also known as Microsoft DOS) is an operating system for x86-based personal computers mostly developed by Microsoft. Collectively, MS-DOS, its rebranding as IBM PC DOS, and a few ope ...
, soon began outselling CP/M.
Many of the basic concepts and mechanisms of early versions of MS-DOS 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.). MS-DOS's main innovation was its
FAT
In nutrition science, nutrition, biology, and chemistry, fat usually means any ester of fatty acids, or a mixture of such chemical compound, compounds, most commonly those that occur in living beings or in food.
The term often refers spec ...
file system
In computing, file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is stored and retrieved. Without a file system, data placed in a storage medium would be one larg ...
. This similarity made it easier to port popular CP/M software like
WordStar and
dBase
dBase (also stylized dBASE) was one of the first database management systems for microcomputers and the most successful in its day. The dBase system includes the core database engine, a query system, a forms engine, and a programming language ...
. 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 of memory, while CP/M could run in 16 KB if necessary), more commands were built into the
command-line shell
A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
, making MS-DOS somewhat faster and easier to use on floppy-based computers.
Although one of the first peripherals for the IBM PC was a SoftCard-like expansion card that let it run 8-bit CP/M software,
''InfoWorld'' stated in 1984 that efforts to introduce CP/M to the home market had been largely unsuccessful and most CP/M software was too expensive for home users.
In 1986 the magazine stated that Kaypro had stopped production of 8-bit CP/M-based models to concentrate on sales of MS-DOS compatible systems, long after most other vendors had ceased production of new equipment and software for CP/M.
CP/M rapidly lost market share as the microcomputing market moved to the IBM-compatible platform, and it never regained its former popularity. ''
Byte
The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable unit ...
'' 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 S-100 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. To reflect this compatibility the name was changed, and CP/M-86 became
DOS Plus, which in turn became
DR-DOS
DR-DOS (written as DR DOS, without a hyphen, in versions up to and including 6.0) is a disk operating system for IBM PC compatibles. Upon its introduction in 1988, it was the first DOS attempting to be compatible with IBM PC DOS and MS-D ...
.
ZCPR
ZCPR
(the Z80 Command Processor Replacement) was introduced on 2 February 1982 as a drop-in replacement for the standard Digital Research console 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 at the time), Ron Fowler, Charlie Strom, Bob Mathias, 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 is a state in the Mid-Atlantic and Northeastern regions of the United States. It is bordered on the north and east by the state of New York; on the east, southeast, and south by the Atlantic Ocean; on the west by the Delaware ...
.
ZCPR2 was released on 14 February 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 and 8085 systems.
ZCPR3
was released on 14 July 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
The Z80 is an 8-bit microprocessor introduced by Zilog as the startup company's first product. The Z80 was conceived by Federico Faggin in late 1974 and developed by him and his 11 employees starting in early 1975. The first working samples were ...
microprocessor. Features of ZCPR as of version 3 included shells, aliases, I/O redirection, flow control, named directories, search paths, custom menus, passwords, and online help. In January 1987, Richard Conn stopped developing ZCPR, and Echelon asked Jay Sage (who already had a privately enhanced ZCPR 3.1) to continue work on it. Thus, ZCPR 3.3 was developed and released. ZCPR 3.3 no longer supported the 8080 series of microprocessors, and added the most features of any upgrade in the ZCPR line. ZCPR 3.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.
Hardware model
![Commodore CP-M cartridge for the C64 (main)](https://upload.wikimedia.org/wikipedia/commons/3/30/Commodore_CP-M_cartridge_for_the_C64_%28main%29.jpg)
A minimal 8-bit CP/M system would contain the following components:
* A
computer terminal using the
ASCII
ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because of ...
character set
* An Intel 8080 (and later the 8085) or
Zilog Z80 microprocessor
** The
NEC V20 and
V30 processors support an 8080-emulation mode that can run 8-bit CP/M on a PC DOS/MS-DOS computer so equipped, though any PC can also run the 16-bit CP/M-86.
* At least 16 kilobytes of
RAM, beginning at address 0
* A means to
bootstrap the first sector of the diskette
* At least one
floppy-disk 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 processor since the Z80 was compatible with 8080 code. While the Digital Research distributed core of CP/M (BDOS, CCP, core transient commands) did not use any of the Z80-specific instructions, many Z80-based systems used Z80 code in the system-specific BIOS, and many applications were dedicated to Z80-based CP/M machines.
Digital Research subsequently partnered with Zilog and American Microsystems to produce Personal CP/M, a ROM-based version of the operating system aimed at lower-cost systems that could potentially be equipped without disk drives.
First featured in the Sharp MZ-800, a cassette-based system with optional disk drives,
Personal CP/M was described as having been "rewritten to take advantage of the enhanced Z-80 instruction set" as opposed to preserving portability with the 8080. American Microsystems announced a Z80-compatible microprocessor, the S83, featuring 8 KB of in-package ROM for the operating system and BIOS, together with comprehensive logic for interfacing with 64-kilobit dynamic RAM devices.
On most machines the bootstrap was a minimal
bootloader in
ROM
Rom, or ROM may refer to:
Biomechanics and medicine
* Risk of mortality, a medical classification to estimate the likelihood of death for a patient
* Rupture of membranes, a term used during pregnancy to describe a rupture of the amniotic sac
* R ...
combined with some means of minimal
bank switching or a means of injecting code on the bus (since the 8080 needs to see boot code at Address 0 for start-up, while CP/M needs RAM there); for others, this bootstrap had to be entered into memory using
front-panel 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
Osborne may refer to:
* Osborne (name)
Places Australia
* Osborne, South Australia (disambiguation), places associated with the suburb in the Adelaide metropolitan area
* Osborne, New South Wales, a rural community in the Riverina region
Can ...
machines used the 8th bit set to indicate an underlined character.
WordStar used the 8th bit as an end-of-word marker. 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
In the 8-bit versions, while running, the CP/M operating system loaded into memory had three components:
* ''Basic Input/Output System'' (BIOS),
* ''Basic Disk Operating System'' (BDOS),
* ''Console Command Processor'' (CCP).
The BIOS and BDOS were memory-resident, while the CCP was memory-resident unless overwritten by an application, in which case it was automatically reloaded after the application finished running. A number of transient commands for standard utilities were also provided. The transient commands resided in
file
File or filing may refer to:
Mechanical tools and processes
* File (tool), a tool used to ''remove'' fine amounts of material from a workpiece
**Filing (metalworking), a material removal process in manufacturing
** Nail file, a tool used to gent ...
s with the
extension
Extension, extend or extended may refer to:
Mathematics
Logic or set theory
* Axiom of extensionality
* Extensible cardinal
* Extension (model theory)
* Extension (predicate logic), the set of tuples of values that satisfy the predicate
* E ...
.COM on disk.
The BIOS directly controlled hardware components other than the CPU and main memory. It contained functions such as character input and output and the reading and writing of disk sectors. The BDOS implemented the CP/M
file system
In computing, file system or filesystem (often abbreviated to fs) is a method and data structure that the operating system uses to control how data is stored and retrieved. Without a file system, data placed in a storage medium would be one larg ...
and some input/output abstractions (such as redirection) on top of the BIOS. The CCP took user commands and either executed them directly (internal commands such as DIR to show a directory or ERA to delete a file) or loaded and started an executable file of the given name (transient commands such as PIP.COM to copy files or STAT.COM to show various file and system information). Third-party applications for CP/M were also essentially transient commands.
The BDOS, CCP and standard transient commands 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 to allow transient programs to use the additional memory space. A utility program (MOVCPM) was provided with system distribution that allowed relocating the object code to different memory areas. The utility program adjusted the addresses in absolute jump and subroutine call instructions to new addresses required by the new location of the operating system in processor memory. This newly patched version could then be saved on a new disk, allowing application programs to access the additional memory made available by moving the system components. Once installed, the operating system (BIOS, BDOS and CCP) was stored in reserved areas at the beginning of any disk which would be used to boot the system. On start-up, the bootloader (usually contained in a ROM firmware chip) 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. From version 1.1 or 1.2 onwards, changing a disk then trying to write to it before its directory was read would cause a fatal error to be signalled. This avoided overwriting the disk but required a reboot and loss of the data that was to be stored on disk.
The majority of the complexity in CP/M was isolated in the BDOS, and to a lesser extent, the CCP and transient commands. This meant that by porting the limited number of simple routines 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 (a
hardware abstraction layer
Hardware abstractions are sets of routines in software that provide programs with access to hardware resources through programming interfaces. The programming interface allows all devices in a particular class ''C'' of hardware devices to be acce ...
), 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.
Console Command Processor
![Commodore C128 CPM Screenshot 2 full](https://upload.wikimedia.org/wikipedia/commons/e/ec/Commodore_C128_CPM_Screenshot_2_full.jpg)
The Console Command Processor, or CCP, accepted input from the keyboard and conveyed results to the terminal. CP/M itself would work with either a printing terminal or a video terminal. All CP/M commands had to be typed in on the
command line. The console would most often display the
A>
prompt, to indicate the current default disk drive. When used with a video terminal, this would usually be followed by a blinking
cursor
Cursor may refer to:
* Cursor (user interface), an indicator used to show the current position for user interaction on a computer monitor or other display device
* Cursor (databases), a control structure that enables traversal over the records in ...
supplied by the terminal. The CCP would await input from the user. A CCP internal command, of the form drive letter followed by a colon, could be used to select the default drive. For example, typing
B:
and pressing enter at the command prompt would change the default drive to B, and the command prompt would then become
B>
to indicate this change.
CP/M's
command-line interface
A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
was patterned after the operating systems from
Digital Equipment, such as
RT-11 for the
PDP-11
The PDP-11 is a series of 16-bit minicomputers sold by Digital Equipment Corporation (DEC) from 1970 into the 1990s, one of a set of products in the Programmed Data Processor (PDP) series. In total, around 600,000 PDP-11s of all models were sold, ...
and
OS/8 for the
PDP-8. Commands took the form of a keyword followed by a list of parameters separated by spaces or special characters. Similar to a Unix
shell builtin
In computing, a shell builtin is a command or a function, called from a shell, that is executed directly in the shell itself, instead of an external executable program which the shell would load and execute.
Shell builtins work significantly fast ...
, 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), the name of the old
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. Different programs could and did use different characters.
The CP/M Console Command Processor includes
DIR,
ERA
An era is a span of time defined for the purposes of chronology or historiography, as in the regnal eras in the history of a given monarchy, a calendar era used for a given calendar, or the geological eras defined for the history of Earth.
Compa ...
,
REN Ren or REN may refer to:
Abbreviations
* Orenburg Tsentralny Airport, IATA code REN, civil airport in Russia
* Redes Energéticas Nacionais (REN), Portuguese company
* Renanthera, abbreviated as Ren, orchid genus
* Ringer equivalence number ( ...
,
SAVE,
TYPE
Type may refer to:
Science and technology Computing
* Typing, producing text via a keyboard, typewriter, etc.
* Data type, collection of values used for computations.
* File type
* TYPE (DOS command), a command to display contents of a file.
* Ty ...
, and
USER
Ancient Egyptian roles
* User (ancient Egyptian official), an ancient Egyptian nomarch (governor) of the Eighth Dynasty
* Useramen, an ancient Egyptian vizier also called "User"
Other uses
* User (computing), a person (or software) using an ...
as
built-in
Built-in, builtin, or built in may refer to:
Computing
* Shell builtin, a command or a function executed directly in the shell itself
* Builtin function, in computer software and compiler theory
Other uses
* Built-in behavior, of a living organis ...
commands.
Transient commands in CP/M include
ASM,
DDT
Dichlorodiphenyltrichloroethane, commonly known as DDT, is a colorless, tasteless, and almost odorless crystalline chemical compound, an organochloride. Originally developed as an insecticide, it became infamous for its environmental impacts. ...
,
DUMP
Dump generally refers to a place for disposal of solid waste, a rubbish dump, or landfill. The word has other uses alone or in combination, and may refer to:
* Midden, historically a dump for domestic waste
* Dump job, a term for criminal disposal ...
,
ED,
LOAD
Load or LOAD may refer to:
Aeronautics and transportation
*Load factor (aeronautics), the ratio of the lift of an aircraft to its weight
*Passenger load factor, the ratio of revenue passenger miles to available seat miles of a particular transpo ...
, ,
PIP,
STAT
STAT, Stat. , or stat may refer to:
* Stat (system call), a Unix system call that returns file attributes of an inode
* ''Stat'' (TV series), an American sitcom that aired in 1991
* Stat (website), a health-oriented news website
* STAT protein, a ...
,
SUBMIT, and
SYSGEN.
CP/M Plus (CP/M Version 3) includes DIR (display list of files from a directory except those marked with the SYS attribute),
DIRSYS /
DIRS (list files marked with the SYS attribute in the directory),
ERASE
Erase may refer to:
*Data erasure, a method of software-based overwriting that completely destroys all electronic data
*Data remanence, the residual representation of data that has been, in some way, nominally erased or removed
* ''Erase'' (album ...
/ ERA (delete a file),
RENAME
Rename may refer to:
* Rename (computing), rename of a file on a computer
* RENAME (command), command to rename a file in various operating systems
* Rename (relational algebra)
In relational algebra, a rename is a unary operation written as \r ...
/ REN (rename a file), TYPE /
TYP (display contents of an ASCII character file), and USER /
USE
Use may refer to:
* Use (law), an obligation on a person to whom property has been conveyed
* Use (liturgy), a special form of Roman Catholic ritual adopted for use in a particular diocese
* Use–mention distinction, the distinction between using ...
(change user number) as built-in commands:
CP/M 3 allows the user to abbreviate the built-in commands.
Transient commands in CP/M 3 include
COPYSYS,
DATE,
DEVICE,
DUMP
Dump generally refers to a place for disposal of solid waste, a rubbish dump, or landfill. The word has other uses alone or in combination, and may refer to:
* Midden, historically a dump for domestic waste
* Dump job, a term for criminal disposal ...
,
ED,
GET
Get or GET may refer to:
* Get (animal), the offspring of an animal
* Get (divorce document), in Jewish religious law
* GET (HTTP), a type of HTTP request
* "Get" (song), by the Groggers
* Georgia Time, used in the Republic of Georgia
* Get AS, a ...
,
HELP
Help is a word meaning to give aid or signal distress.
Help may refer to:
Arts, entertainment, and media
Films
* ''Help'' (2010 film), a Bollywood horror film
* ''Help'' (2021 theatrical film), a British psychological thriller film
* '' ...
,
HEXCOM,
INITDIR,
LINK,
MAC,
PIP,
PUT,
RMAC
The Rocky Mountain Athletic Conference (RMAC), commonly known as the Rocky Mountain Conference (RMC) from approximately 1910 through the late 1960s, is a List of NCAA conferences, college athletic conference affiliated with the National Collegiat ...
,
SET
Set, The Set, SET or SETS may refer to:
Science, technology, and mathematics Mathematics
*Set (mathematics), a collection of elements
*Category of sets, the category whose objects and morphisms are sets and total functions, respectively
Electro ...
,
SETDEF,
SHOW
Show or The Show may refer to:
Competition, event, or artistic production
* Agricultural show, associated with agriculture and animal husbandry
* Animal show, a judged event in the hobby of animal fancy
** Cat show
** Dog show
** Horse show
** Sp ...
,
SID,
SUBMIT, and
XREF.
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
![CP⁄M Ad, Dec 11, 1978](https://upload.wikimedia.org/wikipedia/commons/1/12/CP%E2%81%84M_Ad%2C_Dec_11%2C_1978.png)
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 console 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 disk sector size fixed at 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.
Customization was required because hardware choices were not constrained by compatibility with any one popular standard. For example, some manufacturers used a separate computer terminal, while others designed a built-in integrated video display system. Serial ports for printers and modems could use different types of
UART chips, and port addresses were not fixed. Some machines used memory-mapped I/O instead of the 8080 I/O address space. All of these variations in the hardware were concealed from other modules of the system by use of the BIOS, which used standard entry points for the services required to run CP/M such as character I/O or accessing a disk block. Since support for serial communication to a modem was very rudimentary in the BIOS or may have been absent altogether, it was common practice for CP/M programs that used modems to have a user-installed overlay containing all the code required to access a particular machine's serial port.
Applications
WordStar, one of the first widely used
word processor
A word processor (WP) is a device or computer program that provides for input, editing, formatting, and output of text, often with some additional features.
Word processor (electronic device), Early word processors were stand-alone devices ded ...
s, and
dBase
dBase (also stylized dBASE) was one of the first database management systems for microcomputers and the most successful in its day. The dBase system includes the core database engine, a query system, a forms engine, and a programming language ...
, an early and popular database program for microcomputers, were originally written for CP/M. Two early
outliner
An outliner (or outline processor) is a specialized type of text editor (word processor) used to create and edit outlines, which are text files which have a tree structure, for organization. Textual information is contained in discrete sections ca ...
s,
KAMAS Kamas may mean
* Kamas, Utah
* Kamas (raga), a ragam in Carnatic music
* KAMAS (program), an acronym for ''Knowledge and Mind Amplification System'', an outline processor
* Kamasins, a Samoyedic people
* Kamassian language, an extinct Samoyedic l ...
(Knowledge and Mind Amplification System) and its cut-down successor Out-Think (without programming facilities and retooled for 8080/V20 compatibility) were also written for CP/M, though later rewritten for MS-DOS.
Turbo Pascal, the ancestor of
Borland Delphi, and
Multiplan, the ancestor of
Microsoft Excel
Microsoft Excel is a spreadsheet developed by Microsoft for Microsoft Windows, Windows, macOS, Android (operating system), Android and iOS. It features calculation or computation capabilities, graphing tools, pivot tables, and a macro (comp ...
, also debuted on CP/M before MS-DOS versions became available.
Visicalc, the first-ever spreadsheet program, was made available for CP/M. Another company,
Sorcim, created its
SuperCalc spreadsheet for CP/M, which would go on to become the market leader and de facto standard on CP/M. Supercalc would go on to be a competitor in the spreadsheet market in the MS-DOS world.
AutoCAD, a CAD application from Autodesk debuted on CP/M. A host of compilers and interpreters for popular
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
s of the time (such as
BASIC
BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of general-purpose, high-level programming languages designed for ease of use. The original version was created by John G. Kemeny and Thomas E. Kurtz at Dartmouth College ...
,
Borland
Borland Software Corporation was a computer technology company founded in 1983 by Niels Jensen, Ole Henriksen, Mogens Glad and Philippe Kahn. Its main business was the development and sale of software development and software deployment product ...
's
Turbo Pascal,
FORTRAN and even
PL/I) were available, among them several of the earliest
Microsoft
Microsoft Corporation is an American multinational technology corporation producing computer software, consumer electronics, personal computers, and related services headquartered at the Microsoft Redmond campus located in Redmond, Washing ...
products.
CP/M software often came with
installers that adapted it to a wide variety of computers.
The source code for BASIC programs was easily accessible, and most forms of
copy protection
Copy protection, also known as content protection, copy prevention and copy restriction, describes measures to enforce copyright by preventing the reproduction of software, films, music, and other media.
Copy protection is most commonly found on ...
were ineffective on the operating system.
A Kaypro II owner, for example, would obtain software on Xerox 820 format, then copy it to and run it from Kaypro-format disks.
The lack of standardized graphics support limited
video games
Video games, also known as computer games, are electronic games that involves interaction with a user interface or input device such as a joystick, game controller, controller, computer keyboard, keyboard, or motion sensing device to gener ...
, but various character and text-based games were
ported, such as ''
Telengard
''Telengard'' is a 1982 role-playing dungeon crawler video game developed by Daniel Lawrence and published by Avalon Hill. The player explores a dungeon, fights monsters with magic, and avoids traps in real-time without any set mission other tha ...
'',
''
Gorillas
Gorillas are herbivorous, predominantly ground-dwelling great apes that inhabit the tropical forests of equatorial Africa. The genus ''Gorilla'' is divided into two species: the eastern gorilla and the western gorilla, and either four or fi ...
'',
''
Hamurabi'', ''
Lunar Lander
A lunar lander or Moon lander is a spacecraft designed to land on the surface of the Moon. As of 2021, the Apollo Lunar Module is the only lunar lander to have ever been used in human spaceflight, completing six lunar landings from 1969 to 19 ...
'', along with early
interactive fiction
''
Interactive fiction, often abbreviated IF, is software simulating environments in which players use text commands to control characters and influence the environment. Works in this form can be understood as literary narratives, either in the ...
including the ''
Zork'' series and ''
Colossal Cave Adventure''.
Text adventure specialist
Infocom
Infocom was an American software company based in Cambridge, Massachusetts, that produced numerous works of interactive fiction. They also produced a business application, a relational database called ''Cornerstone (software), Cornerstone''.
...
was one of the few publishers to consistently release their games in CP/M format.
Lifeboat Associates
Lifeboat Associates was a New York City company that was one of the largest microcomputer software distributors in the late 1970s and early 1980s. Lifeboat acted as an independent software broker marketing software to major hardware vendors suc ...
started collecting and distributing user-written "free" software. One of the first was
XMODEM, which allowed reliable file transfers via
modem
A modulator-demodulator or modem is a computer hardware device that converts data from a digital format into a format suitable for an analog transmission medium such as telephone or radio. A modem transmits data by Modulation#Digital modulati ...
and phone line. Another program native to CP/M was the
outline processor
An outliner (or outline processor) is a specialized type of text editor (word processor) used to create and edit outlines, which are text files which have a tree structure, for organization. Textual information is contained in discrete sections ca ...
KAMAS Kamas may mean
* Kamas, Utah
* Kamas (raga), a ragam in Carnatic music
* KAMAS (program), an acronym for ''Knowledge and Mind Amplification System'', an outline processor
* Kamasins, a Samoyedic people
* Kamassian language, an extinct Samoyedic l ...
.
Transient Program Area
The read/write memory between address 0100 hexadecimal and the lowest address of the BDOS was the ''Transient Program Area'' (TPA) available for CP/M application programs. Although all Z80 and 8080 processors could address 64 kilobytes of memory, the amount available for application programs could vary, depending on the design of the particular computer. Some computers used large parts of the address space for such things as BIOS ROMs, or video display memory. As a result, some systems had more TPA memory available than others. Bank switching was a common technique that allowed systems to have a large TPA while switching out ROM or video memory space as needed. CP/M 3.0 allowed parts of the BDOS to be in bank-switched memory as well.
Debugging application
CP/M came with a Dynamic Debugging Tool, nicknamed
DDT
Dichlorodiphenyltrichloroethane, commonly known as DDT, is a colorless, tasteless, and almost odorless crystalline chemical compound, an organochloride. Originally developed as an insecticide, it became infamous for its environmental impacts. ...
(after the insecticide, i.e. a
bug-killer), which allowed memory and program modules to be examined and manipulated, and allowed a program to be executed one step at a time.
Resident programs
CP/M originally did not support the equivalent of
terminate and stay resident (TSR) programs as under DOS. Programmers could write software that could intercept certain operating system calls and extend or alter their functionality. Using this capability, programmers developed and sold auxiliary
desk accessory A desk accessory (DA) in computing is a small transient or auxiliary application that can be run concurrently in a desktop environment with any other application on the system. Early examples, such as Sidekick and Macintosh desk accessories, used s ...
programs, such as
SmartKey, a keyboard utility to assign any string of bytes to any key.
CP/M 3, however, added support for
dynamically loadable ''Resident System Extensions'' (RSX).
A so-called ''null command file'' could be used to allow CCP to load an RSX without a transient program.
Similar solutions like RSMs (for ''Resident System Modules'') were also retrofitted to CP/M 2.2 systems by third-parties.
Software installation
Although CP/M provided some
hardware abstraction
Hardware abstractions are sets of routines in software that provide programs with access to hardware resources through programming interfaces. The programming interface allows all devices in a particular class ''C'' of hardware devices to be acce ...
to standardize the interface to disk I/O or console I/O, application programs still typically required installation to make use of all the features of such equipment as printers and terminals. Often these were controlled by
escape sequences which had to be altered for different devices. For example, the escape sequence to select bold face on a printer would have differed among manufacturers, and sometimes among models within a manufacturer's range. This procedure was not defined by the operating system; a user would typically run an installation program that would either allow selection from a range of devices, or else allow feature-by-feature editing of the escape sequences required to access a function. This had to be repeated for each application program, since there was no central operating system service provided for these devices.
The initialization codes for each model of printer had to be written into the application. To use a program such as Wordstar with more than one printer (say, a fast dot-matrix printer or a slower but presentation-quality
daisy wheel
Daisy wheel printing is an impact printing technology invented in 1970 by Andrew Gabor at Diablo Data Systems. It uses interchangeable pre-formed type elements, each with typically 96 glyphs, to generate high-quality output comparable to pre ...
printer), a separate version of Wordstar had to be prepared, and one had to load the Wordstar version that corresponded to the printer selected (and exiting and reloading to change printers).
Disk formats
IBM System/34 and
IBM 3740
IBM 3740 Data Entry System was a data entry system that was announced by IBM in 1973. It recorded data on an 8" diskette, a new recording medium from IBM, for fast, flexible, efficient data entry to either high-production, centralized operations ...
's single-density, single-sided format is CP/M's standard 8-inch
floppy-disk format. No standard 5.25-inch CP/M disk format exists, with Kaypro,
Morrow Designs
Morrow is a word meaning "the next day" in literary English. It also means "morning" in archaic English
Morrow may also refer to:
Places in the United States and Canada United States
*Morrow, Arkansas
*Morrow, Georgia
* Morrow, Louisiana
*Morrow ...
, Osborne, and others each using their own.
''InfoWorld'' estimated in September 1981 that "about two dozen formats were popular enough that software creators had to consider them to reach the broadest possible market".
JRT Pascal
JRT Pascal (Jim Russell Tyson) is an implementation of the Pascal programming language. It was available in the early 1980s on the CP/M operating system.
History
At the end of the 1970s, the most popular Pascal implementation for microcomputers ...
, for example, provided versions on 5.25-inch disk for
North Star
Polaris is a star in the northern circumpolar constellation of Ursa Minor. It is designated α Ursae Minoris ( Latinized to ''Alpha Ursae Minoris'') and is commonly called the North Star or Pole Star. With an apparent magnitude that ...
, Osborne, Apple,
Heath hard sector and
soft sector
Floppy disk format and density refer to the logical and physical layout of data stored on a floppy disk. Since their introduction, there have been many popular and rare floppy disk types, densities, and formats used in computing, leading to much ...
, and
Superbrain, and one 8-inch version.
Ellis Computing also offered its software for both Heath formats, and 16 other 5.25-inch formats including two different TRS-80 CP/M modifications.
Certain disk formats were more popular than others. Most software was available in the Xerox 820 format, and other computers such as the Kaypro II were compatible with it.
No single manufacturer, however, prevailed in the 5.25-inch era of CP/M use, and disk formats were often 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, which allowed transfer of data and programs from one machine to another using the
serial ports that most CP/M machines had.
Various 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 many ways to customize these parameters for every system
but once they had been set, no standardized way existed for a system to load parameters from a disk formatted on another system.
The degree of portability between different CP/M machines depended on the type of disk drive and controller used since many different floppy types existed in the CP/M era in both 8-inch and 5.25-inch format. Disks could be hard or soft sectored, single or double density, single or double sided, 35 track, 40 track, 77 track, or 80 track, and the sector layout, size and interleave could vary widely as well. Although translation programs could allow the user to read disk types from different machines, the drive type and controller were also factors. By 1982, soft-sector, single-sided, 40-track 5.25-inch disks had become the most popular format to distribute CP/M software on as they were used by the most common consumer-level machines of that time, such as the Apple II, TRS-80, Osborne 1, Kaypro II, and IBM PC. A translation program allowed the user to read any disks on his machine that had a similar format—for example, the Kaypro II could read
TRS-80
The TRS-80 Micro Computer System (TRS-80, later renamed the Model I to distinguish it from successors) is a desktop microcomputer launched in 1977 and sold by Tandy Corporation through their Radio Shack stores. The name is an abbreviation of '' ...
,
Osborne
Osborne may refer to:
* Osborne (name)
Places Australia
* Osborne, South Australia (disambiguation), places associated with the suburb in the Adelaide metropolitan area
* Osborne, New South Wales, a rural community in the Riverina region
Can ...
,
IBM PC
The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first microcomputer released in the IBM PC model line and the basis for the IBM PC compatible de facto standard. Released on August 12, 1981, it was created by a team ...
, and
Epson disks. Other disk types such as 80 track or hard sectored were completely impossible to read. The first half of double-sided disks (like those of the Epson QX-10) could be read because CP/M accessed disk tracks sequentially with track 0 being the first (outermost) track of side 1 and track 79 (on a 40-track disk) being the last (innermost) track of side 2. Apple II users were unable to use anything but Apple's GCR format and so had to obtain CP/M software on Apple format disks or else transfer it via serial link.
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
The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first microcomputer released in the IBM PC model line and the basis for the IBM PC compatible de facto standard. Released on August 12, 1981, it was created by a team ...
disk formats, was a contributing factor to the rapid obsolescence of CP/M after 1981.
One of the last notable CP/M-capable machines to appear was the
Commodore 128 in 1985, which had a Z80 for CP/M support in addition to its native mode using a 6502-derivative CPU. Using CP/M required either a
1571
Year 1571 ( MDLXXI) was a common year starting on Monday (link will display the full calendar) of the Julian calendar.
Events
January–June
* January 11 – The Austrian nobility are granted freedom of religion.
* January 23 &nd ...
or
1581
1581 ( MDLXXXI) was a common year starting on Sunday (link will display the full calendar) in the Julian calendar, and a common year starting on Thursday (link will display full calendar) of the Proleptic Gregorian calendar.
Events
Ja ...
disk drive which could read soft-sector 40-track
MFM-format disks.
The first computer to use a 3.5-inch floppy drive, the
Sony SMC-70
The SMC-70 is a microcomputer that was produced by Sony and released in September 1982. The system was initially released for general office use in the United States, with the SMC-70G and SMC-70GP (released in 1983) designed for professional video ...
,
ran CP/M 2.2. The
Commodore 128
The Commodore 128, also known as the C128, C-128, C= 128,The "C=" represents the graphical part of the logo. is the last 8-bit home computer that was commercially released by Commodore Business Machines (CBM). Introduced in January 1985 at the ...
,
Bondwell-2
The Bondwell-2 was an early laptop personal computer running the CP/M operating system. Introduced by Bondwell in 1985, it came with a Zilog Z80 CPU clocked at 4 MHz, 64 kB RAM and 4 kB ROM. It had a 3.5" floppy disk drive, highly unusual for ...
laptop, Micromint/Ciarcia SB-180,
MSX
MSX is a standardized home computer architecture, announced by Microsoft and ASCII Corporation on June 16, 1983. It was initially conceived by Microsoft as a product for the Eastern sector, and jointly marketed by Kazuhiko Nishi, then vice-p ...
and
TRS-80 Model 4 (running Montezuma CP/M 2.2) also supported the use of CP/M with 3.5-inch floppy disks. CP/AM,
Applied Engineering
Applied Engineering, headquartered in Carrollton, TX, was a leading third-party hardware vendor for the Apple II series of computers from the early 1980s until the mid-1990s.
History
{{original research, section, date=September 2018
In its day ...
's version of CP/M for the Apple II, also supported 3.5-inch disks (as well RAM disks on RAM cards compatible with the Apple II Memory Expansion Card).
The
Amstrad PCW
The Amstrad PCW series is a range of personal computers produced by British company Amstrad from 1985 to 1998, and also sold under licence in Europe as the "Joyce" by the German electronics company Schneider in the early years of the series' life. ...
ran CP/M using 3-inch floppy drives at first, and later switched to the 3.5 inch drives.
File system
File names were specified as a string of up to eight characters, followed by a period, followed by a file name extension of up to three characters (
"8.3" filename format). The extension usually identified the type of the file. For example,
.COM
indicated an executable program file, and
.TXT
indicated a file containing
ASCII
ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because of ...
text. Characters in filenames entered at the command prompt were converted to upper case, but this was not enforced by the operating system. Programs (
MBASIC
MBASIC is the Microsoft BASIC implementation of BASIC for the CP/M operating system. MBASIC is a descendant of the original Altair BASIC interpreters that were among Microsoft's first products. MBASIC was one of the two versions of BASIC bundled w ...
is a notable example) were able to create filenames containing lower-case letters, which then could not easily be referenced at the command line.
Each disk drive was identified by a
drive letter
In computer data storage, drive letter assignment is the process of assigning alphabetical identifiers to volume (computing), volumes. Unlike the concept of Unix filesystem, UNIX mount points, where volumes are named and located arbitrarily in a ...
, for example, drive
A
and drive
B
. To refer to a file on a specific drive, the drive letter was prefixed to the file name, separated by a colon, e.g.,
A:FILE.TXT
. With no drive letter prefixed, access was to files on the current default drive.
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
A File Control Block (FCB) is a file system structure in which the state of an open file is maintained. A FCB is managed by the operating system, but it resides in the memory of the program that uses the file, not in operating system memory. This ...
(FCB) by the operating system. Since many application programs (such as
text editors
A text editor is a type of computer program that edits plain text. Such programs are sometimes known as "notepad" software (e.g. Windows Notepad). Text editors are provided with operating systems and software development packages, and can be us ...
) 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 character (
ASCII
ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because of ...
SUB
Sub is a common abbreviation of words beginning with the prefix "sub-". Sub or SUB may also refer to
Places
* Juanda International Airport, Surabaya, Indonesia, IATA code SUB
Computing and technology
* , an HTML tag for subscript
* SUB designate ...
,
hexadecimal
In mathematics and computing, the hexadecimal (also base-16 or simply hex) numeral system is a positional numeral system that represents numbers using a radix (base) of 16. Unlike the decimal system representing numbers using 10 symbols, hexa ...
1A). Determining the
end of 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.
With the advent of larger removable and fixed disk drives, disk de-blocking formulas were employed which resulted in more disk blocks per logical file allocation block. While this allowed for larger file sizes, it also meant that the smallest file which could be allocated increased in size from 1
KB (on single-density drives) to 2 KB (on double-density drives) and so on, up to 32 KB for a file containing only a single byte. This made for inefficient use of disk space if the disk contained a large number of small files.
File modification
time stamps were not supported in releases up to CP/M 2.2, but were an optional feature in
MP/M and CP/M 3.0.
CP/M 2.2 had no subdirectories in the file structure, but provided 16 numbered user areas to organize files on a disk. To change user one had to simply type "User X" at the command prompt, X being the user number. Security was non-existent and considered unnecessary on a personal computer. The user area concept was to make the single-user version of CP/M somewhat compatible with multi-user MP/M 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 USER command allowed the user area to be changed to any area 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. However, files stored in the USER 0 area were accessible to all other users; their location was specified with a prefatory
path
A path is a route for physical travel – see Trail.
Path or PATH may also refer to:
Physical paths of different types
* Bicycle path
* Bridle path, used by people on horseback
* Course (navigation), the intended path of a vehicle
* Desire p ...
, since the files of USER 0 were only visible to someone logged in as USER 0. The user area feature arguably had little utility on small floppy disks, but it was useful for organizing files on machines with
hard drive
A hard disk drive (HDD), hard disk, hard drive, or fixed disk is an electro-mechanical data storage device that stores and retrieves digital data using magnetic storage with one or more rigid rapidly rotating platters coated with magnet ...
s. The intent of the feature was to ease use of the same computer for different tasks. For example, a secretary could do
data entry, then, after switching USER areas, another employee could use the machine to do
billing without their files intermixing.
Graphics
![MBasic 5](https://upload.wikimedia.org/wikipedia/commons/1/17/MBasic_5.21.jpg)
Although graphics-capable S-100 systems existed from the commercialization of the
S-100 bus, CP/M did not provide any standardized graphics support until 1982 with
GSX (Graphics System Extension). Owing to the small amount of available memory, graphics was never a common feature associated with 8-bit CP/M operating systems. Most systems could only display rudimentary
ASCII art
ASCII art is a graphic design technique that uses computers for presentation and consists of pictures pieced together from the 95 printable (from a total of 128) characters defined by the ASCII Standard from 1963 and ASCII compliant chara ...
charts and diagrams in
text mode or by using a custom
character set. Some computers in the
Kaypro line and the
TRS-80 Model 4 had video hardware supporting block graphics characters, and these were accessible to assembler programmers and BASIC programmers using the CHR$ command. The Model 4 could display 640 by 240 pixel graphics with an optional high resolution board.
Derivatives
![J Elwro 804 Junior](https://upload.wikimedia.org/wikipedia/commons/9/9f/J_Elwro_804_Junior.JPG)
A number of CP/M-80 derivatives existed in the former Eastern Bloc under various names, including SCP (), SCP/M, CP/A,
CP/J, CP/KC, CP/KSOB, CP/L, CP/Z, MICRODOS, BCU880, ZOAZ, OS/M, TOS/M, ZSDOS, M/OS, COS-PSA, DOS-PSA, CSOC, CSOS, CZ-CPM and others.
There were also CP/M-86 derivatives named
SCP1700
CP/M-86 was a version of the CP/M operating system that Digital Research (DR) made for the Intel 8086 and Intel 8088. The system commands are the same as in CP/M-80. Executable files used the relocatable .CMD file format. Digital Research als ...
,
CP/K and
K8918-OS.
They were produced by the East German
VEB Robotron and others.
Legacy
A number of behaviors exhibited by
Microsoft Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
are a result of
backward compatibility
Backward compatibility (sometimes known as backwards compatibility) is a property of an operating system, product, or technology that allows for interoperability with an older legacy system, or with input designed for such a system, especially i ...
with MS-DOS, which in turn attempted some backward compatibility with CP/M. The
drive letter
In computer data storage, drive letter assignment is the process of assigning alphabetical identifiers to volume (computing), volumes. Unlike the concept of Unix filesystem, UNIX mount points, where volumes are named and located arbitrarily in a ...
and
8.3 filename
An 8.3 filename (also called a short filename or SFN) is a filename convention used by old versions of DOS and versions of Microsoft Windows prior to Windows 95 and Windows NT 3.5. It is also used in modern Microsoft operating systems as an alterna ...
conventions in MS-DOS (and early Windows versions) were originally adopted from CP/M.
The
wildcard matching characters used by Windows (? and *) are based on those of CP/M,
as are the reserved filenames used to
redirect output to a
printer
Printer may refer to:
Technology
* Printer (publishing), a person or a company
* Printer (computing), a hardware device
* Optical printer for motion picture films
People
* Nariman Printer ( fl. c. 1940), Indian journalist and activist
* Jame ...
("PRN:"), and the
console ("CON:"). The drive names A and B were used to designate the two floppy disk drives that CP/M systems typically used; when hard drives appeared, they were designated C, which survived into MS-DOS as the
C:\>
command prompt.
The
control character ^Z
marking the
end of some text files can also be attributed to CP/M.
Various commands in DOS were modelled after CP/M commands; some of them even carried the same name, like DIR, REN/RENAME, or TYPE (and ERA/ERASE in DR-DOS). File extensions like
.TXT
A text file (sometimes spelled textfile; an old alternative name is flatfile) is a kind of computer file that is structured as a sequence of lines of electronic text. A text file exists stored as data within a computer file system. In operat ...
or
.COM
The domain name .com is a top-level domain (TLD) in the Domain Name System (DNS) of the Internet. Added at the beginning of 1985, its name is derived from the word ''commercial'', indicating its original intended purpose for domains registere ...
are still used to identify file types on many operating systems.
In 1997 and 1998,
Caldera
A caldera ( ) is a large cauldron-like hollow that forms shortly after the emptying of a magma chamber in a volcano eruption. When large volumes of magma are erupted over a short time, structural support for the rock above the magma chamber is ...
released some CP/M 2.2 binaries and
source code
In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
under an
open source license
An open-source license is a type of license for computer software and other products that allows the source code, blueprint or design to be used, modified and/or shared under defined terms and conditions. This allows end users and commercial compan ...
, also allowing the redistribution and modification of further collected Digital Research files related to the CP/M and MP/M families through Tim Olmstead's "The Unofficial CP/M Web site" since 1997.
After Olmstead's death on 12 September 2001,
the distribution license was refreshed and expanded by
Lineo
Lineo was a thin client and embedded systems company spun out of Caldera Thin Clients by 20 July 1999.
History
Caldera Thin Clients, Inc., had been created as a subsidiary of Caldera, Inc., on 2 September 1998. Caldera Thin Clients' original ...
, who had meanwhile become the owner of those Digital Research assets, on 19 October 2001.
In October 2014, to mark the 40th anniversary of the first presentation of CP/M, the
Computer History Museum
The Computer History Museum (CHM) is a museum of computer history, located in Mountain View, California. The museum presents stories and artifacts of Silicon Valley and the information age, and explores the computing revolution and its impact on ...
released early
source code
In computing, source code, or simply code, is any collection of code, with or without comments, written using a human-readable programming language, usually as plain text. The source code of a program is specially designed to facilitate the wo ...
versions of CP/M.
, there are a number of active
vintage, hobby and retro-computer people and groups, and some small commercial businesses, still developing and supporting computer platforms that use CP/M (mostly 2.2) as the host operating system.
See also
*
Amstrad CP/M Plus character set
*
CPMulator
*
CP/NET and
CP/NOS
*
Cromemco DOS
Cromemco DOS or CDOS (an abbreviation for Cromemco Disk Operating System) is a CP/M-like operating system by Cromemco designed to allow users of Cromemco microcomputer systems to create and manipulate disk files using symbolic names.
Overview
...
, an operating system independently derived from CP/M
*
Eagle Computer
Eagle Computer of Los Gatos, California, United States, was an early microcomputer manufacturing company. Spun off from Audio-Visual Laboratories (AVL), it first sold a line of popular CP/M computers which were highly praised in the computer mag ...
*
IMDOS
*
List of machines running CP/M
*
MP/M
*
MP/NET and
MP/NOS
*
Multiuser DOS
*
Pascal/MT+
*
SpeedStart CP/M
*
86-DOS
86-DOS (known internally as QDOS, for Quick and Dirty Operating System) is a discontinued operating system developed and marketed by Seattle Computer Products (SCP) for its Intel 8086-based computer kit.
86-DOS shared a few of its commands wit ...
References
Further reading
*
*
*
*
*
*
* (NB. This PBS series includes the details of IBM's choice of Microsoft DOS over Digital Research's CP/M for the IBM PC)
*
External links
The Unofficial CP/M Web site (founded by Tim Olmstead)- Includes source code
- includes ZCPR materials
- John C. Elliott's technical information site
CP/M Internals- CP/M internals
MaxFrame's Digital Research CP/M page*
* ftp://ftp.uni-bayreuth.de/pub/pc/caldera/cpm2.2/
{{DEFAULTSORT:Cp M
CP/M,
CP/M variants
Microcomputer software
Disk operating systems
Digital Research operating systems
Discontinued operating systems
Floppy disk-based operating systems
Free software operating systems
History of computing
1974 software
Formerly proprietary software