MICRODOS.SYS
| Company type | Private |
|---|---|
| Industry | Software |
| Founded | 1974 |
| Founder | Gary Kildall, Dorothy McEwen |
| Headquarters | United States |
Key people | Gary Kildall, Dorothy McEwen, John Pierce, Kathryn Strutynski, Robert Silberstein, David K. Brown |
| Products | CP/M operating system, MP/M, CP/M-86, CP/M-68K, CP/M-8000 |
CP/M, which initially meant Control Program/Monitor and was later redefined as Control Program for Microcomputers, is a widely used operating system developed in 1974 by Gary Kildall of Digital Research, Inc for Intel 8080 and 85-based microcomputer platforms. This disk operating system was created to manage files on magnetic storage devices and to load software from disks. At first, it supported only single-tasking on 8-bit processors with a maximum of 64 kilobytes of memory, but subsequent versions introduced multi-user functionality and compatibility with 16-bit processor architectures.
The fundamental elements of CP/M include the Basic Input/Output System (BIOS), responsible for hardware driver management; the Basic Disk Operating System (BDOS), which oversees the file system and core services; and the Console Command Processor (CCP), a command-line interpreter that offers built-in commands.
During its peak, CP/M became the de facto operating system standard for microcomputers utilizing the S-100 bus, achieving widespread adoption in business environments from the late 1970s through the mid-1980s. It played a crucial role in broadening both hardware and software markets by enabling easier application portability across different manufacturers’ systems. The emergence of cost-effective CP/M-compatible microcomputers encouraged software development, supported by independent programmers and user communities. However, CP/M's dominance diminished following the 1981 introduction of the IBM PC, which popularized DOS.
Early history
In 1974, Gary Kildall created CP/M as an operating system tailored for the Intel Intellec-8 development platform, which incorporated 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 (Programming Language for Microcomputers). CP/M's design was influenced by 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 powered by the 8080 and Z80 processors. One of its early licensees, Gnat Computers, obtained rights in 1977 to deploy CP/M 1.0 on any microcomputer for a fee of $90. As demand surged rapidly, Digital Research soon increased licensing costs into the tens of thousands.
The development of CP/M 2.0 in 1978 was primarily led by John Pierce under Kildall’s guidance. Kathryn Strutynski joined Digital Research in 1979 as an early staff member, initially focusing on debugging CP/M 2.0 before making significant contributions to CP/M 2.2 and CP/M Plus. Other notable developers included Robert Silberstein and David K. Brown.
While originally abbreviated as "Control Program/Monitor," the name CP/M was officially registered in November 1977 as "Control Program for Microcomputers" to better reflect its commercial intent. This naming approach aligned with contemporary software titles such as Kildall’s PL/M and IBM’s CP/CMS. Together with business partner Dorothy McEwen, the Kildalls sought to position Digital Research as a leading software company for microcomputers, aspiring to rival future industry giants like IBM and Microsoft. Subsequently, Intergalactic Digital Research, Inc. was renamed Digital Research, Inc.
Early achievements
By September 1981, Digital Research had distributed more than CP/M licenses, with sublicenses indicating an even broader adoption. A variety of manufacturers developed CP/M-based machines targeting different sectors; InfoWorld highlighted CP/M as becoming the leading operating system for small computers. Even companies with their own proprietary operating systems, such as Heath/Zenith (HDOS), offered CP/M as an alternative for their 8080/Z80 hardware, a contrast to the 6502 CPU market which lacked a similar universal standard.[1] The extensive software catalog was a key factor behind this widespread endorsement. For instance, the Xerox 820 incorporated CP/M to take advantage of its large application ecosystem, despite Digital Research’s limited documentation, which Xerox addressed by including a Howard W. Sams CP/M manual.[2][3][4]
By 1984, Columbia University utilized the same CP/M source code to create Kermit executables compatible with over a dozen CP/M variants as well as generic versions.[5] CP/M was characterized as a "software bus",[6][7] allowing diverse applications to communicate consistently with various hardware platforms.[8] Software was generally portable between machines, requiring only modifications to terminal and printer control codes. This adaptability contributed to CP/M’s growing popularity and software availability compared to operating systems confined to individual hardware brands. However, some drawbacks existed, such as incompatibilities when programs used the Z80’s extended instruction set on 8080/8085 processors and machine-specific graphics routines that bypassed the OS for performance—issues also common in early DOS implementations.
Bill Gates identified the Apple II equipped with a Z-80 SoftCard as the leading hardware platform running CP/M.[9] By 1982, Digital Research reported that CP/M was licensed for over 450 different computer models.[10] Prominent CP/M systems included the Altair 8800, IMSAI 8080, Osborne 1, Kaypro portable computers, and MSX machines. The most widely sold CP/M-compatible device was probably the Amstrad PCW. In the United Kingdom, CP/M was accessible on Research Machines educational computers (with source code released), the BBC Micro fitted with a Z80 co-processor, along with the Amstrad CPC, Commodore 128, TRS-80, and later models of the ZX Spectrum. Additionally, CP/M 3 operated on the NIAT handheld computer created for A. C. Nielsen, which featured 1 MB of solid-state storage.
Multi-user capabilities
In 1979, Digital Research introduced MP/M, a multi-user variant of CP/M that allowed several terminals to connect simultaneously to one computer, each providing users with their own screen and keyboard interface. Subsequent editions expanded support to include 16-bit processors.
CP/M Plus
The last iteration of the 8-bit CP/M series was version 3, referred to as CP/M Plus, which debuted in 1983. Created by David K. Brown, its BDOS incorporated MP/M’s bank-switching memory management into a single-user operating system compatible with CP/M 2.2 applications, enabling access to memory beyond 64 KB on processors like the 8080 or Z80. It introduced file date stamping and bundled development utilities such as a relocating assembler and linker. CP/M Plus was aimed at advanced 8-bit platforms including the Amstrad PCW, Amstrad CPC, ZX Spectrum +3, Commodore 128, MSX computers, and the Radio Shack TRS-80 Model 4.
16-bit versions
Digital Research created several CP/M variants designed for 16-bit processors, starting with CP/M-86 for the Intel 8086, released in November 1981. The project was overseen by Kathryn Strutynski. To differentiate it from its predecessor, the original 8-bit version came to be known as CP/M-80.
Although initially expected to become the IBM PC’s primary operating system, CP/M-86 lost out to Microsoft’s PC DOS due to unsuccessful licensing negotiations between IBM and Digital Research. Although CP/M-86 was later offered under legal duress, its significantly higher price ($240 compared to $40 for PC DOS) hindered widespread acceptance.
The DEC Rainbow 100 supported multiple operating systems: CP/M-80 (running on a Z80), CP/M-86 or MS-DOS (on an 8088), or both processors simultaneously through CP/M-86/80—allowing users to preserve their existing 8-bit software investments while moving toward a 16-bit environment. Similar dual-CPU configurations were found in machines like the CompuPro System 816 (CP/M 8-16) and the Zenith Z-100.
Following CP/M-86, Digital Research introduced CP/M-68K for the Motorola 68000 processor in 1982. Initially developed using Pascal/MT+68k and later ported to C, CP/M-68K operated on EXORmacs systems and was considered for use on Atari ST before Atari adopted GEMDOS. It also ran on SORD M68 and M68MX hardware.
In that same year, CP/M-8000 was launched for the Zilog Z8000 CPU on the Olivetti M20 platform, developed in C.
These 16-bit editions necessitated recompiling applications; however, Digital Research provided utilities such as XLT86 which translated Intel 8080 assembly source code into optimized Intel 8086 assembly language. This facilitated porting of CP/M-80 and MP/M-80 software to their respective 16-bit versions. XLT86 was available on both CP/M-80 and VAX/VMS systems.
Displacement by MS-DOS
By the early 1980s, approximately 2,000 applications existed for CP/M, and it was widely anticipated to become the dominant OS for 16-bit computers. In 1980, IBM approached Digital Research—prompted by Bill Gates—to license a version of CP/M for the IBM PC. After failing to obtain a signed non-disclosure agreement from Digital Research, IBM instead contracted Microsoft to provide an operating system.
MS-DOS shared many foundational elements with CP/M, including file management structures and drive letter designations (A:, B:, etc.). Its key advancement was the FAT file system, which simplified porting popular CP/M programs such as WordStar and dBase. Unlike CP/M, MS-DOS did not utilize separate user areas on disks but took advantage of increased memory capacity—IBM PCs typically started with at least 64 KB compared to CP/M’s minimum of 16 KB—enabling more built-in commands within its command-line interface for quicker and easier operation on floppy-based systems.
Early IBM PC peripherals included devices like the Baby Blue card that allowed running of 8-bit CP/M software such as WordStar. Nevertheless, BYTE magazine in 1982 described MS-DOS as "considerably more user-friendly, faster, and offering numerous advantages." By 1984, InfoWorld reported that CP/M had failed to establish a foothold in the home market due to expensive software costs. By 1986, manufacturers like Kaypro had discontinued production of 8-bit CP/M machines in favor of MS-DOS-compatible systems. As IBM-compatible microcomputers gained dominance, CP/M quickly lost market presence and industry attention; Byte magazine gradually phased out coverage of CP/M between 1983 and 1987.
Subsequent releases of CP/M-86 enhanced performance and compatibility with MS-DOS, eventually leading to rebranding efforts under names such as DOS Plus and later DR-DOS.
ZCPR
ZCPR, standing for Z80 Command Processor Replacement, was introduced on 2 February 1982 as a direct substitute for Digital Research's console command processor (CCP). This project was created by enthusiasts known collectively as "The CCP Group," with Richard Conn at the helm. The initial version, ZCPR1, appeared on a SIG/M disk distributed by the Amateur Computer Club of New Jersey.
On 14 February 1983, ZCPR2 was released as a set of ten SIG/M disks and later updated to version 2.3. This update was also made available in 8080 machine code to accommodate both 8080 and 8085 processors. Richard Conn and Frank Gaude established Echelon Inc. to commercialize subsequent versions while maintaining free availability. The third iteration, ZCPR3, launched on 14 July 1984, introduced features such as command shells, command aliases, input/output redirection, flow control mechanisms, named directories, search path capabilities, customizable menus, password protection, and integrated online help. Additionally, it could be compiled for processors other than the Z80 with a reduced feature set.
After Conn ended active development in January 1987, Jay Sage took over and advanced the software to version 3.3. This release discontinued support for the 8080 but incorporated numerous new utilities and enhancements. Despite widespread endorsement from CP/M users, ZCPR was unable to halt the eventual decline of the CP/M operating system.
Hardware model
A basic CP/M system built on an 8-bit architecture typically required:
- A computer terminal supporting ASCII communication
- A microprocessor such as the Intel 8080/8085 or Zilog Z80
- NEC V20/V30 processors could emulate the 8080 instruction set to run CP/M on PCs operating MS-DOS or PC-DOS; CP/M-86 was compatible with any PC-compatible clone
- A minimum of 16 KB RAM beginning at memory address zero
- Bootstrapping capability located in the first sector of a floppy disk
- At least one floppy disk drive
Digital Research officially endorsed only the Intel 8080 Development System; however, hardware manufacturers often tailored CP/M to suit their specific platforms. Due to the Z80’s backward compatibility with the 8080 instruction set, numerous systems and applications could operate CP/M by implementing BIOS code optimized for the Z80.
Digital Research collaborated with Zilog and American Microsystems to create Personal CP/M—a ROM-based variant designed for cost-effective systems lacking disk drives. This version first appeared on cassette-driven machines like the Sharp MZ-800 (which offered optional disk support) and leveraged enhanced Z80 instructions rather than striving for full portability. American Microsystems introduced the S83 microprocessor featuring integrated ROM containing OS and BIOS code alongside dynamic RAM interface logic, priced at approximately $32 per unit when purchased in volume.
Most hardware platforms employed a minimal ROM bootloader combined with bank switching or bus injection techniques to load CP/M at address zero. Some systems required manual entry of bootstrap code via front-panel switches.
CP/M utilized the standard 7-bit ASCII character set; however, its extended 8-bit range lacked uniformity across implementations. Different vendors applied this extended range variably—for instance, Kaypro used it for Greek letters, Osborne for underlining characters, and WordStar employed it to mark word endings. International variants typically replaced select ASCII characters with localized ISO 646 sets instead of extending beyond seven bits.
Components
When operational in memory, CP/M consists of three principal components:
- Basic Input/Output System (BIOS)
- Basic Disk Operating System (BDOS)
- Console Command Processor (CCP)
The BIOS and BDOS remain resident in memory continuously, while the CCP stays loaded unless overwritten by an application; when this occurs, it automatically reloads afterward. Standard utility commands are implemented as transient programs stored in .COM files on disk.
The BIOS manages hardware interaction except for CPU and main memory operations; it handles tasks such as character input/output and disk sector access. Built upon BIOS services, the BDOS oversees file system management and I/O abstractions including redirection. The CCP interprets user commands—executing internal functions like directory listings (DIR) or invoking transient command executables such as PIP.COM for file copying. Third-party software designed for CP/M operates as transient commands within this framework.
While BDOS, CCP, and standard transient utilities remain consistent across a single CP/M revision, the BIOS is specifically customized to match each hardware platform.
Expanding system memory necessitates reinstalling CP/M so that transient programs can utilize additional space. The MOVCPM tool relocates object code to newly available memory regions by adjusting internal jump and call instructions accordingly. The resulting patched version is saved back onto disk, enabling applications to exploit increased memory capacity. The OS components reside in reserved disk sectors used during booting; a ROM-based bootloader loads these components from drive A: during startup.
By contemporary standards, CP/M is considered rudimentary due to stringent size limitations. Earlier releases lacked mechanisms for detecting disk changes—leading to potential data corruption if disks were swapped without refreshing directory information. Later versions mitigated this risk by generating fatal errors if write operations occurred before reloading directory data; this prevented overwriting but required rebooting to continue safely.
The majority of CP/M’s complexity resides in BDOS with additional contributions from CCP and transient commands. By isolating hardware-specific routines within a simple BIOS layer that could be ported easily to new machines, developers could deploy the entire OS rapidly—significantly reducing development effort and accelerating CP/M’s widespread adoption. This layered hardware abstraction approach was innovative at its inception; most contemporary operating systems targeted single hardware platforms without employing such modular designs.
Console Command Processor
The Console Command Processor (CCP) handles keyboard input and outputs responses on the terminal screen. CP/M functions with either printing or video terminals, requiring all commands to be manually entered at the command line. The prompt, typically displayed as A>, signifies the active default disk drive; typing a drive letter followed by a colon (for example, B:) switches this default drive.
CP/M’s command-line environment was inspired by Digital Equipment Corporation operating systems such as RT-11 and OS/8. Commands are composed of a primary keyword accompanied by parameters separated by spaces or special delimiters. Internal commands are processed directly by the CCP, whereas external "transient" programs are loaded from disk and executed, temporarily freeing memory by unloading CCP during their run.
Certain commands retain legacy names like PIP (Peripheral Interchange Program) for file copying, reflecting their DEC heritage. The syntax for parameters varies between utilities, with no uniform convention for option flags.
Core CCP commands include DIR, ERA, REN, SAVE, TYPE, and USER. Transient utilities encompass assemblers (ASM), debuggers (DDT), editors (ED), and tools such as PIP and SYSGEN.
With CP/M Plus (Version 3), built-in commands were enhanced to include DIRSYS/DIRS for system file listings, ERASE/ERASE, RENAME/REN, TYPE/TYP, and USER/USE, allowing users to abbreviate commands for quicker input. The collection of transient commands grew to incorporate system utilities like COPYSYS, DATE, HELP, and LINK, reflecting the expanding demands within business settings.
Basic Disk Operating System
The Basic Disk Operating System (BDOS) governs core functions such as file management, console output, and printer control. Applications communicate with BDOS by loading specific function codes and parameters into processor registers before invoking a fixed memory address. This consistent entry point guarantees compatibility across diverse hardware implementations.
Basic Input Output System
The Basic Input Output System (BIOS) delivers the fundamental low-level operations for CP/M, including character input/output and reading or writing disk sectors. While BDOS manages disk buffering, BIOS is responsible for hardware-specific tasks like handling various sector sizes—a necessity given CP/M’s support for multiple disk formats and hardware designs.
Due to the broad range of hardware configurations—such as integrated video systems versus terminal connections, different UART chips managing serial ports, and some machines utilizing memory-mapped I/O instead of standard 8080 port addressing—custom BIOS implementations were essential. BIOS standardizes these hardware differences through fixed entry points, enabling CP/M to operate on numerous platforms. Modem functionality was minimal or often absent in BIOS itself; therefore, many CP/M applications incorporated user-installed overlays to facilitate serial communications.
Applications
CP/M served as the initial platform for several influential software titles including WordStar (word processing) and dBase (database management). Early outlining programs like KAMAS and Out-Think first appeared on CP/M before transitioning to MS-DOS. Programming environments such as Turbo Pascal—the predecessor to Borland Delphi—and spreadsheet pioneers like Multiplan (Microsoft Excel’s forerunner) were initially released on CP/M. The spreadsheet genre was further enriched by VisiCalc and Sorcim’s SuperCalc, both prominent in CP/M’s business software lineup. Autodesk’s AutoCAD also debuted on this platform.
An extensive selection of compilers and interpreters supported languages including BASIC, Turbo Pascal, FORTRAN, and PL/I, featuring early Microsoft-developed products. CP/M software often came with installers adaptable to a variety of hardware formats; for instance, Kaypro users converted Xerox 820 disk software into their native format. BASIC source code was commonly provided, and copy protection mechanisms were generally ineffective due to CP/M’s standardized disk format expectations.
Limited graphical capabilities restricted the scope of video games; however, text-based titles such as Telengard, Gorillas, Hamurabi, Lunar Lander, along with interactive fiction series like Zork and Colossal Cave Adventure were ported to CP/M. Infocom regularly published text adventures in CP/M format. Lifeboat Associates distributed user-created freeware including XMODEM for reliable file transfers over modems. The outline processor KAMAS also originated within the CP/M environment.
Transient Program Area
In the original CP/M designed for the 8080, 8085, and Z80 processors, the memory region from address 0100 hexadecimal up to just before the address stored at 0006H (which marks the lowest BDOS address) was designated as the Transient Program Area (TPA), reserved for application use. Although these CPUs could address up to 64 KB of memory, the actual size of the TPA depended on individual system designs, since some reserved portions of address space for BIOS ROMs or video memory. To expand the TPA, bank switching techniques were employed to replace ROM or video memory as necessary. CP/M 3.0 further enhanced this by supporting parts of the BDOS within bank-switched memory regions.
Debugging application
CP/M provided a Dynamic Debugging Tool known as DDT, which enabled users to inspect and modify memory contents and program modules while offering stepwise execution control over running programs.
Resident programs
Originally, CP/M did not accommodate terminate-and-stay-resident (TSR) utilities like those found in DOS. Nevertheless, developers could intercept operating system calls to augment functionality, allowing auxiliary programs such as SmartKey, a keyboard utility that assigned strings to keys. With CP/M 3, dynamically loadable Resident System Extensions (RSX) were introduced, permitting the CCP to load RSXs without relying on transient programs by using a null command file. Additionally, third-party developers adapted similar Resident System Modules (RSMs) for CP/M 2.2 systems.
Software installation
Although CP/M standardized interfaces for disk and console input/output, applications typically required an installation process to leverage device-specific features like printers and terminals. These peripherals were controlled through escape sequences that varied depending on manufacturer and model. Installation utilities enabled users to choose devices or tailor escape sequences for particular functions. This configuration needed to be repeated for each application because no centralized OS service managed these devices.
Printer initialization codes had to be embedded directly within applications. For instance, using WordStar with different printers—such as a fast dot-matrix versus a slower daisy wheel—demanded separate WordStar versions tailored for each printer type, requiring users to exit and reload the appropriate version when switching between printers.
Disk formats
CP/M's standard 8-inch floppy disk format was based on the IBM System/34 and IBM 3740's single-density, single-sided layout with 128-byte sectors. No universal 5.25-inch disk format existed for CP/M; manufacturers like Kaypro, Morrow Designs, Osborne, and others each implemented their own formats. While certain formats gained popularity—for example, most software was distributed in Xerox 820 format compatible with computers such as the Kaypro II—an InfoWorld estimate from 1981 identified about two dozen formats widely supported enough for software publishers to consider targeting them broadly. JRT Pascal exemplified this by providing versions on multiple 5.25-inch disks for platforms including North Star, Osborne, Apple, Heath/Zenith (both hard and soft sector), Superbrain, as well as an 8-inch disk version. Ellis Computing supported both Heath formats plus sixteen additional 5.25-inch variants, including two from TRS-80 CP/M systems. Lifetree and others also ported CP/M applications across various hardware.
CP/M allowed customization of reserved areas and directory structures on disks along with logical-to-physical sector mappings; however, there was no standardized approach for loading parameters from disks formatted by different systems. Although most CP/M machines equipped with 8-inch drives could read IBM's single-sided single-density format, cross-machine compatibility heavily depended on drive and controller types due to diverse floppy disk characteristics—such as hard versus soft sectored media, single or double density/sided configurations, and track counts ranging from 35 to 80. Translation utilities helped read disks from similar formats; for example, the Kaypro II could access disks from TRS-80, Osborne, IBM PC, and Epson QX-10 systems. Nonetheless, some disk types like 80-track or hard-sectored disks remained inaccessible across platforms. Apple II users were restricted to Apple's GCR format and had to obtain CP/M software on Apple-specific disks or transfer data via serial connections.
This fragmentation of disk formats compelled distributors to maintain inventories of multiple disk types or invest in multiformat duplication equipment—a complexity that contributed to CP/M's swift decline after 1981 compared to the more standardized IBM PC disk formats.
One of the final noteworthy machines supporting CP/M was the Commodore 128 (released in 1985), which incorporated a Z80 processor alongside its native CPU specifically for running CP/M. Reading soft-sector 40-track MFM disks required either a 1571 or 1581 disk drive.
The earliest computer featuring a 3.5-inch floppy drive was the Sony SMC-70, operating under CP/M 2.2. Other systems capable of running CP/M from 3.5-inch disks included the Commodore 128, Bondwell-2 laptop, Micromint/Ciarcia SB-180, MSX, and TRS-80 Model 4 (using Montezuma CP/M 2.2). Applied Engineering’s CP/AM expansion for Apple II also supported both 3.5-inch floppy drives and RAM disks via add-on cards. The Amstrad PCW initially utilized 3-inch floppy drives under CP/M before transitioning to 3.5-inch diskettes.
File system
File names adhered to the 8.3 convention, allowing up to eight characters, followed by a period, then a three-character extension indicating the file type (for example, .COM for executable files and .TXT for text documents). When typed at the command prompt, filenames were automatically converted to uppercase; however, certain applications, notably MBASIC, generated lowercase filenames that were not easily accessible via the command line.
Disk drives were designated by drive letters such as A or B. To reference files on a particular drive, the drive letter and colon were prefixed (e.g., A:FILE.TXT); if omitted, the system defaulted to the current drive.
File size was expressed in units called 128-byte records, each corresponding to a disk sector. Precise byte counts were generally unsupported. The operating system maintained file size information within the File Control Block (FCB). Text files typically concluded with a control-Z character (ASCII SUB, hex 1A) signaling end-of-file, which influenced how editors managed file truncation.
With the advent of larger removable and fixed disks, disk de-blocking increased the number of disk blocks per logical allocation block, allowing for bigger files but also raising the minimum allocation unit from 1 KB (single-density) up to 32 KB per file. This resulted in inefficient disk space utilization when many small files were stored.
CP/M 2.2 did not support file modification timestamps, although this feature was optionally available in MP/M and CP/M 3.0.
While CP/M 2.2 lacked subdirectories, it provided 16 numbered user areas for file organization. Switching between users was done via the "User X" command at the prompt. Security measures were minimal, reflecting its design for personal computers. User areas served to bridge single-user CP/M with multi-user MP/M environments. Files saved under one user area remained isolated from others except for USER 0, whose files could be accessed across users through explicit path references. Although limited on small floppy disks, user areas enabled more effective file management on systems equipped with hard drives, allowing distinct tasks—such as separating data entry from billing—to operate without file intermixing.
Graphics
Despite early availability of graphics-capable S-100 systems, CP/M did not offer standardized graphics support until 1982 with the introduction of GSX. Memory constraints on 8-bit CP/M machines restricted graphics mostly to simple ASCII art representations or custom character sets. Certain models like the Kaypro series and the TRS-80 Model 4 included video hardware capable of block graphics accessible by assembler and BASIC programmers. The TRS-80 Model 4 could achieve resolutions up to 640×240 pixels when equipped with an optional high-resolution graphics board.
Official
Some vendors released official CP/M enhancements derived from Digital Research’s source code, such as IMDOS for the IMSAI 8080, a clone of the Altair 8800.
Compatible
A variety of independently developed CP/M-compatible operating systems appeared without utilizing Digital Research’s original codebase, including:
- Cromemco CDOS produced by Cromemco
- MSX-DOS, which maintained compatibility with CP/M and could execute its programs
- The Epson QX-10, offering either CP/M or compatible TPM-II/III environments
- The British SAM Coupé’s optional Pro-DOS, compatible with CP/M-2.2
- Amstrad/Schneider CPC and PCW models bundled with CP/M disk software
- The Husky (computer) running DEMOS, a ROM-based loader supporting numerous CP/M applications
- ZSDOS, a BDOS replacement for CP/M-80 2.2 created by Harold F. Bower and Cameron W. Cotrill
- CPMish, a free and open-source OS compatible with CP/M 2.2 originally developed without Digital Research code; since 2022 it has incorporated original Digital Research components under permission from Lineo’s president
- LokiOS, launched in 2023 by David Kitson for the Open Spectrum Project, is a CP/M 2.2-compatible OS including source code and utilities facilitating hot-swappable OS modules
- IS-DOS for the Enterprise series developed by Intelligent Software
- VT-DOS for the Videoton TV Computer, also created by Intelligent Software
Enhancements
Certain CP/M-compatible systems notably extended capabilities, exemplified by TurboDOS, which supported multiple processors.
Eastern bloc
In the former Eastern Bloc, numerous CP/M-80 variants emerged under designations such as SCP (), SCP/M, CP/A, CP/J, CP/KC, among others. These versions were manufactured by East German firms like VEB Robotron. Additionally, CP/M-86-based systems including SCP1700, CP/K, and K8918-OS were developed within this area.
Legacy
Microsoft Windows inherited several traits from MS-DOS, itself designed to maintain compatibility with CP/M. Elements such as drive letter assignments, 8.3 filename conventions, wildcard symbols (? and *), and reserved device identifiers (e.g., "PRN:", "CON:") originate from CP/M standards. The convention of using drives A and B for floppy disks and C for hard drives was established by CP/M, influencing the MS-DOS C:\> prompt format. The ^Z control character signifying end-of-file in text documents also has its roots in CP/M. Commands like DIR, REN/RENAME, TYPE, and file extensions such as .TXT and .COM further demonstrate CP/M’s impact.
Between 1997 and 1998, Caldera made available CP/M 2.2 binaries along with source code under an open source license, permitting redistribution and modification of Digital Research’s materials via Tim Olmstead’s "The Unofficial CP/M Web site." Following Olmstead’s passing in 2001, Lineo, then holding these rights, broadened the licensing terms. To mark the 40th anniversary of CP/M in October 2014, the Computer History Museum published early source code versions.
As of 2018, enthusiasts within vintage computing circles and certain small enterprises continue to develop and maintain systems primarily operating on CP/M 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
- Richard Conn, ZCPR3 - The Manual, New York Zoetrope, 1985
- Z-System Corner: Tenth Anniversary of ZCPR, The Computer Journal, Issue 54
- The origin of CP/M's name
- Mustafa A. Katie, Intel iPDS-100 Using CP/M-Video, 2013
- IEEE Milestone in Electrical Engineering and Computing - CP/M - Microcomputer Operating System, 1974, Computer History Museum, 2014
- Triumph of the Nerds, PBS (covers IBM's choice of Microsoft DOS over Digital Research's CP/M for IBM PC)
- CP/M FAQ, comp.os.cpm
External links
- The Unofficial CP/M Web site (established by Tim Olmstead) – includes source code
- Gaby Chaudry's Homepage for CP/M and Computer History – contains ZCPR resources
- CP/M Main Page – technical information by John C. Elliott
- MaxFrame's Digital Research CP/M page
- ↑ 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 - ↑ Clarke, A.; Eaton, J. M.; David, D. Powys Lybbe (October 26, 1983). CP/M - the Software Bus: A Programmer's Companion. Sigma Press. ISBN 978-0905104188.
- ↑ Johnson, Herbert R. (July 30, 2014). "CP/M and Digital Research Inc. (DRI) History".
- ↑ 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 namedbunnell19820203 - ↑ Cite error: Invalid
<ref>tag; no text was provided for refs namedlibes198206