CP/M
| Company type | Private |
|---|---|
| Industry | Software |
| Founded | 1974 |
| Founder | Gary Kildall, Dorothy McEwen |
| Headquarters | United States |
| Products | CP/M, PL/M compiler, MP/M, CP/M-86, CP/M-68K, CP/M-8000 |
CP/M, initially an acronym for Control Program/Monitor and subsequently known as Control Program for Microcomputers, is a widely used operating system developed in 1974 by Gary Kildall at Digital Research, Inc for Intel 8080 and Intel 8085-based microcomputer platforms. Designed as a disk operating system, CP/M's primary function was to manage file storage on magnetic disks and execute software directly from disk. While its first iterations supported only single-tasking on 8-bit processors with memory limits of up to 64 kilobytes, later releases incorporated multi-user features and compatibility with 16-bit processor architectures.
The architecture of CP/M consists of three main modules: the Basic Input/Output System (BIOS), responsible for device driver management; the Basic Disk Operating System (BDOS), which oversees file system operations and core system services; and the Console Command Processor (CCP), a command-line interpreter equipped with built-in commands.
During the late 1970s through the mid-1980s, CP/M established itself as the de facto operating system standard for microcomputers utilizing the S-100 bus. Its widespread adoption in business environments was fueled by its ability to simplify software portability across various hardware manufacturers. This facilitated growth in both hardware and software markets, encouraging innovation as affordable CP/M-based microcomputers attracted independent programmers and user communities. Eventually, CP/M's dominance waned following the introduction of DOS alongside the 1981 debut of the IBM PC.
Early history
In 1974, Gary Kildall created CP/M as an operating system tailored for the Intel Intellec-8 development platform, which utilized a Shugart Associates 8-inch floppy-disk drive equipped with a custom controller. The system was programmed in Kildall’s proprietary language, PL/M (Programming Language for Microcomputers). CP/M drew conceptual inspiration from the TOPS-10 operating system running on the DECsystem-10 mainframe, which Kildall had experience using.
CP/M was compatible with a variety of computers based on both the 8080 and Z80 processors. In 1977, early licensee Gnat Computers acquired rights to CP/M 1.0 at a rate of $90 per microcomputer unit. Due to rapidly increasing demand, Digital Research soon escalated licensing fees into much higher brackets.
Under Kildall’s guidance, John Pierce spearheaded development of CP/M version 2.0 in 1978. Beginning her tenure at Digital Research in early 1979, Kathryn Strutynski initially focused on debugging CP/M 2.0 before becoming a principal developer for subsequent versions such as CP/M 2.2 and CP/M Plus. Other notable early contributors included Robert "Bob" Silberstein and David "Dave" K. Brown.
Originally abbreviated as "Control Program/Monitor," CP/M was rebranded during its commercial rollout in November 1977 to "Control Program for Microcomputers." This renaming aligned with industry naming conventions exemplified by Kildall’s PL/M and IBM’s CP/CMS systems. The change was part of a strategic initiative by Kildall, his wife, and business partner Dorothy McEwen to commercialize both CP/M and the PL/M compiler, positioning Digital Research as a premier software provider for microcomputers. The company initially named Intergalactic Digital Research, Inc. was later shortened to Digital Research, Inc.
Early Achievements
By September 1981, Digital Research had distributed more than CP/M licenses, with the actual user base likely higher due to sublicensing agreements. A wide range of manufacturers released CP/M-compatible computers targeting various market segments; InfoWorld highlighted CP/M’s emergence as the definitive operating system for small computers. Even companies with their own proprietary operating systems, such as Heath/Zenith (HDOS), provided CP/M as an alternative for their 8080/Z80 hardware, a flexibility not mirrored in the 6502-based computer market.[1] The extensive software ecosystem was a major factor behind CP/M's adoption. For instance, the Xerox 820 implemented CP/M to take advantage of thousands of existing applications.[2] To address shortcomings in Digital Research’s documentation, Xerox supplemented their offering with a Howard W. Sams CP/M manual.[3][4]
By 1984, Columbia University had utilized CP/M source code to compile Kermit binaries for over a dozen distinct CP/M platforms, along with two generic variants.[5] The operating system was characterized as a "software bus",[6][7] facilitating interaction between various software and hardware components through a uniform interface.[8] Applications were generally portable across different hardware platforms, requiring only adjustments for terminal and printer control codes. This portability contributed significantly to CP/M’s widespread use and richer software availability compared to single-vendor operating systems. However, some programs exploited the Z80’s additional instruction set or incorporated machine-specific graphics routines that bypassed the OS to enhance performance.[9]
Bill Gates identified the Apple II equipped with a Z-80 SoftCard as the leading hardware platform for running CP/M.[10] By 1982, Digital Research had licensed CP/M for upwards of 450 distinct computer models.[11] Prominent machines supporting CP/M included the Altair 8800, IMSAI 8080, Osborne 1, Kaypro luggable computers, and MSX systems. The most commercially successful CP/M-compatible machine was likely the Amstrad PCW. In the United Kingdom, CP/M was available on educational computers from Research Machines (with source code released for instructional use), the BBC Micro outfitted with a Z80 co-processor, as well as on the Amstrad CPC, Commodore 128, TRS-80, and later versions of the ZX Spectrum. The NIAT handheld computer designed for A. C. Nielsen used CP/M 3 and featured 1 MB of solid-state storage.
Multi-user Systems
Digital Research introduced MP/M in 1979, a multi-user adaptation of CP/M that enabled several users to access a single machine through terminal connections. Subsequent releases extended support to 16-bit processors.
CP/M Plus
Released in 1983, CP/M Plus (version 3) represented the last iteration of the 8-bit CP/M series, featuring a BDOS crafted by David K. Brown. This version incorporated MP/M’s bank switching memory management into a single-user operating system that maintained compatibility with CP/M 2.2 software, allowing access to memory beyond 64 KB on 8080 or Z80 CPUs. Enhancements included file date stamping and integrated relocating assembler and linker utilities. CP/M Plus was primarily designed for advanced 8-bit platforms such as the Amstrad PCW, Amstrad CPC, ZX Spectrum +3, Commodore 128, MSX computers, and the TRS-80 Model 4.
16-bit versions
CP/M extended its reach into 16-bit computing with the introduction of CP/M-86 for the Intel 8086 processor, launched in November 1981 under the leadership of project manager Kathryn Strutynski. To differentiate it from the original, the earlier 8-bit system was renamed CP/M-80.
Although initially expected to be the IBM PC’s default operating system, CP/M-86 lost out due to licensing conflicts, resulting in IBM opting for Microsoft’s PC DOS, which was based on 86-DOS. Even though CP/M-86 eventually became an option on IBM PCs following legal pressure, its higher cost—$240 compared to PC DOS’s $40—hindered widespread acceptance.
Digital Equipment Corporation’s Rainbow 100 supported multiple OS environments: CP/M-80 (Z80), CP/M-86 (8088), MS-DOS, and a dual-processor configuration running both CP/M-86 and CP/M-80 simultaneously. This allowed users to retain their existing 8-bit applications while transitioning toward MS-DOS on 16-bit hardware. Comparable dual-CPU architectures were also found in systems like the CompuPro System 816 (running CP/M 8-16) and the Zenith Z-100.
In 1982, Digital Research introduced CP/M-68K for the Motorola 68000 processor. Originally developed in Pascal/MT+68k and later ported to C, it operated on EXORmacs machines and was considered for Atari ST hardware before Atari selected GEMDOS instead. This version also ran on SORD M68 and M68MX computers.
The same year saw the creation of CP/M-8000 for the Zilog Z8000 processor, written in C and deployed on the Olivetti M20.
These 16-bit variants necessitated recompiling existing software; however, some assembly language programs could be converted automatically using tools such as Digital Research’s XLT86. This utility translated Intel 8080 assembly source code into Intel 8086 instructions while optimizing code size and adjusting calling conventions. XLT86 was available on both CP/M-80 and VAX/VMS systems.
Displacement by MS-DOS
By the early 1980s, approximately two thousand applications had been developed for CP/M, positioning it as the anticipated standard operating system for emerging 16-bit computers. In 1980, IBM sought to license a CP/M version for its upcoming Personal Computer but failed to finalize a signed non-disclosure agreement with Digital Research. Subsequently, IBM engaged Microsoft to supply an operating system.
MS-DOS borrowed several concepts from CP/M, including file management structures and drive letter assignments (A:, B:, etc.). Its principal advancement was the adoption of the FAT file system, which facilitated porting popular CP/M applications such as WordStar and dBase. MS-DOS also leveraged more memory—typically exceeding 64 KB—allowing for additional built-in commands within its command-line interface and enhancing performance and usability on floppy disk–based PCs.
Although hardware solutions like the Baby Blue expansion card enabled running CP/M software on IBM PCs, professional reviews favored MS-DOS for its superior user experience and speed. By the mid-1980s, attempts to promote CP/M among home users largely faltered due to high software expenses. Manufacturers like Kaypro discontinued production of their 8-bit CP/M machines in favor of MS-DOS platforms. As IBM PC compatibility became dominant, CP/M rapidly declined in market share; major industry publications ceased coverage of CP/M within a few years.
Subsequent releases of CP/M-86 improved both performance and compatibility with MS-DOS environments, later being rebranded first as DOS Plus and then as DR-DOS.
ZCPR
ZCPR, standing for Z80 Command Processor Replacement, was launched on 2 February 1982 as a direct substitute for Digital Research's console command processor (CCP). It originated from a hobbyist collective called "The CCP Group," led by Richard Conn. The initial version, ZCPR1, was distributed on disk through SIG/M, affiliated with the Amateur Computer Club of New Jersey.
The subsequent release, ZCPR2, arrived on 14 February 1983 via ten disks from SIG/M and included an enhanced 2.3 edition that added support for 8080 code to increase compatibility. Richard Conn and Frank Gaude established Echelon Inc. to commercialize the following iteration while maintaining free availability. On 14 July 1984, ZCPR3 was introduced as nine disks from SIG/M, with a variant that could be compiled for 8080 systems lacking Z80 processors.
By its third version, ZCPR incorporated features such as command shells, aliasing, input/output redirection, flow control structures, named directory support, search path capabilities, customizable menus, password protection, and integrated online help. In 1987, Jay Sage took over development, producing ZCPR 3.3 which removed 8080 compatibility and added a broad suite of utilities and enhancements. Although it retained strong backing within the CP/M community, ZCPR was unable to halt the platform's overall decline.
Hardware model
A basic CP/M system based on an 8-bit architecture required the following components:
- A terminal capable of ASCII communication
- 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 platforms; any IBM PC-compatible could run CP/M-86
- A minimum of 16 KB RAM starting at address zero
- A bootstrap mechanism to load the initial disk sector
- At least one floppy disk drive
Digital Research officially supported only the Intel 8080 Development System; nevertheless, numerous manufacturers adapted CP/M to fit their hardware designs. Due to the Z80's compatibility with the 8080 instruction set, many systems employed it alongside tailored BIOS code and specialized applications.
In collaboration with Zilog and American Microsystems, Digital Research created Personal CP/M—a ROM-based operating system aimed at lower-cost machines without disk drives. This was first implemented in the Sharp MZ-800 cassette-based system with optional disk support and utilized enhanced Z80 instructions rather than ensuring full portability.
American Microsystems released the S83 microprocessor—a Z80-compatible chip integrating an 8 KB ROM containing OS and BIOS plus dynamic RAM interface logic—offered at $32 per unit in bulk quantities.
Most systems relied on a minimal ROM bootloader combined with bank switching or bus injection techniques to load CP/M into RAM at address zero; some required manual bootstrap entry through front-panel switches.
CP/M standardized on the 7-bit ASCII character set; however, extended 8-bit characters differed by vendor and region—for instance, Kaypro incorporated Greek letters, Osborne machines used the eighth bit to indicate underlining, and WordStar treated it as an end-of-word marker. International editions generally adapted ISO 646 character sets by substituting certain ASCII characters rather than extending beyond seven bits.
Components
While operational in memory, CP/M consists of three main parts:
- Basic Input/Output System (BIOS),
- Basic Disk Operating System (BDOS),
- Console Command Processor (CCP).
The BIOS and BDOS reside permanently in memory; the CCP remains resident unless replaced by an application program, after which it automatically reloads. Standard utility commands are stored as transient programs in files with a .COM extension.
The BIOS manages hardware components other than CPU and main memory by handling tasks such as character input/output and reading or writing disk sectors. The BDOS provides file system management and input/output abstractions like redirection built atop BIOS functions. The CCP interprets user commands by executing internal commands (e.g., DIR, ERA) or loading executable transient commands (e.g., PIP.COM, STAT.COM). Third-party software typically operates as transient commands.
While BDOS, CCP, and standard transient utilities remain consistent across different CP/M versions, the BIOS is customized for each specific hardware platform. Expanding memory requires reinstalling CP/M so transient applications can access additional space. The MOVCPM utility relocates object code to alternate memory regions by adjusting jump and call instruction addresses, enabling programs to utilize expanded memory areas. After installation, OS components are stored in reserved disk locations for booting; a ROM-based bootloader loads the OS from drive A: during startup.
By contemporary standards, CP/M is considered rudimentary due to strict limitations on program size. Early versions lacked disk change detection mechanisms, risking data corruption if disks were swapped without reloading directories. Later iterations introduced error signals if writes occurred before directory updates were completed—preventing overwrites but necessitating system reboots.
Most complexity is concentrated within BDOS and to a lesser extent in CCP and transient commands. This modular architecture allowed rapid porting by modifying only the BIOS for new hardware platforms—a critical factor behind CP/M’s widespread adoption. This approach to hardware abstraction was innovative at a time when operating systems generally targeted single hardware configurations.
Console Command Processor
The Console Command Processor (CCP) is responsible for managing keyboard inputs and terminal outputs within CP/M. It supports both printing and video terminals, presenting the prompt A> by default to indicate the active disk drive. Users can modify this prompt by entering internal commands such as B:, which changes the prompt to B>.
CP/M’s command-line interface was inspired by Digital Equipment Corporation operating systems like RT-11 and OS/8. Commands are structured as keywords followed by optional parameters. Internal commands run directly inside the CCP, whereas external "transient" programs are loaded from disk with parameters passed along. After a transient program finishes, BDOS reloads the CCP to reclaim memory resources.
Certain commands retain legacy names derived from DEC utilities, such as PIP (Peripheral Interchange Program) used for copying files. Parameter conventions differ among programs, lacking a unified option character.
The CCP’s built-in commands include DIR, ERA, REN, SAVE, TYPE, and USER. Examples of transient commands are ASM, DDT, DUMP, ED, LOAD, PIP, STAT, SUBMIT, and SYSGEN.
With CP/M Plus (Version 3), additional built-in commands were introduced, such as DIR excluding SYS-attributed files, alongside DIRSYS/DIRS for listing system files. Other built-ins include ERASE/ERA, RENAME/REN, TYPE/TYP, and USER/USE with support for abbreviations. Transient utilities in CP/M 3 encompass COPYSYS, DATE, DEVICE, DUMP, ED, GET, HELP, HEXCOM, INITDIR, LINK, MAC, PIP, PUT, RMAC, SET, SETDEF, SHOW, SID, SUBMIT, and XREF.
Basic Disk Operating System
The Basic Disk Operating System (BDOS) oversees fundamental functions such as file management, console output, and printer control. Applications request BDOS services by placing operation codes and parameters into processor registers before invoking a fixed memory address. This uniform call mechanism ensures consistent operation across different hardware platforms.
Basic Input Output System
The Basic Input Output System (BIOS) delivers the lowest-level hardware interface routines in CP/M, including character input/output and reading or writing disk sectors. While BDOS may provide some disk buffering capabilities, BIOS must be adapted specifically for each hardware variant due to differences in disk sector sizes and device interfaces. For instance, BIOS adjusts for diverse video display systems, serial communication ports, and memory-mapped I/O configurations. This layer of hardware abstraction allows CP/M to function on a broad array of computer systems. Serial port functionality within BIOS is often minimal or nonexistent; therefore, modem support is generally implemented through user-installed overlays tailored to particular hardware setups.
Applications
CP/M served as the foundation for groundbreaking software titles such as WordStar for word processing and dBase for database management. Early outlining programs like KAMAS and Out-Think originated on CP/M before migrating to MS-DOS. Development tools including Turbo Pascal—precursor to Borland Delphi—and Multiplan—the predecessor of Microsoft Excel—were first released on this platform. The pioneering spreadsheet VisiCalc and Sorcim’s SuperCalc—later dominating the market—were also available on CP/M. Autodesk’s AutoCAD initially debuted on this operating system as well. A variety of compilers and interpreters for languages like BASIC, FORTRAN, and PL/I were accessible on CP/M; some were among Microsoft’s earliest offerings.
Many CP/M applications featured installers designed to adapt software to various hardware formats. For example, users of Kaypro II converted Xerox 820 disks into Kaypro-compatible formats to ensure operability. BASIC source code was commonly distributed with software packages, and copy protection methods were generally ineffective due to CP/M’s standardized disk format expectations.
Although limited graphical capabilities constrained video game development on CP/M, numerous text-based games flourished on the platform. Titles such as Telengard, Gorillas, Hamurabi, Lunar Lander, along with interactive fiction series like Zork and Colossal Cave Adventure were ported to CP/M environments. Infocom consistently released their text adventure games in CP/M format. Lifeboat Associates distributed user-developed freeware including XMODEM—a utility enabling reliable file transfers over modems—and the outline processor KAMAS was another significant native application.
Transient Program Area
In the initial CP/M implementations for the 8080, 8085, and Z80 processors, the memory region from address 0100 hexadecimal up to just before the BDOS entry point at 0006H was designated as the Transient Program Area (TPA), reserved for application software. Although these CPUs could address up to 64 KB of memory, the actual size of the TPA depended on the hardware configuration, since portions of the address space were often allocated to BIOS ROM or video memory. To increase TPA capacity, systems frequently employed bank switching techniques to replace ROM or video memory segments. CP/M 3.0 further enhanced this by supporting sections of the BDOS within bank-switched memory.
Debugging application
CP/M provided a Dynamic Debugging Tool (DDT), which allowed users to inspect and modify memory contents and program modules interactively, as well as execute programs one instruction at a time for detailed debugging.
Resident programs
Initially, CP/M did not offer terminate-and-stay-resident (TSR) capabilities similar to those found in DOS. Nonetheless, developers created utilities that intercepted operating system calls to extend functionality; an example is SmartKey, a keyboard utility that mapped strings to specific keys. With the release of CP/M 3, dynamically loadable Resident System Extensions (RSX) were introduced, enabling the CCP to load RSXs without requiring transient program involvement by using null command files. Additionally, third-party solutions like Resident System Modules (RSMs) were backported to CP/M 2.2 to provide comparable features.
Software installation
Although CP/M standardized interfaces for disk and console input/output, application software still needed installation procedures to leverage hardware peripherals such as printers and terminals. Device control frequently depended on manufacturer-specific escape sequences—for instance, codes that enabled bold printing on certain printers. Users generally ran installation utilities to select their devices or customize escape sequences for various functions. This installation process had to be repeated individually for each application because no centralized operating system service managed device configurations.
Printer initialization commands were embedded directly within software packages; for example, using WordStar with multiple printer models required separate versions customized for each printer type, meaning users had to reload different program versions when switching devices.
Disk formats
The 128-byte sector, single-density, single-sided disk format used by the IBM System/34 and IBM 3740 became the standard 8-inch floppy disk format for CP/M systems. In contrast, no unified 5.25-inch disk format existed across CP/M platforms; manufacturers such as Kaypro, Morrow Designs, Osborne, and others each implemented their own formats. Although most software was distributed in Xerox 820 format compatible with machines like the Kaypro II, InfoWorld estimated in 1981 that roughly two dozen disk formats were prevalent enough that software developers had to support multiple ones to reach a broad audience. For instance, JRT Pascal was available on several 5.25-inch disks tailored for North Star, Osborne, Apple, Heath/Zenith (both hard and soft sector), and Superbrain systems, alongside an 8-inch version. Ellis Computing supported Heath formats plus sixteen other 5.25-inch variants including TRS-80 CP/M types. Lifetree and other companies also ported CP/M applications across diverse hardware platforms.
Disk formats varied widely due to differences in system architecture and disk characteristics. While CP/M allowed customization of reserved areas, directory sizes, and logical-to-physical sector mappings on disks, there was no standardized mechanism for automatically loading formatting parameters from disks created on other systems.
Nearly all CP/M machines equipped with 8-inch drives could read IBM’s single-sided single-density format; however, compatibility with other formats depended heavily on the specific disk drives and controllers because floppy disks came in numerous variants—ranging from hard or soft sectoring to single or double density/sided configurations—with track counts between 35 and 80 and differing sector layouts and interleaving schemes. Conversion utilities facilitated reading disks from different machines sharing similar formats—for example, the Kaypro II could access disks from TRS-80, Osborne 1, IBM PC, and Epson QX-10 computers—though some disks like those with 80 tracks or hard sectoring remained inaccessible. Users of Apple II systems were limited to Apple’s proprietary GCR format and had to obtain CP/M software either on Apple-formatted disks or transfer it via serial connections.
The fragmented nature of CP/M’s disk formats compelled distributors to maintain inventories of multiple disk types or invest in duplication equipment capable of handling various formats—contrasting sharply with the more standardized disk formats adopted by the IBM PC. This lack of uniformity contributed significantly to CP/M’s rapid decline after 1981.
Among the last prominent CP/M-compatible computers was the Commodore 128 released in 1985, which featured a Z80 processor dedicated to running CP/M alongside its native 6502-derived mode. Running CP/M on this machine required either a 1571 or 1581 floppy drive capable of reading soft-sectored 40-track MFM disks.
The first computer equipped with a 3.5-inch floppy drive was the Sony SMC-70, which operated under CP/M 2.2. Other systems supporting CP/M on 3.5-inch media included the Commodore 128, Bondwell-2 laptop, Micromint/Ciarcia SB-180, MSX, and TRS-80 Model 4 running Montezuma’s CP/M 2.2 implementation. Applied Engineering’s CP/AM for Apple II also supported both 3.5-inch floppy disks and RAM disks via memory expansion cards. The Amstrad PCW initially utilized 3-inch floppy drives before transitioning to 3.5-inch drives later in its lifecycle.
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 designating the file type (for instance, .COM for executable files and .TXT for text documents). When entered at the command prompt, filenames were automatically converted to uppercase; however, certain applications, such as MBASIC, could generate lowercase filenames, which complicated command-line operations.
Disk drives were identified using drive letters (e.g., A:, B:). Files were accessed by prefixing the filename with the drive letter and colon, like A:FILE.TXT. If no drive letter was specified, the system assumed the current drive.
File sizes were expressed in 128-byte records, corresponding to disk sectors; precise byte counts were not directly reported. The File Control Block (FCB) maintained file size information within the operating system. Text files typically ended with a control-Z character (ASCII SUB, hex 1A) to signify end-of-file, which impacted how files were edited and truncated.
With the advent of larger removable and fixed disk drives, disk de-blocking algorithms increased the number of disk blocks per allocation unit. This enabled support for bigger files but also raised the minimum allocatable file size—from 1 KB on single-density disks up to 32 KB for files containing just one byte on higher-density drives—resulting in less efficient storage for many small files.
CP/M 2.2 did not include file modification timestamps; however, these were optionally supported in MP/M and CP/M 3.0.
While CP/M 2.2 lacked hierarchical directories, it provided 16 numbered user areas for file organization. Users could switch between these areas using the "User X" command (where X ranges from 0 to 15). Security was limited; user areas primarily served to separate files by user or task on shared systems. Files stored in USER 0 were accessible across all users but required explicit path specification. This feature was more practical on systems equipped with hard disks than on those using small floppy disks, enabling task-specific file management—for example, isolating data entry from billing processes.
Graphics
Although some S-100 systems with graphics capabilities existed early on, CP/M did not offer a standardized graphics interface until 1982 with the introduction of GSX. Limited memory on 8-bit CP/M machines meant graphics usage was rare; most displays relied on simple ASCII art in text mode or custom character sets. Certain computers, such as models from the Kaypro series and the TRS-80 Model 4, provided block graphics accessible to programmers using assembler or BASIC. The TRS-80 Model 4 supported graphics resolutions up to 640×240 pixels when equipped with an optional high-resolution graphics board.
Official
Some organizations developed authorized CP/M variants based on Digital Research’s original code. An example is IMDOS, designed for the IMSAI 8080, a clone of the Altair 8800.
Compatible
Various independently created CP/M-compatible operating systems emerged without utilizing Digital Research source code, including:
- Cromemco CDOS from Cromemco
- MSX-DOS, compatible with CP/M and capable of running its software, designed for MSX computers
- Epson QX-10 offered either CP/M or compatible TPM-II/TPM-III
- The British ZX Spectrum compatible SAM Coupé featured Pro-DOS, an OS compatible with CP/M-2.2
- Amstrad/Schneider CPC series and PCW computers shipped with CP/M disk sets
- The Husky (computer) employed DEMOS, a ROM-based loader capable of running numerous CP/M applications
- ZSDOS, a BDOS substitute for CP/M-80 version 2.2 developed by Harold F. Bower and Cameron W. Cotrill
- CPMish, a free and open-source OS compatible with CP/M 2.2 initially created without Digital Research code; since 2022 it incorporates updated DR CP/M components authorized by Lineo's president
- LokiOS, released in 2023 by David Kitson for the Open Spectrum Project, is a CP/M 2.2-compatible system including source code and utilities for dynamic OS component replacement alongside original DR source code
- IS-DOS for the Enterprise (computer), developed by Intelligent Software
- VT-DOS for the Videoton TV-Computer, also from Intelligent Software
Feature Improvements
Certain CP/M-compatible operating systems introduced substantial enhancements, exemplified by TurboDOS, which supported multi-processor configurations.
Eastern Bloc Variants
In the former Eastern Bloc, multiple CP/M-80 adaptations appeared under various titles such as SCP, SCP/M, CP/A, CP/J, CP/KC, among others. These versions included both modified binaries and source code adaptations, with significant contributions from East German manufacturer VEB Robotron. Additionally, CP/M-86 derivatives like SCP1700, CP/K, and K8918-OS were developed within this region.
Enduring Influence
Microsoft Windows’ ability to maintain compatibility with MS-DOS is rooted in conventions established by CP/M. Elements such as drive letter assignments (A and B for floppy drives; C for hard disks), the 8.3 filename structure, wildcard symbols (?, *), and reserved device identifiers (e.g., "PRN:", "CON:") all derive from CP/M standards. The use of the control character ^Z to signify end-of-file and DOS commands including DIR, REN/RENAME, TYPE, and ERA/ERASE also reflect CP/M’s legacy. File extensions like .TXT and .COM continue to serve as common file type indicators across various operating systems.
Between 1997 and 1998, Caldera made available CP/M 2.2 binaries alongside source code under an open source license, permitting redistribution and modification of Digital Research’s CP/M and MP/M files. Following Tim Olmstead’s passing in 2001, control transferred to Lineo, which updated the licensing terms to sustain ongoing distribution. In October 2014, the Computer History Museum released early CP/M source code in honor of its 40th anniversary.
As of 2018, enthusiasts within vintage computing circles and select specialized enterprises continue to develop and support CP/M-based systems, predominantly focusing on version 2.2.
See also
- 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 (includes IBM's choice of Microsoft DOS over Digital Research's CP/M)
- CP/M FAQ, comp.os.cpm and Digital Research resources
External links
- The Unofficial CP/M Web site – includes source code
- Gaby Chaudry's Homepage for CP/M and Computer History – includes ZCPR materials
- CP/M Main Page – John C. Elliott's technical information site
- MaxFrame's Digital Research CP/M page (archived)
- ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedwilkinson19811019 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedwise19820510 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedmeyer19820614 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedInfoworld 1981 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs nameddacruz19840427 - ↑ Lua error in Module:Citation/CS1/Configuration at line 2123: attempt to index field '?' (a nil value).
- ↑ Lua error in Module:Citation/CS1/Configuration at line 2123: attempt to index field '?' (a nil value).
- ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedSwaine_1997_Entrepreneurship - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedcitation needed - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedbunnell19820203 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedlibes198206
- Articles with short description
- 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
- Pages with reference errors
- Pages with script errors