Jump to content

BCU880

From Alfawiki
Adapted from the English Wikipedia article BCU880, available under CC BY-SA 4.0Updated 9 August 20259 sources
Digital Research, Inc.
Company typePrivate
IndustrySoftware
Founded1974
FounderGary Kildall
Headquarters
United States
ProductsCP/M operating system

CP/M, initially an acronym for Control Program/Monitor and later redefined as Control Program for Microcomputers, is a widely used operating system introduced in 1974 by Gary Kildall of Digital Research, Inc for Intel 8080 and 85-based microcomputer platforms. This disk operating system was engineered to manage file organization on magnetic storage devices and to execute programs stored on disk media. While early editions supported only single-tasking on 8-bit processor architectures with a maximum of 64 kilobytes of RAM, subsequent releases incorporated multi-user functionality and compatibility with 16-bit processor systems.

The architecture of CP/M is composed of three main parts: the Basic Input/Output System (BIOS), the Basic Disk Operating System (BDOS), and the Console Command Processor (CCP). The BIOS is responsible for hardware-level driver management, BDOS provides file system operations and core system services, while the CCP acts as the command-line interface, interpreting user commands and executing built-in functions.

CP/M established itself as the de facto standard operating system for microcomputers, particularly those utilizing the S-100 bus, becoming widely embraced in commercial environments from the late 1970s through the mid-1980s. By simplifying the process of porting software between various manufacturers' hardware, CP/M significantly broadened both hardware and software markets. The accessibility of cost-effective CP/M-based microcomputers encouraged software development innovation, with independent programmers distributing applications through user communities. However, CP/M's prominence diminished following the introduction of the IBM PC in 1981, which propelled the adoption of DOS.

Early history

In 1974, Gary Kildall created CP/M to serve as an operating system for the Intel Intellec-8 development platform, utilizing an 8-inch floppy-disk drive from Shugart Associates paired with a custom controller.[1] The system was coded in Kildall’s proprietary programming language, PL/M (Programming Language for Microcomputers).[2] CP/M’s design was influenced by the TOPS-10 operating system running on the DECsystem-10 mainframe computers that Kildall had experience with.[3]

CP/M became compatible with numerous computers powered by both the 8080 and Z80 processors. In 1977, early licensee Gnat Computers obtained rights to distribute CP/M version 1.0 at a rate of $90 per microcomputer. Within a year, demand escalated dramatically, enabling Digital Research to increase licensing fees substantially into the tens of thousands.[4]

Under Kildall’s direction, John Pierce spearheaded development of CP/M 2.0 in 1978. Kathryn Strutynski joined Digital Research early in 1979 to assist with debugging CP/M 2.0 and later contributed significantly to CP/M 2.2 as well as CP/M Plus. Other key developers included Robert Silberstein and David K. Brown.[5][6]

The acronym CP/M originally signified "Control Program/Monitor,"[7] but was formally registered as "Control Program for Microcomputers" in 1977.[8] This renaming aligned with industry naming patterns such as Kildall’s PL/M language and IBM’s CP/CMS systems, reflecting a strategic branding initiative led by Kildall, his wife Dorothy McEwen, and business partner to commercialize CP/M and position Digital Research as a premier microcomputer software firm. Subsequently, Intergalactic Digital Research, Inc. was renamed Digital Research, Inc.[9]

Early Achievements

By September 1981, Digital Research had distributed more than CP/M licenses, with the actual market penetration likely higher due to sublicensing arrangements. A variety of manufacturers produced CP/M-based computers catering to different sectors; InfoWorld highlighted CP/M as becoming the definitive operating system for small computers. Even companies maintaining proprietary systems such as Heath/Zenith (HDOS) offered CP/M as an option on 8080/Z80 platforms, a contrast to the 6502 CPU ecosystem which lacked a similar standardized OS. The extensive software catalog was a key factor behind this widespread adoption. For instance, the Xerox 820 integrated CP/M to utilize its large program repository; Xerox supplemented Digital Research’s often criticized documentation by providing a Howard W. Sams CP/M guide.

By 1984, Columbia University had utilized CP/M source code to develop Kermit binaries compatible with over a dozen CP/M systems, along with generic versions. CP/M operated effectively as a "software bus", facilitating consistent interaction between multiple applications and hardware components. Programs were generally portable across different machines, primarily needing only terminal and printer control adaptations. This portability significantly enhanced CP/M’s appeal and software availability compared to operating systems tied to specific hardware brands. However, some limitations existed: certain applications used the Z80’s extended instruction set, which was incompatible with 8080/8085 CPUs, and many games employed machine-specific graphics routines that bypassed the OS and BIOS to improve performance.

Bill Gates recognized the Apple II equipped with a Z-80 SoftCard as the leading hardware platform for CP/M use. By 1982, Digital Research reported that CP/M had been licensed for more than 450 distinct computer models. Prominent systems running CP/M included the Altair 8800, IMSAI 8080, Osborne 1, Kaypro luggables, and MSX machines. The most commercially successful CP/M-compatible system was probably the Amstrad PCW. In the United Kingdom, CP/M was available on Research Machines educational computers (with source code released for academic 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 served as the operating system for the NIAT handheld computer developed for A. C. Nielsen, which featured 1 MB of solid-state storage.

Multi-user Editions

In 1979, Digital Research introduced MP/M, a multi-user adaptation of CP/M that allowed several terminals to connect simultaneously to a single computer system. Subsequent iterations of MP/M expanded support to include 16-bit processors.

CP/M Plus

The last iteration of the 8-bit CP/M series was version 3, branded as CP/M Plus, released in 1983 with BDOS crafted by David K. Brown. This version incorporated MP/M’s bank switching memory management into a single-user operating system that remained compatible with CP/M 2.2 software, enabling access to memory beyond the 64 KB limit on 8080 or Z80 processors. CP/M Plus introduced file date stamping and featured a relocating assembler and linker. It found adoption in later 8-bit machines such as the Amstrad PCW, Amstrad CPC, ZX Spectrum +3, Commodore 128, MSX platforms, and the TRS-80 Model 4.

16-bit versions

Digital Research initiated development of CP/M variants for 16-bit processors beginning with CP/M-86 for the Intel 8086 in November 1981, led by project manager Kathryn Strutynski. To differentiate it from the original 8-bit system, the earlier version became known as CP/M-80.

Initially expected to become the IBM PC’s default operating system, CP/M-86 lost out due to licensing disagreements between Digital Research and IBM. Instead, IBM selected Microsoft’s PC DOS, which was based on 86-DOS. Although CP/M-86 was eventually made available for the IBM PC following legal pressure, its higher cost ($240 compared to $40 for PC DOS) hindered widespread adoption.

The DEC Rainbow 100 supported multiple operating systems including CP/M-80 (Z80), CP/M-86, MS-DOS (8088), or both CPUs simultaneously—allowing users to maintain their existing 8-bit software investments while transitioning toward 16-bit environments. Comparable dual-processor configurations were seen in devices like the CompuPro System 816 (running CP/M 8-16) and Zenith Z-100.

After CP/M-86, Digital Research launched CP/M-68K for the Motorola 68000 in 1982. Initially developed in Pascal and later ported to C, it operated on EXORmacs systems and was considered by Atari for the ST platform before they opted for GEMDOS. The SORD M68 series also utilized CP/M-68K.

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

These 16-bit editions necessitated recompiling applications. To facilitate this transition, Digital Research provided XLT86—a utility that converted Intel 8080 assembly source code into optimized Intel 8086 assembly—enabling smooth migration between CP/M-80/MP-M80 and CP/M-86/MP-M86 systems. XLT86 was distributed for both CP/M-80 and VAX/VMS environments.

Displacement by MS-DOS

By the early 1980s, approximately 2,000 applications existed 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 an updated CP/M version for their upcoming PC. However, after failing to finalize a signed non-disclosure agreement, IBM turned to Microsoft to supply an operating system instead.

Early releases of MS-DOS shared numerous features with CP/M, such as file management structures and drive letter assignments (A:, B:). The principal innovation introduced by MS-DOS was its FAT file system, which eased porting popular CP/M applications like WordStar and dBase. Additionally, MS-DOS capitalized on increased memory availability on IBM PCs (typically starting at 64 KB), allowing more integrated commands within its command-line interface and enhancing performance and responsiveness on floppy disk-based systems.

Although early hardware expansions like the Baby Blue card enabled IBM PCs to run legacy 8-bit CP/M software, industry analysts quickly favored MS-DOS. In 1982, BYTE magazine described MS-DOS as "more user-friendly, faster, with many more advantages." By 1984, InfoWorld attributed CP/M's failure to penetrate the home computing market largely to expensive software costs. By mid-decade, manufacturers such as Kaypro had discontinued production of CP/M-based computers in favor of MS-DOS-compatible models. As microcomputing shifted toward IBM-compatible platforms, CP/M rapidly declined in market relevance and never regained its earlier dominance. Leading trade publications phased out coverage of CP/M shortly after the IBM PC’s introduction.

Subsequent iterations of CP/M-86 enhanced both performance and compatibility with MS-DOS features, culminating in a rebranding under DOS Plus, which later evolved into 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). This project was created by "The CCP Group," a collective of enthusiasts led by Richard Conn.

The initial version, ZCPR1, appeared on a SIG/M disk distributed by the Amateur Computer Club of New Jersey. Following this, ZCPR2 was released on 14 February 1983 as a set of ten SIG/M disks. It was later updated to version 2.3 and adapted to run on 8080 machine code, allowing compatibility with both 8080 and 8085 processors.

To commercialize ZCPR while keeping it freely available, Conn partnered with Frank Gaude to establish Echelon Inc. On 14 July 1984, ZCPR3 was introduced via nine SIG/M disks. This iteration incorporated advanced features such as command shells, aliases, input/output redirection, flow control mechanisms, named directory support, search paths, customizable menus, password protection, and built-in online help. Additionally, a scaled-down version compatible with the 8080 processor was offered.

After Conn ended active development in January 1987, Echelon commissioned Jay Sage to further develop the system, resulting in ZCPR 3.3. This edition discontinued support for the 8080 architecture and added numerous new utilities and enhancements. Despite widespread enthusiasm among CP/M users, ZCPR was unable to halt the operating system's eventual decline.

Hardware model

A basic CP/M setup for an 8-bit system typically required:

  • A computer terminal using ASCII characters
  • A microprocessor such as the Intel 8080/8085 or the Zilog Z80
    • NEC V20 and V30 processors supported emulation of the 8080 instruction set to enable CP/M operation on PC-DOS/MS-DOS platforms; any compatible PC clone could run CP/M-86
  • A minimum of 16 KB RAM starting at address zero
  • A bootstrap procedure for loading the initial disk sector
  • At least one floppy disk drive

Digital Research officially supported only the Intel 8080 Development System hardware; however, manufacturers adapted CP/M to suit their specific machines. Due to compatibility with 8080 code, CP/M also operated on systems based on the Z80 processor. While core CP/M components avoided using Z80-specific instructions, many BIOS implementations and application programs took advantage of additional Z80 capabilities.

In collaboration with Zilog and American Microsystems, Digital Research developed Personal CP/M—a ROM-based operating system designed for affordable systems lacking disk drives. This variant first appeared in the Sharp MZ-800 cassette-based computer with optional disk support and utilized enhanced Z80 instructions at the expense of full portability.

American Microsystems released the S83 microprocessor—a Z80-compatible chip featuring an integrated 8 KB ROM containing OS and BIOS code alongside circuitry for dynamic RAM interfacing—priced at $32 per unit in volume quantities.

Most systems employed a minimal ROM bootstrap combined with techniques like bank switching or bus injection to load code at memory address zero; some required manual input through front-panel controls during startup.

CP/M used a standard 7-bit ASCII character set; however, extended 8-bit character implementations varied by manufacturer. For example, Kaypro systems used extended characters for Greek letters; Osborne machines indicated underlining by setting the eighth bit; WordStar marked word boundaries similarly. International editions generally adopted ISO 646 standards by substituting certain ASCII characters rather than expanding beyond seven bits.

Components

When loaded into memory during operation, the CP/M operating system 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 throughout operation, while CCP stays loaded unless replaced temporarily by an application; in such cases, CCP reloads automatically afterward. Standard utility commands are stored as transient .COM files on disk.

The BIOS manages hardware elements apart from the CPU and main memory, handling tasks such as character input/output and reading or writing disk sectors. The BDOS provides file system management and input/output abstractions like redirection layered above BIOS functions. The CCP interprets user commands—executing internal commands like DIR (directory listing) or ERA (file deletion)—or loading transient executable commands such as PIP.COM for file copying or STAT.COM for system status information. Third-party software operates as transient commands as well.

While BDOS, CCP, and standard transient utilities remain consistent across different CP/M versions, the BIOS is customized specifically for each hardware platform.

Expanding system memory necessitates reinstalling CP/M to utilize additional space effectively. The MOVCPM utility modifies object code to relocate absolute jump and call addresses into new memory regions. This patched version can then be saved onto a new disk to allow applications access to expanded memory areas. The OS components reside in reserved disk sectors designated for booting; at startup, a bootloader—typically embedded in ROM firmware—loads these components from drive A:.

By contemporary standards, CP/M is considered rudimentary due to strict limitations on program size. Early releases lacked automatic detection of disk changes, risking data corruption if disks were swapped without refreshing directory information. Later versions introduced error notifications to prevent overwriting but required rebooting to recover.

Most complexity resides within BDOS and—less so—in CCP and transient commands. Porting BIOS routines to new hardware enabled the entire OS to operate with minimal modification, drastically reducing development time and contributing significantly to CP/M’s widespread adoption. This early implementation of hardware abstraction was innovative during an era when operating systems typically targeted single hardware platforms exclusively.

Console Command Processor

The Console Command Processor (CCP) handles keyboard inputs and presents output on the terminal screen. CP/M functions with both printing and video terminals, requiring all instructions to be entered via the command line. The command prompt generally indicates the current default drive, such as A>, which updates when a different drive is selected by typing its letter followed by a colon (e.g., B:).

The design of CP/M’s command-line interface drew inspiration from Digital Equipment Corporation’s operating systems like RT-11 and OS/8. Commands start with a keyword followed by optional parameters; internal commands are executed directly by the CCP. If not internal, the CCP loads executable files known as "transient" programs from the active disk and user area, passing along any parameters. Upon completion, BDOS reloads the CCP if it has been overwritten to free up maximum memory for transient applications.

Some command names may appear cryptic—for instance, file copying is performed using PIP (Peripheral Interchange Program), a legacy term from DEC systems. Parameter syntax varies widely among programs, as no uniform option character conventions exist.

Built-in CCP commands encompass DIR, ERA, REN, SAVE, TYPE, and USER. Transient commands include assemblers (ASM), debuggers (DDT), text editors (ED), and utilities such as PIP and SYSGEN.

With CP/M Plus (Version 3), additional built-in commands were introduced like DIRSYS/DIRS for system file listings, ERASE for file removal, RENAME/REN, TYPE/TYP for ASCII content display, and USER/USE to switch user numbers. This version also supports abbreviated forms of built-in commands. The transient command set expanded to feature utilities including COPYSYS, DATE, DEVICE, HELP, LINK, MAC, PIP, SET, SHOW, and SUBMIT, reflecting an enriched utility suite in CP/M 3.

Basic Disk Operating System

The Basic Disk Operating System (BDOS) oversees tasks such as file management, console output, and printing services. Applications interact with BDOS by loading processor registers with function codes and necessary parameters before invoking a fixed memory location. This consistent call address guarantees software compatibility across various hardware platforms.

Basic Input Output System

The Basic Input Output System (BIOS) delivers fundamental low-level operations required by the OS, including character input/output and disk sector read/write functions. While BDOS manages some disk buffering, versions prior to CP/M 3.0 assumed a fixed sector size of 128 bytes typical of 8-inch floppy disks. Since most 5.25-inch disks use larger sectors, BIOS incorporates device-specific routines for buffering and disk control.

Due to hardware diversity—ranging from integrated video solutions to standalone terminals, assorted UART chips for serial interfaces, and differing I/O address schemes—BIOS must be tailored accordingly. It abstracts these hardware differences through standard service entry points, allowing CP/M to run on a variety of machines. Serial communication support within BIOS is limited or sometimes absent; consequently, CP/M applications that utilize modems often rely on user-supplied overlays to access machine-specific serial ports.

Applications

CP/M was the foundation for groundbreaking software titles such as WordStar, a word processor, and dBase, a database management system, both originally created for this platform. Early outlining tools like KAMAS and Out-Think initially operated on CP/M before moving to MS-DOS. Turbo Pascal, which later evolved into Borland Delphi, and Multiplan, a precursor to Microsoft Excel, both made their first appearances on CP/M prior to their MS-DOS releases. The pioneering spreadsheet program VisiCalc was available on CP/M alongside Sorcim’s SuperCalc, which dominated the platform’s spreadsheet market and also competed in the MS-DOS environment. AutoCAD by Autodesk was another significant application that debuted on CP/M. A wide range of compilers and interpreters supported major programming languages including BASIC, Turbo Pascal, FORTRAN, and PL/I, featuring some of Microsoft’s earliest software offerings.

Software designed for CP/M frequently incorporated installation routines that allowed customization for different hardware configurations. For instance, users of the Kaypro II transferred programs from Xerox 820 disk formats to Kaypro-compatible disks to ensure proper operation. BASIC source files were commonly distributed openly, and most copy protection schemes were ineffective due to CP/M’s transparent file system standards—users anticipated interoperability across various applications; disks that could not be read were simply not considered valid CP/M media.

The absence of standardized graphics capabilities limited the development of video games on CP/M; nevertheless, many text-based games were ported to the platform. Titles such as Telengard, Gorillas, Hamurabi, Lunar Lander, as well as early interactive fiction games like the Zork series and Colossal Cave Adventure were available. Infocom consistently published its games in CP/M format. Lifeboat Associates distributed free user-developed software utilities such as XMODEM, which facilitated reliable file transfers over modems. The outliner program KAMAS also originated within the CP/M environment.

Transient Program Area

In the original CP/M implementations for processors like the 8080, 8085, and Z80, the read/write memory space ranging from address 0100 hexadecimal up to just before 0006H (the lowest BDOS address) was designated as the Transient Program Area (TPA), reserved for application execution. Although these CPUs supported addressing up to 64 KB, the actual TPA size depended on system architecture since portions of memory were often assigned to BIOS ROMs or video buffers. Techniques such as bank switching permitted expansion of the TPA by temporarily replacing ROM or video memory segments. With CP/M 3.0, parts of the BDOS could also be relocated into bank-switched memory regions.

Debugging application

CP/M featured a debugging utility known as the Dynamic Debugging Tool (DDT), which allowed users to inspect and modify memory contents and program modules interactively while supporting stepwise execution of code.

Resident programs

Unlike DOS, early versions of CP/M did not natively support terminate-and-stay-resident (TSR) programs. Nevertheless, developers could intercept operating system calls to enhance system functionality, leading to commercial add-ons such as SmartKey, a keyboard enhancement utility. CP/M version 3 introduced dynamically loadable Resident System Extensions (RSX), enabling the command processor (CCP) to load RSX modules independently of transient applications. Additionally, third-party solutions like Resident System Modules (RSMs) were retrofitted into CP/M 2.2 to provide similar capabilities.

Software installation

Although CP/M provided hardware abstraction to unify disk and console input/output operations, most application software still required installation to access device-specific capabilities such as printers and terminals. These peripherals often depended on proprietary escape codes unique to each manufacturer—for instance, the method for enabling bold text varied among printer models. Installation utilities enabled users to choose devices or tailor escape sequences for particular functions; however, this configuration had to be repeated individually for every program due to the absence of centralized operating system management.

Programs typically contained printer initialization sequences embedded within their code. Consequently, when using applications like WordStar with different printers—such as a high-speed dot-matrix versus a slower daisy wheel—distinct versions of the software had to be maintained and loaded according to the printer in use, necessitating reloading the application when switching hardware.

Disk formats

The 128-byte sector size, single-density, single-sided disk format from IBM System/34 and IBM 3740 established the standard for CP/M’s 8-inch floppy disks. In contrast, no unified 5.25-inch disk format existed for CP/M; manufacturers like Kaypro, Morrow Designs, Osborne, and others each implemented their own variations. Among these, some formats gained wider acceptance—for example, much software was distributed in the Xerox 820 format, compatible with machines such as the Kaypro II. Nonetheless, a 1981 estimate by InfoWorld indicated approximately two dozen prevalent formats that software developers needed to support to maximize market reach. JRT Pascal exemplified this by offering multiple versions across several 5.25-inch formats alongside an 8-inch edition. Ellis Computing supported both Heath formats plus sixteen additional 5.25-inch variants including TRS-80 CP/M types. Distributors like Lifetree converted CP/M applications between differing systems.

The selection of disk format often reflected system design choices and hardware traits. CP/M allowed customization of reserved space, directory areas, and logical-to-physical sector mappings tailored to each system’s requirements. However, there was no universal standard for retrieving formatting parameters from disks prepared on alternative platforms.

Nearly all CP/M systems equipped with 8-inch drives could read IBM’s single-sided, single-density disk format; yet, compatibility between machines varied widely due to differences in drive mechanisms and controllers amid numerous floppy disk configurations—both in 8- and 5.25-inch sizes. Disks might be hard- or soft-sectored, single- or double-density/sided, feature track counts ranging from 35 to 80, and employ various sector arrangements. When drive types matched, specialized translation utilities facilitated reading disks from other systems. By 1982, the dominant CP/M software distribution medium for consumer computers—including Apple II, TRS-80, Osborne 1, Kaypro II, and IBM PC—was the soft-sectored, single-sided 40-track 5.25-inch floppy disk. For example, the Kaypro II could access disks formatted for TRS-80, Osborne, IBM PC, and Epson QX-10 machines; however, it could not read disks formatted as 80-track or hard-sectored. Apple II users were restricted to Apple’s GCR encoding format and thus required CP/M software in that format or had to transfer data via serial connections.

This fragmented landscape of CP/M disk formats compelled distributors either to maintain inventories of multiple disk types or invest in duplication equipment capable of handling several formats simultaneously. Such complexity contrasted sharply with the more uniform disk standards of the IBM PC platform and played a role in CP/M’s swift decline after 1981.

Among the final noteworthy CP/M-compatible computers was the Commodore 128 (released in 1985), which incorporated a Z80 processor dedicated to CP/M operation alongside its native CPU. Running CP/M on this machine necessitated using either a Commodore 1571 or 1581 disk drive capable of reading soft-sectored 40-track MFM (Modified Frequency Modulation) disks.

The Sony SMC-70 was the earliest computer equipped with a 3.5-inch floppy drive running CP/M version 2.2. Other systems supporting CP/M on 3.5-inch media included the Commodore 128, Bondwell-2 laptop, Micromint/Ciarcia SB-180, MSX computers, and TRS-80 Model 4 (using Montezuma’s CP/M 2.2). Applied Engineering’s CP/AM solution for Apple II also accommodated both 3.5-inch floppy disks and RAM disks on compatible memory expansion cards. Initially, the Amstrad PCW utilized 3-inch floppy drives for its CP/M environment before transitioning to 3.5-inch media later on.

File system

File naming conventions adhered to the 8.3 format, allowing up to eight characters for the name, followed by a period and a three-character extension that indicated the file type (for instance, .COM for executable files and .TXT for text documents). When filenames were typed at the command prompt, they were automatically converted to uppercase; however, certain applications such as MBASIC generated lowercase filenames, which complicated command-line operations.

Disk drives were designated by letters (for example, A: and B:), with files accessed by prefixing the drive letter to the filename (e.g., A:FILE.TXT). If no drive letter was specified, the system defaulted to using the current drive.

File sizes were recorded in units called 128-byte records, matching disk sector sizes. Precise byte counts were generally not supported. The file size information was maintained within its File Control Block (FCB). Text files traditionally ended with a control-Z character (ASCII SUB, hex 1A) to signify end-of-file, influencing how software interpreted file contents.

As storage capacities expanded, de-blocking techniques increased the number of disk blocks per allocation unit, enabling support for larger files. However, this also caused minimum allocation sizes to rise—from 1 KB on single-density disks up to 32 KB on higher-density media—leading to inefficient utilization of space when handling numerous small files.

CP/M 2.2 did not include file modification timestamps; these were optional features introduced in MP/M and CP/M 3.0.

While CP/M 2.2 lacked subdirectories, it provided 16 numbered user areas for file organization. Users could switch between these areas using "User X" commands, effectively isolating files by user number. User area 0 served as the default and was accessible by all users, whereas other user areas restricted access exclusively to their assigned users. This mechanism improved file management on systems equipped with hard drives and facilitated multitasking within a single machine environment—for example, separating data entry from billing tasks without mixing files.

Graphics

Despite early availability of graphics-capable S-100 systems, CP/M did not offer standardized graphics support until 1982 with the introduction of GSX. The limited memory of 8-bit CP/M machines constrained graphical capabilities, which mostly consisted of simple ASCII art representations or custom character sets. Certain systems like the Kaypro line and the TRS-80 Model 4 featured block graphics accessible to assembler and BASIC programmers through CHR$. Notably, the TRS-80 Model 4 could produce graphics at a resolution of 640×240 pixels when equipped with an optional high-resolution graphics board.

Official

Some vendors issued official CP/M enhancements derived from Digital Research’s source code, such as IMDOS for the IMSAI 8080, which was a clone of the Altair 8800.

Compatible

A variety of independently developed CP/M-compatible operating systems emerged without relying on Digital Research’s codebase. Examples include:

  • Cromemco CDOS developed by Cromemco
  • MSX-DOS, designed to be compatible with CP/M and capable of running its software
  • The Epson QX-10, which offered either CP/M or compatible TPM-II/III environments
  • The British SAM Coupé, supporting optional Pro-DOS compatible with CP/M-2.2
  • Amstrad/Schneider CPC and PCW series that shipped with CP/M disk collections
  • Husky (computer), running DEMOS—a ROM-based loader supporting many CP/M applications
  • ZSDOS, a BDOS replacement for CP/M-80 version 2.2 created by Harold F. Bower and Cameron W. Cotrill
  • CPMish, an open-source CP/M 2.2-compatible OS initially developed without Digital Research code; since 2022 it has incorporated original DR components under authorization from Lineo’s president
  • LokiOS, released in 2023 by David Kitson for the Open Spectrum Project, is a CP/M 2.2-compatible OS including BIOS, BDOS, CLI source code along with original DR source code and hot-swappable operating system modules
  • IS-DOS for the Enterprise, produced by Intelligent Software
  • VT-DOS for the Videoton TV Computer, also developed by Intelligent Software

Improvements

Certain CP/M-compatible operating systems introduced substantial enhancements, notably TurboDOS, which supported multi-processor configurations.

Eastern Bloc Variants

Within the former Eastern Bloc, numerous CP/M-80 adaptations 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. The CP/M-86 family included versions like SCP1700, CP/K, and K8918-OS. These operating systems were manufactured by entities including the East German company VEB Robotron.

Enduring Influence

A significant portion of Microsoft Windows functionality is derived from ensuring backward compatibility with MS-DOS, which itself was designed to be compatible with CP/M. MS-DOS incorporated conventions from CP/M such as the use of drive letters and the 8.3 filename format. The wildcard symbols (? and *) found in Windows originate from CP/M standards, as do reserved device names like "PRN:" for printers and "CON:" for consoles. The designation of floppy drives as A: and B: began with CP/M; hard drives were assigned the letter C:, a practice that continues in MS-DOS command line environments. The control character ^Z, signaling end-of-file in text files, also traces back to CP/M. Commands including DIR, REN/RENAME, and TYPE have their origins in CP/M command sets. File extensions such as .TXT and .COM remain widely used indicators of file types across many operating systems.

Between 1997 and 1998, Caldera made available certain CP/M 2.2 executables and their source code under an open-source license. This allowed redistribution and modification of Digital Research's related files through Tim Olmstead's "The Unofficial CP/M Web site." After Olmstead passed away in 2001, Lineo, the rights holder at that time, broadened the licensing terms later that year. To mark the 40th anniversary of CP/M in October 2014, the Computer History Museum published early versions of the CP/M source code.

As of 2018, enthusiasts in vintage computing circles along with small-scale commercial vendors continue to develop and maintain systems primarily utilizing CP/M 2.2 as their operating platform.

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

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. ↑ Cite error: Invalid <ref> tag; no text was provided for refs named Kildall.NYT