Jump to content

DAC (operating system)

From Alfawiki
Adapted from the English Wikipedia article DAC (operating system), available under CC BY-SA 4.0Updated 9 August 202520 sources
Digital Research, Inc.
Company typePrivate
IndustrySoftware
Founded1974
FounderGary Kildall
Headquarters
United States
ProductsCP/M, MP/M, CP/M-86, CP/M-68K, CP/M-8000

CP/M, initially an acronym for Control Program/Monitor and later reinterpreted 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 microcomputer platforms. As a disk operating system, CP/M was engineered to manage file storage on magnetic disks and enable program execution from these disks. Although its early versions supported only single-tasking on 8-bit processors with memory capacities up to 64 kilobytes, subsequent releases introduced multi-user functionality and compatibility with 16-bit processor architectures.

The architecture of CP/M consists of three main modules: the Basic Input/Output System (BIOS), which operates hardware interfaces; the Basic Disk Operating System (BDOS), responsible for file system management and core system services; and the Console Command Processor (CCP), which serves as the command-line interpreter offering built-in commands.

During the late 1970s through the mid-1980s, CP/M emerged as the de facto standard and leading operating system in the microcomputer market, particularly dominating systems utilizing the S-100 bus. By facilitating easier application portability across different manufacturers' hardware, CP/M broadened both hardware and software markets. The affordability of CP/M-based microcomputers encouraged innovation among independent developers, who often collaborated through user groups to share software. Eventually, CP/M’s prominence declined following the introduction of DOS concurrent with 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 incorporated a Shugart Associates 8-inch floppy-disk drive controlled by a proprietary interface.[1] The system was programmed using Kildall’s own language, PL/M (Programming Language for Microcomputers).[2] CP/M’s design drew inspiration from the TOPS-10 operating system used on the DECsystem-10 mainframe computers that Kildall had experience with.[3]

CP/M supported a variety of machines powered by both the 8080 and Z80 processors. Among its earliest licensees was Gnat Computers, which acquired rights to CP/M version 1.0 in 1977 at a cost of $90; this licensing fee escalated to tens of thousands of dollars as demand increased.[4]

John Pierce took charge of developing CP/M 2.0 under Kildall’s guidance in 1978. In early 1979, Kathryn Strutynski joined Digital Research Inc., initially focusing on debugging CP/M 2.0 before playing a major role in advancing CP/M 2.2 and CP/M Plus. Other notable contributors during this period included Robert Silberstein and David K. Brown.[5][6]

While originally abbreviated as "Control Program/Monitor,"[7] the term CP/M was redefined during its commercialization phase to mean "Control Program for Microcomputers," as reflected in trademark filings from November 1977.[8] This change aligned with naming conventions such as Kildall’s PL/M language and IBM’s CP/CMS operating systems. The renaming effort was part of a strategic initiative by Kildall, his wife, and partner Dorothy McEwen[9] to position Digital Research as a premier software company in the microcomputer industry. Concurrently, the company’s name transitioned from Intergalactic Digital Research, Inc. to Digital Research, Inc.[9]

Early Achievements

By September 1981, Digital Research had distributed more than CP/M licenses, with the true market reach likely exceeding this figure due to sublicensing arrangements. A wide array of manufacturers introduced CP/M-based systems across different sectors; InfoWorld highlighted CP/M's emergence as the definitive operating system for small computers. Even companies that maintained their own proprietary operating systems, such as Heath/Zenith with HDOS, offered CP/M as an alternative on their 8080/Z80 platforms—contrasting with the 6502 CPU segment, which lacked a similar universal OS.[10] The extensive software ecosystem fueled this adoption. For instance, the Xerox 820 integrated CP/M to access thousands of existing applications.[11] To compensate for Digital Research’s criticized documentation,[12][13] Xerox provided a Howard W. Sams CP/M manual, since the original materials were regarded as incomplete and poorly organized.[13]

By 1984, Columbia University utilized the CP/M source code to develop Kermit executables compatible with over a dozen distinct CP/M versions plus two generic releases.[14] CP/M was often described as a "software bus",[15][16] facilitating communication between various applications and diverse hardware through a unified interface.[17] Its portability across hardware platforms primarily required adapting terminal and printer control sequences, which contributed to broader support compared to operating systems limited to a single vendor. However, certain software exploited the Z80's extended instruction set or employed machine-specific graphics routines that bypassed the OS layer to optimize performance.[18]

According to Bill Gates, the most widely used CP/M hardware was the Apple II equipped with a Z-80 SoftCard.[19] By 1982, Digital Research had licensed CP/M for more than 450 distinct computer models.[20] Prominent examples included the Altair 8800, IMSAI 8080, Osborne 1, Kaypro portable computers, and MSX machines. The top-selling CP/M-capable system was probably the Amstrad PCW. In the United Kingdom, CP/M was accessible on educational systems such as those from Research Machines (with source code openly published for instructional purposes), 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. Additionally, CP/M 3 powered the NIAT handheld device developed for A. C. Nielsen, featuring 1 MB of solid-state storage.

Multi-user Capability

Digital Research introduced MP/M in 1979, an extension of CP/M designed for multi-user environments that enabled multiple terminals to connect simultaneously to a single computer. Subsequent iterations expanded support to 16-bit processors.

CP/M Plus

The last iteration of the 8-bit CP/M series was version 3, known as CP/M Plus, released in 1983. Created by David K. Brown, its BDOS integrated bank switching memory management techniques from MP/M into a single-user operating system compatible with applications built for CP/M 2.2. This enhancement allowed addressing beyond 64 KB of memory on 8080 or Z80 CPUs. Additional features included file date stamping and built-in relocating assembler and linker utilities. CP/M 3 targeted advanced late-model 8-bit computers such as the Amstrad PCW, Amstrad CPC, ZX Spectrum +3, Commodore 128, MSX platforms, and TRS-80 Model 4.

16-bit Variants

CP/M expanded its reach to 16-bit processors with the introduction of CP/M-86 for the Intel 8086 in November 1981, overseen by project manager Kathryn Strutynski. To distinguish it from the original 8-bit system, the earlier version was renamed CP/M-80.

Although anticipated to become the default operating system for the IBM PC, negotiations between Digital Research and IBM over licensing terms failed. Consequently, IBM collaborated with Microsoft, which provided PC DOS based on 86-DOS. CP/M-86 was subsequently offered as an optional OS on the IBM PC following legal pressure but never achieved sales comparable to PC DOS, partly due to IBM pricing CP/M-86 at $240 compared to $40 for PC DOS.

The Digital Equipment Corporation’s Rainbow 100 supported multiple environments, including CP/M-80 (Z80), CP/M-86, MS-DOS (8088), or simultaneously both processors through CP/M-86/80. This dual-CPU capability allowed users to maintain their existing 8-bit software while transitioning to 16-bit platforms. Similar dual-processor configurations were implemented in systems such as the CompuPro System 816 (running CP/M 8-16) and the Zenith Z-100.

Following CP/M-86, Digital Research developed CP/M-68K for the Motorola 68000 processor in 1982. Originally written in Pascal/MT+68k and later ported to C, it operated on EXORmacs hardware and was considered for use in Atari ST systems before Atari ultimately selected GEMDOS. CP/M-68K also ran on SORD M68 and M68MX machines.

In the same year, CP/M was adapted to the Zilog Z8000 processor for the Olivetti M20, marketed as CP/M-8000, with its codebase written in C.

These 16-bit iterations necessitated recompiling applications. To aid this transition, Digital Research provided XLT86, a source translator that converted Intel 8080 assembly (.ASM) into Intel 8086 assembly (.A86). This tool optimized code size and calling conventions, simplifying the porting process of CP/M-80 and MP/M-80 software to their 16-bit equivalents. XLT86 was distributed on CP/M-80 and VAX/VMS systems.

Replacement by MS-DOS

By the early 1980s, approximately 2,000 software titles were available for CP/M, positioning it as a likely standard OS for 16-bit machines. In 1980, IBM approached Digital Research—prompted by Bill Gates—to license a CP/M version for its forthcoming PC. When negotiations stalled due to unsigned non-disclosure agreements, IBM turned to Microsoft to supply an operating system.

Initial MS-DOS releases incorporated many concepts from CP/M, such as file management structures and drive letter assignments (A:, B:, etc.). A significant advancement in MS-DOS was its implementation of the FAT file system, which eased porting popular CP/M applications like WordStar and dBase. Unlike CP/M’s use of separate user areas for files, MS-DOS capitalized on larger memory availability (commonly 64 KB or more) to embed more built-in commands within its command-line interface, improving performance and user experience on floppy disk systems.

Despite early hardware solutions like the Baby Blue card enabling CP/M software compatibility on IBM PCs, industry reviews quickly favored MS-DOS. BYTE magazine in 1982 characterized MS-DOS as "much more user-friendly, faster, with many more advantages." By 1984, InfoWorld highlighted CP/M’s decline in the home market due to expensive software offerings. By 1986, manufacturers such as Kaypro had discontinued CP/M-based machines in favor of MS-DOS platforms. As microcomputing shifted toward IBM-compatible systems, CP/M’s market presence diminished rapidly; coverage of CP/M products in major publications like Byte significantly decreased by the late 1980s.

Subsequent versions of CP/M-86 enhanced compatibility and performance relative to 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 launched on 2 February 1982 as a direct substitute for Digital Research's original console command processor (CCP). The initial creation came from a hobbyist collective called "The CCP Group," headed by Richard Conn. The first version, ZCPR1, appeared on a disk distributed by SIG/M, affiliated with the Amateur Computer Club of New Jersey.

Following this, ZCPR2 was released on 14 February 1983 as a set of ten disks from SIG/M, later updated to version 2.3. This update included an 8080-compatible edition designed for 8080 and 8085 processors. Richard Conn and Frank Gaude established Echelon Inc. to commercialize subsequent versions while maintaining free availability. On 14 July 1984, ZCPR3 was introduced as nine disks from SIG/M and featured a compiled variant suitable for non-Z80 CPUs. Version 3 brought enhancements such as command shells, aliases, input/output redirection, flow control mechanisms, named directory support, search path functionality, customizable menus, password protection, and integrated online help.

In January 1987, development by Conn ended; Echelon then appointed Jay Sage to advance ZCPR with version 3.3. This iteration eliminated support for the 8080 processor but incorporated numerous new features and utilities. Despite enthusiastic backing from CP/M users, ZCPR was unable to reverse the overall decline of the CP/M operating system.

Hardware model

A basic CP/M system based on an 8-bit architecture typically comprised:

  • A computer terminal using ASCII character encoding
  • A microprocessor such as the Intel 8080/8085 or Zilog Z80
    • NEC V20/V30 processors enabled 8080 emulation allowing CP/M operation on PC-DOS/MS-DOS hardware; PC-compatible systems could run CP/M-86
  • A minimum of 16 KB RAM starting at memory address zero
  • Bootstrapping capability to load the initial disk sector
  • At least one floppy disk drive

Officially, Digital Research’s CP/M supported only the Intel 8080 Development System; however, hardware manufacturers adapted CP/M to fit their unique configurations. Since the Z80 was compatible with 8080 instructions, many systems utilized it despite having BIOS and applications tailored specifically for the Z80.

Digital Research collaborated with Zilog and American Microsystems to develop Personal CP/M—a ROM-based variant aimed at cost-effective systems that might lack disk drives. This version debuted in the Sharp MZ-800 cassette-based machine with optional disk drives and leveraged enhanced Z80 instructions rather than maintaining strict compatibility with the 8080.

American Microsystems released the S83 microprocessor which integrated ROM containing both the OS and BIOS alongside logic for dynamic RAM interfacing; its volume price was approximately $32.

Most implementations employed a minimal ROM bootloader combined with techniques like bank switching or bus injection to load CP/M at address zero. Some systems required manual memory entry using front-panel switches.

CP/M used a standard 7-bit ASCII character set; extended characters varied depending on manufacturer—for instance, Kaypro used them for Greek letters, Osborne machines applied them for underlining text, and WordStar utilized them as end-of-word markers. International editions generally followed ISO 646 substitutions rather than extending beyond seven bits.

Components

While operational in memory, the CP/M OS consists of three primary components:

  • Basic Input/Output System (BIOS),
  • Basic Disk Operating System (BDOS),
  • Console Command Processor (CCP).

The BIOS and BDOS remain resident in memory continuously; the CCP also stays resident unless replaced by an application, after which it automatically reloads. Transient commands—standard utility programs—are stored as files with a .COM extension on disks.

The BIOS manages direct hardware interaction excluding CPU and main memory tasks; it handles operations such as character input/output and disk sector access. The BDOS oversees file system management and abstracts input/output processes including redirection. The CCP interprets user commands by executing internal commands (e.g., DIR to display directory contents or ERA to erase files) or launching external transient commands (e.g., PIP.COM for copying files or STAT.COM for system status). Third-party software designed for CP/M also operates as transient commands.

While BDOS, CCP, and common transient programs remain consistent across different CP/M versions, each hardware platform requires a customized BIOS implementation.

To utilize expanded memory space for transient applications, reinstalling CP/M is necessary. The MOVCPM utility modifies absolute jump and subroutine call addresses to relocate the OS within memory. This patched OS is saved onto a new disk enabling applications to access additional memory. The OS components are stored in reserved disk sectors used during booting; a ROM-based bootloader loads the OS from drive A: during startup.

By contemporary standards, CP/M is quite rudimentary due to stringent limits on program size. Early editions did not detect disk swaps automatically, risking data loss if disks were changed without refreshing directory information. Starting with version 1.1, attempts to write to an unread disk cause a fatal error that prevents overwriting but requires rebooting.

Most of CP/M’s complexity lies within BDOS and to a lesser degree in CCP and transient utilities. Porting BIOS routines to new hardware enabled the entire operating system to function on different platforms with minimal effort—this approach significantly reduced development time and contributed greatly to CP/M’s widespread adoption. At a time when operating systems were generally designed for single platforms, this hardware abstraction was notably innovative.

Console Command Processor

The Console Command Processor (CCP) is responsible for managing keyboard inputs and displaying output on the terminal. CP/M supports both printing and video terminals, requiring users to enter all commands directly at the command line. On video terminals, the prompt usually indicates the active default drive, such as A>, accompanied by a blinking cursor. Users can switch the default drive by entering its letter followed by a colon (for example, B:).

The command-line interface of CP/M draws inspiration from Digital Equipment Corporation’s Concise Command Language, used in RT-11 and OS/8 systems. Commands are composed of keywords followed by parameters, separated by spaces or special symbols. Internal commands are processed immediately by the CCP; otherwise, it loads executable "transient" programs from disk or user areas. After these transient programs complete, BDOS reloads CCP if it was overwritten, allowing transient utilities to use a larger memory area.

Some commands retain historical names, such as PIP (Peripheral Interchange Program), which serves file copying functions and reflects DEC heritage. Parameter conventions differ among programs, as there is no unified standard for option characters.

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, STAT, SUBMIT, and SYSGEN.

With CP/M Plus (Version 3), enhancements were made to built-in commands: DIR lists files excluding those marked with the SYS attribute; DIRSYS/DIRS displays SYS files; ERASE/ERA removes files; RENAME/REN changes file names; TYPE/TYP outputs ASCII file contents; USER/USE switches user numbers. CP/M 3 also introduced support for abbreviated commands. The set of transient commands expanded to include additions such as COPYSYS, DATE, DEVICE, HELP, LINK, MAC, PUT, SET, SHOW, SID, SUBMIT, XREF, among others.

Basic Disk Operating System

The Basic Disk Operating System (BDOS) oversees essential tasks including file management, console output, and printing services. Applications access BDOS functions through fixed memory locations to maintain consistent behavior across various hardware platforms.

Basic Input Output System

The Basic Input Output System (BIOS) delivers the fundamental low-level operations required by the operating system, such as character input/output and reading or writing disk sectors. Although BDOS manages data buffering, it assumes a standard sector size of 128 bytes prior to CP/M version 3.0. Consequently, BIOS needed to be tailored for different disk formats and hardware configurations.

Customization of BIOS was crucial due to the wide range of hardware variations—ranging from integrated video displays versus external terminals, differing UART chips used for serial communication ports, diverse port addresses, and memory-mapped I/O implementations. BIOS provides a uniform interface through standard entry points for services like character I/O and disk access. Support for serial communications was either limited or nonexistent within BIOS itself; therefore, many CP/M applications incorporated user-installed overlays to facilitate serial port functionality.

Applications

CP/M served as the foundation for groundbreaking software such as WordStar (word processing), dBase (database management), early outlining tools like KAMAS and Out-Think, Turbo Pascal (the precursor to Borland Delphi), and Multiplan (which preceded Microsoft Excel). The pioneering spreadsheet VisiCalc, along with Sorcim’s SuperCalc—the dominant spreadsheet on CP/M—were also accessible. Autodesk introduced AutoCAD on CP/M, complemented by a wide range of compilers and interpreters supporting languages including BASIC, Turbo Pascal, FORTRAN, and PL/I.

Software for CP/M often featured installers designed to adapt programs for different hardware configurations. For instance, Kaypro II owners converted software formatted for Xerox 820 disks to be compatible with Kaypro disk drives. BASIC source code was commonly available, and copy protection measures were frequently ineffective due to CP/M’s uniform disk formats that facilitated interoperability across software.

The limited graphical capabilities of CP/M restricted video games mainly to text-based or character-mode graphics titles such as Telengard, Gorillas, Hamurabi, and Lunar Lander, along with early interactive fiction like the Zork series and Colossal Cave Adventure. Infocom consistently released CP/M editions of their text adventure games. Lifeboat Associates distributed user-generated freeware utilities such as XMODEM, which provided reliable file transfers over modems. The outlining program KAMAS also stood out as a native CP/M application.

Transient Program Area

In the original CP/M implementations for the 8080, 8085, and Z80 processors, the memory region between address 0100 hexadecimal and just before the BDOS entry point at 0006H was designated as the Transient Program Area (TPA), allocated for running application programs. Although these CPUs could address up to 64 KB of memory, the size of the TPA varied depending on system architecture since some machines reserved portions of address space for BIOS ROMs or video memory. To increase TPA size, bank switching was frequently employed to swap out ROM or video memory segments. CP/M 3.0 further enhanced this by supporting parts of the BDOS in bank-switched memory.

Debugging application

CP/M included a utility known as the Dynamic Debugging Tool (DDT), which allowed users to inspect and modify memory contents and program modules, as well as execute programs one instruction at a time.

Resident programs

Originally, CP/M did not support terminate-and-stay-resident (TSR) programs similar to those in DOS. Nonetheless, developers could intercept operating system calls to extend functionality, which gave rise to accessory utilities such as SmartKey, a keyboard tool that assigned 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 launching transient programs by using "null command files." Additionally, third-party solutions like Resident System Modules (RSMs) were backported to CP/M 2.2 to provide comparable capabilities.

Software installation

Although CP/M provided basic hardware abstraction for disk and console input/output operations, most applications required installation procedures to take advantage of device-specific features such as printers and terminals. These peripherals were managed through escape sequences that differed widely among manufacturers and models. Installation utilities enabled users to select devices or customize escape codes for various functions; however, this configuration had to be performed individually for each program because no centralized operating system service managed these settings.

Printer initialization sequences needed embedding within each application. For example, when using WordStar with multiple printers—such as a high-speed dot-matrix printer alongside a slower daisy wheel model—distinct WordStar versions were necessary for each printer type, requiring users to reload the program when switching output devices.

Disk Formats

The 128-byte per 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. Unlike the 8-inch disks, no universal 5.25-inch CP/M disk format was established; instead, manufacturers such as Kaypro, Morrow Designs, Osborne, and others each implemented their own unique formats. Among these, certain formats gained greater traction—most notably, software was frequently distributed in the Xerox 820 format, which was compatible with systems like the Kaypro II. Nevertheless, InfoWorld reported in 1981 that approximately twenty different formats were sufficiently widespread that software creators needed to accommodate them to maximize market reach. For example, JRT Pascal provided versions on a variety of 5.25-inch disk formats including North Star, Osborne, Apple, Heath/Zenith hard and soft sector disks, and Superbrain, in addition to an 8-inch variant. Ellis Computing supported both Heath formats along with sixteen other 5.25-inch types, including two TRS-80 CP/M variants. Distributors such as Lifetree also adapted CP/M applications for multiple hardware platforms.

Variations in disk formats arose from differing system design decisions. CP/M offers configurable options for reserved areas, directory sizes, and logical-to-physical sector mappings tailored to each system; however, there is no standardized approach for loading formatting parameters from disks created on alternate systems.

Nearly all CP/M machines equipped with 8-inch drives can read the IBM single-sided, single-density format. Yet, compatibility between different CP/M computers depends heavily on the specific disk drives and controllers used because floppy disks varied widely—differences included sectoring methods (hard versus soft), density levels (single or double), number of sides, track counts ranging from 35 to 80, and sector layouts. Where hardware allowed, translation utilities could facilitate reading across formats. By 1982, the dominant distribution medium for CP/M software on popular consumer platforms such as Apple II, TRS-80, Osborne 1, Kaypro II, and IBM PC had become soft-sector, single-sided, 40-track 5.25-inch disks. For instance, the Kaypro II was capable of reading disks formatted for TRS-80, Osborne, IBM PC, and Epson QX-10 systems; nonetheless, certain disk types like 80-track or hard-sectored disks remained incompatible. Apple II users were restricted to Apple's proprietary GCR format and had to obtain CP/M software either on Apple-formatted disks or through serial data transfers.

The diversity of CP/M disk formats compelled distributors to maintain inventories of numerous disk types or invest in multi-format duplication hardware. This complexity stood in stark contrast to the more uniform IBM PC disk standards and contributed significantly to CP/M’s rapid decline following 1981.

Among the final prominent CP/M-capable computers was the Commodore 128 (released in 1985), which incorporated a Z80 CPU dedicated to running CP/M alongside its native processor. This system required a 1571 or 1581 disk drive able to handle soft-sector 40-track MFM formatted disks.

The earliest machine featuring a 3.5-inch floppy drive was the Sony SMC-70, running CP/M 2.2. Other systems supporting CP/M on this medium 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 for Apple II also enabled use of 3.5-inch disks and RAM disks with compatible memory expansion cards. The Amstrad PCW initially employed 3-inch floppy drives before later adopting the more common 3.5-inch drives.

File system

File names adhered to the 8.3 convention, consisting of up to eight characters followed by a period and a three-letter extension denoting the file type (for instance, .COM for executable files and .TXT for text documents). When entered at the command line, filenames were automatically converted to uppercase; however, certain applications such as MBASIC could generate lowercase filenames, which complicated file access via the command prompt.

Disk drives were designated by letters (e.g., A, B), and files were referenced by prefixing the drive letter and colon (e.g., A:FILE.TXT). If no drive letter was specified, the system assumed the current default drive.

File size was quantified in 128-byte records, matching the sector size of 8-inch disks, and this metric was stored within the file’s File Control Block (FCB). Text files traditionally ended with a control-Z character (ASCII SUB, hex 1A) to signify end-of-file, influencing how text editors processed these files.

With the advent of larger disk drives, disk de-blocking algorithms were introduced, increasing the minimum allocation unit from 1 KB on single-density disks up to 32 KB on more advanced drives. This change enhanced support for bigger files but decreased storage efficiency for many smaller files.

CP/M 2.2 did not include file modification timestamps; this feature was later introduced optionally in MP/M and CP/M 3.0. The system lacked support for subdirectories, but it provided 16 numbered user areas for file organization. Users could switch between these areas using the "User X" command, effectively isolating files per user except those stored in USER 0, which remained accessible to all. This mechanism was particularly useful on systems equipped with hard drives and enabled multitasking scenarios—such as separating billing from data entry tasks by user area—though its advantages were limited when used with small floppy disks.

Graphics

While some early S-100 systems supported graphics capabilities, CP/M itself did not offer standardized graphics support until 1982 with the introduction of GSX. Due to constrained memory resources, graphics were rarely utilized on 8-bit CP/M machines, which primarily rendered simple ASCII art charts or diagrams in text mode or through custom character sets. Certain models like the Kaypro series and the TRS-80 Model 4 featured block graphics accessible to programmers using assembler or BASIC. The TRS-80 Model 4 could display graphics at a resolution of 640×240 pixels when equipped with an optional high-resolution graphics board.

Official

Several firms released official CP/M upgrades derived from Digital Research’s source code; an example is IMDOS, developed for the IMSAI 8080, a clone of the Altair 8800.

Compatible

Numerous independently created CP/M-compatible operating systems emerged without incorporating Digital Research code, including:

  • Cromemco CDOS, produced by Cromemco
  • MSX-DOS, designed for MSX computers and capable of running CP/M software
  • The Epson QX-10, offering either CP/M or compatible TPM-II/III environments
  • The British SAM Coupé, which supported an optional Pro-DOS OS compatible with CP/M-2.2
  • Amstrad/Schneider CPC and PCW models distributed with CP/M disk sets
  • The ROM-based DEMOS loader on the Husky (computer), supporting numerous CP/M applications
  • ZSDOS, a BDOS replacement for CP/M-80 2.2 developed by Harold F. Bower and Cameron W. Cotrill
  • CPMish, a contemporary free and open-source OS compatible with CP/M 2.2 initially without Digital Research code; since 2022 it has incorporated original Digital Research components under authorization from Lineo’s president Bryan Sparks
  • LokiOS, launched in 2023 by David Kitson for the Open Spectrum Project, a CP/M 2.2-compatible OS featuring source code and utilities enabling hot-swappable OS modules
  • IS-DOS for the Enterprise (computer), created by Intelligent Software
  • VT-DOS for the Videoton TV-Computer, also developed by Intelligent Software

Improvements

Certain CP/M-compatible operating systems notably extended the original capabilities, with examples like TurboDOS, which supported multi-processor configurations.

Eastern Bloc Versions

Within the former Eastern Bloc, multiple CP/M-80 variants were developed under designations such as SCP (), SCP/M, CP/A, CP/J, CP/KC, CP/KSOB, CP/L, among others. Additionally, CP/M-86 versions like SCP1700, CP/K, and K8918-OS were manufactured mainly by East German firms including VEB Robotron.

Enduring Influence

A significant number of Microsoft Windows features originate from maintaining compatibility with MS-DOS, which itself was heavily influenced by CP/M. The convention of assigning drive letters (A and B for floppy drives; C for hard disks), the 8.3 filename format, usage of wildcard symbols (?, *), and reserved device names such as "PRN:" and "CON:" all have their roots in CP/M. The control character ^Z to denote end-of-file in text documents also derives from CP/M. Commands like DIR, REN/RENAME, and TYPE in DOS were modeled after their CP/M equivalents. File extensions such as .TXT and .COM continue to be prevalent across various operating systems.

Between 1997 and 1998, Caldera made CP/M 2.2 binaries along with source code available under an open source license, permitting redistribution and modification of Digital Research’s CP/M and MP/M materials through Tim Olmstead’s "The Unofficial CP/M Web site." Following Olmstead’s passing in 2001, Lineo—the holder of Digital Research’s assets—broadened the licensing terms later that year. To commemorate CP/M’s 40th anniversary in October 2014, the Computer History Museum published early versions of its source code.

As of 2018, enthusiasts of vintage computing and select specialized businesses continue to develop and maintain systems running primarily CP/M version 2.2.

Related Topics

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"
  • 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
  • PBS, Triumph of the Nerds (details IBM's selection of Microsoft DOS over Digital Research's CP/M for IBM PC)
  • CP/M FAQ at comp.os.cpm and Digital Research websites

External Links

  1. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Kildall_1980_CPM
  2. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Kildall_1975_BDOS
  3. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named johnson
  4. ↑ Freiberger, Paul; Michael Swaine (2000). Fire in the Valley: The Making of the Personal Computer. McGraw-Hill. p. 175. ISBN 0071358927 – via the Internet Archive.
  5. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Brown-Strutynski-Wharton_1983
  6. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Strutynski_2010
  7. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named CPM.NYT83
  8. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Kildall_1993
  9. ↑ 9.0 9.1 Cite error: Invalid <ref> tag; no text was provided for refs named Kildall.NYT
  10. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named wilkinson19811019
  11. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named wise19820510
  12. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named meyer19820614
  13. ↑ 13.0 13.1 Cite error: Invalid <ref> tag; no text was provided for refs named Infoworld 1981
  14. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named dacruz19840427
  15. ↑ ...
  16. ↑ ...
  17. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Swaine_1997_Entrepreneurship
  18. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named note_graphics
  19. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named bunnell19820203
  20. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named libes198206