Jump to content

SCP3.SYS

From Alfawiki
Adapted from the English Wikipedia article SCP3.SYS, available under CC BY-SA 4.0Updated 9 August 20259 sources
Digital Research, Inc.
Company typePrivate
IndustrySoftware
PredecessorIntergalactic Digital Research, Inc.
Founded1974
FounderGary Kildall
FateDeclined after rise of MS-DOS and IBM PC
Headquarters
United States
Area served
Worldwide
Key people
Gary Kildall, Kathryn Strutynski, Dorothy McEwen, John Pierce, Robert Silberstein, David K. Brown
ProductsCP/M and variants (CP/M-80, CP/M-86, MP/M, CP/M Plus)

CP/M, an acronym initially meaning Control Program/Monitor and subsequently Control Program for Microcomputers, is a widely used operating system developed in 1974 by Gary Kildall of Digital Research, Inc for microcomputers based on the Intel 8080 and 85 processors. This disk operating system was created to manage file organization on magnetic disks and to facilitate program loading from these storage devices. Originally designed for single-tasking on 8-bit processor architectures with memory limits up to 64 kilobytes, later editions introduced multi-user functionality and compatibility with 16-bit processor platforms.

The fundamental elements of CP/M consist of the Basic Input/Output System (BIOS), the Basic Disk Operating System (BDOS), and the Console Command Processor (CCP). The BIOS oversees hardware interaction and device drivers, BDOS administers file management and system-level services, while the CCP delivers the command-line interface along with built-in commands.

During its peak, CP/M established itself as the de facto standard operating system for microcomputers utilizing the S-100 bus, becoming prevalent in business environments from the late 1970s until the mid-1980s. By enabling easier porting of applications across various manufacturers’ hardware, CP/M significantly broadened both software and hardware markets. The accessibility of cost-effective CP/M-compatible microcomputers also encouraged software development by independent programmers and user communities. However, CP/M's dominance waned after the introduction of the IBM PC in 1981, which popularized the use of DOS.

Early history

In 1974, Gary Kildall created CP/M as an operating system tailored for the Intel Intellec-8 development platform, which featured an 8-inch floppy-disk drive from Shugart Associates connected through a custom-built controller. The system was programmed using Kildall’s own language, PL/M (Programming Language for Microcomputers). CP/M drew inspiration from the TOPS-10 operating system used on the DECsystem-10 mainframe computer, which Kildall had experience with during its development.

CP/M was compatible with a variety of computers powered by the 8080 and Z80 CPUs. In 1977, early licensee Gnat Computers acquired rights to CP/M version 1.0 at a rate of $90 per machine. As demand increased rapidly, Digital Research was able to raise licensing costs to figures reaching tens of thousands of dollars.

The development of CP/M 2.0 in 1978 was chiefly overseen by John Pierce under Kildall’s direction. When Kathryn Strutynski joined Digital Research Inc. in early 1979, she contributed significantly by debugging CP/M 2.0 and later played a major role in advancing CP/M 2.2 and CP/M Plus. Other notable early developers included Robert "Bob" Silberstein and David "Dave" K. Brown.

Originally abbreviated as "Control Program/Monitor," CP/M was rebranded as "Control Program for Microcomputers" at its commercial debut in 1977. This renaming aligned with contemporary naming trends such as Kildall’s PL/M language and IBM’s CP/CMS operating system. The rebranding effort was led by Kildall together with his wife and business partner Dorothy McEwen to establish Digital Research as a commercial enterprise—aiming to make CP/M synonymous with "microcomputer," much like IBM and Microsoft later did with "personal computer." The company name evolved from Intergalactic Digital Research, Inc. to Digital Research, Inc.

Early Achievements

By September 1981, Digital Research had distributed over CP/M licenses; however, InfoWorld suggested the true market size was probably greater due to sublicensing arrangements. A wide range of manufacturers offered CP/M-based computers targeting diverse sectors, establishing the operating system as the definitive choice for small computers. Even companies that developed their own proprietary operating systems, such as Heath/Zenith with HDOS, provided CP/M as an alternative for their 8080/Z80 models—a contrast to the absence of a standard OS for popular 6502 CPU platforms.[1] The extensive CP/M software catalog was a key factor behind this widespread adoption. For instance, the Xerox 820 utilized CP/M to take advantage of its broad software availability.[2] To address Digital Research’s insufficient documentation, Xerox supplemented CP/M with a Howard W. Sams manual, which InfoWorld criticized for being incomplete and poorly organized.[3]

By 1984, Columbia University had adapted CP/M source code to create Kermit executables compatible with more than a dozen CP/M variants as well as two generic versions.[4] CP/M was often characterized as a "software bus",[5][6] facilitating interaction among multiple applications and varied hardware through a standardized interface.[7] Software typically remained portable across different machines, requiring only adjustments to terminal and printer control codes. This portability contributed significantly to CP/M’s widespread adoption and encouraged broader software development compared to single-vendor operating systems. However, some drawbacks included dependence on Z80-specific instructions and the use of machine-dependent graphics routines that bypassed the OS to enhance performance.[1]

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 announced that CP/M had been licensed for more than 450 distinct computer models.[9] Prominent CP/M-compatible machines encompassed the Altair 8800, IMSAI 8080, Osborne 1, Kaypro luggables, and MSX systems. Among these, the best-selling device capable of running CP/M was probably the Amstrad PCW. Within the UK market, CP/M operated on educational computers from Research Machines (whose source code was publicly released for educational purposes), on the BBC Micro paired with a Z80 co-processor, and was also supported on the Amstrad CPC, Commodore 128, TRS-80, and later versions of the ZX Spectrum. Additionally, 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

In 1979, Digital Research introduced MP/M, a multi-user variant derived from CP/M that allowed several terminals to connect simultaneously to a single system, granting each user independent access. Subsequent releases extended support to 16-bit processor architectures.

CP/M Plus

The last iteration of the 8-bit CP/M series, known as CP/M Plus or CP/M 3, was introduced in 1983 featuring a BDOS developed by David K. Brown. This version integrated MP/M's bank switching memory management into a single-user operating system that maintained compatibility with CP/M 2.2 software, enabling access to memory beyond 64 KB on processors like the 8080 or Z80. Enhancements included file date stamps and a suite of utilities such as a relocating assembler and linker. CP/M Plus was primarily aimed at advanced 8-bit machines including the Amstrad PCW, Amstrad CPC, ZX Spectrum +3, Commodore 128, MSX computers, and the TRS-80 Model 4.

16-bit versions

Digital Research expanded CP/M to support 16-bit processors starting with CP/M-86 for the Intel 8086, released in November 1981 under the leadership of Kathryn Strutynski. The original 8-bit CP/M was subsequently designated as CP/M-80.

Although CP/M-86 was intended to be the IBM PC’s official operating system, licensing conflicts between Digital Research and IBM resulted in IBM opting for Microsoft’s PC DOS instead. The latter gained market dominance partly due to its lower cost—IBM priced CP/M-86 at $240 compared to PC DOS’s $40.

The DEC Rainbow 100 was capable of running CP/M-80 (Z80), CP/M-86, MS-DOS (8088), or both simultaneously, facilitating users’ transition from 8-bit to 16-bit environments while preserving existing software investments. Comparable dual-CPU designs were also found in systems such as the CompuPro System 816 (CP/M 8-16) and Zenith Z-100.

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

In the same year, a C-based port called CP/M-8000 was created for the Zilog Z8000 processor on the Olivetti M20 platform.

These 16-bit variants required applications to be recompiled. To assist developers in migrating from CP/M-80/MP-M-80 to CP/M-86/MP-M-86 environments, Digital Research offered tools like XLT86, which translated Intel 8080 assembly source code into optimized Intel 8086 code. XLT86 was accessible on both CP/M-80 and VAX/VMS platforms.

Displacement by MS-DOS

By the early 1980s, approximately 2,000 applications existed for CP/M, positioning it as the anticipated standard OS for 16-bit computers. In 1980, IBM approached Digital Research—prompted by Bill Gates—to license a version of CP/M for its IBM PC. However, after Digital Research refused to sign a non-disclosure agreement, IBM contracted Microsoft to supply an operating system instead.

MS-DOS incorporated many foundational elements from CP/M, such as file management structures and drive letter assignments (A:, B:, etc.), but introduced the FAT file system as a key advancement. This similarity facilitated porting popular CP/M software like WordStar and dBase onto MS-DOS. Unlike CP/M’s use of distinct user areas on disks, MS-DOS utilized larger memory capacities (often exceeding 64 KB) to embed additional commands within its command-line interface, improving performance and usability on floppy disk-based PCs.

Although early IBM PC add-ons like the Baby Blue card allowed execution of 8-bit CP/M programs, industry momentum quickly shifted toward MS-DOS. BYTE magazine in 1982 praised MS-DOS as "more user-friendly, faster, with many advantages." By 1984, InfoWorld highlighted CP/M’s limited penetration into the home market due to expensive software prices. By 1986, manufacturers including Kaypro had discontinued CP/M models in favor of MS-DOS systems. As IBM-compatible PCs came to dominate microcomputing, CP/M’s market share declined rapidly. Within a few years following the IBM PC’s debut, BYTE largely ceased coverage of CP/M products.

Subsequent releases of CP/M-86 enhanced speed and compatibility with MS-DOS systems. Reflecting this evolution, CP/M-86 was rebranded as DOS Plus and eventually developed into DR-DOS.

ZCPR

ZCPR, standing for Z80 Command Processor Replacement, was launched on 2 February 1982 as a direct substitute for the console command processor (CCP) developed by Digital Research. This project was created by a collective of enthusiasts called "The CCP Group," led by Richard Conn.

The initial version, ZCPR1, appeared on a SIG/M disk distributed through the Amateur Computer Club of New Jersey. Subsequently, ZCPR2 was released on 14 February 1983 as a set of ten SIG/M disks and was later enhanced to version 2.3, which included a variant written in 8080 code to support a wider range of hardware platforms.

Richard Conn and Frank Gaude established Echelon Inc. to commercialize the next iteration while continuing to offer it freely to users. On 14 July 1984, ZCPR3 was introduced as nine SIG/M disks, also featuring a compiled version for 8080-based systems without Z80 processors. This release incorporated capabilities such as command shells, aliasing, input/output redirection, flow control mechanisms, named directories, search paths, customizable menus, password protection, and integrated online help.

In January 1987, Conn ended his involvement with development; thereafter, Echelon assigned Jay Sage to advance the project. The resulting ZCPR 3.3 version introduced numerous new features and utilities but discontinued support for the 8080 processor. Although ZCPR gained considerable endorsement within the CP/M user community, it was unable to halt the overall decline of the CP/M operating system.

Hardware model

A basic CP/M system built on an 8-bit architecture required the following components:

  • A computer terminal that supports ASCII characters
  • A microprocessor such as the Intel 8080/8085 or Zilog Z80
    • NEC V20 and V30 processors offered 8080 emulation capabilities enabling CP/M operation on PC-DOS/MS-DOS machines
  • Minimum of 16 KB RAM starting at address zero
  • A bootstrapping procedure for loading from the first sector of a floppy disk
  • At least one floppy disk drive

Digital Research’s official CP/M version supported only the Intel 8080 Development System; nevertheless, many hardware vendors customized CP/M to fit their specific configurations. Thanks to the Z80's backward compatibility with the 8080 instruction set, CP/M could be executed on Z80-based machines, frequently incorporating BIOS code and applications tailored specifically for Z80 hardware.

In collaboration with Zilog and American Microsystems, Digital Research developed Personal CP/M—a ROM-based variation designed for cost-sensitive systems lacking disk drives. This was initially implemented in Sharp’s MZ-800 cassette-driven system with optional disk drives. Personal CP/M took advantage of enhanced instructions available in the Z80 processor beyond those of the original 8080. American Microsystems introduced the S83 microprocessor featuring integrated ROM containing OS and BIOS along with dynamic RAM interface logic; this chip was priced at $32 per unit when purchased in volume.

Most systems employed a minimal ROM bootstrap combined with techniques like bank switching or bus injection to load code at address zero (a requirement of the 8080 processor). Some setups required manual code entry through front-panel switches during startup.

CP/M operated using the standard 7-bit ASCII character set; however, extended characters beyond seven bits varied depending on manufacturer implementations—Kaypro utilized Greek letters, Osborne used the eighth bit to indicate underlining, and WordStar marked word boundaries using this bit. International editions frequently adopted localized ISO 646 character sets by substituting certain ASCII characters rather than extending beyond seven bits.

Components

When loaded into memory during operation, the CP/M OS consists of three primary components:

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

Both BIOS and BDOS remain resident in memory continuously; the CCP also stays resident unless temporarily replaced by an application program—in which case it reloads automatically afterward. Standard utility programs are provided as transient commands stored on disk as .COM files.

The BIOS manages hardware functions beyond CPU and memory control, including character input/output and disk sector access. BDOS oversees file system operations and input/output redirection layers built upon BIOS services. The CCP processes user commands by executing internal commands (such as DIR or ERA) or launching external transient commands like PIP.COM or STAT.COM. Third-party software typically operates as transient commands within this structure.

Across different CP/M versions, BDOS, CCP, and standard transient utilities remain consistent; only the BIOS is customized according to specific hardware platforms.

Expanding system memory necessitates reinstalling CP/M so that transient programs can utilize additional space. The MOVCPM utility facilitates relocating OS components in memory by adjusting jump addresses accordingly; this patched OS image can then be saved back to disk and accessed by applications. OS components reside in reserved disk areas used during booting; a bootloader stored in ROM loads the OS from drive A: at startup.

By contemporary standards, CP/M appears rudimentary due to strict size constraints. Early releases lacked automatic detection of disk changes—risking data corruption if disks were swapped without refreshing directory information. Later versions introduced error signaling to prevent overwriting but required rebooting after such events.

The majority of CP/M’s complexity is concentrated within BDOS functions; BIOS routines remain intentionally minimal to simplify adaptation across diverse hardware platforms. This modular architecture shortened development time for new machines and contributed significantly to CP/M’s widespread adoption. While hardware abstraction layers are common today, they were innovative at CP/M’s inception when most operating systems targeted only single hardware configurations.

Console Command Processor

The Console Command Processor (CCP) is responsible for managing keyboard inputs and delivering output to terminals, accommodating both printing and video types. Users interact with CP/M commands through the command line, where the prompt usually displays the active default disk drive (for example, A>). To switch the default drive, users enter its letter followed by a colon (such as B:), which updates the prompt accordingly.

CP/M's command-line interface takes inspiration from Digital Equipment Corporation's operating systems like RT-11 and OS/8. Commands are composed of a keyword followed by parameters separated by spaces or special delimiters. When a command is internal, the CCP executes it directly; otherwise, it loads an executable ("transient") program from the current disk or user area, passing along any specified parameters. Upon completion, BDOS restores the CCP if it has been overwritten, thereby granting transient programs additional memory space.

Certain command names derive from earlier utilities—for instance, PIP serves as a file copying tool. Parameter syntax varies between programs, lacking a standardized set of option characters.

Integrated CCP commands encompass DIR, ERA, REN, SAVE, TYPE, and USER. Available transient commands include assemblers (ASM), debuggers (DDT), editors (ED), along with utilities such as PIP and SYSGEN.

In CP/M Plus (Version 3), built-in commands are enhanced with DIR (which excludes SYS attribute files), DIRSYS, ERASE/ERA, RENAME/REN, TYPE/TYP, and USER/USE for modifying user numbers, supporting command abbreviation. The suite of transient commands expands to cover tools like COPYSYS, DATE, DEVICE, HELP, LINK, among others, reflecting more extensive system management functions.

Basic Disk Operating System

The Basic Disk Operating System (BDOS) oversees tasks such as file management, console output, and printing services. Applications request BDOS functions by loading operation codes and parameters into processor registers before invoking a fixed memory address. This consistent entry point guarantees software compatibility across various hardware platforms.

Basic Input Output System

Serving as the foundational layer for operating system functions, the Basic Input Output System (BIOS) handles essential operations including character input/output and disk sector read/write procedures. While BDOS manages some aspects of disk buffering, BIOS is tasked with hardware-specific responsibilities like handling different sector sizes and managing disk buffers. Due to the wide variety of hardware configurations—ranging from video subsystems to serial ports and input/output mechanisms—custom BIOS implementations are required to standardize these components for CP/M’s higher-level modules. Since BIOS provides limited or no support for serial communication, CP/M applications that utilize modems often incorporate user-supplied overlays to directly access specific serial ports.

Applications

CP/M served as the foundation for numerous groundbreaking business software packages. Among the earliest widely adopted word processors was WordStar, while dBase stood out as one of the first popular database applications. The platform also hosted early outliners such as KAMAS and Out-Think, which were initially developed on CP/M before being adapted for MS-DOS. Turbo Pascal, the forerunner to Borland Delphi, and Multiplan, which later evolved into Microsoft Excel, both made their debut on CP/M prior to their MS-DOS releases. VisiCalc, recognized as the pioneering spreadsheet program, alongside Sorcim’s SuperCalc—which dominated the CP/M market—were also available on this system. Additionally, Autodesk’s AutoCAD was originally introduced on CP/M.

A wide variety of compilers and interpreters were accessible for programming languages including BASIC, Turbo Pascal, FORTRAN, and PL/I, featuring early offerings from Microsoft. CP/M software frequently incorporated installers that facilitated adaptation across different hardware platforms; for example, users of Kaypro II could convert disks formatted for the Xerox 820 to be compatible with their machines. BASIC source code was often distributed openly, and conventional copy protection methods proved largely ineffective due to CP/M’s uniform disk format standards that ensured interoperability between programs.

Although limited graphical capabilities restricted the development of video games on CP/M, numerous text-based games were ported to the system. Titles such as Telengard, Gorillas, Hamurabi, Lunar Lander, and interactive fiction classics like Zork and Colossal Cave Adventure were available in CP/M versions. Infocom regularly published their text adventure games in this format. Lifeboat Associates played a role in distributing user-developed software including XMODEM, a utility designed for reliable file transfers over modems. The outline processor KAMAS also originated as a dedicated CP/M application.

Transient Program Area

In the original CP/M implementations for 8080, 8085, and Z80 processors, the memory region from address 0100 hexadecimal up to just before the location stored at 0006H—which marks the lowest BDOS address—is designated as the Transient Program Area (TPA), reserved for application execution. Although these CPUs could address up to 64 KB of memory space, the actual size of the TPA varied depending on system architecture. Many machines allocated significant portions of addressable memory to BIOS ROM or video memory, thereby reducing the TPA capacity. To overcome this limitation, bank switching techniques were commonly employed to swap out ROM or video memory segments and expand available TPA space. With CP/M 3.0, this concept was extended by permitting parts of BDOS itself to reside within bank-switched memory areas.

Debugging application

CP/M came equipped with a Dynamic Debugging Tool known as DDT, which allowed users to inspect and modify memory contents and program modules interactively. It also supported stepwise execution of programs for detailed debugging processes.

Resident programs

At its inception, CP/M did not support terminate and stay resident (TSR) utilities similar to those found in DOS environments. To compensate, developers engineered software that intercepted operating system calls to enhance functionality, resulting in desk accessories such as SmartKey, a keyboard utility that assigned predefined strings to specific keys. With the release of CP/M 3, support was added for dynamically loadable Resident System Extensions (RSX), which could be loaded independently of transient programs using a null command file. Additionally, third-party solutions like Resident System Modules (RSMs) were retrofitted onto CP/M 2.2 systems to provide comparable capabilities.

Software setup

Although CP/M standardized disk and console input/output through hardware abstraction, individual applications generally needed to be installed to function with particular printers and terminals. Control of devices frequently depended on manufacturer- or model-specific escape sequences—for instance, the method to enable bold text on printers varied significantly. Installation utilities enabled users to choose their devices or tailor escape sequences for specific features. This configuration had to be repeated for each program since no centralized operating system service managed device interactions.

Printer initialization codes were incorporated within the applications themselves; consequently, supporting multiple printer types (such as a rapid dot-matrix alongside a high-quality daisy wheel printer) required distinct versions of software like Wordstar. Users were required to load the version matching the selected printer, which meant reloading the program when changing output devices.

Disk formats

The CP/M standard 8-inch floppy disk format is based on the IBM System/34 and IBM 3740’s 128-byte per sector, single-density, single-sided layout. No universal 5.25-inch CP/M disk format was established; manufacturers such as Kaypro, Morrow Designs, Osborne, and others each implemented their own standards. Most software came in the Xerox 820 format, compatible with systems like the Kaypro II, but InfoWorld estimated in 1981 that "approximately two dozen formats were sufficiently widespread that software developers had to accommodate them to reach the largest audience." JRT Pascal was distributed in multiple 5.25-inch formats alongside an 8-inch version. Ellis Computing supported both Heath formats plus sixteen additional 5.25-inch variations, including TRS-80 CP/M derivatives. Lifetree and other vendors converted CP/M applications for diverse hardware platforms.

Disk formats differed depending on hardware design and physical disk attributes. While CP/M permits customization of reserved sectors, directory areas, and logical-to-physical sector mapping, there is no standardized approach for automatically loading formatting parameters from disks created on different systems.

Although most CP/M machines equipped with 8-inch drives can read IBM’s single-sided, single-density disk format, compatibility depends heavily on the disk drive and controller due to variations in floppy sizes (8-inch versus 5.25-inch), sectoring methods (hard or soft), density levels, number of sides, track counts (35, 40, 77, or 80), and sector arrangements. Conversion utilities facilitate reading across similar formats; for example, the Kaypro II can read disks formatted for TRS-80, Osborne, IBM PC, and Epson QX-10 systems. However, certain disk types—such as those with 80 tracks or hard-sectoring—remain incompatible between platforms. Apple II users are restricted to Apple’s GCR format and must acquire CP/M software either on Apple-formatted disks or transfer it via serial connection.

The fragmented nature of the CP/M ecosystem compelled distributors to maintain inventories of multiple disk formats or invest in duplication equipment capable of handling various standards—contrasting sharply with the more uniform IBM PC disk formats and contributing to CP/M’s swift decline after 1981.

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

The earliest machine featuring a 3.5-inch floppy drive was the Sony SMC-70, operating CP/M 2.2. Other systems supporting CP/M on 3.5-inch disks included the Commodore 128, Bondwell-2 laptop, Micromint/Ciarcia SB-180, MSX, and TRS-80 Model 4 running Montezuma CP/M 2.2. Applied Engineering’s CP/AM for Apple II accommodated both 3.5-inch floppy disks and RAM disks via compatible memory expansion cards. The Amstrad PCW initially utilized 3-inch floppy drives before transitioning to 3.5-inch models.

File system

File names adhered to the 8.3 convention, allowing up to eight characters followed by a period and a three-letter extension that indicated 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—most notably MBASIC—generated lowercase filenames, which complicated command-line file access.

Disk drives were designated by letters such as A and B, with file paths beginning with the drive letter and a colon (e.g., A:FILE.TXT). If no drive prefix was specified, the system assumed the current default drive.

File size was quantified in 128-byte records, equivalent to disk sectors. The operating system recorded file size information within the File Control Block (FCB). Text files typically ended with a control-Z character (ASCII SUB, hex 1A) to signal the end of the file, since programs generally treated files as streams of characters rather than fixed-length records.

With the advent of larger removable and fixed disks, disk de-blocking techniques were introduced to increase the number of disk blocks per allocation unit. This enabled support for bigger files but also raised the minimum allocation size from 1 KB on single-density disks to as much as 32 KB on more advanced drives, which could result in inefficient use of space when storing numerous small files.

Up through CP/M 2.2, file modification timestamps were not supported; however, they became available as optional features in MP/M and CP/M 3.0.

Instead of subdirectories, CP/M 2.2 utilized 16 numbered user areas for organizing files. Users could switch between these areas using the "User X" command. Although security was limited, this mechanism provided a rudimentary form of multi-user separation on personal computers and enhanced file management on systems equipped with hard drives. Files stored in USER 0 were accessible to all users, while other user areas isolated data to facilitate task-specific workflows—for example, separating data entry from billing processes on a single machine.

Graphics

Although some early S-100 systems offered graphics capabilities, CP/M did not have a standardized graphics interface until 1982 with the introduction of GSX. Due to memory constraints, graphics usage was rare on 8-bit CP/M machines. Most systems displayed simple ASCII art or utilized custom character sets. Certain models—such as the Kaypro line and the TRS-80 Model 4—supported block graphics accessible through assembler programming or BASIC’s CHR$ function. The TRS-80 Model 4 could achieve a resolution of 640×240 pixels when equipped with an optional high-resolution graphics board.

Official

A number of companies created official enhancements to CP/M by building upon Digital Research’s source code. An example is IMDOS for the IMSAI 8080, which was a clone of the Altair 8800.

Compatible

Many independent operating systems compatible with CP/M emerged without using Digital Research’s codebase, including:

  • Cromemco CDOS developed by Cromemco
  • MSX-DOS, compatible with CP/M and capable of running CP/M applications on MSX computers
  • The Epson QX-10, supporting either CP/M or TPM-II/III compatibility
  • British SAM Coupé offering optional Pro-DOS compatible with CP/M-2.2
  • Amstrad/Schneider CPC and PCW series shipped with CP/M disk packs
  • The Husky (computer) running DEMOS, a ROM-based loader for numerous CP/M programs
  • ZSDOS, an alternative BDOS for CP/M-80 version 2.2 created by Harold F. Bower and Cameron W. Cotrill
  • CPMish, a free and open-source OS compatible with CP/M 2.2 initially developed without Digital Research code but updated in 2022 to include original DR components following authorization from Lineo’s president
  • LokiOS, released in 2023 by David Kitson for the Open Spectrum Project, providing CP/M 2.2 compatibility along with source code and modular OS components supporting hot swapping
  • IS-DOS designed for the Enterprise series by Intelligent Software
  • VT-DOS developed for the Videoton TV Computer, also by Intelligent Software

Improvements

Certain operating systems compatible with CP/M notably extended its capabilities, including TurboDOS, which supported multi-processor configurations.

Eastern Bloc Variants

Within the former Eastern Bloc, numerous CP/M-80 derivatives were developed under various 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. Versions of CP/M-86 from this region included SCP1700, CP/K, and K8918-OS. These operating systems were manufactured by entities like the East German VEB Robotron and other producers.

Legacy Impact

Microsoft Windows inherited numerous operational traits from MS-DOS, which was designed to maintain compatibility with CP/M. Foundational elements such as drive letter assignments and the 8.3 filename format originated from CP/M conventions. The wildcard characters (? and *) used in Windows stem directly from CP/M syntax. Device redirection reserved names like "PRN:" and "CON:" also have their roots in CP/M. The designation of floppy drives as A and B persisted into MS-DOS, while hard drives began at C. The control character ^Z, signaling the end of a text file, is another carryover from CP/M. Commands in DOS such as DIR, REN/RENAME, and TYPE were modeled after their CP/M counterparts. File extensions like .TXT and .COM continue to be widely utilized today.

Between 1997 and 1998, Caldera made available CP/M 2.2 binaries along with source code under an open-source license. This allowed for redistribution and modification of Digital Research's files through Tim Olmstead's "The Unofficial CP/M Web site." Following Olmstead's passing in 2001, Lineo—then holding these rights—expanded the licensing terms later that year. To commemorate the 40th anniversary of CP/M in October 2014, the Computer History Museum released early versions of its source code.

As of 2018, enthusiasts dedicated to vintage computing alongside some niche businesses continue to maintain and develop systems running CP/M, predominantly version 2.2.

See also

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 documentary covering IBM's selection of Microsoft DOS over Digital Research's CP/M for the IBM PC
  • CP/M FAQ at comp.os.cpm and Digital Research archives

External links

  1. ↑ 1.0 1.1 Cite error: Invalid <ref> tag; no text was provided for refs named wilkinson19811019
  2. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named wise19820510
  3. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Infoworld 1981
  4. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named dacruz19840427
  5. ↑ Clarke, A.; Eaton, J. M.; David, D. Powys Lybbe (October 26, 1983). CP/M - the Software Bus: A Programmer's Companion. Sigma Press.
  6. ↑ Johnson, Herbert R. (July 30, 2014). "CP/M and Digital Research Inc. (DRI) History".
  7. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Swaine_1997_Entrepreneurship
  8. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named bunnell19820203
  9. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named libes198206