CP/M Plus
| Company type | Private |
|---|---|
| Industry | Software |
| Founded | 1974 |
| Founder | Gary Kildall |
| Headquarters | United States |
| Products | CP/M, PL/M compiler |
CP/M, an acronym originally for Control Program/Monitor and later redefined as Control Program for Microcomputers, is a widely distributed operating system created in 1974 by Gary Kildall of Digital Research, Inc for Intel 8080 and Intel 8085-based microcomputer platforms. Functioning as a disk operating system, CP/M managed file organization on magnetic disks and facilitated program loading from these storage devices. Initially designed for single-tasking on 8-bit processors with memory limits up to 64 KB, subsequent iterations introduced multi-user support and compatibility with 16-bit processors.
The design of CP/M consists of three main components: the Basic Input/Output System (BIOS), which contains hardware-specific drivers; the Basic Disk Operating System (BDOS), responsible for handling the file system and core system services; and the Console Command Processor (CCP), which serves as a command-line interpreter featuring built-in commands.
During the late 1970s through the mid-1980s, CP/M emerged as the de facto standard operating system for microcomputers utilizing the S-100 bus, becoming the leading OS in business environments. Its widespread adoption helped expand both hardware and software markets by simplifying application portability across different manufacturers. The availability of affordable CP/M-based microcomputers encouraged software innovation among independent developers and user communities. However, CP/M’s dominance diminished following the introduction of the IBM Personal Computer in 1981, which ran DOS.
Early history
In 1974, Gary Kildall created CP/M as an operating system tailored for the Intel Intellec-8 development platform, employing an 8-inch floppy-disk drive from Shugart Associates paired with a custom controller. The system was programmed using Kildall’s own language, PL/M. The design drew inspiration from the TOPS-10 operating system used on the DECsystem-10, which Kildall had experience with.
CP/M was compatible with numerous computers built around the 8080 and Z80 processors. In 1977, early licensee Gnat Computers acquired rights to CP/M version 1.0 for $90, but escalating demand soon pushed licensing fees into the tens of thousands of dollars.
Under Kildall’s guidance, John Pierce spearheaded development of CP/M 2.0 in 1978. After joining Digital Research Inc. in 1979, Kathryn Strutynski played a critical role in debugging CP/M 2.0 and contributed significantly to later versions such as CP/M 2.2 and CP/M Plus. Other early contributors included Robert Silberstein and David K. Brown.
The abbreviation originally stood for "Control Program/Monitor" but was officially changed to "Control Program for Microcomputers" in trademark filings submitted in November 1977. This renaming aligned with industry naming conventions like Kildall’s PL/M and IBM’s CP/CMS, reflecting its commercial intent.
Kildall, together with his wife and business partner Dorothy McEwen, transformed CP/M and the PL/M compiler into a commercial venture under Digital Research, Inc., with ambitions to establish the brand as synonymous with "microcomputer," similar to how IBM and Microsoft later influenced the market.
Initial success
By September 1981, Digital Research had sold more than licenses for CP/M, though actual usage was likely higher due to sublicensing arrangements. Numerous manufacturers produced computers running CP/M across diverse market segments, cementing its status as the operating system for small computers. Even companies that maintained proprietary systems like Heath/Zenith (HDOS) provided CP/M as an alternative OS option on their 8080/Z80 machines; no equivalent standard existed for popular systems using the 6502 CPU. The extensive software ecosystem was a key factor driving this widespread support—for instance, the Xerox 820 adopted CP/M specifically to access its large application base. Xerox supplemented Digital Research’s limited documentation by including a Howard W. Sams manual for CP/M, although InfoWorld criticized this documentation as incomplete and poorly organized.
By 1984, Columbia University utilized identical source code to produce Kermit binaries compatible with over a dozen CP/M variants plus two generic versions. CP/M was often described metaphorically as a "software bus", facilitating standardized communication between applications and varied hardware environments. Programs generally maintained portability across different machines by adjusting only terminal and printer control codes. This cross-platform capability contributed to CP/M’s popularity and extensive software library compared to single-vendor operating systems. Some limitations existed, such as Z80-specific instructions that were incompatible with 8080 or 8085 CPUs, along with machine-dependent graphics routines found in games and graphical applications that accessed hardware directly for enhanced performance.
Bill Gates identified the Apple II equipped with a Z-80 SoftCard as the most prevalent hardware platform running CP/M. By 1982, Digital Research reported licensing their OS across more than 450 computer models. Prominent CP/M systems included the Altair 8800, IMSAI 8080, Osborne 1, Kaypro portable computers, and various MSX machines. The highest-selling system compatible with CP/M was probably the Amstrad PCW. In the United Kingdom, CP/M was available on educational computers from Research Machines, which also published source code for instructional purposes; on the BBC Micro via a Z80 co-processor; on the Amstrad CPC, Commodore 128, and various models of the TRS-80 and later versions of the ZX Spectrum. Additionally, CP/M 3 powered the NIAT handheld device created for market research firm A. C. Nielsen, featuring one megabyte of solid-state storage memory.
Multi-user
In 1979, Digital Research introduced MP/M, a multi-user adaptation of CP/M that enabled several terminals to connect simultaneously to a single computer, granting each user their own independent screen and keyboard interface. Subsequent iterations of MP/M expanded support to include 16-bit processors.
CP/M Plus
Released in 1983, CP/M Plus (version 3) was the final iteration of the 8-bit CP/M series, featuring a BDOS designed by David K. Brown. This version incorporated MP/M’s bank switching memory management into a single-user operating system compatible with CP/M 2.2 applications, allowing utilization of memory beyond 64 KB on 8080 or Z80 CPUs. Enhancements included file date stamping and bundled development utilities such as a relocating assembler and linker. CP/M Plus was aimed at advanced 8-bit platforms like the Amstrad PCW, Amstrad CPC, ZX Spectrum +3, Commodore 128, MSX machines, and the TRS-80 Model 4.
16-bit versions
Digital Research developed CP/M variants for 16-bit processors, beginning with CP/M-86 for the Intel 8086, launched in November 1981. The development of the CP/M-86 series was overseen by Kathryn Strutynski. To differentiate from the original OS, the initial 8-bit version became known as CP/M-80.
Although CP/M-86 was anticipated to be the IBM PC’s default operating system, licensing disputes between Digital Research and IBM led the latter to collaborate with Microsoft to produce PC DOS based on 86-DOS. Despite CP/M-86 being offered later as an alternative following legal pressure, its higher cost ($240 compared to $40 for PC DOS) hindered widespread adoption.
The DEC Rainbow 100 supported multiple operating environments: CP/M-80 on a Z80 processor, CP/M-86 or MS-DOS on an 8088 CPU, or both simultaneously via CP/M-86/80—allowing users to maintain their existing 8-bit software investments while transitioning to newer hardware. A comparable dual-processor system called CP/M 8-16 was available for the CompuPro System 816. Additionally, the Zenith Z-100 could run applications for both its processors under CP/M-86.
Following this, Digital Research released CP/M-68K in 1982 for Motorola 68000 processors. Initially developed in Pascal/MT+68k and later ported to C, it ran on EXORmacs systems and was initially considered for Atari ST before Atari selected GEMDOS instead. CP/M-68K also operated on SORD M68 and M68MX machines.
In the same year, a port of CP/M-68K was created for the Zilog Z8000 as CP/M-8000 for Olivetti’s M20 system, written in C.
These 16-bit versions required recompilation of software for each new CPU architecture. To facilitate this process, Digital Research offered tools such as XLT86 that translated Intel 8080 assembly code (.ASM) into Intel 8086 assembly (.A86), optimizing code size and adapting calling conventions to smooth transitions from CP/M-80/MP-M80 to CP/M-86/MP-M86. XLT86 was made available on both CP/M-80 and VAX/VMS platforms.
Displacement by MS-DOS
By the early 1980s, approximately 2,000 applications were available for CP/M, positioning it as the expected standard OS for emerging 16-bit computers. In 1980, IBM approached Digital Research—following Bill Gates' recommendation—to license a version of CP/M for use on the IBM PC. After failing to secure a signed non-disclosure agreement from Digital Research, IBM instead contracted Microsoft to supply an operating system.
MS-DOS shared many foundational elements with CP/M, including file management structures and drive letter assignments (A:, B:, etc.). Its principal advancement was introducing the FAT file system, which facilitated easier porting of popular software such as WordStar and dBase from CP/M. Additionally, MS-DOS supported larger memory capacities (commonly at least 64 KB), enabling more extensive built-in command-line utilities and enhanced performance on floppy disk–based PCs.
Early hardware expansions like the Baby Blue card allowed execution of 8-bit CP/M applications on IBM PCs; however, by 1982 industry reviews favored MS-DOS due to its superior speed, usability, and overall advantages compared to CP/M. Attempts to penetrate the home computer market with CP/M faltered by 1984 because of high software costs. By 1986, manufacturers such as Kaypro had discontinued production of CP/M machines in favor of MS-DOS–compatible systems. As IBM PC compatibles dominated microcomputing markets, CP/M rapidly lost prominence; major trade magazines ceased coverage within a few years.
Later iterations of CP/M-86 enhanced both performance and user experience while achieving compatibility with MS-DOS. These evolved into DOS Plus and subsequently DR-DOS—reflecting ongoing efforts by Digital Research to remain competitive in an evolving operating system landscape.
ZCPR
ZCPR (Z80 Command Processor Replacement) was introduced on 2 February 1982 as a direct substitute for the standard Digital Research console command processor (CCP). It originated from a hobbyist collective named "The CCP Group," headed by Richard Conn.
The initial release, ZCPR1, appeared on a disk distributed by SIG/M (Special Interest Group/Microcomputers), affiliated with the Amateur Computer Club of New Jersey. Subsequently, ZCPR2 was launched on 14 February 1983, delivered as a set of ten disks from SIG/M. This version was later enhanced to 2.3, incorporating an 8080 code variant to support a wider range of hardware.
Richard Conn and Frank Gaude established Echelon Inc. to commercialize the next iteration while preserving free availability. On 14 July 1984, ZCPR3 was released across nine disks via SIG/M, introducing advanced features such as command shells, aliasing, input/output redirection, flow control structures, named directories, search paths, customizable menus, password protection, and integrated online help. Moreover, ZCPR3 could be compiled with limited capabilities for non-Z80 architectures.
Following Conn’s departure from development in January 1987, Jay Sage took over and produced ZCPR 3.3. This version eliminated support for the 8080 processor but incorporated numerous new utilities and enhancements. Although ZCPR enjoyed strong endorsement within the CP/M user community, it was insufficient to halt CP/M’s overall market decline.
Hardware model
A basic 8-bit CP/M setup required the following components:
- A computer terminal utilizing ASCII characters
- A microprocessor such as the Intel 8080/8085 or Zilog Z80
- NEC V20 and V30 processors provided 8080 emulation enabling CP/M operation on PC-DOS/MS-DOS systems
- Minimum of 16 KB RAM starting at memory address zero
- A bootstrap mechanism for loading the initial disk sector
- At least one floppy disk drive
Although Digital Research officially supported only the Intel 8080 Development System, numerous manufacturers adapted CP/M to their specific hardware platforms. CP/M also operated on systems based on the Z80 microprocessor, frequently employing BIOS code and applications tailored to Z80 capabilities.
Digital Research collaborated with Zilog and American Microsystems to develop Personal CP/M—a ROM-based operating system designed for cost-effective machines lacking disk drives. This variant first appeared in the Sharp MZ-800 cassette-driven system with optional disk support and leveraged enhanced Z80 instructions rather than maintaining full compatibility with the 8080 instruction set. American Microsystems introduced the S83—a Z80-compatible CPU integrating ROM for OS and BIOS functions—priced at $32 in volume quantities.
Bootstrapping generally involved a minimal ROM-resident bootloader combined with techniques like bank switching or bus injection to load code at address zero; some systems required manual memory entry using front-panel controls.
CP/M utilized the 7-bit ASCII character set; however, extended character usage varied by vendor—Kaypro machines employed them for Greek letters, Osborne systems used them for underlining text, and WordStar marked word boundaries with specific characters. International editions typically adopted ISO 646 standards to localize characters within the 7-bit range rather than extending beyond it.
Components
While executing, the CP/M operating system consists of three primary components loaded into memory:
- Basic Input/Output System (BIOS),
- Basic Disk Operating System (BDOS),
- Console Command Processor (CCP).
The BIOS and BDOS remain resident in memory continuously, whereas the CCP stays resident unless temporarily replaced by an application; in such cases, it reloads automatically afterward. Standard utility commands that are not built-in reside as transient .COM files on disk.
The BIOS manages hardware peripherals excluding the CPU and main memory; it handles character input/output and disk sector read/write operations. The BDOS oversees file system management and abstracts input/output operations including redirection. The CCP interprets user commands, executing internal commands (such as DIR or ERA) or invoking transient commands like PIP.COM used for file copying. Third-party software operates as transient commands within this framework.
BDOS, CCP, and standard transient utilities maintain consistency across CP/M versions; only the BIOS is customized per hardware platform.
Expanding system memory necessitates reinstalling CP/M so transient programs can access additional space. The MOVCPM utility relocates OS components in memory by modifying addresses in jump and call instructions accordingly; this patched OS can then be saved back onto disk. The OS components (BIOS, BDOS, CCP) reside in reserved disk areas enabling booting. During startup, a bootloader—typically stored in ROM—loads these components from drive A:.
By contemporary standards, CP/M is relatively rudimentary due to strict limits on program size. Early iterations lacked detection of disk changes, risking data corruption if disks were swapped without refreshing directory information. Later versions introduced error signaling to prevent overwriting data but required rebooting after disk changes.
Most complexity is concentrated within BDOS while BIOS routines are simpler and adapted per hardware platform. This modular architecture reduced development time for new systems and contributed significantly to CP/M’s broad adoption. Such hardware abstraction layers are commonplace today but were pioneering when CP/M was first developed since most operating systems then targeted single hardware platforms exclusively.
Console Command Processor
The Console Command Processor (CCP) is responsible for processing keyboard inputs and delivering output to both printing and video terminals. Users interact with CP/M commands through the command line, where the prompt usually indicates the active default drive (for example, A>). Changing drives is done by entering a drive letter followed by a colon (such as B:), which updates the prompt accordingly.
CP/M’s command-line structure draws inspiration from Digital Equipment Corporation operating systems like RT-11 and OS/8. Commands are composed of a keyword accompanied by parameters, separated by spaces or special characters. Internal commands execute directly within the CCP, whereas external executable files—known as "transient" programs—are loaded from disk when required. After a transient program finishes, the CCP is reloaded to reclaim memory.
Certain commands retain legacy or less intuitive names; for instance, PIP stands for Peripheral Interchange Program and is used for copying files. Parameter conventions differ among programs since there is no universal standard for option characters.
The CCP includes built-in commands such as DIR, ERA, REN, SAVE, TYPE, and USER. Transient commands encompass utilities like ASM, DDT, DUMP, ED, LOAD, PIP, STAT, SUBMIT, and SYSGEN.
With CP/M Plus (Version 3), built-in commands were expanded to include DIRSYS/DIRS for managing system files, ERASE/ERASE for file deletion, RENAME/REN, TYPE/TYP, and USER/USE for modifying user numbers. This version also introduced support for abbreviated commands. Additional transient utilities available in CP/M 3 include COPYSYS, DATE, DEVICE, DUMP, ED, HELP, LINK, MAC, PIP, SET, SHOW, SUBMIT, among others.
Basic Disk Operating System
The Basic Disk Operating System (BDOS) oversees key functions such as opening files, outputting to the console, and managing printing tasks. Applications interact with BDOS by loading specific function codes and parameters into processor registers before calling a designated fixed memory address. This standardized interface ensures software compatibility across various hardware platforms.
Basic Input Output System
The Basic Input Output System (BIOS) delivers fundamental low-level services within the OS, including character input/output and reading or writing disk sectors. While BDOS handles buffering of diskette data, BIOS manages hardware-specific tasks such as sector size control—particularly important because most 5.25-inch floppy disks use sectors larger than the 128-byte sectors common in early 8-inch disks.
BIOS customization is necessary due to the wide range of hardware configurations encountered—ranging from integrated video displays to terminal setups; differing UART chips in serial ports; varying port addresses; and some systems employing memory-mapped I/O rather than standard 8080 addressing. To accommodate this diversity, BIOS provides standardized entry points that CP/M services utilize. Support for serial communication within BIOS is limited or sometimes nonexistent; consequently, many CP/M applications rely on user-supplied overlays tailored to specific machines to enable serial port functionality.
Applications
CP/M was the platform for several groundbreaking business software titles: WordStar, recognized as one of the earliest mass-adopted word processors; dBase, a trailblazing database management system; and spreadsheet pioneers such as VisiCalc and SuperCalc, which established themselves as CP/M standards before entering the MS-DOS arena. Additionally, Turbo Pascal, which laid the foundation for Borland Delphi, and Multiplan, the forerunner to Microsoft Excel, were initially released on CP/M. The CAD program AutoCAD also made its debut on this operating system.
A wide array of compilers and interpreters was available for languages including BASIC, Turbo Pascal, FORTRAN, and PL/I, featuring early offerings from Microsoft among them.
CP/M applications frequently came with installation utilities designed to adapt software across diverse hardware platforms. For instance, Kaypro II users converted programs from Xerox 820 disk formats to their proprietary format. BASIC source code was commonly provided, and copy protection measures were largely ineffective due to CP/M’s uniform disk format standards that prioritized interoperability between software.
Although limited graphical capabilities restricted video game development on CP/M, numerous text- and character-based games were ported successfully. Titles such as Telengard, Gorillas, Hamurabi, Lunar Lander, alongside interactive fiction series like Zork and Colossal Cave Adventure, were available. Infocom regularly published games compatible with CP/M. Lifeboat Associates distributed user-created freeware like XMODEM, which enabled dependable file transfers over modems. The outline processor KAMAS also originated within the CP/M ecosystem.
Transient Program Area
In the initial CP/M versions for the 8080, 8085, and Z80 processors, the memory region designated for application use—known as the Transient Program Area (TPA)—spanned from address 0100 hexadecimal up to just before the BDOS entry point at 0006H. Although these CPUs could address up to 64 KB of memory, the actual TPA size depended on each system’s architecture, with some reserving portions for BIOS ROM or video memory. To increase TPA availability, bank switching was often employed to replace ROM or video memory segments dynamically. CP/M 3.0 further advanced this concept by allowing segments of BDOS to reside in bank-switched memory areas.
Debugging application
The operating system included a Dynamic Debugging Tool (DDT), which permitted users to inspect and modify memory contents and program modules interactively, as well as execute code stepwise for detailed debugging.
Resident programs
Native support for terminate-and-stay-resident (TSR) utilities was not present in early CP/M versions unlike DOS. Nevertheless, developers engineered methods to intercept operating system calls to enhance functionality, resulting in auxiliary utilities such as SmartKey, a keyboard macro tool assigning byte sequences to keys. With CP/M 3, support was introduced for dynamically loadable Resident System Extensions (RSX), which could be activated without running transient programs by using null command files. Additionally, third-party solutions like Resident System Modules (RSMs) were back-ported to CP/M 2.2 to provide similar capabilities.
Software installation
Despite CP/M standardizing disk and console input/output interfaces, individual applications generally required installation procedures to accommodate device-specific features such as printers and terminals. These peripherals often depended on proprietary escape codes—for example, bold text printing commands varied widely among manufacturers. Installation programs enabled users to select or customize these codes according to their hardware. Since no centralized OS-level service managed this configuration, installation had to be repeated separately for each application.
Printer initialization sequences were embedded directly within software packages; consequently, running an application like WordStar across multiple printer models necessitated distinct versions customized for each device. Changing printers required exiting the program and launching the version configured for the new printer.
Disk formats
The 128-byte sector, single-density, single-sided disk format developed for the IBM System/34 and IBM 3740 became the standard 8-inch floppy disk format used by CP/M. In contrast, no unified 5.25-inch disk format existed for CP/M; manufacturers such as Kaypro, Morrow Designs, and Osborne each implemented their own unique formats. Although a majority of software was distributed in the Xerox 820 format, compatible with machines like the Kaypro II, InfoWorld estimated in 1981 that approximately twenty different formats were sufficiently widespread to require software developers to accommodate them in order to maximize market reach. For instance, JRT Pascal was offered on multiple 5.25-inch disks tailored for North Star, Osborne, Apple, Heath/Zenith hard and soft sector variants, Superbrain, as well as a separate 8-inch disk version. Ellis Computing supported not only Heath formats but also sixteen additional 5.25-inch variants including modifications for TRS-80 CP/M. Distributors such as Lifetree facilitated cross-system conversions of CP/M applications.
CP/M allows for flexible configuration of disk parameters governing reserved space, directory allocation, and logical-to-physical sector translation. Despite this adaptability, there is no universal standard for retrieving these parameters from disks formatted on disparate systems.
While nearly all CP/M-compatible machines equipped with 8-inch drives can read IBM’s single-sided, single-density disk format, true interchangeability between CP/M systems depends greatly on the types of disk drives and controllers used. This is due to the wide range of floppy disk formats encountered—including distinctions between hard versus soft sectored disks, single or double density and sidedness, and track counts varying from 35 to 80 tracks. By 1982, the prevailing CP/M software distribution medium had become the soft-sector, single-sided, 40-track 5.25-inch floppy disk on popular consumer computers such as Apple II, TRS-80, Osborne 1, Kaypro II, and IBM PC. Conversion utilities allowed machines like the Kaypro II to read disks formatted for TRS-80, Osborne, IBM PC, and Epson QX-10 systems. However, certain formats—such as those with 80 tracks or hard sectored disks—remained incompatible across platforms. Apple II owners were restricted to Apple's proprietary GCR format and had to acquire CP/M software on Apple-specific disks or transfer data through serial connections.
The diverse landscape of CP/M disk formats compelled software distributors to either maintain inventories of multiple disk types or invest in duplication hardware capable of handling several formats. This complexity starkly contrasted with the uniformity found in IBM PC disk standards and played a significant role in accelerating CP/M's decline following 1981.
Among the final prominent CP/M-capable computers was the Commodore 128 (introduced in 1985), which incorporated a Z80 processor dedicated to running CP/M alongside its native CPU. This system required a 1571 or 1581 disk drive able to read soft-sector 40-track disks formatted using MFM.
The earliest machine running CP/M with a built-in 3.5-inch floppy drive was the Sony SMC-70. Other devices supporting CP/M on 3.5-inch disks included the Commodore 128, Bondwell-2 laptop, Micromint/Ciarcia SB-180, MSX, and TRS-80 Model 4 (utilizing Montezuma CP/M 2.2). Applied Engineering’s CP/AM product for Apple II also enabled use of 3.5-inch floppy disks and RAM disks via compatible memory expansion cards. Initially, the Amstrad PCW employed 3-inch floppy drives for CP/M but later transitioned to using 3.5-inch drives.
File system
File names adhered to the 8.3 naming convention, allowing up to eight characters, followed by a period and a three-character extension indicating the file type (for instance, .COM for executable files and .TXT for text documents). When entered at the command line, filenames were automatically converted to uppercase; however, certain applications such as MBASIC could generate lowercase filenames, which complicated command-line operations.
Drive identification employed letters (e.g., A:, B:), with files specified by prefixing the drive letter and colon, like A:FILE.TXT. If no drive letter was given, the system defaulted to the current active drive.
File sizes were expressed in 128-byte records, corresponding to disk sectors on 8-inch floppy disks. Precise byte-level sizing was generally unsupported. The file size information was stored within the File Control Block (FCB). Text files typically concluded with a control-Z character (ASCII SUB, hex 1A) to denote end-of-file, influencing how text editors processed their contents.
The introduction of larger removable and fixed disks brought disk de-blocking techniques that increased the number of disk blocks per allocation unit, enabling support for bigger files. This advancement also raised the minimum allocatable file size from 1 KB on single-density drives up to 32 KB on newer media, often resulting in inefficient storage when managing numerous small files.
Modification time stamps for files were not supported in CP/M up to version 2.2 but became optionally available in MP/M and CP/M version 3.0.
Instead of subdirectories, CP/M 2.2 provided 16 numbered user areas to organize files. Users could switch between these areas using the "User X" command (where X ranges from 0 to 15). User area 0 was the default and accessible universally, while other user areas isolated files from one another. This structure aided multitasking environments on systems equipped with hard drives by allowing separation of files for different users or tasks (such as data entry versus billing), despite lacking formal security mechanisms.
Graphics
Although some S-100 systems with graphics capabilities existed early on, CP/M itself did not include standardized graphics support until the release of GSX in 1982. Due to limited memory resources, graphics were rarely implemented on 8-bit CP/M machines, which mainly displayed simple ASCII art or utilized custom character sets. Certain models like the Kaypro line and the TRS-80 Model 4 incorporated video hardware capable of block graphics accessible via assembler or BASIC programming. The TRS-80 Model 4 could deliver graphics at a resolution of 640×240 pixels when equipped with an optional high-resolution board.
Official
Several companies created official CP/M enhancements based on Digital Research’s source code, such as IMDOS for the IMSAI 8080, a clone resembling the Altair 8800.
Compatible
A variety of independently developed CP/M-compatible operating systems emerged without relying on Digital Research code, including:
- Cromemco CDOS by Cromemco
- MSX-DOS, designed for MSX computers and compatible with CP/M software
- The Epson QX-10, which offered both CP/M and TPM-II/III as options
- The British SAM Coupé, featuring Pro-DOS as an optional OS compatible with CP/M-2.2
- Amstrad/Schneider CPC and PCW series that shipped with CP/M disk sets
- The Husky (computer), running DEMOS—a ROM-based loader supporting many CP/M applications
- ZSDOS, a replacement BDOS for CP/M-80 version 2.2 developed by Harold F. Bower and Cameron W. Cotrill
- CPMish, an open-source CP/M 2.2-compatible operating system initially developed without Digital Research components; since 2022 it has incorporated original DR code under license from Lineo’s president
- LokiOS, released in 2023 by David Kitson for the Open Spectrum Project, providing BIOS, BDOS, CLI source code along with original Digital Research sources and hot-swappable OS modules
- IS-DOS for the Enterprise (computer) produced by Intelligent Software
- VT-DOS for the Videoton TV-Computer, also developed by Intelligent Software
Improvements
Certain CP/M-compatible operating systems notably expanded the original capabilities, with examples like TurboDOS, which supported multi-processor configurations.
Eastern Bloc Variants
Within the former Eastern Bloc, numerous CP/M-80 adaptations emerged under various titles such as SCP (), SCP/M, CP/A, CP/J, CP/KC, CP/KSOB, CP/L, among others. These versions were primarily developed by East German manufacturers like VEB Robotron. Additionally, CP/M-86-based systems including SCP1700, CP/K, and K8918-OS were introduced in this region.
Enduring Influence
Several aspects of Microsoft Windows have their roots in MS-DOS’s adherence to CP/M standards. The convention of assigning drive letters (A and B for floppy drives; C for hard disks), the 8.3 filename structure, wildcard symbols (?, *), and reserved device names such as "PRN:" and "CON:" all stem from CP/M traditions. The use of the control character ^Z to indicate end-of-file in text documents, along with commands like DIR, REN/RENAME, TYPE, and ERA/ERASE, also reflect CP/M’s legacy. Common file extensions including .TXT and .COM continue to be prevalent today.
Between 1997 and 1998, Caldera made available CP/M 2.2 binaries and source code under an open-source license, facilitating redistribution and modification through Tim Olmstead’s "The Unofficial CP/M Web site." Following Olmstead’s passing in 2001, stewardship passed to Lineo, which broadened the licensing terms later that year. To mark its 40th anniversary in October 2014, the Computer History Museum published early versions of CP/M source code.
As of , enthusiasts dedicated to vintage computing along with some niche enterprises maintain development and support for systems primarily running CP/M 2.2 as their core operating system.
Related Topics
- Amstrad CP/M Plus character set
- CPMulator
- CP/NET and CP/NOS
- Cromemco DOS, an independently developed OS derived from CP/M
- Eagle Computer
- IMDOS
- List of machines running CP/M
- MP/M
- MP/NET and MP/NOS
- Multiuser DOS
- Pascal/MT+
- SpeedStart CP/M
- 86-DOS
- Kenbak-1
Further Reading
- Rodnay Zaks, The CP/M Handbook With MP/M, SYBEX Inc., 1980, ISBN 0-89588-048-2
- Richard Conn, ZCPR3 - The Manual, New York Zoetrope, 1985, ISBN 0-918432-59-6
- Z-System Corner: Tenth Anniversary of ZCPR, The Computer Journal, Issue 54
- The origin of CP/M's name (archived)
- Mustafa A. Katie, Intel iPDS-100 Using CP/M-Video, 2013 (archived)
- IEEE Milestone in Electrical Engineering and Computing - CP/M - Microcomputer Operating System, 1974, Computer History Museum, 2014
- Triumph of the Nerds, PBS — recounting IBM's selection of Microsoft DOS over Digital Research's CP/M for the IBM PC
- CP/M FAQ at comp.os.cpm and Digital Research archives
External Links
- The Unofficial CP/M Web site – Contains source code
- Gaby Chaudry's Homepage for CP/M and Computer History – Features ZCPR resources
- CP/M Main Page – Technical reference by John C. Elliott
- MaxFrame's Digital Research CP/M page (archived)