SCPX5105.SYS
| Company type | Private |
|---|---|
| Industry | Software development |
| Founded | 1974 |
| Founder | Gary Kildall |
| Headquarters | United States |
| Products | CP/M operating system |
CP/M, initially an acronym for Control Program/Monitor and later redefined as Control Program for Microcomputers, is a widely adopted operating system developed in 1974 by Gary Kildall of Digital Research, Inc for Intel 8080 and 85-based microcomputers. Designed as a disk operating system, CP/M's primary function was to manage files stored on magnetic disks and facilitate program loading from these disks. Its earliest versions supported single-tasking on 8-bit processor systems with memory capacities up to 64 kilobytes, while subsequent releases introduced multi-user functionality and compatibility with 16-bit processor architectures.
The architecture of CP/M is composed of three main modules: the Basic Input/Output System (BIOS), responsible for hardware interfacing and device driver management; the Basic Disk Operating System (BDOS), which oversees file system operations and system-level services; and the Console Command Processor (CCP), acting as the command-line interface incorporating built-in commands.
During its peak, CP/M emerged as the de facto standard operating system for microcomputers, particularly prevalent on S-100 bus hardware platforms, dominating business computing from the late 1970s through the mid-1980s. By enabling easier application portability across different manufacturers’ hardware, CP/M significantly broadened both hardware and software markets. The widespread adoption of CP/M-based systems encouraged innovation within software development communities and independent user groups. Nonetheless, CP/M’s dominance waned after the introduction of DOS alongside the 1981 release 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 paired with a custom controller. The system was programmed using Kildall’s proprietary language, PL/M (Programming Language for Microcomputers). CP/M drew inspiration from the TOPS-10 operating system running on the DECsystem-10 mainframe computers that Kildall had experience with.
CP/M became compatible with a wide range of systems powered by the 8080 and Z80 processors. One of its earliest licensees, San Diego-based Gnat Computers, secured rights to CP/M version 1.0 in 1977 at a rate of $90 per microcomputer unit. As demand surged rapidly, Digital Research was able to increase licensing fees substantially, reaching amounts in the tens of thousands of dollars.
Under Kildall’s guidance, John Pierce spearheaded the development of CP/M 2.0 in 1978. Early in 1979, Kathryn Strutynski joined Digital Research and played a vital role in debugging CP/M 2.0; she later made significant contributions to CP/M 2.2 and CP/M Plus. Additional notable contributors included Robert Silberstein and David K. Brown.
Originally named "Control Program/Monitor," the product’s designation was revised during its commercial rollout to "Control Program for Microcomputers," as reflected in trademark documentation filed in November 1977. This renaming aligned with naming patterns such as Kildall’s own PL/M language and IBM’s CP/CMS operating system. The change formed part of a strategic initiative by Kildall, his spouse, and business associate Dorothy McEwen to position Digital Research as a premier software provider within the microcomputer market, aspiring to achieve brand recognition on par with industry leaders like IBM and Microsoft in personal computing. Correspondingly, the company’s name transitioned from Intergalactic Digital Research, Inc. to Digital Research, Inc.
Early Achievements
By September 1981, Digital Research had distributed more than CP/M licenses, with sublicensing arrangements indicating an even broader user base. A wide array of manufacturers developed CP/M-based systems aimed at various sectors; InfoWorld recognized CP/M as becoming the definitive operating system for small computers. Even companies that maintained their own proprietary operating systems, such as Heath/Zenith with HDOS, provided CP/M compatibility for their 8080/Z80 machines—contrasting with the 6502 CPU segment, which lacked a similar unifying standard.[1] This widespread adoption was largely due to CP/M’s vast catalog of software titles. For instance, the Xerox 820 utilized CP/M to access thousands of available applications.[2] Xerox supplemented Digital Research’s often-criticized documentation by including a Howard W. Sams CP/M manual.[3] By 1984, Columbia University had compiled Kermit executables for over a dozen distinct CP/M platforms as well as generic builds.[4]
CP/M was characterized as a "software bus",[5][6] facilitating interaction between diverse hardware and multiple software applications through a standardized interface.[7] Typically, programs could be transferred across different machines with minimal adjustments limited to terminal and printer control codes. This high degree of portability contributed significantly to CP/M’s widespread use and extensive software ecosystem compared to operating systems tied to single hardware vendors. Some constraints existed, such as Z80-specific instructions limiting full compatibility with 8080/8085 CPUs, and machine-dependent graphics routines that bypassed the OS to boost performance—a trait also seen in early DOS versions.
Bill Gates identified the Apple II equipped with a Z-80 SoftCard as the leading hardware platform running CP/M.[8] By 1982, Digital Research had licensed CP/M for upwards of 450 distinct computer models.[9] Prominent systems supporting CP/M included the Altair 8800, IMSAI 8080, Osborne 1, Kaypro portable computers, and MSX machines. The most commercially successful CP/M-capable device was probably the Amstrad PCW. In the United Kingdom, CP/M was available on Research Machines educational computers—with source code released for instructional purposes—and on the BBC Micro through a Z80 co-processor add-on. Additional support extended to platforms such as the Amstrad CPC, Commodore 128, TRS-80, and later versions of the ZX Spectrum. Moreover, CP/M 3 powered the NIAT handheld computer developed for internal use by A. C. Nielsen, featuring 1 MB of solid-state storage.
Multi-user Capabilities
Digital Research introduced MP/M in 1979, a multi-user variant of CP/M that allowed several terminals to access a single host system concurrently. Subsequent releases expanded support to include 16-bit processors.
CP/M Plus
Released in 1983, the last iteration of the 8-bit CP/M series, known as CP/M 3 or CP/M Plus, featured a BDOS designed 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 applications, enabling access to more than 64 KB of memory on 8080 or Z80 processors. Enhancements included file date stamping and an integrated suite of development utilities such as a relocating assembler and linker. CP/M 3 was aimed at advanced 8-bit platforms like the Amstrad PCW, Amstrad CPC, ZX Spectrum +3, Commodore 128, MSX systems, and Radio Shack’s TRS-80 Model 4.
16-bit versions
Digital Research initiated development of CP/M variants for 16-bit processors beginning with CP/M-86, tailored for the Intel 8086 and launched in November 1981. Kathryn Strutynski managed this project, while the original 8-bit CP/M was renamed CP/M-80.
Although anticipated to become the default operating system for the IBM PC, negotiations between Digital Research and IBM did not succeed. IBM ultimately selected Microsoft’s PC DOS, which was based on 86-DOS. CP/M-86 was later made available as an alternative but never achieved widespread adoption, partly due to its higher cost ($240 compared to $40 for PC DOS).
The Digital Equipment Corporation Rainbow 100 supported multiple operating systems: CP/M-80 running on a Z80 processor, CP/M-86 or MS-DOS on an 8088 CPU, or both simultaneously—allowing users to maintain their existing 8-bit software investments while moving toward 16-bit environments. Similar dual-processor configurations were implemented in systems such as 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 in 1982. Initially developed using Pascal/MT+68k and subsequently ported to C, it was considered by Atari for the ST but ultimately replaced by GEMDOS. CP/M-68K found application in machines like the Motorola EXORmacs and SORD M68 series.
In the same year, CP/M-8000 was created for the Zilog Z8000 CPU implemented in the Olivetti M20, with its codebase written in C.
These 16-bit editions required applications to be recompiled. To aid transition from CP/M-80 to these platforms (including MP/M), Digital Research offered utilities such as XLT86, which converted Intel 8080 assembly code into optimized Intel 8086 instructions. XLT86 was accessible on both CP/M-80 and VAX/VMS systems.
Displacement by MS-DOS
By the early 1980s, approximately two thousand applications existed for CP/M, positioning it as a likely standard OS for 16-bit machines. In 1980, IBM approached Digital Research—following Bill Gates' recommendation—to license a version of CP/M tailored for the IBM PC. After failing to finalize a signed non-disclosure agreement with Digital Research, IBM contracted Microsoft to provide the operating system instead.
MS-DOS shared numerous architectural elements with CP/M, including file management structures and drive letter assignments (A:, B:, etc.). Its primary advancement was introducing the FAT file system, which facilitated porting widely used CP/M software such as WordStar and dBase. Additionally, MS-DOS supported greater memory capacity (typically at least 64 KB) compared to CP/M's minimum of 16 KB. This allowed MS-DOS’s command-line interface to include more built-in commands and achieve better performance on floppy disk-based hardware.
Early IBM PC peripherals like the Baby Blue expansion card enabled running 8-bit CP/M software on PCs. Nonetheless, BYTE magazine in 1982 characterized MS-DOS as significantly more user-friendly and faster with numerous advantages. InfoWorld observed in 1984 that high software prices hindered CP/M’s penetration into the home computer market. By 1986, manufacturers such as Kaypro discontinued production of 8-bit CP/M hardware to concentrate on MS-DOS-based machines. As IBM-compatible systems gained dominance, CP/M’s market presence declined sharply and media coverage dwindled; by 1987 major industry publications had largely ceased featuring CP/M content.
Subsequent versions of CP/M-86 enhanced compatibility with MS-DOS and improved performance, eventually being rebranded as DOS Plus before evolving into DR-DOS.
ZCPR
ZCPR, standing for Z80 Command Processor Replacement, was introduced on 2 February 1982 as a direct substitute for Digital Research’s original console command processor (CCP). Its initial creation was the work of a hobbyist collective called "The CCP Group," led by Richard Conn. The first version, ZCPR1, was distributed through SIG/M, affiliated with the Amateur Computer Club of New Jersey.
On 14 February 1983, ZCPR2 was released as a collection of ten disks via SIG/M. This version later evolved to 2.3 and was also adapted into 8080 machine code to support 8080 and 8085 processors. Richard Conn and Frank Gaude established Echelon Inc. to commercialize later editions while continuing to offer free distribution. ZCPR3 debuted on 14 July 1984, introducing advanced capabilities such as command shells, aliases, input/output redirection, flow control structures, named directories, search path functionality, customizable menus, password protection, and integrated online help. A streamlined variant with fewer features was made available for 8080-based systems.
Development ceased under Conn's direction in January 1987 when Echelon contracted Jay Sage to advance the project further, resulting in ZCPR 3.3. This iteration discontinued support for the 8080 processor and incorporated the most comprehensive feature set and utilities within the ZCPR series. Although enthusiastically embraced by CP/M users, ZCPR ultimately could not reverse the decline of the CP/M platform.
Hardware model
A basic 8-bit CP/M installation required the following components:
- A terminal capable of ASCII communication
- A microprocessor such as Intel’s 8080 or 8085, or the Zilog Z80
- NEC V20/V30 CPUs provided 8080 emulation enabling CP/M operation on PC-DOS/MS-DOS hardware; PC-compatible machines could run CP/M-86 instead
- A minimum of 16 KB RAM starting at memory address zero
- A bootstrap loader located in the first sector of a diskette
- At least one floppy disk drive
Digital Research officially supported only the Intel 8080 Development System; nonetheless, numerous manufacturers adapted CP/M for their distinct hardware configurations. The compatibility with the Z80 processor allowed many systems to run CP/M by employing BIOS code and applications tailored specifically for the Z80.
In collaboration with Zilog and American Microsystems, Digital Research developed Personal CP/M—a ROM-based operating system designed for low-cost machines that might lack disk drives. Initially implemented on the Sharp MZ-800 system which used cassette storage with optional floppy disks, Personal CP/M exploited enhanced Z80 instructions rather than maintaining full compatibility with the original 8080 instruction set. American Microsystems released the S83 microprocessor featuring integrated ROM containing OS and BIOS along with circuitry for dynamic RAM interfacing; this chip was priced at $32 per unit in volume.
Most CP/M systems utilized a minimal ROM bootloader combined with techniques like bank switching or bus injection to provide RAM at address zero during startup; certain models required manual entry of bootstrap code via front-panel switches.
CP/M employed the standard 7-bit ASCII character set; however, its extended 8-bit character range lacked standardization and varied across implementations—for example, Kaypro used Greek letters, Osborne represented underlining, and WordStar indicated word boundaries. Localized international versions often adopted ISO 646 standards by substituting characters within the 7-bit range.
Components
The CP/M operating system loaded into memory during execution consists of three primary elements:
- Basic Input/Output System (BIOS),
- Basic Disk Operating System (BDOS),
- Console Command Processor (CCP).
Both BIOS and BDOS remain resident in memory continuously, while CCP stays resident unless replaced by an application program—in which case it reloads automatically afterward. Standard utility commands are transient programs stored as disk files with a .COM extension.
The BIOS manages hardware devices excluding CPU and main memory; it handles character I/O operations and disk sector access. BDOS implements file system management and input/output abstractions such as redirection on top of BIOS services. The CCP interprets user commands, executing internal commands like DIR or ERA or loading external transient commands such as PIP.COM for file copying. Third-party software typically runs as transient commands.
While BDOS, CCP, and standard transient commands remain consistent across different CP/M versions, BIOS is customized for each hardware platform.
Adding extra memory requires reinstalling CP/M so that transient programs can utilize the expanded space. The MOVCPM utility adjusts absolute addresses within object code to relocate programs into new memory areas, enabling applications to access additional RAM. After installation, BIOS, BDOS, and CCP reside in reserved disk sectors used during booting. The bootloader—usually embedded in ROM firmware—loads the operating system from drive A: at startup.
By contemporary standards, CP/M is considered rudimentary due to tight constraints on program size. Early releases lacked disk change detection capabilities, risking data corruption if disks were swapped without refreshing directory information. Later versions introduced error notifications preventing overwrites but required rebooting to reset state.
Most complexity is concentrated in BDOS and to a lesser extent in CCP and transient commands. Porting relatively simple BIOS routines to new hardware enabled the entire OS to function on diverse platforms with minimal effort—significantly shortening development cycles and contributing to CP/M’s widespread adoption. This early form of hardware abstraction was innovative when most operating systems were designed exclusively for single hardware environments.
Console Command Processor
Within CP/M, the Console Command Processor (CCP) oversees keyboard inputs and terminal display output, accommodating both video and printing terminals. Users input commands on the command line, which is usually introduced by a prompt showing the current default disk drive, such as A>. To switch the default drive, users enter its letter followed by a colon (for example, B:), causing the prompt to update accordingly.
The command-line interface in CP/M draws inspiration from Digital Equipment Corporation's Concise Command Language found in systems like RT-11 and OS/8. Commands are formed by a keyword accompanied by parameters separated by spaces or specific delimiters. If a command is internal, the CCP executes it directly; otherwise, it loads an external "transient" program from disk, allowing these programs to utilize more memory by temporarily replacing the CCP.
Certain commands retain legacy or less intuitive names, such as PIP for copying files, reflecting their DEC heritage. Parameter formats differ among utilities, with no uniform option character standard.
Among the built-in CCP commands are DIR, ERA, REN, SAVE, TYPE, and USER. Transient commands include utilities like ASM, DDT, DUMP, ED, LOAD, PIP, and others.
In CP/M Plus (Version 3), the repertoire of built-in commands expanded to incorporate DIRSYS/DIRS for managing system files, ERASE/ERA for file removal, RENAME/REN, TYPE/TYP, and USER/USE for switching user numbers. This version also permits abbreviating built-in commands. The transient command set grew to feature tools such as COPYSYS, DATE, DEVICE, HELP, LINK, MAC, SET, SUBMIT, among others, thereby enhancing system administration functions.
Basic Disk Operating System
The Basic Disk Operating System (BDOS) is responsible for managing tasks including file manipulation, console output handling, and printer communication. Applications interact with BDOS by loading processor registers with designated function codes and parameters before invoking a fixed memory address. This consistent entry point ensures software remains compatible across varying hardware platforms.
Basic Input Output System
At the lowest level of CP/M functionality lies the Basic Input Output System (BIOS), which manages essential operations such as character input/output and reading or writing disk sectors. While BDOS provides some disk buffering capabilities, it assumes a sector size of 128 bytes prior to CP/M 3.0. Because many 5.25-inch disks employ larger sector sizes, BIOS incorporates device-specific routines to handle buffer management accordingly.
BIOS customization caters to diverse hardware architectures—ranging from integrated video displays to external terminals, different UART chips for serial interfaces, varying port addresses, and memory-mapped I/O instead of standard 8080 I/O ports. By standardizing access to hardware services like character I/O and disk operations, BIOS abstracts system software from hardware discrepancies. Due to limited native BIOS support for serial communications, numerous CP/M modem programs include user-installed overlays designed to manage particular serial ports effectively.
Applications
CP/M served as the foundation for groundbreaking business software, including WordStar for word processing and dBase for database management. Early outlining tools such as KAMAS and Out-Think were initially created for CP/M before migrating to MS-DOS. Turbo Pascal, the forerunner to Borland Delphi, along with Multiplan, which preceded Microsoft Excel, both made their debut on CP/M prior to their MS-DOS releases. The pioneering spreadsheet program VisiCalc was available on CP/M, competing alongside Sorcim’s SuperCalc, which dominated the platform’s spreadsheet market before entering the MS-DOS arena. AutoCAD by Autodesk also originated on CP/M. The platform supported a wide range of compilers and interpreters for languages like BASIC, Turbo Pascal, FORTRAN, and PL/I, including some of Microsoft’s earliest software offerings.
Software for CP/M commonly featured installers that could be adapted to different hardware configurations—for instance, Kaypro II users would convert disks from Xerox 820 to their native format. The availability of BASIC source code and minimal copy protection facilitated widespread software sharing; unconventional disk formats were uncommon because compatibility across applications was expected.
Due to limited graphical capabilities, video games on CP/M were mostly text-based; nevertheless, many popular titles such as Telengard, Gorillas, Hamurabi, Lunar Lander, and interactive fiction series like Zork and Colossal Cave Adventure were ported to the system. Infocom consistently released their games in CP/M versions. Lifeboat Associates distributed freeware developed by users, including XMODEM for dependable modem file transfers. The outline processor KAMAS also stood out as a significant native CP/M application.
Transient Program Area
In the original CP/M versions designed for the 8080, 8085, and Z80 processors, the read/write memory region from address 0100 hexadecimal up to just before the BDOS base address (0006H) was designated as the Transient Program Area (TPA) where applications operated. Although these CPUs could address up to 64 KB of memory, the actual size of the TPA depended on system architecture since some reserved portions for BIOS ROM or video memory. Systems employing bank switching could increase TPA size by swapping out ROM or video memory segments. CP/M 3.0 enhanced this capability by permitting parts of BDOS to be placed within bank-switched memory.
Debugging application
CP/M included a Dynamic Debugging Tool (DDT) that allowed users to inspect and modify memory contents and program modules interactively. It supported single-step execution of programs, making it an essential utility for developers during debugging and troubleshooting processes.
Resident programs
Initially, CP/M did not support terminate-and-stay-resident (TSR) programs like those found in DOS. Nevertheless, developers could intercept operating system calls to extend functionality, resulting in auxiliary utilities such as SmartKey, a keyboard enhancement tool. With CP/M 3, dynamically loadable Resident System Extensions (RSX) were introduced to provide system enhancements without relying on transient programs. Additionally, third-party solutions like Resident System Modules (RSMs) were retrofitted into CP/M 2.2 to offer similar capabilities.
Software installation
Although CP/M abstracted hardware details for disk and console input/output operations, most applications required installation procedures to support device-specific features like printers and terminals. Controlling these devices depended on manufacturer-specific escape sequences—for example, commands to enable bold text varied between printer models. Installation utilities allowed users to select devices or customize escape sequences according to their hardware; however, this customization had to be repeated separately for each application because the operating system did not provide centralized device management.
Printer initialization codes were embedded within individual applications; therefore, software such as WordStar needed distinct versions tailored for each printer model in use. Users had to load the appropriate version corresponding to their printer whenever switching devices.
Disk Formats
The 128-byte-per-sector, single-density, single-sided disk format from the IBM System/34 and IBM 3740 became the standard 8-inch floppy disk format for CP/M. Unlike this, no universal 5.25-inch disk format was established for CP/M; instead, companies such as Kaypro, Morrow Designs, and Osborne implemented their own proprietary disk formats. A majority of software was distributed using the Xerox 820 format, which was compatible with machines like the Kaypro II. However, by 1981, InfoWorld noted that approximately two dozen disk formats were sufficiently widespread to compel software developers to support multiple versions. For instance, JRT Pascal was available on different 5.25-inch disks tailored for North Star, Osborne, Apple, Heath/Zenith, and Superbrain computers, in addition to an 8-inch disk version. Ellis Computing provided versions compatible with several Heath formats as well as over a dozen other 5.25-inch formats including TRS-80 CP/M variants. Distributors such as Lifetree also modified CP/M applications to accommodate a variety of hardware platforms.
CP/M permitted users to customize the reserved and directory sections on disks and adjust logical-to-physical sector mappings; however, there was no standardized approach for retrieving these parameters from disks formatted on alternate systems. Although most CP/M machines equipped with 8-inch drives could read the IBM single-sided, single-density format, compatibility between different CP/M systems varied significantly due to differences in disk drives and controllers. Disk characteristics spanned a broad spectrum: hard or soft sectored, single or double density and sidedness, track counts ranging from 35 to 80, and diverse sector arrangements. Utilities existed to translate disk formats when they were similar—for example, the Kaypro II could access disks from TRS-80, Osborne 1, IBM PC, and Epson QX-10 systems. Nonetheless, certain formats such as 80-track or hard-sectored disks were incompatible across platforms. Apple II users were confined to Apple's GCR format and had to obtain CP/M software either on Apple-formatted disks or transfer data via serial connections.
This fragmentation in CP/M disk formats compelled distributors to maintain inventories of numerous disk types or invest in duplication equipment capable of handling multiple formats. The absence of a unified standard contributed to CP/M’s swift decline after 1981 in comparison to the more standardized IBM PC disk formats.
Among the last prominent CP/M-capable computers was the Commodore 128 (released in 1985), which included a Z80 processor dedicated to CP/M alongside its native CPU. This system required either a 1571 or 1581 disk drive that could read soft-sectored 40-track MFM disks.
The earliest computer featuring a 3.5-inch floppy drive running CP/M was the Sony SMC-70. Other CP/M-compatible systems utilizing 3.5-inch floppy disks included the Commodore 128, Bondwell-2 laptop, Micromint/Ciarcia SB-180, MSX, and TRS-80 Model 4 (operating Montezuma CP/M 2.2). Applied Engineering’s CP/AM for the Apple II also supported both 3.5-inch floppy disks and RAM disks when used with compatible memory expansion hardware. The Amstrad PCW initially employed 3-inch floppy drives before switching over to 3.5-inch drives later on.
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 denoting 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 generated lowercase filenames that were not easily accessible via the command line.
Disk drives were designated by letters like A or B, with files identified by prefixing the drive letter and a colon (e.g., A:FILE.TXT). If no drive letter was specified, the system defaulted to the current drive.
File size was quantified in 128-byte records, which corresponded to disk sectors, rather than exact byte counts. The file size information was maintained within the File Control Block (FCB). Text files typically concluded with a control-Z character (ASCII SUB, hex 1A) to signify end-of-file, influencing how software managed file truncation.
With the advent of larger removable and fixed disk drives, disk de-blocking was introduced. This method increased the number of disk blocks per allocation block, enabling support for bigger files but raising the minimum allocation unit from 1 KB on single-density disks up to 32 KB on higher-density media. This often resulted in inefficient disk space utilization when handling numerous small files.
Up through CP/M version 2.2, file modification timestamps were not supported; however, they became optionally available in MP/M and CP/M 3.0.
CP/M 2.2 did not provide subdirectories but implemented 16 numbered user areas to organize files. Users could switch between these areas using "User X" commands, effectively isolating files by user number—though this offered minimal security and was generally unnecessary for personal computer environments. Files stored in USER 0 were accessible across all user areas but required explicit path specification for access. This mechanism allowed task segregation on systems equipped with hard drives, permitting different users or functions (such as data entry versus billing) to maintain separate file collections without overlap.
Graphics
While some S-100 systems with graphical capabilities existed early on, CP/M itself lacked standardized graphics support until the introduction of GSX in 1982. Due to limited memory resources, graphics usage was rare on 8-bit CP/M machines, which primarily displayed simple ASCII art or relied on customized character sets. Certain models like the Kaypro series and the TRS-80 Model 4 incorporated video hardware that supported block graphics accessible through assembler programming or BASIC’s CHR$ function. The Model 4 could achieve a resolution of 640×240 pixels when equipped with an optional high-resolution graphics board.
Official
Some organizations produced authorized CP/M enhancements based on Digital Research’s source code. For example, IMDOS, designed for the IMSAI 8080—a clone of the Altair 8800—was a sanctioned variant.
Compatible
Numerous independently developed CP/M-compatible operating systems emerged without incorporating Digital Research code, including:
- Cromemco CDOS from Cromemco
- MSX-DOS, compatible with CP/M and capable of running its software, designed for MSX computers
- The Epson QX-10, which offered either CP/M or compatible TPM-II/III operating systems
- The British ZX Spectrum-compatible SAM Coupé, featuring an optional CP/M-2.2 Pro-DOS variant
- Amstrad/Schneider CPC and PCW series distributed with CP/M disk packs
- The Husky (computer) running DEMOS, a ROM-based loader supporting many CP/M applications
- ZSDOS, a BDOS replacement for CP/M-80 version 2.2 developed by Harold F. Bower and Cameron W. Cotrill
- CPMish, a free OS compatible with CP/M 2.2 initially created without Digital Research code but incorporating ZSDOS and ZCPR; since 2022 it has been updated under permission from Lineo’s president Bryan Sparks to include original DR CP/M components
- LokiOS, released in 2023 by David Kitson for the Open Spectrum Project, is a CP/M 2.2 compatible OS that includes BIOS, BDOS, CLI source code along with original DR source code and utilities enabling hot-swapping of OS modules
- IS-DOS for the Enterprise, developed by Intelligent Software
- VT-DOS for the Videoton TV Computer, also created by Intelligent Software
Improvements
Certain CP/M-compatible operating systems expanded the original capabilities considerably, with examples like the multi-processor supporting TurboDOS.
Eastern Bloc Variants
Within the former Eastern Bloc, numerous CP/M-80 versions were developed under a variety of designations such as SCP (), SCP/M, CP/A, CP/J, CP/KC, CP/KSOB, CP/L, CP/Z, MICRODOS, BCU880, ZOAZ, OS/M, TOS/M, ZSDOS, M/OS, COS-PSA, DOS-PSA, CSOC, CSOS, CZ-CPM, DAC, HC among others. Additionally, CP/M-86 variants like SCP1700, CP/K, and K8918-OS were produced. These systems were manufactured by entities including the East German VEB Robotron and other producers.
Impact and Legacy
Numerous features found in Microsoft Windows originate from maintaining backward compatibility with MS-DOS, which itself incorporated elements from CP/M. MS-DOS inherited the drive letter assignment and the 8.3 filename format from CP/M. The use of wildcard characters (? and *) within Windows is directly influenced by CP/M’s pattern matching conventions. Likewise, reserved filenames used for directing output to devices such as printers ("PRN:") and system consoles ("CON:") trace back to CP/M. The floppy drives were labeled A and B in CP/M; hard drives began with C—a practice that MS-DOS upheld with the C:\> prompt. The ^Z control character signaling end-of-file in text documents also has its roots in CP/M. Commands like DIR, REN/RENAME, TYPE (and ERA/ERASE in DR-DOS) were modeled after their CP/M counterparts. Common file extensions such as .TXT and .COM continue to be widely used across various operating systems.
Between 1997 and 1998, Caldera made available certain CP/M 2.2 binaries along with source code under an open source license. This allowed for redistribution and modification of Digital Research’s CP/M and MP/M-related files through Tim Olmstead’s "The Unofficial CP/M Web site." Following Olmstead’s passing in 2001, Lineo, then holder of these Digital Research assets, revised the distribution license. In October 2014, to mark its 40th anniversary, the Computer History Museum published early versions of the CP/M source code.
As of , enthusiasts dedicated to vintage computing and some niche businesses continue to maintain and develop systems running primarily CP/M version 2.2.
See also
- Amstrad CP/M Plus character set
- CPMulator
- CP/NET and CP/NOS
- Cromemco DOS, an independently developed OS based on 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 (details 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 Website – features available source code
- Gaby Chaudry's CP/M and Computer History Homepage – contains resources on ZCPR
- CP/M Central Page – John C. Elliott's site offering technical insights
- MaxFrame's archived 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 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