SCP (operating system)
   HOME

TheInfoList



OR:

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 and software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ...
created in 1974 for
Intel 8080 The Intel 8080 is Intel's second 8-bit computing, 8-bit microprocessor. Introduced in April 1974, the 8080 was an enhanced successor to the earlier Intel 8008 microprocessor, although without binary compatibility.'' Electronic News'' was a week ...
/ 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 (P ...
s by
Gary Kildall Gary Arlen Kildall (; May 19, 1942 – July 11, 1994) was an American computer scientist and microcomputer entrepreneur. During the 1970s, Kildall created the CP/M operating system among other operating systems and programming tools, and s ...
of Digital Research, Inc. CP/M is a
disk operating system A disk operating system (DOS) is a computer operating system that requires a disk or other direct-access storage device as secondary storage. A DOS provides a file system and a means for loading and running computer program, programs stored on th ...
and its purpose is to organize files on a magnetic storage medium, and to load and run programs stored on a disk. Initially confined to single-tasking on
8-bit processor In computer architecture, 8-bit integers or other data units are those that are 8 bits wide (1 octet). Also, 8-bit central processing unit (CPU) and arithmetic logic unit (ALU) architectures are those that are based on registers or data buses ...
s and no more than 64
kilobyte The kilobyte is a multiple of the unit byte for Computer data storage, digital information. The International System of Units (SI) defines the prefix ''kilo-, kilo'' as a multiplication factor of 1000 (103); therefore, one kilobyte is 1000&nbs ...
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 mo ...
s. CP/M's core components are the ''Basic Input/Output System'' (BIOS), the ''Basic Disk Operating System'' (BDOS), and the ''Console Command Processor'' (CCP). The BIOS consists of drivers that deal with devices and system hardware. The BDOS implements the file system and provides system services to applications. The CCP is the
command-line interpreter A command-line interface (CLI) is a means of interacting with software via commands each formatted as a line of text. Command-line interfaces emerged in the mid-1960s, on computer terminals, as an interactive and more user-friendly alternativ ...
and provides some built-in commands. CP/M eventually became the '' de facto'' standard and the dominant operating system for microcomputers, in combination with the
S-100 bus The S-100 bus or Altair bus, later standardized as IEEE 696-1983 ''(inactive-withdrawn)'', is an early computer bus designed in 1974 as a part of the Altair 8800. The bus was the first industry standard expansion bus for the microcomputer in ...
computers. This
computer platform A computing platform, digital platform, or software platform is the infrastructure on which software is executed. While the individual components of a computing platform may be obfuscated under layers of abstraction, the ''summation of the requi ...
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 port an application to 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 A hacker is a person skilled in information technology who achieves goals and solves problems by non-standard means. The term has become associated in popular culture with a security hackersomeone with knowledge of bugs or exploits to break ...
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 in popularity by
DOS DOS (, ) is a family of disk-based operating systems for IBM PC compatible computers. The DOS family primarily consists of IBM PC DOS and a rebranded version, Microsoft's MS-DOS, both of which were introduced in 1981. Later compatible syste ...
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 List of IBM Personal Computer models, IBM PC model line and the basis for the IBM PC compatible ''de facto'' standard. Released on ...
.


History


Early history

Gary Kildall Gary Arlen Kildall (; May 19, 1942 – July 11, 1994) was an American computer scientist and microcomputer entrepreneur. During the 1970s, Kildall created the CP/M operating system among other operating systems and programming tools, and s ...
originally developed CP/M during 1974, as an operating system to run on an Intel Intellec-8 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 ...
8-inch floppy-disk drive interfaced via a custom
floppy-disk controller A floppy-disk controller (FDC) is a hardware component that directs and controls reading from and writing to a computer's floppy disk drive (FDD). It has evolved from a discrete set of components on one or more circuit boards to a special-purpo ...
. It was written in Kildall's own
PL/M PL/M, an acronym for ''Programming Language for Microcomputers'', is a high-level language conceived and developed by Gary Kildall in 1973 for Hank Smith at Intel for the Intel 8008. It was later expanded for the newer Intel 8080. The 8080 had ...
(''
Programming Language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
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 "Mo ...
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, enterprise ...
, which Kildall had used as a development environment. CP/M supported a wide range of computers based on the
8080 The Intel 8080 is Intel's second 8-bit microprocessor. Introduced in April 1974, the 8080 was an enhanced successor to the earlier Intel 8008 microprocessor, although without binary compatibility.'' Electronic News'' was a weekly trade newspa ...
and
Z80 The Zilog Z80 is an 8-bit microprocessor designed by Zilog that played an important role in the evolution of early personal computing. Launched in 1976, it was designed to be software-compatible with the Intel 8080, offering a compelling altern ...
CPUs. An early outside licensee of CP/M was Gnat Computers, an early microcomputer developer out of
San Diego, California San Diego ( , ) is a city on the Pacific coast of Southern California, adjacent to the Mexico–United States border. With a population of over 1.4 million, it is the List of United States cities by population, eighth-most populous city in t ...
. In 1977, the company was granted the license to use CP/M 1.0 for any micro they desired for $90. Within the year, demand for CP/M was so high that Digital Research was able to increase the license to tens of thousands of dollars. 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 Naval Postgraduate School (NPS) is a Naval command with a graduate university mission, operated by the United States Navy and located in Monterey, California. The NPS mission is to provide "defense-focused graduate education, including clas ...
(NPS), 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 In computing, a resident monitor is a type of system software program that was used in many early computers from the 1950s to 1970s. It can be considered a precursor to the operating system. The name is derived from a program which is always pre ...
—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 (''Programming Language for Prime''), both suggesting IBM's
PL/I PL/I (Programming Language One, pronounced and sometimes written PL/1) is a procedural, imperative computer programming language initially developed by IBM. It is designed for scientific, engineering, business and system programming. It has b ...
; 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. It is known for its excellent performance and advanced features. Among its three versions, CP-40/CMS was an im ...
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 In computing, a compiler is a computer program that Translator (computing), translates computer code written in one programming language (the ''source'' language) into another language (the ''target'' language). The name "compiler" is primaril ...
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 A personal computer, commonly referred to as PC or computer, is a computer designed for individual use. It is typically used for tasks such as Word processor, word processing, web browser, internet browsing, email, multimedia playback, and PC ...
" 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

By September 1981, Digital Research had sold more than CP/M licenses; ''
InfoWorld ''InfoWorld'' (''IW'') is an American 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 is International Data Group, and its sister pu ...
'' 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". Even companies with proprietary operating systems, such as Heath/Zenith ( HDOS), offered CP/M as an alternative for their 8080/Z80-based systems; by contrast, no comparable standard existed for computers based on the also popular
6502 The MOS Technology 6502 (typically pronounced "sixty-five-oh-two" or "six-five-oh-two") William Mensch and the moderator both pronounce the 6502 microprocessor as ''"sixty-five-oh-two"''. is an 8-bit microprocessor that was designed by a small ...
CPU. They supported CP/M because of its large library of software. The
Xerox 820 The Xerox 820 Information Processor is an 8-bit desktop computer sold by Xerox in the early 1980s. The computer runs under the CP/M operating system and uses floppy disk drives for mass storage. The microprocessor board is a licensed variant of th ...
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 CP/M manual as compensation for Digital Research's documentation, which ''InfoWorld'' described as atrocious, incomplete, incomprehensible, and poorly indexed.) By 1984,
Columbia University Columbia University in the City of New York, commonly referred to as Columbia University, is a Private university, private Ivy League research university in New York City. Established in 1754 as King's College on the grounds of Trinity Churc ...
used the same
source code In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer. Since a computer, at base, only ...
to build Kermit binaries for more than a dozen different CP/M systems, plus two generic versions. 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'' 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 sequence In computer science, an escape sequence is a combination of characters that has a meaning other than the literal characters contained therein; it is marked by one or more preceding (and possibly terminating) characters. Examples * In C and ma ...
s 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 In computer science, an instruction set architecture (ISA) is an abstract model that generally defines how software controls the CPU in a computer or a family of computers. A device or program that executes instructions described by that ISA, s ...
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 businessman and philanthropist. A pioneer of the microcomputer revolution of the 1970s and 1980s, he co-founded the software company Microsoft in 1975 with his childhood friend ...
claimed that the
Apple II Apple II ("apple Roman numerals, two", stylized as Apple ][) is a series of microcomputers manufactured by Apple Computer, Inc. from 1977 to 1993. The Apple II (original), original Apple II model, which gave the series its name, was designed ...
with a Z-80 SoftCard was the single most-popular CP/M hardware platform. Digital Research stated in 1982 that the operating system had been licensed for more than 450 types of computer systems. Many different brands of machines ran the operating system, some notable examples being the
Altair 8800 The Altair 8800 is a microcomputer introduced in 1974 by Micro Instrumentation and Telemetry Systems (MITS) based on the Intel 8080 CPU. It was the first commercially successful personal computer. Interest in the Altair 8800 grew quickly after i ...
, the IMSAI 8080, the
Osborne 1 The Osborne 1 is the first commercially successful portable computer, released on April 3, 1981 by Osborne Computer Corporation. It weighs , cost US$1,795, and runs the CP/M 2.2 operating system. It is powered from a wall socket, as it has no ...
and Kaypro
luggable A portable computer is a computer designed to be easily moved from one place to another, as opposed to those designed to remain stationary at a single location such as desktop computer, desktops and workstations. These computers usually in ...
s, and
MSX MSX is a standardized home computer architecture, announced by 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, the director at ASCII Corpo ...
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 United Kingdom, British company Amstrad from 1985 to 1998, and also sold under licence in Europe as the "Joyce" by the German electronics company Schneider Computer Division, Schn ...
. In the UK, CP/M was also available on Research Machines educational computers (with the CP/M source code published as an educational resource), and for the
BBC Micro The BBC Microcomputer System, or BBC Micro, is a family of microcomputers developed and manufactured by Acorn Computers in the early 1980s as part of the BBC's Computer Literacy Project. Launched in December 1981, it was showcased across severa ...
when equipped with a Z80 co-processor. Furthermore, it was available for the
Amstrad CPC The Amstrad CPC (short for "Colour Personal Computer") is a series of 8-bit home computers produced by Amstrad between 1984 and 1990. It was designed to compete in the mid-1980s home computer market dominated by the Commodore 64 and the ZX Spec ...
series, the
Commodore 128 The Commodore 128, also known as the C128, is the last 8-bit home computer that was commercially released by Commodore Business Machines (CBM). Introduced in January 1985 at the CES in Las Vegas, it appeared three years after its predecessor, t ...
,
TRS-80 The TRS-80 Micro Computer System (TRS-80, later renamed the Model I to distinguish it from successors) is a desktop microcomputer developed by American company Tandy Corporation and sold through their Radio Shack stores. Launched in 1977, it is ...
, and later models of the
ZX Spectrum The ZX Spectrum () is an 8-bit computing, 8-bit home computer developed and marketed by Sinclair Research. One of the most influential computers ever made and one of the all-time bestselling British computers, over five million units were sold. ...
. CP/M 3 was also used on the NIAT, a custom handheld computer designed for A. C. Nielsen's internal use with 1  MB of
SSD A solid-state drive (SSD) is a type of solid-state storage device that uses Integrated circuit, integrated circuits to store data persistence (computer science), persistently. It is sometimes called semiconductor storage device, solid-stat ...
memory.


Multi-user

In 1979, a multi-user compatible derivative of CP/M was released.
MP/M 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 ...
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

The last 8-bit version of CP/M was version 3, often called CP/M Plus, released in 1983. Its BDOS was designed by David K. 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 CPC The Amstrad CPC (short for "Colour Personal Computer") is a series of 8-bit home computers produced by Amstrad between 1984 and 1990. It was designed to compete in the mid-1980s home computer market dominated by the Commodore 64 and the ZX Spec ...
, 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, is the last 8-bit home computer that was commercially released by Commodore Business Machines (CBM). Introduced in January 1985 at the CES in Las Vegas, it appeared three years after its predecessor, t ...
,
MSX MSX is a standardized home computer architecture, announced by 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, the director at ASCII Corpo ...
machines and the Radio Shack
TRS-80 Model 4 The TRS-80 Model 4 is the last Z80-based home computer family by Radio Shack, sold from April 1983 through late 1991. Model 4 Tandy Corporation introduced the TRS-80 Model 4 on April 26, 1983 as the successor to the TRS-80 Model III. The ...
.


16-bit versions

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 ...
CPUs as well. The first version in the 16-bit family was
CP/M-86 CP/M-86 is a discontinued 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 Re ...
for the
Intel 8086 The 8086 (also called iAPX 86) is a 16-bit computing, 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-b ...
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 integers or other data units are those that are 8 bits wide (1 octet). Also, 8-bit central processing unit (CPU) and arithmetic logic unit (ALU) architectures are those that are based on registers or data bu ...
CP/M became known by the
retronym A retronym is a newer name for something that differentiates it from something else that is newer, similar, or seen in everyday life; thus, avoiding confusion between the two. Etymology The term ''retronym'', a neologism composed of the combi ...
''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 List of IBM Personal Computer models, IBM PC model line and the basis for the IBM PC compatible ''de facto'' standard. Released on ...
s, but DRI and
IBM International Business Machines Corporation (using the trademark IBM), nicknamed Big Blue, is an American Multinational corporation, multinational technology company headquartered in Armonk, New York, and present in over 175 countries. It is ...
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 wi ...
. 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 until ...
(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 ...
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, but unlike the Zenith Z-89 t ...
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 systems, was initially to be used in the
Atari ST Atari ST is a line of personal computers from Atari Corporation and the successor to the company's Atari 8-bit computers, 8-bit computers. The initial model, the Atari 520ST, had limited release in April–June 1985, and was widely available i ...
computer, but Atari decided to go with a newer disk operating system called
GEMDOS GEM (for Graphics Environment Manager) is a discontinued operating environment released by Digital Research in 1985. GEM is known primarily as the native graphical user interface of the Atari ST series of computers, providing a WIMP desktop. 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 The Zilog Z8000 is a 16-bit microprocessor architecture designed by Zilog and introduced in early 1979. Two chips were initially released, differing only in the width of the address bus; the Z8001 had a 23-bit bus while the Z8002 had a 16-bit b ...
for the
Olivetti M20 The Olivetti M20 is a Zilog Z8000 based computer designed and released by Olivetti in 1982. Although it offered good Computer performance, performance, it suffered from a lack of software due to its use of the Z8000 processor and custom operating ...
, 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 computing, assembly language (alternatively 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 bet ...
could be automatically translated for a new processor. One tool for this was Digital Research's XLT86, 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 and MP/M-86 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

By the early 1980s an estimated 2000 CP/M applications existed. Many expected that it 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 businessman and philanthropist. A pioneer of the microcomputer revolution of the 1970s and 1980s, he co-founded the software company Microsoft in 1975 with his childhood friend ...
' suggestion, to license a forthcoming version of CP/M for its new product, the IBM Personal Computer. Upon the failure to obtain a signed
non-disclosure agreement A non-disclosure agreement (NDA), also known as a confidentiality agreement (CA), confidential disclosure agreement (CDA), proprietary information agreement (PIA), or secrecy agreement (SA), is a legal contract or part of a contract between at le ...
, the talks failed, and IBM instead contracted with Microsoft to provide an operating system. Many of the basic concepts and mechanisms of early versions of MS-DOS resemble those of CP/M. Internals like file-handling data structures are identical, and both refer 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 specif ...
file system. This similarity made it easier to port popular CP/M software like
WordStar WordStar is a discontinued word processor application for microcomputers. It was published by MicroPro International and originally written for the CP/M-80 operating system (OS), with later editions added for MS-DOS and other 16-bit computing, ...
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 included the core database engine, a query system, a Form (programming), forms engine, and a pr ...
. However, CP/M's concept of separate user areas for files on the same disk was never ported to MS-DOS. Since MS-DOS has access to more memory (as few IBM PCs were sold with less than 64 KB of memory, while CP/M can run in 16 KB if necessary), more commands are built into the
command-line shell A command-line interface (CLI) is a means of interacting with software via commands each formatted as a line of text. Command-line interfaces emerged in the mid-1960s, on computer terminals, as an interactive and more user-friendly alternativ ...
, making MS-DOS somewhat faster and easier to use on floppy-based computers. Although one of the first peripherals for the IBM PC was the Baby Blue card, a SoftCard-like
expansion card In computing, an expansion card (also called an expansion board, adapter card, peripheral card or accessory card) is a printed circuit board that can be inserted into an electrical connector, or expansion slot (also referred to as a bus sl ...
that lets the PC run 8-bit CP/M software like WordStar not yet available for it, and ''BYTE'' in 1982 described MS-DOS and CP/M as
David and Goliath Goliath ( ) was a Philistine giant in the Book of Samuel. Descriptions of Goliath's immense stature vary among biblical sources, with texts describing him as either or tall. According to the text, Goliath issued a challenge to the Israelit ...
, the magazine stated that MS-DOS was "much more user-friendly, faster, with many more advantages, and fewer disadvantages". ''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 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 un ...
'' magazine, 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 DOS Plus (erroneously also known as DOS+) was the first operating system developed by Digital Research's OEM Support Group in Newbury, Berkshire, UK, first released in 1985. DOS Plus 1.0 was based on CP/M-86 Plus combined with the PCM ...
, which in turn became
DR-DOS DR-DOS is a disk operating system for IBM PC compatibles, originally developed by Gary A. Kildall's Digital Research, Inc. and derived from Concurrent PC DOS 6.0, which was an advanced successor of CP/M-86. Upon its introduction in 198 ...
.


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 U.S. state, state located in both the Mid-Atlantic States, Mid-Atlantic and Northeastern United States, Northeastern regions of the United States. Located at the geographic hub of the urban area, heavily urbanized Northeas ...
. 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. Conn and Frank Gaude formed Echelon Inc. to publish the next version of ZCPR as a commercial product, while still distributing it as free software. 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 Zilog Z80 is an 8-bit microprocessor designed by Zilog that played an important role in the evolution of early personal computing. Launched in 1976, it was designed to be software-compatible with the Intel 8080, offering a compelling altern ...
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

A minimal 8-bit CP/M system would contain the following components: * A
computer terminal A computer terminal is an electronic or electromechanical hardware device that can be used for entering data into, and transcribing data from, a computer or a computing system. Most early computers only had a front panel to input or display ...
using the
ASCII ASCII ( ), an acronym for American Standard Code for Information Interchange, is a character encoding standard for representing a particular set of 95 (English language focused) printable character, printable and 33 control character, control c ...
character set * An Intel 8080 (and later the 8085) or Zilog Z80 microprocessor ** The
NEC V20 The NEC V20 is a microprocessor that was designed and produced by NEC. It is both pin compatible and object-code compatible with the Intel 8088, with an instruction set architecture (ISA) similar to that of the Intel 80188 with some extensio ...
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 clone An IBM PC compatible is any personal computer that is hardware- and software-compatible with the IBM Personal Computer (IBM PC) and its subsequent models. Like the original IBM PC, an IBM PC–compatible computer uses an x86-based central pro ...
could run CP/M-86. * At least 16 kilobytes of
RAM Ram, ram, or RAM most commonly refers to: * A male sheep * Random-access memory, computer memory * Ram Trucks, US, since 2009 ** List of vehicles named Dodge Ram, trucks and vans ** Ram Pickup, produced by Ram Trucks Ram, ram, or RAM may also ref ...
, beginning at address 0 * A means to bootstrap the first
sector Sector may refer to: Places * Sector, West Virginia, U.S. Geometry * Circular sector, the portion of a disc enclosed by two radii and a circular arc * Hyperbolic sector, a region enclosed by two radii and a hyperbolic arc * Spherical sector, a po ...
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 ON Semiconductor Corporation (stylized and doing business as onsemi) is an American semiconductor supplier company, based in Scottsdale, Arizona. Products include power and signal management, logic, discrete, and custom devices for automotive, c ...
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. Unit pricing of the S83 was quoted as $32 in 1,000 unit quantities. On most machines the bootstrap was a minimal
bootloader A bootloader, also spelled as boot loader or called bootstrap loader, is a computer program that is responsible for booting a computer and booting an operating system. If it also provides an interactive menu with multiple boot choices then it's o ...
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 * ...
combined with some means of minimal
bank switching Bank switching is a technique used in computer design to increase the amount of usable memory beyond the amount directly addressable by the Processor (computing), processor instructions. It can be used to configure a system differently at diffe ...
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 Kaypro Corporation was an American home and personal computer manufacturer based in Solana Beach, California, in the 1980s. The company was founded by Non-Linear Systems (NLS) to compete with the popular Osborne 1 portable microcomputer. Kaypro ...
used them for Greek characters, and Osborne machines used the 8th bit set to indicate an underlined character.
WordStar WordStar is a discontinued word processor application for microcomputers. It was published by MicroPro International and originally written for the CP/M-80 operating system (OS), with later editions added for MS-DOS and other 16-bit computing, ...
used the 8th bit as an end-of-word marker. International CP/M systems most commonly used the
ISO 646 ISO/IEC 646 ''Information technology — ISO 7-bit coded character set for information interchange'', is an International Organization for Standardization, ISO/International Electrotechnical Commission, IEC standard in the ...
norm for localized character sets, replacing certain ASCII characters with localized characters rather than adding them beyond the 7-bit boundary.


Components

While running, the CP/M operating system loaded into memory has three components: * ''Basic Input/Output System'' (BIOS), * ''Basic Disk Operating System'' (BDOS), * ''Console Command Processor'' (CCP). The BIOS and BDOS are memory-resident, while the CCP is memory-resident unless overwritten by an application, in which case it is automatically reloaded after the application finished running. A number of transient commands for standard utilities are also provided. The transient commands reside in files with the
extension Extension, extend or extended may refer to: Mathematics Logic or set theory * Axiom of extensionality * Extensible cardinal * Extension (model theory) * Extension (proof theory) * Extension (predicate logic), the set of tuples of values that ...
.COM on disk. The BIOS directly controls hardware components other than the CPU and main memory. It contains functions such as character input and output and the reading and writing of disk sectors. The BDOS implements the CP/M file system and some input/output abstractions (such as redirection) on top of the BIOS. The CCP takes user commands and either executes them directly (internal commands such as DIR to show a directory or ERA to delete a file) or loads and starts 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 are also essentially transient commands. The BDOS, CCP and standard transient commands are the same in all installations of a particular revision of CP/M, but the BIOS portion is always adapted to the particular hardware. Adding memory to a computer, for example, means that the CP/M system must be reinstalled to allow transient programs to use the additional memory space. A utility program (MOVCPM) is provided with system distribution that allows relocating the object code to different memory areas. The utility program adjusts 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 can 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) is stored in reserved areas at the beginning of any disk which can be used to boot the system. On start-up, the bootloader (usually contained in a ROM firmware chip) loads the operating system from the disk in drive A:. By modern standards CP/M is primitive, owing to the extreme constraints on program size. With version 1.0 there is no provision for detecting a changed disk. If a user changes disks without manually rereading the disk directory the system writes 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 is read will cause a fatal error to be signalled. This avoids overwriting the disk but requires a reboot and loss of the data to be stored on disk. The majority of the complexity in CP/M is 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 acc ...
), 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

The Console Command Processor, or CCP, accepts input from the keyboard and conveys results to the terminal. CP/M itself works with either a printing terminal or a video terminal. All CP/M commands have to be typed in on the
command line A command-line interface (CLI) is a means of interacting with software via command (computing), commands each formatted as a line of text. Command-line interfaces emerged in the mid-1960s, on computer terminals, as an interactive and more user ...
. The console most often displays the A> prompt, to indicate the current default disk drive. When used with a video terminal, this is usually followed by a blinking cursor supplied by the terminal. The CCP awaits input from the user. A CCP internal command, of the form drive letter followed by a colon, can be used to select the default drive. For example, typing B: and pressing enter at the command prompt changes the default drive to B, and the command prompt then becomes B> to indicate this change. CP/M's command-line interface was patterned after the Concise Command Language used in operating systems from
Digital Equipment 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 unti ...
, such as
RT-11 RT-11 (Real-time 11) is a discontinued small, low-end, single-user real-time operating system for the full line of Digital Equipment Corporation PDP-11 16-bit computers. RT-11 was first implemented in 1970. It was widely used for real-time compu ...
for the
PDP-11 The PDP–11 is a series of 16-bit minicomputers originally sold by Digital Equipment Corporation (DEC) from 1970 into the late 1990s, one of a set of products in the Programmed Data Processor (PDP) series. In total, around 600,000 PDP-11s of a ...
and
OS/8 OS/8 is the primary operating system used on the Digital Equipment Corporation's PDP-8 minicomputer. PDP-8 operating systems which precede OS/8 include: * R-L Monitor, also referred to as MS/8. * P?S/8, requiring only 4K of memory. * PDP-8 4K ...
for the
PDP-8 The PDP-8 is a family of 12-bit minicomputers that was produced by Digital Equipment Corporation (DEC). It was the first commercially successful minicomputer, with over 50,000 units sold during the model's lifetime. Its basic design follows the pi ...
. Commands take 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 (computing), command or a Subroutine, function, exposed by a Shell (computing), shell, that is implemented in the shell itself, instead of an external computer program, program which the shell would load a ...
, if an internal command is recognized, it is carried out by the CCP itself. Otherwise it attempts to find an executable file on the currently logged disk drive and (in later versions) user area, loads it, and passes it any additional parameters from the command line. These are referred to as "transient" programs. On completion, BDOS will reload the CCP if it has been overwritten by application programs — this allows transient programs a larger memory space. The commands themselves can sometimes be obscure. For instance, the
command Command may refer to: Computing * Command (computing), a statement in a computer language * command (Unix), a Unix command * COMMAND.COM, the default operating system shell and command-line interpreter for DOS * Command key, a modifier key on A ...
to duplicate files is 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 is no single option character that differentiated options from file names. Different programs can and do use different characters. The CP/M Console Command Processor includes DIR,
ERA An era is a span of time. Era or ERA may also refer to: * Era (geology), a subdivision of geologic time * Calendar era Education * Academy of European Law (German: '), an international law school * ERA School, in Melbourne, Australia * E ...
, REN, 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. * ...
, 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 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 Deoxyuridine monophosphate (dUMP), also known as deoxyuridylic acid or deoxyuridylate in its conjugate acid and conjugate base forms, respectively, is a deoxynucleotide. It is an intermediate in the metabolism of deoxyribonucleotides. Biosynthes ...
, ED, LOAD, , PIP, STAT, 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 / ERA (delete a file), RENAME / REN (rename a file), TYPE / TYP (display contents of an ASCII character file), and USER / USE (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 Deoxyuridine monophosphate (dUMP), also known as deoxyuridylic acid or deoxyuridylate in its conjugate acid and conjugate base forms, respectively, is a deoxynucleotide. It is an intermediate in the metabolism of deoxyribonucleotides. Biosynthes ...
, ED, GET,
HELP Help may refer to: Arts, entertainment, and media Films * Help (2010 film), ''Help'' (2010 film), a Bollywood horror film * Help (2021 theatrical film), ''Help'' (2021 theatrical film), a British psychological thriller film * Help (2021 TV ...
, HEXCOM, INITDIR, LINK,
MAC Mac or MAC may refer to: Common meanings * Mac (computer), a line of personal computers made by Apple Inc. * Mackintosh, a raincoat made of rubberized cloth * Mac, a prefix to surnames derived from Gaelic languages * McIntosh (apple), a Canadi ...
, PIP, PUT, RMAC,
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, SID, SUBMIT, and XREF.


Basic Disk Operating System

The Basic Disk Operating System, or BDOS, provides access to such operations as opening a file, output to the console, or printing. Application programs load processor registers with a function code for the operation, and addresses for parameters or
memory buffer In computer science, a data buffer (or just buffer) is a region of memory used to store data temporarily while it is being moved from one place to another. Typically, the data is stored in a buffer as it is retrieved from an input device (such as ...
s, and call a fixed address in memory. Since the address is the same independent of the amount of memory in the system, application programs run the same way for any type or configuration of hardware.


Basic Input Output System

The Basic Input Output System or BIOS, provides the lowest level functions required by the operating system. These include reading or writing single characters to the system console and reading or writing a sector of data from the disk. The BDOS handles some of the buffering of data from the diskette, but before CP/M 3.0 it assumes a disk sector size fixed at 128 bytes, as used on single-density 8-inch floppy disks. Since most 5.25-inch disk formats use larger sectors, the blocking and deblocking and the management of a disk buffer area is handled by model-specific code in the BIOS. Customization is required because hardware choices are not constrained by compatibility with any one popular standard. For example, some manufacturers designed built-in integrated video display systems, while others relied on separate computer terminals. Serial ports for printers and modems can use different types of
UART A universal asynchronous receiver-transmitter (UART ) is a peripheral device for asynchronous serial communication in which the data format and transmission speeds are configurable. It sends data bits one by one, from the least significant to ...
chips, and port addresses are not fixed. Some machines use memory-mapped I/O instead of the 8080 I/O address space. All of these variations in the hardware are concealed from other modules of the system by use of the BIOS, which uses 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 is very rudimentary in the BIOS or may be absent altogether, it is common practice for CP/M programs that use 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. Early word processors were stand-alone devices dedicated to the function, but current word ...
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 included the core database engine, a query system, a Form (programming), forms engine, and a pr ...
, 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 Outline (list), outlines, which are text files which have a tree structure or a tree view, for organization. Textual information is co ...
s, KAMAS (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 Turbo Pascal is a software development system that includes a compiler and an integrated development environment (IDE) for the programming language Pascal (programming language), Pascal running on the operating systems CP/M, CP/M-86, and MS-DOS. ...
, the ancestor of
Borland Delphi Delphi is a general-purpose programming language and a software product that uses the Delphi dialect of the Object Pascal programming language and provides an integrated development environment (IDE) for rapid application development of desktop, ...
, and Multiplan, the ancestor of
Microsoft Excel Microsoft Excel is a spreadsheet editor developed by Microsoft for Microsoft Windows, Windows, macOS, Android (operating system), Android, iOS and iPadOS. It features calculation or computation capabilities, graphing tools, pivot tables, and a ...
, also debuted on CP/M before MS-DOS versions became available.
VisiCalc VisiCalc ("visible calculator") is the first spreadsheet computer program for personal computers, originally released for the Apple II by VisiCorp on October 17, 1979. It is considered the killer application for the Apple II, turning the microco ...
, the first-ever spreadsheet program, was made available for CP/M. Another company,
Sorcim Sorcim Corporation was an early start-up company in Silicon Valley, founded in June 1980 by Richard Frank, Paul McQuesten, Martin Herbach, Anil Lakhwara, and Steve Jasik - all former Control Data Corporation employees working in the Language Group ...
, created its
SuperCalc SuperCalc is a spreadsheet published by Sorcim in 1980. History VisiCalc was the first spreadsheet program, but at first was not available for the CP/M operating system. SuperCalc was created to serve that market. Alongside WordStar, it wa ...
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 AutoCAD is a 2D and 3D computer-aided design (CAD) software application developed by Autodesk. It was first released in December 1982 for the CP/M and IBM PC platforms as a desktop app running on microcomputers with internal graphics control ...
, 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. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
s of the time (such as
BASIC Basic or BASIC may refer to: Science and technology * BASIC, a computer programming language * Basic (chemistry), having the properties of a base * Basic access authentication, in HTTP Entertainment * Basic (film), ''Basic'' (film), a 2003 film ...
,
Borland Borland Software Corporation was a computing technology company founded in 1983 by Niels Jensen, Ole Henriksen, Mogens Glad, and Philippe Kahn. Its main business was developing and selling software development and software deployment products. B ...
's
Turbo Pascal Turbo Pascal is a software development system that includes a compiler and an integrated development environment (IDE) for the programming language Pascal (programming language), Pascal running on the operating systems CP/M, CP/M-86, and MS-DOS. ...
, FORTRAN and even
PL/I PL/I (Programming Language One, pronounced and sometimes written PL/1) is a procedural, imperative computer programming language initially developed by IBM. It is designed for scientific, engineering, business and system programming. It has b ...
) were available, among them several of the earliest
Microsoft Microsoft Corporation is an American multinational corporation and technology company, technology conglomerate headquartered in Redmond, Washington. Founded in 1975, the company became influential in the History of personal computers#The ear ...
products. CP/M software often came with
installer Installation (or setup) of a computer program (including device drivers and plugins), is the act of making the program ready for execution. Installation refers to the particular configuration of software or hardware with a view to making it usabl ...
s 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, is any measure to enforce copyright by preventing the reproduction of software, films, music, and other media. Copy protection is most commonly found on vid ...
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 game A video game or computer game is an electronic game 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 generate visual fe ...
s, but various character and text-based games were
ported In software engineering, porting is the process of adapting software for the purpose of achieving some form of execution in a computing environment that is different from the one that a given program (meant for such execution) was originally desig ...
, such as '' Telengard'', ''
Gorillas Gorillas are primarily herbivorous, terrestrial 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 five su ...
'', '' Hamurabi'', ''
Lunar Lander A lunar lander or Moon lander is a Lander (spacecraft), spacecraft designed to Moon landing, land on the surface of the Moon. As of 2024, the Apollo Lunar Module is the only lunar lander to have ever been used in human spaceflight, completing s ...
'', along with early
interactive fiction Interactive fiction (IF) is software simulating environments in which players use text Command (computing), commands to control Player character, characters and influence the environment. Works in this form can be understood as literary narrati ...
including the ''
Zork ''Zork'' is a text adventure game first released in 1977 by developers Tim Anderson (programmer), Tim Anderson, Marc Blank, Bruce Daniels, and Dave Lebling for the PDP-10 mainframe computer. The original developers and others, as the company ...
'' series and ''
Colossal Cave Adventure ''Colossal Cave Adventure'' (also known as ''Adventure'' or ''ADVENT'') is a text-based adventure game, released in 1976 by developer Will Crowther for the PDP-10 mainframe computer. It was expanded upon in 1977 by Don Woods. In the game, the ...
''.
Text adventure Interactive fiction (IF) is software simulating environments in which players use text Command (computing), commands to control Player character, characters and influence the environment. Works in this form can be understood as literary narrati ...
specialist
Infocom Infocom, Inc., 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), Cornerston ...
was one of the few publishers to consistently release their games in CP/M format.
Lifeboat Associates Lifeboat Associates, Inc., 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 vend ...
started collecting and distributing user-written "free" software. One of the first was
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. It allowed users to transmit files between their computers when both sides used MODEM. Keith Petersen made a ...
, which allowed reliable file transfers via
modem The Democratic Movement (, ; MoDem ) is a centre to centre-right political party in France, whose main ideological trends are liberalism and Christian democracy, and that is characterised by a strong pro-Europeanist stance. MoDem was establis ...
and phone line. Another program native to CP/M was the outline processor KAMAS.


Transient Program Area

In the original version of CP/M for the 8080, 8085, and Z80, the read/write memory between address 0100 hexadecimal and the location just before address stored at 0006H (the lowest address of the BDOS) is 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 A terminate-and-stay-resident program (commonly TSR) is a computer program running under DOS that uses a system call to return control to DOS as though it has finished, but remains in computer memory so it can be reactivated later. This technique ...
(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) or desklet 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 accesso ...
programs, such as
SmartKey SmartKey was the first macro processing program of its type, and the first terminate-and-stay-resident program for PCs and CP/M microcomputers, their eight bit predecessors. Smartkey's "keyboard definitions" were first used with the early word ...
, 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 acc ...
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 sequence In computer science, an escape sequence is a combination of characters that has a meaning other than the literal characters contained therein; it is marked by one or more preceding (and possibly terminating) characters. Examples * In C and ma ...
s 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 p ...
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 The IBM System/34 was an IBM midrange computer introduced in 1977. It was withdrawn from marketing in February 1985. It was a multi-user, multi-tasking successor to the single-user System/32. It included two processors, one based on the System/3 ...
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 128 byte/sector, 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, Osborne, and others each using their own. Certain 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, but ''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, 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 t ...
, Osborne, Apple, Heath/Zenith hard sector and soft sector, 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. Lifetree and some other software distributors also converted CP/M applications to various systems. Various formats were used depending on the characteristics of particular systems and to some degree the choices of the designers. CP/M supports 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 are many ways to customize these parameters for every system but once they are set, no standardized way exists for a system to load parameters from a disk formatted on another system. While almost every CP/M system with 8-inch drives can read the aforementioned IBM single-sided, single-density format, for other formats the degree of portability between different CP/M machines depends 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 sizes. Disks can 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 can vary widely as well. Although translation programs can allow the user to read disk types from different machines, the drive type and controller are 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 allows the user to read any disks on his machine that had a similar format; for example, the Kaypro II can 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 developed by American company Tandy Corporation and sold through their Radio Shack stores. Launched in 1977, it is ...
, Osborne,
IBM PC The IBM Personal Computer (model 5150, commonly known as the IBM PC) is the first microcomputer released in the List of IBM Personal Computer models, IBM PC model line and the basis for the IBM PC compatible ''de facto'' standard. Released on ...
, and
Epson Seiko Epson Corporation, commonly known as Epson, is a Japanese multinational electronics company and one of the world's largest manufacturers of printers and information- and imaging-related equipment. Headquartered in Suwa, Nagano, Japan, t ...
disks. Other disk types such as 80 track or hard sectored are completely impossible to read. The first half of double-sided disks (like those of the Epson QX-10) can 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 are unable to use anything but Apple's GCR format and so have 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 List of IBM Personal Computer models, IBM PC model line and the basis for the IBM PC compatible ''de facto'' standard. Released on ...
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 of the Julian calendar. Events January–March * January 11 – The Austrian nobility are granted freedom of religion. * January 23 – The Royal Exchange opens in Lond ...
or 1581 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 Announced on May 17, 1982, 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) des ...
, ran CP/M 2.2. The Commodore 128, Bondwell-2 laptop, Micromint/Ciarcia SB-180,
MSX MSX is a standardized home computer architecture, announced by 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, the director at ASCII Corpo ...
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's version of CP/M for the Apple II, also supported 3.5-inch disks (as well as 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 United Kingdom, British company Amstrad from 1985 to 1998, and also sold under licence in Europe as the "Joyce" by the German electronics company Schneider Computer Division, Schn ...
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 ( ), an acronym for American Standard Code for Information Interchange, is a character encoding standard for representing a particular set of 95 (English language focused) printable character, printable and 33 control character, control c ...
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, 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 o ...
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 volumes. Unlike the concept of UNIX mount points, where volumes are named and located arbitrarily in a single hierarchical namespace, drive ...
, 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. An example of such program is "notepad" software (e.g. Windows Notepad). Text editors are provided with operating systems and software development packages, and can be used to ...
) 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 In computer data, a substitute character (␚) is a control character that is used to pad transmitted data in order to send it in blocks of fixed size, or to stand in place of a character that is recognized to be invalid, erroneous or unreprese ...
character (ASCII SUB,
hexadecimal Hexadecimal (also known as base-16 or simply hex) is a Numeral system#Positional systems in detail, positional numeral system that represents numbers using a radix (base) of sixteen. Unlike the decimal system representing numbers using ten symbo ...
1A). Determining the
end End, END, Ending, or ENDS may refer to: End Mathematics *End (category theory) * End (topology) * End (graph theory) * End (group theory) (a subcase of the previous) * End (endomorphism) Sports and games *End (gridiron football) *End, a division ...
of a
text file A text file (sometimes spelled textfile; an old alternative name is flat file) 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 ope ...
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 computing, a directory is a file system cataloging structure that contains references to other computer files, and possibly other directories. On many computers, directories are known as folders or drawers, analogous to a workbench or the t ...
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 * Desir ...
, 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 hard disk drive platter, pla ...
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 Data entry is the process of digitizing data by entering it into a computer system for organization and management purposes. It is a person-based process and is "one of the important basic" tasks needed when no machine-readable version of the in ...
, then, after switching USER areas, another employee could use the machine to do billing without their files intermixing.


Graphics

Although graphics-capable S-100 systems existed from the commercialization of the
S-100 bus The S-100 bus or Altair bus, later standardized as IEEE 696-1983 ''(inactive-withdrawn)'', is an early computer bus designed in 1974 as a part of the Altair 8800. The bus was the first industry standard expansion bus for the microcomputer in ...
, 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) character (computing), characters defined by the ASCII Standard from 1963 and ASCI ...
charts and diagrams in
text mode Text mode is a computer display mode in which content is internally represented on a computer screen in terms of characters rather than individual pixels. Typically, the screen consists of a uniform rectangular grid of ''character cells'', ea ...
or by using a custom
character set Character encoding is the process of assigning numbers to graphical characters, especially the written characters of human language, allowing them to be stored, transmitted, and transformed using computers. The numerical values that make up a c ...
. Some computers in the
Kaypro Kaypro Corporation was an American home and personal computer manufacturer based in Solana Beach, California, in the 1980s. The company was founded by Non-Linear Systems (NLS) to compete with the popular Osborne 1 portable microcomputer. Kaypro ...
line and the
TRS-80 Model 4 The TRS-80 Model 4 is the last Z80-based home computer family by Radio Shack, sold from April 1983 through late 1991. Model 4 Tandy Corporation introduced the TRS-80 Model 4 on April 26, 1983 as the successor to the TRS-80 Model III. The ...
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


Official

Some companies made official enhancements of CP/M based on Digital Research source code. An example is IMDOS for the IMSAI 8080 computer made by
IMS Associates, Inc. IMS Associates, Inc., or IMSAI, was a microcomputer company, responsible for one of the earliest successes in personal computer, personal computing, the IMSAI 8080. The company was founded in 1973 by William Millard (businessman), William Millard ...
, a clone of the famous
Altair 8800 The Altair 8800 is a microcomputer introduced in 1974 by Micro Instrumentation and Telemetry Systems (MITS) based on the Intel 8080 CPU. It was the first commercially successful personal computer. Interest in the Altair 8800 grew quickly after i ...
.


Compatible

Other CP/M compatible OSes were developed independently and made no use of Digital Research code. Some contemporary examples were: * Cromemco CDOS from
Cromemco Cromemco, Inc. was a Mountain View, California microcomputer company known for its high-end Z80-based S-100 bus computers and peripherals in the early days of the personal computer revolution. The company began as a partnership in 1974 between ...
*
MSX-DOS MSX-DOS is a discontinued disk operating system developed by Microsoft's Japan subsidiary for the 8-bit home computer standard MSX, and is a cross between MS-DOS v1.25 and CP/M-80 v2.2. MSX-DOS MSX-DOS and the extended BASIC with 3½-in ...
for the MSX range of computers is CP/M-compatible and can run CP/M programs. * The
Epson QX-10 The Epson Seiko Epson Corporation, commonly known as Epson, is a Japanese multinational electronics company and one of the world's largest manufacturers of printers and information- and imaging-related equipment. Headquartered in Suwa, Naga ...
shipped with a choice of CP/M or the compatible TPM-II or TPM-III. * The British
ZX Spectrum The ZX Spectrum () is an 8-bit computing, 8-bit home computer developed and marketed by Sinclair Research. One of the most influential computers ever made and one of the all-time bestselling British computers, over five million units were sold. ...
compatible
SAM Coupé The SAM Coupé (pronounced /sæm ku:peɪ/ from its original British English branding) is an 8-bit British home computer manufactured by '' Miles Gordon Technology'' (''MGT''), based in Swansea in the United Kingdom and released in December 1989. ...
had an optional CP/M-2.2 compatible OS called Pro-DOS. * The Amstrad/Schneider CPC series 6xx (disk-based) and PCW series computers were bundled with an CP/M disk pack. * The Husky (computer) ran a ROM-based menu-driven program loader called DEMOS which could run many CP/M applications. * ZSDOS is a replacement BDOS for CP/M-80 2.2 written by Harold F. Bower and Cameron W. Cotrill. * CPMish is a new FOSS CP/M 2.2-compatible operating system which originally contained no DR code. It includes ZSDOS as its BDOS and ZCPR (see earlier) as the command processor. Since Bryan Sparks, the president of DR owners Lineo, granted permission in 2022 to modify and redistribute CP/M code, developer David Given is updating CPMish with some parts of the original DR CP/M. * LokiOS is a CP/M 2.2 compatible OS. Version 0.9 was publicly released in 2023 by David Kitson as a solo-written Operating System exercise, intended for the Open Spectrum Project and includes source code for the
BIOS In computing, BIOS (, ; Basic Input/Output System, also known as the System BIOS, ROM BIOS, BIOS ROM or PC BIOS) is a type of firmware used to provide runtime services for operating systems and programs and to perform hardware initialization d ...
, BDOS and
Command-line interface A command-line interface (CLI) is a means of interacting with software via command (computing), commands each formatted as a line of text. Command-line interfaces emerged in the mid-1960s, on computer terminals, as an interactive and more user ...
as well as other supporting applications and drivers. The distribution also includes original DR Source code and a utility to allow users to hot-swap OS components (e.g., BDOS, CCP) on the fly. * IS-DOS for the
Enterprise Enterprise (or the archaic spelling Enterprize) may refer to: Business and economics Brands and enterprises * Enterprise GP Holdings, an energy holding company * Enterprise plc, a UK civil engineering and maintenance company * Enterpris ...
computers, written by Intelligent Software. * VT-DOS for the Videoton TV Computer, written by Intelligent Software.


Enhancements

Some CP/M compatible operating systems extended the basic functionality so far that they far exceeded the original, for example the multi-processor capable TurboDOS.


Eastern bloc

A number of CP/M-80 derivatives existed in the former
Eastern Bloc The Eastern Bloc, also known as the Communist Bloc (Combloc), the Socialist Bloc, the Workers Bloc, and the Soviet Bloc, was an unofficial coalition of communist states of Central and Eastern Europe, Asia, Africa, and Latin America that were a ...
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, DAC, HC and others. There were also CP/M-86 derivatives named SCP1700, CP/K and K8918-OS. They were produced by the
East German East Germany, officially known as the German Democratic Republic (GDR), was a country in Central Europe from its formation on 7 October 1949 until its reunification with West Germany (FRG) on 3 October 1990. Until 1989, it was generally vie ...
VEB Robotron VEB Kombinat Robotron () (or simply Robotron) was the largest East German electronics manufacturer. It was headquartered in Dresden and employed 68,000 people in 1989. Its products included personal computers, SM EVM minicomputers, the ESER m ...
and others.


Legacy

A number of behaviors exhibited by
Microsoft Windows Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
are a result of
backward compatibility In telecommunications and computing, backward compatibility (or backwards compatibility) is a property of an operating system, software, real-world product, or technology that allows for interoperability with an older legacy system, or with Input ...
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 volumes. Unlike the concept of UNIX mount points, where volumes are named and located arbitrarily in a single hierarchical namespace, drive ...
and
8.3 filename An 8.3 filename (also called a short filename or SFN) is one that obeys the filename convention used by CP/M and 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 opera ...
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 Redirect and its variants (e.g., redirection) may refer to: Arts, entertainment, and media * Redirect (album), ''Redirect'' (album), 2012 Christian metal album and its title track by Your Memorial * Redirected (film), ''Redirected'' (film), a 20 ...
output to a
printer Printer may refer to: Technology * Printer (publishing), a person * Printer (computing), a hardware device * Optical printer for motion picture films People * Nariman Printer (fl. c. 1940), Indian journalist and activist * James Printer (1640 ...
("PRN:"), and the
console Console may refer to: Computing and video games * System console, a physical device to operate a computer ** Virtual console, a user interface for multiple computer consoles on one device ** Command-line interface, a method of interacting with ...
("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 or .COM 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 volcanic eruption. An eruption that ejects large volumes of magma over a short period of time can cause significant detriment to the str ...
released some CP/M 2.2 binaries and
source code In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer. Since a computer, at base, only ...
under an
open source license Open-source licenses are software licenses that allow content to be used, modified, and shared. They facilitate free and open-source software (FOSS) development. Intellectual property (IP) laws restrict the modification and sharing of creative ...
, 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, 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 computer museum in Mountain View, California. The museum presents stories and artifacts of Silicon Valley and the Information Age, and explores the Digital Revolution, computing revolution and its impact ...
released early
source code In computing, source code, or simply code or source, is a plain text computer program written in a programming language. A programmer writes the human readable source code to control the behavior of a computer. Since a computer, at base, only ...
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, an operating system independently derived from CP/M *
Eagle Computer Eagle Computer, Inc., was an early American computer company based in Los Gatos, California. Spun off from Audio-Visual Laboratories (AVL), it first sold a line of popular CP/M computers which were highly praised in the computer magazines of the ...
* IMDOS * List of machines running CP/M *
MP/M 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 ...
* MP/NET and MP/NOS *
Multiuser DOS Multiuser DOS is a real-time multi-user multi-tasking operating system for IBM PC-compatible microcomputers. An evolution of the older Concurrent CP/M-86, Concurrent DOS and Concurrent DOS 386 operating systems, it was originally developed by ...
* 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 wi ...
*
Kenbak-1 The Kenbak-1 is considered by the Computer History Museum, the Mimms Museum of Technology and Art and the American Computer Museum to be the world's first "personal computer", invented by John Blankenbaker (born 1929) of Kenbak Corporation in ...


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 * {{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