Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
CP/M
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Discontinued family of computer operating systems}} {{About|the Digital Research operating system|the similarly named IBM and Microsoft operating system|CP/DOS}} {{Redirect|BDOS|the DOS kernel|BDOS (DOS)|the MSX-DOS kernel|BDOS (MSX)|}} {{Redirect|SCP (operating system)|the developer of the unrelated SCP 86-DOS|Seattle Computer Products}} {{Use list-defined references|date=December 2021}} {{Use dmy dates|date=April 2016|cs1-dates=y}} {{Infobox OS | name = CP/M | screenshot = CPM-86.png | caption = A screenshot of CP/M-86 | developer = [[Digital Research|Digital Research, Inc.]], [[Gary Kildall]] | working state = Historical | source model = Originally [[closed source]], now [[open-source software|open source]]<ref name="Gasperson_2001_Collection"/> | released = {{Start date and age|1974|df=yes}} | latest release version = 3.1 | latest release date = {{Start date and age|1983|df=yes}}<ref name="Mann83"/> | programmed in = [[PL/M]], [[Assembly language]] | prog_language = [[Assembly language]], [[BASIC]], [[Modula-2]], [[Pascal (programming language)|Pascal]] etc. | language = [[English language|English]] | update model = Re-installation | package manager = None | supported platforms = [[Intel 8080]], [[Intel 8085]], [[Zilog Z80]], [[Zilog Z8000]], [[Intel 8086]], [[Motorola 68000]] | kernel type = [[Monolithic kernel]] | influenced by = [[RT-11]], [[OS/8]] | ui = [[Command-line interface]] (CCP.COM) | license = Originally [[Proprietary software|proprietary]], now [[BSD licenses|BSD]]-like | succeeded by = [[MP/M]], [[CP/M-86]] | website = {{URL|https://web.archive.org/web/20080515232659/http://www.digitalresearch.biz/CPM.HTM|Digital Research CP/M page}} }} '''CP/M''',<ref name="CPM.NYT83"/> originally standing for '''Control Program/Monitor'''<ref name="Kildall.NYT"/> and later '''Control Program for Microcomputers''',<ref name="Shustek_2016"/><ref name="Kildall_1993"/><ref name="Newton_2000"/> is a mass-market [[operating system]] created in 1974 for [[Intel 8080]]/[[Intel 8085|85]]-based [[microcomputer]]s by [[Gary Kildall]] of [[Digital Research|Digital Research, Inc.]] CP/M is a [[disk operating system]]<ref name="byte1983_07"/> and its purpose is to organize files on a magnetic storage medium, and to load and run programs stored on a disk. Initially confined to single-tasking on [[8-bit processor]]s and no more than 64 [[kilobyte]]s of memory, later versions of CP/M added multi-user variations and were migrated to [[16-bit processor]]s. CP/M's core components are the ''Basic Input/Output System'' (BIOS), the ''Basic Disk Operating System'' (BDOS), and the ''Console Command Processor'' (CCP). The BIOS consists of drivers that deal with devices and system hardware. The BDOS implements the file system and provides system services to applications. The CCP is the [[command-line interpreter]] and provides some built-in commands. CP/M eventually became the ''[[de facto]]'' standard and the dominant operating system for microcomputers,<ref>{{cite web | last=Proven | first=Liam | title=50 years ago, CP/M started the microcomputer revolution | website=The Register | date=2024-08-02 | url=https://www.theregister.com/2024/08/02/cpm_50th_anniversary/ }}</ref> in combination with the [[S-100 bus]] computers. This [[computer platform]] was widely used in business through the late 1970s and into the mid-1980s.<ref name="Compupro816"/> CP/M increased the market size for both hardware and software by greatly reducing the amount of programming required to port an application to a new manufacturer's computer.<ref name="InfoWorld May 1981"/><ref name="InfoWorld July 1982"/> An important driver of software innovation was the advent of (comparatively) low-cost microcomputers running CP/M, as independent programmers and [[hacker culture|hackers]] bought them and shared their creations in [[user group]]s.<ref name="Commodore_128"/> CP/M was eventually displaced in popularity by [[DOS]] following the 1981 introduction of the [[IBM Personal Computer|IBM PC]]. == History == [[File:CP⁄M Ad, InfoWorld, November 29, 1982.jpg|thumbnail|right|CP/M advertisement in the 29 November 1982 issue of ''[[InfoWorld]]'' magazine]] === Early history === [[Gary Kildall]] originally developed CP/M during 1974,<ref name="Shustek_2016"/><ref name="Kildall_1993"/> as an operating system to run on an Intel [[Intellec|Intellec-8]] development system, equipped with a [[Shugart Associates]] 8-inch [[floppy-disk drive]] interfaced via a custom [[floppy-disk controller]].<ref name="Kildall_1980_CPM"/> It was written in Kildall's own [[PL/M]] (''[[Programming Language]] for Microcomputers'').<ref name="Kildall_1975_BDOS"/> Various aspects of CP/M were influenced by the [[TOPS-10]] operating system of the [[DECsystem-10]] [[mainframe computer]], which Kildall had used as a development environment.<ref name="johnson"/><ref name="Dr. Dobb's Journal Apr 1976"/><ref name="Digital Research (Firm)"/> CP/M supported a wide range of computers based on the [[8080]] and [[Z80]] CPUs.{{r|wilkinson19811019}} An early outside licensee of CP/M was [[Gnat Computers]], an early microcomputer developer out of [[San Diego, California]]. In 1977, the company was granted the license to use CP/M 1.0 for any micro they desired for $90. Within the year, demand for CP/M was so high that Digital Research was able to increase the license to tens of thousands of dollars.<ref>{{cite book | last=Freiberger | first=Paul | author1-link=Paul Freiberger | author2=Michael Swaine | author2-link=Michael Swaine (technical author) | date=2000 | url=https://archive.org/details/fireinvalleymaki00frei_0/ | title= Fire in the Valley: The Making of the Personal Computer| publisher=McGraw-Hill | isbn=0071358927 | via=the Internet Archive | page=175}}</ref> Under Kildall's direction, the development of CP/M 2.0 was mostly carried out by John Pierce in 1978. [[Kathryn Strutynski]], a friend of Kildall from [[Naval Postgraduate School]] (NPS), became the fourth employee of Digital Research Inc. in early 1979. She started by debugging CP/M 2.0, and later became influential as key developer for CP/M 2.2 and CP/M Plus. Other early developers of the CP/M base included Robert "Bob" Silberstein and David "Dave" K. Brown.<ref name="Brown-Strutynski-Wharton_1983"/><ref name="Strutynski_2010"/> CP/M originally stood for "Control Program/Monitor",<ref name="CPM.NYT83"/> a name which implies a [[resident monitor]]—a primitive precursor to the operating system. However, during the conversion of CP/M to a commercial product, trademark registration documents filed in November 1977 gave the product's name as "Control Program for Microcomputers".<ref name="Kildall_1993"/> The CP/M name follows a prevailing naming scheme of the time, as in Kildall's PL/M language, and Prime Computer's [[PL/P]] (''Programming Language for Prime''), both suggesting IBM's [[PL/I]]; and IBM's [[CP/CMS]] operating system, which Kildall had used when working at the NPS. This renaming of CP/M was part of a larger effort by Kildall and his wife with business partner, Dorothy McEwen<ref name="Kildall.NYT"/> to convert Kildall's personal project of CP/M and the Intel-contracted PL/M [[compiler]] into a commercial enterprise. The Kildalls intended to establish the Digital Research brand and its product lines as synonymous with "microcomputer" in the consumer's mind, similar to what IBM and Microsoft together later successfully accomplished in making "[[personal computer]]" synonymous with their product offerings. Intergalactic Digital Research, Inc. was later renamed via a corporation change-of-name filing to Digital Research, Inc.<ref name="Kildall.NYT"/> === Initial success === [[File:M Karte.JPG|thumb|Apple ''CP/M Card'' with manual]] By September 1981, Digital Research had sold more than {{val|fmt=commas|250000}} CP/M licenses; ''[[InfoWorld]]'' stated that the actual market was likely larger because of sublicenses. Many different companies produced CP/M-based computers for many different markets; the magazine stated that "CP/M is well on its way to establishing itself as ''the'' small-computer operating system".{{r|hogan19810914state}} Even companies with proprietary operating systems, such as [[Heath/Zenith]] ([[HDOS]]), offered CP/M as an alternative for their 8080/Z80-based systems; by contrast, no comparable standard existed for computers based on the also popular [[6502]] CPU.<ref name=wilkinson19811019>{{cite journal | last=Wilkinson | first=Bill | date=October 19, 1981 | url=https://books.google.com/books?id=Gj0EAAAAMBAJ&pg=PA16 | title=Software interchangeability problems in the 6502 marketplace | journal=InfoWorld | publisher=IDG Publications | volume=3 | issue=22 | page=16 | via=Google Books | access-date=April 19, 2023 | archive-date=April 20, 2023 | archive-url=https://web.archive.org/web/20230420013852/https://books.google.com/books?id=Gj0EAAAAMBAJ&pg=PA16 | url-status=live }}</ref> They supported CP/M because of its large library of software. The [[Xerox 820]] ran the operating system because "where there are literally thousands of programs written for it, it would be unwise not to take advantage of it", Xerox said.<ref name="wise19820510"/> (Xerox included a [[Howard W. Sams]] CP/M manual as compensation for Digital Research's documentation, which ''InfoWorld'' described as atrocious,<ref name="meyer19820614"/> incomplete, incomprehensible, and poorly indexed.<ref name = "Infoworld 1981">{{cite journal | last = Hogan | first = Thom| title = Microsoft's Z80 SoftCard | journal = InfoWorld | volume = 3 | issue = 4 | pages =20–21 | publisher = Popular Computing| date = March 3, 1981| url = https://books.google.com/books?id=jT4EAAAAMBAJ&pg=PT14 | issn = 0199-6649}}</ref>) By 1984, [[Columbia University]] used the same [[source code]] to build [[Kermit (protocol)|Kermit]] binaries for more than a dozen different CP/M systems, plus two generic versions.<ref name="dacruz19840427"/> The operating system was described as a "[[software bus]]",<ref>{{cite book|title=CP/M - the Software Bus: A Programmer's Companion|first1=A.|last1=Clarke|first2=J. M.|last2=Eaton|first3=D. Powys Lybbe|last3=David|publisher=Sigma Press|date=October 26, 1983|isbn=978-0905104188 |url=https://archive.org/details/cpm-the-software-bus-a-programmers-companion-clarke-eaton-powys-lybbeacme-1/}}</ref><ref>{{cite web|url=https://retrotechnology.com/dri/d_dri_history.html|title=CP/M and Digital Research Inc. (DRI) History|first=Herbert R.|last=Johnson|date=July 30, 2014|access-date=2021-06-29 |archive-date=2021-06-29 |archive-url=https://web.archive.org/web/20210629071256/https://retrotechnology.com/dri/d_dri_history.html|url-status=live}}</ref> allowing multiple programs to interact with different hardware in a standardized way.<ref name="Swaine_1997_Entrepreneurship"/> Programs written for CP/M were typically portable among different machines, usually requiring only the specification of the [[escape sequence]]s for control of the [[computer terminal|screen]] and printer. This portability made CP/M popular, and much more software was written for CP/M than for operating systems that ran on only one brand of hardware. One restriction on portability was that certain programs used the extended [[instruction set]] of the Z80 processor and would not operate on an 8080 or 8085 processor. Another was graphics routines, especially in games and graphics programs, which were generally machine-specific as they used direct hardware access for speed, bypassing the OS and BIOS (this was also a common problem in early DOS machines).{{citation needed|date=August 2017|reason=Certainly a common problem for DOS programs, but CP/M programs typically were more configurable and thus less machine-specific. Therefore this needs to be sourced by a RS.}} [[Bill Gates]] claimed that the [[Apple II]] with a [[Z-80 SoftCard]] was the single most-popular CP/M hardware platform.<ref name="bunnell19820203"/> Digital Research stated in 1982 that the operating system had been licensed for more than 450 types of computer systems.<ref name="libes198206">{{Cite magazine |last=Libes |first=Sol |date=June 1982 |title=Bytelines |url=https://archive.org/details/byte-magazine-1982-06/page/n440/mode/1up?view=theater |access-date=2025-03-17 |magazine=BYTE |pages=440–450}}</ref> Many different brands of machines ran the operating system, some notable examples being the [[Altair 8800]], the [[IMSAI 8080]], the [[Osborne 1]] and Kaypro [[luggable]]s, and [[MSX]] computers. The best-selling CP/M-capable system of all time was probably the [[Amstrad PCW]]. In the UK, CP/M was also available on [[Research Machines]] educational computers (with the CP/M source code published as an educational resource), and for the [[BBC Micro]] when equipped with a Z80 co-processor. Furthermore, it was available for the [[Amstrad CPC]] series, the [[Commodore 128]], [[TRS-80]], and later models of the [[ZX Spectrum]]. CP/M 3 was also used on the NIAT, a custom handheld computer designed for [[A. C. Nielsen]]'s internal use with 1 [[megabyte|MB]] of [[Solid-state drive|SSD]] memory. === Multi-user === {{main|MP/M}} In 1979, a multi-user compatible derivative of CP/M was released. [[MP/M]] allowed multiple users to connect to a single computer, using multiple terminals to provide each user with a screen and keyboard. Later versions ran on 16-bit processors. === CP/M Plus === [[File:CP-M Plus System Guide.jpg|thumb|right|CP/M Plus (CP/M 3) System Guide]] The last 8-bit version of CP/M was version 3, often called CP/M Plus, released in 1983.<ref name="Brown-Strutynski-Wharton_1983"/> Its BDOS was designed by David K. Brown.<ref name="Brown-Strutynski-Wharton_1983"/> It incorporated the bank switching memory management of MP/M in a single-user single-task operating system compatible with CP/M 2.2 applications. CP/M 3 could therefore use more than 64 KB of memory on an 8080 or Z80 processor. The system could be configured to support date stamping of files.<ref name="Brown-Strutynski-Wharton_1983"/> The operating system distribution software also included a relocating assembler and linker.<ref name="Mann83"/> CP/M 3 was available for the last generation of 8-bit computers, notably the Amstrad PCW, the [[Amstrad CPC]], the [[ZX Spectrum +3]], the [[Commodore 128]], [[MSX]] machines and the Radio Shack [[TRS-80 Model 4]].<ref name="Radio_Shack_1985"/> === 16-bit versions === [[File:PRO CPM-80.jpg|thumb|DEC PRO-CP/M-80 floppy-disk distribution for the Z80-A co-processor in a DEC Professional 3xx series]] There were versions of CP/M for some [[16-bit computing|16-bit]] CPUs as well. The first version in the 16-bit family was [[CP/M-86]] for the [[Intel 8086]] in November 1981.<ref name="Digital_Research_1981_News"/> Kathryn Strutynski was the project manager for the evolving CP/M-86 line of operating systems.<ref name="Brown-Strutynski-Wharton_1983"/><ref name="Strutynski_2010"/> At this point, the original [[8-bit computing|8-bit]] CP/M became known by the [[retronym]] ''CP/M-80'' to avoid confusion.<ref name="Digital_Research_1981_News"/> CP/M-86 was expected to be the standard operating system of the new [[IBM Personal Computer|IBM PC]]s, but DRI and [[IBM]] were unable to negotiate development and licensing terms. IBM turned to Microsoft instead, and Microsoft delivered [[PC DOS]] based on [[86-DOS]]. Although CP/M-86 became an option for the IBM PC after DRI threatened legal action, it never overtook Microsoft's system. Most customers were repelled by the significantly greater price IBM charged for CP/M-86 over PC DOS ({{currency|amount=240|code=USD|linked=yes}} and {{currency|amount=40|code=USD|linked=no}}, respectively).<ref name="Maher_2017"/> When [[Digital Equipment Corporation]] (DEC) put out the [[Rainbow 100]] to compete with IBM, it came with CP/M-80 using a Z80 chip, CP/M-86 or MS-DOS using an 8088 microprocessor, or [[CP/M-86/80]] using both. The Z80 and 8088 CPUs ran concurrently.<ref name="Kildall_1982_8-bit"/><ref name="snyder198306"/> A benefit of the Rainbow was that it could continue to run 8-bit CP/M software, preserving a user's possibly sizable investment as they moved into the 16-bit world of MS-DOS.<ref name="Kildall_1982_8-bit"/> A similar [[multiprocessing|dual-processor]] adaption for the {{ill|CompuPro System 816|sr|Compupro System 816}} was named [[CP/M 8-16]]. The CP/M-86 adaptation for the 8085/8088-based [[Zenith Z-100]] also supported running programs for both of its CPUs. Soon following CP/M-86, another 16-bit version of CP/M was ''CP/M-68K'' for the [[Motorola 68000]]. The original version of CP/M-68K in 1982 was written in [[Pascal/MT+68k]], but it was ported to C later on. CP/M-68K, already running on the Motorola [[EXORmacs]] systems, was initially to be used in the [[Atari ST]] computer, but Atari decided to go with a newer disk operating system called [[GEMDOS]]. CP/M-68K was also used on the SORD M68 and M68MX computers.<ref name="M68"/> In 1982, there was also a port from CP/M-68K to the 16-bit [[Zilog Z8000]] for the [[Olivetti M20]], written in [[C (language)|C]], named ''CP/M-8000''.<ref name="Thomas_1981_CPM"/><ref name="Olmstead"/> These 16-bit versions of CP/M required application programs to be re-compiled for the new CPUs. Some programs written in [[assembly language]] could be [[assembly language translator|automatically translated]] for a new processor. One tool for this was Digital Research's [[XLT86]], which translated .ASM source code for the Intel 8080 processor into .A86 source code for the Intel 8086. The translator would also optimize the output for code size and take care of calling conventions, so that [[CP/M-80]] and [[MP/M-80]] programs could be ported to the CP/M-86 and [[MP/M-86]] platforms automatically. XLT86 itself was written in [[PL/I-80]] and was available for CP/M-80 platforms as well as for [[VAX/VMS]].<ref name="DR_1981_XLT"/> === Displacement by MS-DOS === By the early 1980s an estimated 2000 CP/M applications existed.{{r|magid1982junjul}} Many expected that it would be the standard operating system for 16-bit computers.<ref name="pournelle198403"/> In 1980 IBM approached Digital Research, at [[Bill Gates]]' suggestion,<ref name="Isaacson_2014"/> to license a forthcoming version of CP/M for its new product, the IBM Personal Computer. Upon the failure to obtain a signed [[non-disclosure agreement]], the talks failed, and IBM instead contracted with Microsoft to provide an operating system.<ref name="Bellis_2010"/> Many of the basic concepts and mechanisms of early versions of MS-DOS resemble those of CP/M. Internals like file-handling data structures are identical, and both refer to disk drives with a letter (<code>A:</code>, <code>B:</code>, etc.). MS-DOS's main innovation was its [[File Allocation Table|FAT]] file system. This similarity made it easier to port popular CP/M software like [[WordStar]] and [[dBase]]. However, CP/M's concept of separate user areas for files on the same disk was never ported to MS-DOS. Since MS-DOS has access to more memory (as few IBM PCs were sold with less than 64 KB of memory, while CP/M can run in 16 KB if necessary), more commands are built into the [[command.com|command-line shell]], making MS-DOS somewhat faster and easier to use on floppy-based computers. Although one of the first peripherals for the IBM PC was the Baby Blue card, a SoftCard-like [[expansion card]] that lets the PC run 8-bit CP/M software like WordStar not yet available for it,<ref name="magid1982junjul"/> and ''BYTE'' in 1982 described MS-DOS and CP/M as [[David and Goliath]], the magazine stated that MS-DOS was "much more user-friendly, faster, with many more advantages, and fewer disadvantages".{{r|libes198206}} ''InfoWorld'' stated in 1984 that efforts to introduce CP/M to the home market had been largely unsuccessful and most CP/M software was too expensive for home users.<ref name="Mace_1984"/> In 1986 the magazine stated that Kaypro had stopped production of 8-bit CP/M-based models to concentrate on sales of MS-DOS compatible systems, long after most other vendors had ceased production of new equipment and software for CP/M.<ref name="Groth_1986"/> CP/M rapidly lost market share as the microcomputing market moved to the IBM-compatible platform, and never regained its former popularity. ''[[Byte (magazine)|Byte]]'' magazine, one of the leading industry magazines for microcomputers, essentially ceased covering CP/M products within a few years of the introduction of the IBM PC. For example, in 1983 there were still a few advertisements for S-100 boards and articles on CP/M software, but by 1987 these were no longer found in the magazine. Later versions of CP/M-86 made significant strides in performance and usability and were made compatible with MS-DOS. To reflect this compatibility the name was changed, and CP/M-86 became [[DOS Plus]], which in turn became [[DR-DOS]]. === ZCPR === ZCPR<ref name="ZCPR"/> (the Z80 Command Processor Replacement) was introduced on 2 February 1982 as a drop-in replacement for the standard Digital Research console command processor (CCP) and was initially written by a group of computer hobbyists who called themselves "The CCP Group". They were Frank Wancho, Keith Petersen (the archivist behind [[Simtel]] at the time), Ron Fowler, Charlie Strom, Bob Mathias, and Richard Conn. Richard was, in fact, the driving force in this group (all of whom maintained contact through email). ZCPR1 was released on a disk put out by SIG/M (Special Interest Group/Microcomputers), a part of the Amateur Computer Club of [[New Jersey]]. ZCPR2 was released on 14 February 1983. It was released as a set of ten disks from SIG/M. ZCPR2 was upgraded to 2.3, and also was released in 8080 code, permitting the use of ZCPR2 on 8080 and 8085 systems. Conn and Frank Gaude formed Echelon Inc. to publish the next version of ZCPR as a commercial product, while still distributing it as free software.<ref name="byte198409">{{Cite magazine |last1=Markoff |first1=John |last2=Shapiro |first2=Ezra |date=September 1984 |title=Z Whiz |url=https://archive.org/details/BYTE_Vol_09-10_1984-09_Computer_Graphics/page/n397/mode/1up?view=theater |access-date=2025-04-10 |department=BYTE West Coast |magazine=BYTE |pages=396–397}}</ref> ZCPR3<ref name="ZCPR3"/> was released on 14 July 1984, as a set of nine disks from SIG/M. The code for ZCPR3 could also be compiled (with reduced features) for the 8080 and would run on systems that did not have the requisite [[Zilog Z80|Z80]] microprocessor. Features of ZCPR as of version 3 included shells, aliases, I/O redirection, flow control, named directories, search paths, custom menus, passwords, and online help. In January 1987, Richard Conn stopped developing ZCPR, and Echelon asked Jay Sage (who already had a privately enhanced ZCPR 3.1) to continue work on it. Thus, ZCPR 3.3 was developed and released. ZCPR 3.3 no longer supported the 8080 series of microprocessors, and added the most features of any upgrade in the ZCPR line. ZCPR 3.3 also included a full complement of utilities with considerably extended capabilities. While enthusiastically supported by the CP/M user base of the time, ZCPR alone was insufficient to slow the demise of CP/M. == Hardware model == [[File:Sanco 8001.jpg|thumb|Sanco 8001 computer, running under CP/M 2.2 (1982)]] [[File:Commodore CP-M cartridge for the C64 (main).jpg|thumb|right|CP/M cartridge for the [[Commodore 64]] ]] A minimal 8-bit CP/M system would contain the following components: * A [[computer terminal]] using the [[ASCII]] character set * An Intel 8080 (and later the 8085) or Zilog Z80 microprocessor ** The [[NEC V20]] and [[NEC V30|V30]] processors support an 8080-emulation mode that can run 8-bit CP/M on a PC-DOS/MS-DOS computer so equipped, though any [[PC clone]] could run CP/M-86.<ref name="CP/M-Emu"/><ref name="Davis_1985_NEC"/> * At least 16 kilobytes of [[random-access memory|RAM]], beginning at address 0 * A means to [[bootstrapping (computing)|bootstrap]] the first [[Disk sector|sector]] of the diskette * At least one [[floppy disk|floppy-disk]] drive The only hardware system that CP/M, as sold by Digital Research, would support was the Intel 8080 Development System. Manufacturers of CP/M-compatible systems customized portions of the operating system for their own combination of installed memory, disk drives, and console devices. CP/M would also run on systems based on the Zilog Z80 processor since the Z80 was compatible with 8080 code. While the Digital Research distributed core of CP/M (BDOS, CCP, core transient commands) did not use any of the Z80-specific instructions, many Z80-based systems used Z80 code in the system-specific BIOS, and many applications were dedicated to Z80-based CP/M machines. Digital Research subsequently partnered with Zilog and [[American Microsystems]] to produce Personal CP/M, a ROM-based version of the operating system aimed at lower-cost systems that could potentially be equipped without disk drives.<ref name="pcn19840114_cpm">{{ cite magazine | url=https://archive.org/details/PersonalComputerNews/PersonalComputerNews044-14Jan1984/page/n8/mode/1up | title=Plug-in CP/M coming | magazine=Personal Computer News | date=14 January 1984 | access-date=3 October 2022 | pages=7 }}</ref> First featured in the Sharp MZ-800, a cassette-based system with optional disk drives,<ref name="pcw198502_sharpmz800">{{ cite magazine | url=https://archive.org/details/PersonalComputerWorld1985-02/page/144/mode/2up | title=Sharp MZ-800 | magazine=Personal Computer World | date=February 1985 | access-date=3 October 2022 | last1=Hetherington | first1=Tony | pages=144–146, 149–150 }}</ref> Personal CP/M was described as having been "rewritten to take advantage of the enhanced Z-80 instruction set" as opposed to preserving portability with the 8080. American Microsystems announced a Z80-compatible microprocessor, the S83, featuring 8 KB of in-package ROM for the operating system and BIOS, together with comprehensive logic for interfacing with 64-kilobit dynamic RAM devices.<ref name="practicalcomputing198406_cpm">{{ cite magazine | url=https://worldradiohistory.com/UK/Practical-Computing/80s/Practical-Computing-1984-06-S-OCR.pdf | title=Cheaper, simpler CP/M | magazine=Practical Computing | last1=Coles | first1=Ray | date=June 1984 | access-date=3 October 2022 | pages=43 }}</ref> Unit pricing of the S83 was quoted as $32 in 1,000 unit quantities.<ref name="microsystems198406_s83">{{ cite magazine | url=https://archive.org/details/microsystems_84_06/page/n15/mode/1up | title=AMI releases specs on CP/M microchip | magazine=Microsystems | date=June 1984 | access-date=25 March 2023 | pages=12 }}</ref> On most machines the bootstrap was a minimal [[bootloader]] in [[read-only memory|ROM]] combined with some means of minimal [[bank switching]] or a means of injecting code on the bus (since the 8080 needs to see boot code at Address 0 for start-up, while CP/M needs RAM there); for others, this bootstrap had to be entered into memory using [[front panel|front-panel]] controls each time the system was started. CP/M used the 7-bit ASCII set. The other 128 characters made possible by the 8-bit byte were not standardized. For example, one [[Kaypro]] used them for Greek characters, and [[Osborne Computer Corporation|Osborne]] machines used the 8th bit set to indicate an underlined character. [[WordStar]] used the 8th bit as an end-of-word marker. International CP/M systems most commonly used the [[ISO 646]] norm for localized character sets, replacing certain ASCII characters with localized characters rather than adding them beyond the 7-bit boundary. == Components == While running, the CP/M operating system loaded into memory has three components:<ref name="CPM.NYT83"/><ref name="CPM-system-manual" />{{rp|page=2}}<ref name="CPM-86-system-guide" />{{rp|page=1}}<ref name="CPM-68k-system-guide" />{{rp|pages=3,4-5}}<ref name="CPM-8000-system-guide" />{{rp|pages=1{{hyp}}4-1{{hyp}}6}} * ''Basic Input/Output System'' (BIOS), * ''Basic Disk Operating System'' (BDOS), * ''Console Command Processor'' (CCP). The BIOS and BDOS are memory-resident, while the CCP is memory-resident unless overwritten by an application, in which case it is automatically reloaded after the application finished running. A number of transient commands for standard utilities are also provided. The transient commands reside in [[Computer file|file]]s with the [[filename extension|extension]] .COM on disk. The BIOS directly controls hardware components other than the CPU and main memory. It contains functions such as character input and output and the reading and writing of disk sectors. The BDOS implements the CP/M [[file system]] and some input/output abstractions (such as redirection) on top of the BIOS. The CCP takes user commands and either executes them directly (internal commands such as DIR to show a directory or ERA to delete a file) or loads and starts an executable file of the given name (transient commands such as PIP.COM to copy files or STAT.COM to show various file and system information). Third-party applications for CP/M are also essentially transient commands. The BDOS, CCP and standard transient commands are the same in all installations of a particular revision of CP/M, but the BIOS portion is always adapted to the particular hardware. Adding memory to a computer, for example, means that the CP/M system must be reinstalled to allow transient programs to use the additional memory space. A utility program (MOVCPM) is provided with system distribution that allows relocating the object code to different memory areas. The utility program adjusts the addresses in absolute jump and subroutine call instructions to new addresses required by the new location of the operating system in processor memory. This newly patched version can then be saved on a new disk, allowing application programs to access the additional memory made available by moving the system components. Once installed, the operating system (BIOS, BDOS and CCP) is stored in reserved areas at the beginning of any disk which can be used to boot the system. On start-up, the bootloader (usually contained in a ROM firmware chip) loads the operating system from the disk in drive <code>A:</code>. By modern standards CP/M is primitive, owing to the extreme constraints on program size. With version 1.0 there is no provision for detecting a changed disk. If a user changes disks without manually rereading the disk directory the system writes on the new disk using the old disk's directory information, ruining the data stored on the disk. From version 1.1 or 1.2 onwards, changing a disk then trying to write to it before its directory is read will cause a fatal error to be signalled. This avoids overwriting the disk but requires a reboot and loss of the data to be stored on disk. The majority of the complexity in CP/M is isolated in the BDOS, and to a lesser extent, the CCP and transient commands. This meant that by porting the limited number of simple routines in the BIOS to a particular hardware platform, the entire OS would work. This significantly reduced the development time needed to support new machines, and was one of the main reasons for CP/M's widespread use. Today this sort of abstraction is common to most OSs (a [[hardware abstraction layer]]), but at the time of CP/M's birth, OSs were typically intended to run on only one machine platform, and multilayer designs were considered unnecessary. === Console Command Processor === [[File:Commodore C128 CPM Screenshot 2 full.jpg|thumb|Screenshot showing a CP/M 3.0 directory listing using the <code>[[dir (command)|DIR]]</code> command on a Commodore 128 home computer]] The Console Command Processor, or CCP, accepts input from the keyboard and conveys results to the terminal. CP/M itself works with either a printing terminal or a video terminal. All CP/M commands have to be typed in on the [[command line]]. The console most often displays the <code>A></code> prompt, to indicate the current default disk drive. When used with a video terminal, this is usually followed by a blinking [[Cursor (user interface)|cursor]] supplied by the terminal. The CCP awaits input from the user. A CCP internal command, of the form drive letter followed by a colon, can be used to select the default drive. For example, typing <code>B:</code> and pressing enter at the command prompt changes the default drive to B, and the command prompt then becomes <code>B></code> to indicate this change. CP/M's command-line interface was patterned after the [[Concise Command Language]] used in operating systems from [[Digital Equipment Corporation|Digital Equipment]], such as [[RT-11]] for the [[PDP-11]] and [[OS/8]] for the [[PDP-8]].{{citation needed|date=May 2021}} Commands take the form of a keyword followed by a list of parameters separated by spaces or special characters. Similar to a Unix [[shell builtin]], if an internal command is recognized, it is carried out by the CCP itself. Otherwise it attempts to find an executable file on the currently logged disk drive and (in later versions) user area, loads it, and passes it any additional parameters from the command line. These are referred to as "transient" programs. On completion, BDOS will reload the CCP if it has been overwritten by application programs — this allows transient programs a larger memory space. The commands themselves can sometimes be obscure. For instance, the [[Command (computing)|command]] to duplicate files is named <code>[[Peripheral Interchange Program|PIP]]</code> (Peripheral-Interchange-Program), the name of the old DEC utility used for that purpose. The format of parameters given to a program was not standardized, so that there is no single option character that differentiated options from file names. Different programs can and do use different characters. The CP/M Console Command Processor includes [[dir (command)|DIR]], [[ERA (CP/M command)|ERA]], [[ren (command)|REN]], [[SAVE (CP/M command)|SAVE]], [[TYPE (CP/M command)|TYPE]], and [[USER (CP/M command)|USER]] as [[Shell builtin|built-in]] commands.<ref name="CPM22"/> Transient commands in CP/M include [[Assembler (computing)|ASM]], [[DDT (CP/M command)|DDT]], [[DUMP (CP/M command)|DUMP]], [[ED (CP/M command)|ED]], [[LOAD (CP/M command)|LOAD]], {{ill|MOVCPM|pl|MOVCPM (CP/M)}}, [[Peripheral Interchange Program|PIP]], [[STAT (CP/M command)|STAT]], [[SUBMIT (CP/M command)|SUBMIT]], and [[SYSGEN (CP/M command)|SYSGEN]].<ref name="CPM22"/> CP/M Plus (CP/M Version 3) includes DIR (display list of files from a directory except those marked with the SYS attribute), [[DIRSYS (CP/M command)|DIRSYS]] / [[DIRS (CP/M command)|DIRS]] (list files marked with the SYS attribute in the directory), [[ERASE (CP/M command)|ERASE]] / ERA (delete a file), [[RENAME (CP/M command)|RENAME]] / REN (rename a file), TYPE / [[TYP (CP/M command)|TYP]] (display contents of an ASCII character file), and USER / [[USE (CP/M command)|USE]] (change user number) as built-in commands:<ref name="CPM3_1983_PG"/> CP/M 3 allows the user to abbreviate the built-in commands.<ref name="DRI_1983_CPM3"/> Transient commands in CP/M 3 include [[SYSGEN (CP/M command)|COPYSYS]], [[DATE (CP/M command)|DATE]], [[DEVICE (CP/M command)|DEVICE]], [[DUMP (CP/M command)|DUMP]], [[ED (CP/M command)|ED]], [[GET (CP/M command)|GET]], [[help (command)|HELP]], [[HEXCOM (CP/M command)|HEXCOM]], [[INITDIR (CP/M command)|INITDIR]], [[LINK (CP/M command)|LINK]], [[MAC (CP/M command)|MAC]], PIP, [[PUT (CP/M command)|PUT]], [[RMAC (CP/M command)|RMAC]], [[SET (CP/M command)|SET]], [[SETDEF (CP/M command)|SETDEF]], [[SHOW (CP/M command)|SHOW]], [[SID (CP/M command)|SID]], [[SUBMIT (CP/M command)|SUBMIT]], and [[XREF (CP/M command)|XREF]].<ref name="DRI_1983_CPM3"/> === Basic Disk Operating System === The Basic Disk Operating System,<ref name="Kildall_1975_BDOS"/><ref name="Kildall_1980_CPM"/> or BDOS,<ref name="Kildall_1975_BDOS"/><ref name="Kildall_1980_CPM"/> provides access to such operations as opening a file, output to the console, or printing. Application programs load processor registers with a function code for the operation, and addresses for parameters or [[memory buffer]]s, and call a fixed address in memory. Since the address is the same independent of the amount of memory in the system, application programs run the same way for any type or configuration of hardware. === Basic Input Output System === [[File:CP⁄M Ad, Dec 11, 1978.png|thumb|CP/M advertisement in the 11 December 1978 issue of ''[[InfoWorld]]'' magazine]] The Basic Input Output System or BIOS,<ref name="Kildall_1975_BDOS"/><ref name="Kildall_1980_CPM"/> provides the lowest level functions required by the operating system. These include reading or writing single characters to the system console and reading or writing a sector of data from the disk. The BDOS handles some of the buffering of data from the diskette, but before CP/M 3.0 it assumes a disk sector size fixed at 128 bytes, as used on [[single-density]] 8-inch floppy disks. Since most 5.25-inch disk formats use larger sectors, the blocking and deblocking and the management of a disk buffer area is handled by model-specific code in the BIOS. Customization is required because hardware choices are not constrained by compatibility with any one popular standard. For example, some manufacturers designed built-in integrated video display systems, while others relied on separate computer terminals. Serial ports for printers and modems can use different types of [[UART]] chips, and port addresses are not fixed. Some machines use memory-mapped I/O instead of the 8080 I/O address space. All of these variations in the hardware are concealed from other modules of the system by use of the BIOS, which uses standard entry points for the services required to run CP/M such as character I/O or accessing a disk block. Since support for serial communication to a modem is very rudimentary in the BIOS or may be absent altogether, it is common practice for CP/M programs that use modems to have a user-installed overlay containing all the code required to access a particular machine's serial port. == Applications == [[File:Wordstar 4 CPM.jpg|thumb|right|Distribution {{frac|5|1|4}}-inch diskettes and packaging for the last version (version 4) of WordStar word processing program released for 8-bit CP/M]] WordStar, one of the first widely used [[word processor]]s, and [[dBase]], an early and popular database program for microcomputers, were originally written for CP/M. Two early [[outliner]]s, [[KAMAS (program)|KAMAS]] (Knowledge and Mind Amplification System) and its cut-down successor Out-Think (without programming facilities and retooled for 8080/V20 compatibility) were also written for CP/M, though later rewritten for MS-DOS. [[Turbo Pascal]], the ancestor of [[Borland Delphi]], and [[Multiplan]], the ancestor of [[Microsoft Excel]], also debuted on CP/M before MS-DOS versions became available. [[VisiCalc]], the first-ever spreadsheet program, was made available for CP/M. Another company, [[Sorcim]], created its [[SuperCalc]] spreadsheet for CP/M, which would go on to become the market leader and de facto standard on CP/M. Supercalc would go on to be a competitor in the spreadsheet market in the MS-DOS world. [[AutoCAD]], a CAD application from Autodesk debuted on CP/M. A host of compilers and interpreters for popular [[programming language]]s of the time (such as [[BASIC]], [[Borland]]'s [[Turbo Pascal]], [[FORTRAN]] and even [[PL/I]]<ref name="PL1"/>) were available, among them several of the earliest [[Microsoft]] products. CP/M software often came with [[installer]]s that adapted it to a wide variety of computers.<ref name="mace19840109_16"/> The source code for BASIC programs was easily accessible, and most forms of [[copy protection]] were ineffective on the operating system.<ref name="pournelle198306"/> A Kaypro II owner, for example, would obtain software on Xerox 820 format, then copy it to and run it from Kaypro-format disks.{{r|derfler19821018}} The lack of standardized graphics support limited [[video game]]s, but various character and text-based games were [[ported]], such as ''[[Telengard]]'',<ref name="loguidice20120728"/> ''[[Gorillas (video game)|Gorillas]]'',<ref name="githubgorilla001"/> ''[[Hamurabi (video game)|Hamurabi]]'', ''[[Lunar Lander (video game genre)|Lunar Lander]]'', along with early [[interactive fiction]] including the ''[[Zork]]'' series and ''[[Colossal Cave Adventure]]''. [[Text adventure]] specialist [[Infocom]] was one of the few publishers to consistently release their games in CP/M format. [[Lifeboat Associates]] started collecting and distributing user-written "free" software. One of the first was [[XMODEM]], which allowed reliable file transfers via [[modem]] and phone line. Another program native to CP/M was the [[outline processor]] KAMAS.{{citation needed|date=September 2016}} === Transient Program Area === In the original version of CP/M for the 8080, 8085, and Z80, the read/write memory between address 0100 hexadecimal and the location just before address stored at 0006H (the lowest address of the BDOS) is the ''Transient Program Area'' (TPA) available for CP/M application programs.<ref name="CPM-system-manual" />{{rp|pages=2,233}} Although all Z80 and 8080 processors could address 64 kilobytes of memory, the amount available for application programs could vary, depending on the design of the particular computer. Some computers used large parts of the address space for such things as BIOS ROMs, or video display memory. As a result, some systems had more TPA memory available than others. Bank switching was a common technique that allowed systems to have a large TPA while switching out ROM or video memory space as needed. CP/M 3.0 allowed parts of the BDOS to be in bank-switched memory as well. === Debugging application === CP/M came with a Dynamic Debugging Tool, nicknamed [[Dynamic debugging technique|DDT]] (after the insecticide, i.e. a [[Software bug|bug]]-killer), which allowed memory and program modules to be examined and manipulated, and allowed a program to be executed one step at a time.<ref name="DDT1"/><ref name="DDT2"/><ref name="DDT3"/> === Resident programs === CP/M originally did not support the equivalent of [[terminate and stay resident]] (TSR) programs as under DOS. Programmers could write software that could intercept certain operating system calls and extend or alter their functionality. Using this capability, programmers developed and sold auxiliary [[desk accessory]] programs, such as [[SmartKey]], a keyboard utility to assign any string of bytes to any key.<ref name="Software_Catalog_1984"/> CP/M 3, however, added support for [[dynamic loading|dynamically loadable]] ''Resident System Extensions'' (RSX).<ref name="CPM3_1983_PG"/><ref name="Brown-Strutynski-Wharton_1983"/> A so-called ''null command file'' could be used to allow CCP to load an RSX without a transient program.<ref name="CPM3_1983_PG"/><ref name="Brown-Strutynski-Wharton_1983"/> Similar solutions like RSMs (for ''Resident System Modules'') were also retrofitted to CP/M 2.2 systems by third-parties.<ref name="ct_1"/><ref name="ct_2"/><ref name="Huck_2016"/> === Software installation === Although CP/M provided some [[hardware abstraction]] to standardize the interface to disk I/O or console I/O, application programs still typically required installation to make use of all the features of such equipment as printers and terminals. Often these were controlled by [[escape sequence]]s which had to be altered for different devices. For example, the escape sequence to select bold face on a printer would have differed among manufacturers, and sometimes among models within a manufacturer's range. This procedure was not defined by the operating system; a user would typically run an installation program that would either allow selection from a range of devices, or else allow feature-by-feature editing of the escape sequences required to access a function. This had to be repeated for each application program, since there was no central operating system service provided for these devices. The initialization codes for each model of printer had to be written into the application. To use a program such as Wordstar with more than one printer (say, a fast dot-matrix printer or a slower but presentation-quality [[daisy wheel]] printer), a separate version of Wordstar had to be prepared, and one had to load the Wordstar version that corresponded to the printer selected (and exiting and reloading to change printers). == Disk formats == [[IBM System/34]] and [[IBM 3740]]'s 128 byte/sector, single-density, single-sided format is CP/M's standard 8-inch [[Floppy disk#8-inch floppy disk|floppy-disk format]]. No standard 5.25-inch CP/M disk format exists, with Kaypro, [[George Morrow (computers)|Morrow Designs]], Osborne, and others each using their own.<ref name="pournelle198204"/><ref name="pournelle198209">{{Cite magazine |last=Pournelle |first=Jerry |date=September 1982 |title=Letters, Pascal, CB/80, and Cardfile |url=https://archive.org/details/byte-magazine-1982-09/page/n314/mode/1up?view=theater |access-date=2024-12-30 |magazine=BYTE |pages=318–341}}</ref>{{r|meyer19820614}}<ref name="128book"/> Certain formats were more popular than others. Most software was available in the Xerox 820 format, and other computers such as the Kaypro II were compatible with it,<ref name="derfler19821018"/><ref name="byte198309"/> but ''InfoWorld'' estimated in September 1981 that "about two dozen formats were popular enough that software creators had to consider them to reach the broadest possible market".<ref name="hogan19810914state"/> [[JRT Pascal]], for example, provided versions on 5.25-inch disk for [[North Star Computers|North Star]], Osborne, Apple, Heath/Zenith [[hard sector]] and [[soft sector]], and [[Intertec Superbrain|Superbrain]], and one 8-inch version.<ref name="byte198212"/> Ellis Computing also offered its software for both Heath formats, and 16 other 5.25-inch formats including two different TRS-80 CP/M modifications.<ref name="byte198312"/> Various formats were used depending on the characteristics of particular systems and to some degree the choices of the designers. CP/M supported options to control the size of reserved and directory areas on the disk, and the mapping between logical disk sectors (as seen by CP/M programs) and physical sectors as allocated on the disk. There were many ways to customize these parameters for every system<ref name="Johnson-Laird_1983"/> but once they had been set, no standardized way existed for a system to load parameters from a disk formatted on another system. While almost every CP/M system with 8-inch drives can read the aforementioned IBM single-sided, single-density format, for other formats the degree of portability between different CP/M machines depends on the type of disk drive and controller used since many different floppy types existed in the CP/M era in both 8-inch and 5.25-inch sizes.{{r|pournelle198209}} Disks can be hard or soft sectored, single or double density, single or double sided, 35 track, 40 track, 77 track, or 80 track, and the sector layout, size and interleave can vary widely as well. Although translation programs can allow the user to read disk types from different machines, the drive type and controller are also factors. By 1982, soft-sector, single-sided, 40-track 5.25-inch disks had become the most popular format to distribute CP/M software on as they were used by the most common consumer-level machines of that time, such as the Apple II, TRS-80, Osborne 1, Kaypro II, and IBM PC. A translation program allows the user to read any disks on his machine that had a similar format; for example, the Kaypro II can read [[TRS-80]], [[Osborne 1|Osborne]], [[IBM PC]], and [[Epson QX-10|Epson]] disks. Other disk types such as 80 track or hard sectored are completely impossible to read. The first half of double-sided disks (like those of the Epson QX-10) can be read because CP/M accessed disk tracks sequentially with track 0 being the first (outermost) track of side 1 and track 79 (on a 40-track disk) being the last (innermost) track of side 2. Apple II users are unable to use anything but Apple's GCR format and so have to obtain CP/M software on Apple format disks or else transfer it via serial link. The fragmented CP/M market, requiring distributors either to stock multiple formats of disks or to invest in multiformat duplication equipment, compared with the more standardized [[IBM PC]] disk formats, was a contributing factor to the rapid obsolescence of CP/M after 1981. One of the last notable CP/M-capable machines to appear was the [[Commodore 128]] in 1985, which had a Z80 for CP/M support in addition to its native mode using a 6502-derivative CPU. Using CP/M required either a [[Commodore 1571|1571]] or [[Commodore 1581|1581]] disk drive which could read soft-sector 40-track [[Modified frequency modulation|MFM]]-format disks. The first computer to use a 3.5-inch floppy drive, the [[Sony SMC-70]],<ref name="Sony-SMC-70"/> ran CP/M 2.2. The Commodore 128, [[Bondwell-2]] laptop, Micromint/Ciarcia SB-180,<ref name="Ciarcia_1985"/> [[MSX]] and [[TRS-80 Model 4]] (running Montezuma CP/M 2.2) also supported the use of CP/M with 3.5-inch floppy disks. CP/AM, [[Applied Engineering]]'s version of CP/M for the Apple II, also supported 3.5-inch disks (as well as RAM disks on RAM cards compatible with the Apple II Memory Expansion Card).<ref>{{cite book |title=CP/AM 5.1 User Manual|publisher=Applied Engineering|page=1|url=https://archive.org/details/AE_Z-80_Plus_CPAM_5.1_Manual_v1.21/|accessdate=22 May 2020}}</ref> The [[Amstrad PCW]] ran CP/M using 3-inch floppy drives at first, and later switched to the 3.5 inch drives. === File system === File names were specified as a string of up to eight characters, followed by a period, followed by a file name extension of up to three characters ([[8.3 filename|"8.3" filename format]]). The extension usually identified the type of the file. For example, <code>.COM</code> indicated an executable program file, and <code>.TXT</code> indicated a file containing [[ASCII]] text. Characters in filenames entered at the command prompt were converted to upper case, but this was not enforced by the operating system. Programs ([[MBASIC]] is a notable example) were able to create filenames containing lower-case letters, which then could not easily be referenced at the command line. Each disk drive was identified by a [[drive letter]], for example, drive <code>A</code> and drive <code>B</code>. To refer to a file on a specific drive, the drive letter was prefixed to the file name, separated by a colon, e.g., <code>A:FILE.TXT</code>. With no drive letter prefixed, access was to files on the current default drive.<ref name="px4"/> File size was specified as the number of 128-byte ''records'' (directly corresponding to disk sectors on 8-inch drives) occupied by a file on the disk. There was no generally supported way of specifying byte-exact file sizes. The current size of a file was maintained in the file's [[File Control Block]] (FCB) by the operating system. Since many application programs (such as [[text editors]]) prefer to deal with files as sequences of characters rather than as sequences of records, by convention text files were terminated with a [[control-Z]] character (ASCII [[Substitute character|SUB]], [[hexadecimal]] 1A). Determining the [[End-of-file|end]] of a [[text file]] therefore involved examining the last record of the file to locate the terminating control-Z. This also meant that inserting a control-Z character into the middle of a file usually had the effect of truncating the text contents of the file. With the advent of larger removable and fixed disk drives, disk de-blocking formulas were employed which resulted in more disk blocks per logical file allocation block. While this allowed for larger file sizes, it also meant that the smallest file which could be allocated increased in size from 1 [[Kilobyte|KB]] (on single-density drives) to 2 KB (on double-density drives) and so on, up to 32 KB for a file containing only a single byte. This made for inefficient use of disk space if the disk contained a large number of small files. File modification [[system time|time stamps]] were not supported in releases up to CP/M 2.2, but were an optional feature in MP/M and CP/M 3.0.<ref name="Brown-Strutynski-Wharton_1983"/> CP/M 2.2 had no [[subdirectories]] in the file structure, but provided 16 numbered user areas to organize files on a disk. To change user one had to simply type "User X" at the command prompt, X being the user number. Security was non-existent and considered unnecessary on a personal computer. The user area concept was to make the single-user version of CP/M somewhat compatible with multi-user MP/M systems. A common patch for the CP/M and derivative operating systems was to make one user area accessible to the user independent of the currently set user area. A USER command allowed the user area to be changed to any area from 0 to 15. User 0 was the default. If one changed to another user, such as USER 1, the material saved on the disk for this user would only be available to USER 1; USER 2 would not be able to see it or access it. However, files stored in the USER 0 area were accessible to all other users; their location was specified with a prefatory [[Path (computing)|path]], since the files of USER 0 were only visible to someone logged in as USER 0. The user area feature arguably had little utility on small floppy disks, but it was useful for organizing files on machines with [[hard drive]]s. The intent of the feature was to ease use of the same computer for different tasks. For example, a secretary could do [[data entry clerk|data entry]], then, after switching USER areas, another employee could use the machine to do [[Invoice|billing]] without their files intermixing. == Graphics == [[File:MBasic 5.21.jpg|thumb|[[MBASIC]] text output displayed on a monochrome monitor typical for that time]] Although graphics-capable S-100 systems existed from the commercialization of the [[S-100 bus]], CP/M did not provide any standardized graphics support until 1982 with [[Graphics System Extension|GSX]] (Graphics System Extension). Owing to the small amount of available memory, graphics was never a common feature associated with 8-bit CP/M operating systems. Most systems could only display rudimentary [[ASCII art]] charts and diagrams in [[text mode]] or by using a custom [[character set]]. Some computers in the [[Kaypro#Kaypro computers|Kaypro]] line and the [[TRS-80 Model 4]] had video hardware supporting block graphics characters, and these were accessible to assembler programmers and BASIC programmers using the <code>CHR$</code> command. The Model 4 could display 640 by 240 pixel graphics with an optional high resolution board. == Derivatives == [[File:Robotron1715SCREEN.gif|thumb|CP/M derivative ''SCP'' running on an East German robotron [[PC 1715]]]] [[File:J Elwro 804 Junior.JPG|thumb|CP/J version 2.21 running on an [[Elwro 804 Junior]]]] === Official === Some companies made official enhancements of CP/M based on Digital Research source code. An example is [[IMDOS]] for the [[IMSAI 8080]] computer made by [[IMS Associates, Inc.]], a clone of the famous [[Altair 8800]]. === Compatible === Other CP/M compatible OSes were developed independently and made no use of Digital Research code. Some contemporary examples were: * [[Cromemco CDOS]] from [[Cromemco]] * [[MSX-DOS]] for the MSX range of computers is CP/M-compatible and can run CP/M programs. * The [[Epson QX-10]] shipped with a choice of CP/M or the compatible TPM-II or TPM-III. * The British [[ZX Spectrum]] compatible [[SAM Coupé]] had an optional CP/M-2.2 compatible OS called Pro-DOS. * The Amstrad/Schneider CPC series 6xx (disk-based) and PCW series computers were bundled with an CP/M disk pack. * The [[Husky (computer)]] ran a ROM-based menu-driven program loader called DEMOS which could run many CP/M applications. * ZSDOS is a replacement BDOS for CP/M-80 2.2 written by Harold F. Bower and Cameron W. Cotrill. * CPMish is a new FOSS CP/M 2.2-compatible operating system which originally contained no DR code. It includes ZSDOS as its BDOS and ZCPR (see [[ZCPR|earlier]]) as the command processor. Since Bryan Sparks, the president of DR owners Lineo, granted permission in 2022 to modify and redistribute CP/M code, developer David Given is updating CPMish with some parts of the original DR CP/M. * LokiOS is a CP/M 2.2 compatible OS. Version 0.9 was publicly released in 2023 by David Kitson as a solo-written Operating System exercise, intended for the [[Open Spectrum Project]] and includes source code for the [[BIOS]], [[BDOS]] and [[Command-line interface]] as well as other supporting applications and drivers. The distribution also includes original DR Source code and a utility to allow users to hot-swap OS components (e.g., BDOS, CCP) on the fly. * IS-DOS for the [[Enterprise (computer)|Enterprise]] computers, written by Intelligent Software. * VT-DOS for the [[Videoton TV-Computer|Videoton TV Computer]], written by Intelligent Software. === Enhancements === Some CP/M compatible operating systems extended the basic functionality so far that they far exceeded the original, for example the multi-processor capable [[TurboDOS]]. === Eastern bloc === A number of CP/M-80 derivatives<!-- I specifically use the term "derivatives" here as it is at this time not known which systems were just illegally patched binaries, which were based on adapted DRI source codes, and which, if any, were independent functional reimplementations --> existed in the former [[Eastern Bloc]] under various names, including SCP ({{ill|Single User Control Program|de}}), SCP/M, CP/A,<ref name="Pohlers_2019_CPA"/> 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 and others.<ref name="Robotron_2019"/><ref name="SCP_2019"/> There were also CP/M-86 derivatives named [[SCP1700]], [[CP/K]] and [[K8918-OS]].<ref name="SCP_2019"/> They were produced by the [[East German]] [[VEB Robotron]] and others.<ref name="SCP_2019"/><ref name="Robotron_2019"/><ref name="Pohlers_2019_CPA"/> == Legacy == A number of behaviors exhibited by [[Microsoft Windows]] are a result of [[backward compatibility]] with MS-DOS, which in turn attempted some backward compatibility with CP/M. The [[drive letter]] and [[8.3 filename]] conventions in MS-DOS (and early Windows versions) were originally adopted from CP/M.<ref name="Chen_2010_Filenames"/> The [[Wildcard character|wildcard]] matching characters used by Windows (? and *) are based on those of CP/M,<ref name="Chen_2010_Wildcards"/> as are the reserved filenames used to [[Redirection (computing)|redirect]] output to a [[printer (computing)|printer]] ("PRN:"), and the [[System console|console]] ("CON:"). The drive names A and B were used to designate the two floppy disk drives that CP/M systems typically used; when hard drives appeared, they were designated C, which survived into MS-DOS as the <code>C:\></code> command prompt.<ref name="Chen_2010_Reserved"/> The [[Substitute character|control character <code>^Z</code>]] marking the [[End-of-file|end of some text files]] can also be attributed to CP/M.<ref name="Chen_2004_CTRLZ"/> Various commands in DOS were modelled after CP/M commands; some of them even carried the same name, like DIR, REN/RENAME, or TYPE (and ERA/ERASE in DR-DOS). File extensions like <code>[[.TXT]]</code> or <code>[[COM file|.COM]]</code> are still used to identify file types on many operating systems.<!-- although they did not origin in CP/M itself --> In 1997 and 1998, [[Caldera (company)|Caldera]] released some CP/M 2.2 binaries and [[source code]] under an [[open source license]], also allowing the redistribution and modification of further collected Digital Research files related to the CP/M and MP/M families through Tim Olmstead's "The Unofficial CP/M Web site" since 1997.<ref name="Olmstead_1997_1"/><ref name="Olmstead_1997_2"/><ref name="Caldera_1997_CP/M"/> After Olmstead's death on 12 September 2001,<ref name="Olmstead_2001_Death"/> the distribution license was refreshed and expanded by [[Lineo]], who had meanwhile become the owner of those Digital Research assets, on 19 October 2001.<ref name="Sparks_2001_CP/M"/><ref name="Chaudry_2001_CP/M"/><ref name="Gasperson_2001_Collection"/><ref name="Swaine_2004_CP/M"/> In October 2014, to mark the 40th anniversary of the first presentation of CP/M, the [[Computer History Museum]] released early [[source code]] versions of CP/M.<ref name="CHM_2014_CPM"/> {{As of|2018}}, there are a number of active [[Retrocomputing|vintage, hobby and retro-computer]] people and groups, and some small commercial businesses, still developing and supporting computer platforms that use CP/M (mostly 2.2) as the host operating system. == See also == * [[Amstrad CP/M Plus character set]] * [[CPMulator]] * [[CP/NET]] and [[CP/NOS]] * [[Cromemco DOS]], an operating system independently derived from CP/M * [[Eagle Computer]] * [[IMDOS]] * [[List of machines running CP/M]] * [[MP/M]] * [[MP/NET]] and [[MP/NOS]] * [[Multiuser DOS]] * [[Pascal/MT+]] * [[SpeedStart CP/M]] * [[86-DOS]] * [[Kenbak-1]] == References == {{reflist|refs= <ref name="Mann83">{{cite magazine |author-last=Mann |author-first=Stephen |title=CP/M Plus, a third, updated version of CP/M |magazine=[[InfoWorld]] | url=https://books.google.com/books?id=ui8EAAAAMBAJ&pg=PA49 |date=1983-08-15 |volume=5 |issue=33 |pages=49 |issn=0199-6649}}</ref> <ref name="CPM.NYT83">{{cite news |newspaper=[[The New York Times]] |url=https://www.nytimes.com/1983/05/03/science/personal-computers-the-operating-system-in-the-middle.html |title=Personal Computers: The Operating System in the middle |author-first=Erik |author-last=Sandberg-Diment |date=1983-05-03 |url-access=limited |access-date=2019-11-15 |archive-date=2019-12-23 |archive-url=https://web.archive.org/web/20191223043143/https://www.nytimes.com/1983/05/03/science/personal-computers-the-operating-system-in-the-middle.html |url-status=live }}</ref> <ref name="Newton_2000">{{cite book |author-last=Newton |author-first=Harry |title=Newton's Telecom Dictionary |date=2000 |publisher=[[CMP Books]] |location=New York, New York, US |isbn=1-57820-053-9 |pages=[https://archive.org/details/isbn_9781578200535/page/228 228] |url-access=registration |url=https://archive.org/details/isbn_9781578200535/page/228}}</ref> <ref name="Kildall.NYT">{{cite news |newspaper=[[The New York Times]] |url=https://www.nytimes.com/1994/07/13/obituaries/gary-kildall-52-crucial-player-in-computer-development-dies.html |title=Gary Kildall, 52, Crucial Player In Computer Development, Dies |author-first=John |author-last=Markoff |date=1994-07-13 |url-access=limited |access-date=2019-11-18 |archive-date=2017-10-03 |archive-url=https://web.archive.org/web/20171003031116/http://www.nytimes.com/1994/07/13/obituaries/gary-kildall-52-crucial-player-in-computer-development-dies.html |url-status=live }}</ref> <ref name="Compupro816">{{cite web |url=https://www.old-computers.com/museum/computer.asp?c=651&st=1 |title=Compupro 8/16|website=old-computers.com |archive-url=https://web.archive.org/web/20160103062455/http://www.old-computers.com/museum/computer.asp?st=1&c=651 |archive-date=2016-01-03 |access-date=2022-04-21}}</ref> <ref name="InfoWorld May 1981">{{cite magazine |author-last=Cole |author-first=Maggie |title=Gary Kildall and the Digital Research Success Story |magazine=[[InfoWorld]] |volume=3 |issue=10 |pages=52–53 |location=Palo Alto, California, US |date=1981-05-25 |url=https://books.google.com/books?id=3j4EAAAAMBAJ&pg=PA52 |issn=0199-6649 |access-date=2020-09-25 |archive-date=2024-07-01 |archive-url=https://web.archive.org/web/20240701172642/https://books.google.com/books?id=3j4EAAAAMBAJ&pg=PA52#v=onepage&q&f=false |url-status=live }}</ref> <ref name="InfoWorld July 1982">{{cite magazine |author-last=Freiberger |author-first=Paul |author-link=Paul Freiberger |title=History of microcomputing, part 3: software genesis |magazine=[[InfoWorld]] |volume=4 |issue=26 |page=41 |location=Palo Alto, California, US |date=1982-07-05 |url=https://books.google.com/books?id=MjAEAAAAMBAJ&pg=PA41 |issn=0199-6649 |access-date=2020-09-25 |archive-date=2024-07-01 |archive-url=https://web.archive.org/web/20240701172643/https://books.google.com/books?id=MjAEAAAAMBAJ&pg=PA41#v=onepage&q&f=false |url-status=live }}</ref> <ref name="Commodore_128">{{cite book |author-last1=Waite |author-first1=Mitchell |author-last2=Lafore |author-first2=Robert W. |author-last3=Volpe |author-first3=Jerry |title=The Official Book for the Commodore 128 |date=1982 |isbn=978-0-67222456-0 |page=110 |publisher=H.W. Sams |url=https://archive.org/details/The_Official_Book_for_the_Commodore_128/page/n121/mode/1up }}</ref> <ref name="CP/M-Emu">{{cite web |title=CP/M emulators for DOS |url=http://www.retroarchive.org/cpm/cdrom/ENTERPRS/CPM/TEXT/MAR93.TXT |website=www.retroarchive.org/cpm |publisher=Luis Basto |access-date=2016-07-06 |url-status=live |archive-url=https://web.archive.org/web/20160709085840/http://www.retroarchive.org/cpm/cdrom/ENTERPRS/CPM/TEXT/MAR93.TXT |archive-date=2016-07-09}}</ref> <ref name="Davis_1985_NEC">{{cite news |title=The New NEC Microprocessors - 8080, 8086, Or 8088? |author-first=Randy |author-last=Davis |newspaper=[[Micro Cornucopia]] |publisher=[[Micro Cornucopia Inc.]] |issn=0747-587X |number=27 |date=December 1985 – January 1986 |publication-place=Bend, Oregon, US |location=Greenville, Texas, US |pages=4–7 |url=http://www.bitsavers.org/pdf/microCornucopia/Micro_Cornucopia_%2327_Dec85.pdf |access-date=2020-02-11 |url-status=live |archive-url=https://web.archive.org/web/20200211154002/https://usermanual.wiki/Document/MicroCornucopia2327Dec85.771194843.pdf |archive-date=2020-02-11}}</ref> <ref name="DDT1">{{cite book |title=CP/M 2.2 |chapter=Section 4 - CP/M Dynamic Debugging Tool |chapter-url=http://www.gaby.de/cpm/manuals/archive/cpm22htm/ch4.htm |access-date=2014-08-29 |url-status=live |archive-url=https://web.archive.org/web/20150617174713/http://www.gaby.de/cpm/manuals/archive/cpm22htm/ch4.htm |archive-date=2015-06-17}}</ref> <ref name="DDT2">{{cite book |title=CP/M Dynamic Debugging Tool (DDT) - User's Guide |date=1978 |orig-date=1976 |url=http://www.cpm.z80.de/randyfiles/DRI/DDT.pdf |publisher=[[Digital Research]] |access-date=2014-08-29 |url-status=live |archive-url=https://web.archive.org/web/20141028015406/http://www.cpm.z80.de/randyfiles/DRI/DDT.pdf |archive-date=2014-10-28}}</ref> <ref name="DDT3">{{cite web |title=DDT Utility |date=2010-06-26 |orig-date=2009-12-09 |author=Shael |url=http://www.shaels.net/index.php/cpm80-22-documents/using-cpm/7-ddt-utility |access-date=2014-08-29 |url-status=live |archive-url=https://web.archive.org/web/20151208100106/http://www.shaels.net/index.php/cpm80-22-documents/using-cpm/7-ddt-utility |archive-date=2015-12-08}}</ref> <ref name="Kildall_1975_BDOS">{{citation|title=CP/M 1.1 or 1.2 BIOS and BDOS for Lawrence Livermore Laboratories |date=June 1975 |author-first=Gary Arlen |author-last=Kildall |author-link=Gary Arlen Kildall }}</ref> <ref name="Kildall_1980_CPM">{{cite magazine |title=The History of CP/M, The Evolution Of An Industry: One Person's Viewpoint |author-first=Gary Arlen |author-last=Kildall |author-link=Gary Arlen Kildall |date=January 1980 |magazine=[[Dr. Dobb's Journal]] |pages=6–7 |volume=5 |issue=1 <!-- |number=-->#41 |url=http://www.retrotechnology.com/dri/CPM_history_kildall.txt |access-date=2013-06-03 |url-status=live |archive-url=https://web.archive.org/web/20161124221907/http://www.retrotechnology.com/dri/CPM_history_kildall.txt |archive-date=2016-11-24}}</ref> <ref name="Swaine_1997_Entrepreneurship">{{cite magazine |author-first=Michael |author-last=Swaine |author-link=Michael Swaine (technical author) |date=1997-04-01 |title=Gary Kildall and Collegial Entrepreneurship |magazine=[[Dr. Dobb's Journal]] |url=http://www.ddj.com/184410428 |access-date=2006-11-20 |url-status=live |archive-url=https://web.archive.org/web/20070124184442/http://www.ddj.com/184410428 |archive-date=2007-01-24}}</ref> <!-- Temporarily commented out until used in the text body above: <ref name="Fischer_2001_Ewing">{{cite web |title=Gary Kildall's CP/M: Some early CP/M history - 1976-1977 |author-first=A. Joseph "Joe" |author-last=Killian |author-link=Joe Killian |publisher=[[Thomas Fischer (IMSAI)|Thomas "Todd" Fischer]], [[IMSAI]] |date=2001 |url=http://www.imsai.net/history/imsai_history/cp-m_history.htm |access-date=2013-06-03 }}</ref> --> <!-- Temporarily commented out until used in the text body above: <ref name="Fraley_2007_Killian">{{cite web |title=Oral History of Joseph Killian, Interviewed by: Bob Fraley, Edited by: Dag Spicer, Recorded: January 26, 2007, Mountain View, California, CHM Reference number: X3879.2007 |author-first1=Bob |author-last1=Fraley |author-first2=Dag |author-last2=Spicer |date=2007-01-26 |publisher=Computer History Museum |url=http://archive.computerhistory.org/resources/access/text/2012/10/102658016-05-01-acc.pdf |access-date=2013-06-03 }}</ref> --> <ref name="Kildall_1982_8-bit">{{cite journal |title=Running 8-bit software on dual-processor computers |author-first=Gary Arlen |author-last=Kildall |author-link=Gary Arlen Kildall |journal=[[Electronic Design]] |date=1982-09-16 |page=157 |url=http://archive.computerhistory.org/resources/access/text/2016/12/102762506-05-01-acc.pdf |access-date=2017-08-19 |url-status=live |archive-url=https://web.archive.org/web/20170819183737/http://archive.computerhistory.org/resources/access/text/2016/12/102762506-05-01-acc.pdf |archive-date=2017-08-19}}</ref> <ref name="Olmstead_1997_1">{{cite newsgroup |author-first=Tim |author-last=Olmstead <!-- |author-link=Tim Olmstead (CP/M) --> |title=CP/M Web site needs a host |date=1997-08-10 |newsgroup=comp.os.cpm |url=https://z80cpu.eu/files/archive/news/comp.os.cpm/threads/e088021c97ffcb09.html |access-date=2018-09-09 |url-status=dead |archive-url=https://web.archive.org/web/20170901022510/http://z80cpu.eu/files/archive/news/comp.os.cpm/threads/e088021c97ffcb09.html|archive-date=2017-09-01}}</ref> <ref name="Olmstead_1997_2">{{cite newsgroup |author-first=Tim |author-last=Olmstead <!-- |author-link=Tim Olmstead (CP/M) --> |title=ANNOUNCE: Caldera CP/M site is now up |date=1997-08-29 |newsgroup=comp.os.cpm |url=https://z80cpu.eu/roche-pages/78-data-articles/projects/75-comp-os-cpm |access-date=2018-09-09 |url-status=dead |archive-url=https://web.archive.org/web/20170901150920/http://z80cpu.eu/roche-pages/78-data-articles/projects/75-comp-os-cpm |archive-date=2017-09-01}} {{usurped|1=[https://web.archive.org/web/20011006110826/http://cdl.uta.edu/cpm]}}</ref> <ref name="Caldera_1997_CP/M">{{cite web |title=License Agreement |publisher=[[Caldera, Inc.]] |date=1997-08-28 |url=http://www.retroarchive.org/cpm/archive/unofficial/lisence.html |url-status=live |archive-url=https://archive.today/20180908191417/http://www.retroarchive.org/cpm/archive/unofficial/lisence.html |archive-date=2018-09-08 |access-date=2015-07-25 }} [ftp://ftp.uni-bayreuth.de/pub/pc/caldera/cpm2.2/README.license.txt]{{dead link|date=May 2025|bot=medic}}{{cbignore|bot=medic}} [ftp://ftp.uni-bayreuth.de/pub/pc/caldera/cpm2.2/]</ref> <ref name="Olmstead_2001_Death">{{cite web |title=Tim Olmstead |date=2001-09-12 |url=https://z80cpu.eu/files/archive/news/comp.os.cpm/threads/8c448283536de864.html |archive-url=https://web.archive.org/web/20180909035647/https://z80cpu.eu/files/archive/news/comp.os.cpm/threads/8c448283536de864.html |archive-date=2018-09-09}}</ref> <ref name="Sparks_2001_CP/M">{{cite web |title=License agreement for the CP/M material presented on this site |author-first=Bryan Wayne |author-last=Sparks |author-link=Bryan Wayne Sparks |editor-first=Gabriele "Gaby" |editor-last=Chaudry |date=2001-10-19 |publisher=[[Lineo, Inc.]] |url=http://www.cpm.z80.de/license.html |access-date=2015-07-25 |url-status=live |archive-url=https://archive.today/20180908185132/http://www.cpm.z80.de/license.html |archive-date=2018-09-08 }}</ref> <ref name="Chaudry_2001_CP/M">{{cite web |title=The Unofficial CP/M Web Site |editor-first=Gabriele "Gaby" |editor-last=Chaudry |url=http://www.cpm.z80.de/ |url-status=live |archive-url=https://web.archive.org/web/20160203184144/http://www.cpm.z80.de/ |archive-date=2016-02-03}}</ref> <ref name="Gasperson_2001_Collection">{{cite web |url=https://www.theregister.co.uk/2001/11/26/cp_m_collection_is_back/ |title=CP/M collection is back online with an Open Source licence - Walk down memory lane |author-first=Tina |author-last=Gasperson |work=[[The Register]] |date=2001-11-26 |url-status=live |archive-url=https://web.archive.org/web/20170901000720/https://www.theregister.co.uk/2001/11/26/cp_m_collection_is_back/ |archive-date=2017-09-01}}</ref> <ref name="Swaine_2004_CP/M">{{cite magazine |title=CP/M and DRM |author-first=Michael |author-last=Swaine |author-link=Michael Swaine (technical author) |date=2004-06-01 |magazine=[[Dr. Dobb's Journal]] |volume=29 |issue=6 |id=<!-- |number= -->#361 |publisher=[[CMP Media LLC]] |pages=71–73 |url=http://www.drdobbs.com/cpm-and-drm/184405699 |access-date=2018-09-09 |url-status=dead |archive-url=https://web.archive.org/web/20180909035748/http://www.drdobbs.com/cpm-and-drm/184405699 |archive-date=2018-09-09 }} [https://epdf.pub/dr-dobbs-journal-june.html] {{Webarchive|url=https://web.archive.org/web/20240701172645/https://epdf.pub/dr-dobbs-journal-june.html |date=2024-07-01 }}</ref> <ref name="CHM_2014_CPM">{{cite web |url=http://www.computerhistory.org/atchm/early-digital-research-cpm-source-code/ |title=Early Digital Research CP/M Source Code |author-first=David |author-last=Laws |date=2014-10-01 |publisher=[[Computer History Museum]] |access-date=2015-07-25 |url-status=live |archive-url=https://web.archive.org/web/20150727171811/http://www.computerhistory.org/atchm/early-digital-research-cpm-source-code/ |archive-date=2015-07-27}}</ref> <ref name="SCP_2019">{{cite web |title=Betriebssystem SCP |author-first1=Rüdiger |author-last1=Kurth |author-first2=Martin |author-last2=Groß |author-first3=Henry |author-last3=Hunger |date=2019-01-03 |language=de |website=www.robotrontechnik.de |url=http://www.robotrontechnik.de/index.htm?/html/software/scp.htm |access-date=2019-04-27 |url-status=live |archive-url=https://archive.today/20190427210627/http://www.robotrontechnik.de/index.htm?/html/software/scp.htm |archive-date=2019-04-27}}</ref> <ref name="Robotron_2019">{{cite web |title=Betriebssysteme |author-first1=Rüdiger |author-last1=Kurth |author-first2=Martin |author-last2=Groß |author-first3=Henry |author-last3=Hunger |date=2019-01-03 |language=de |website=www.robotrontechnik.de |url=http://www.robotrontechnik.de/html/software/os.htm |access-date=2019-04-27 |url-status=live |archive-url=https://archive.today/20190427211056/http://www.robotrontechnik.de/index.htm?/html/software/os.htm |archive-date=2019-04-27}}</ref> <ref name="CPM22">{{cite web |url=http://www.tramm.li/i8080/cpm22-m.pdf |title=CP/M Operating System Manual |access-date=2019-02-23 |archive-date=2019-12-14 |archive-url=https://web.archive.org/web/20191214033547/https://www.tramm.li/i8080/cpm22-m.pdf |url-status=live }}</ref> <ref name="Pohlers_2019_CPA">{{cite web |title=CP/A |language=de |author-first=Volker |author-last=Pohlers |date=2019-04-30 |work=Homecomputer DDR |url=http://hc-ddr.hucki.net/wiki/doku.php/cpm/cpa |access-date=2020-02-21 |url-status=live |archive-url=https://web.archive.org/web/20200221020056/http://hc-ddr.hucki.net/wiki/doku.php/cpm/cpa |archive-date=2020-02-21 }}</ref> <ref name="px4">{{cite web |url=http://discordia.org.uk/px4/cpm.html |title=CP/M Builtin Commands |work=discordia.org.uk |access-date=2009-01-28 |url-status=live |archive-url=https://web.archive.org/web/20080412044820/http://discordia.org.uk/px4/cpm.html |archive-date=2008-04-12}}</ref> <ref name="Software_Catalog_1984">{{cite book |title=Whole Earth Software Catalog |date=1984 |isbn=978-0-38519166-1 |author-last=Brand |author-first1=Stewart |publisher=Quantum Press/Doubleday |url=https://archive.org/stream/Whole_Earth_Software_Catalog_1984_Point/Whole_Earth_Software_Catalog_1984_Point_djvu.txt |url-status=live |archive-url=https://web.archive.org/web/20150704110357/https://archive.org/stream/Whole_Earth_Software_Catalog_1984_Point/Whole_Earth_Software_Catalog_1984_Point_djvu.txt |archive-date=2015-07-04}}</ref> <ref name="CPM3_1983_PG">{{cite book |title=CP/M Plus (CP/M Version 3) Operating System Programmers Guide |edition=2 |date=April 1983 |orig-date=January 1983 |publisher=[[Digital Research]] |url=http://www.cpm.z80.de/manuals/cpm3-pgr.pdf |access-date=2016-11-25 |url-status=live |archive-url=https://web.archive.org/web/20161125024058/http://www.cpm.z80.de/manuals/cpm3-pgr.pdf |archive-date=2016-11-25}}</ref> <ref name="ct_1">{{cite magazine |title=CP/M 2 lernt dazu. Modulare Systemerweiterungen auch für das 'alte' CP/M |language=de |type=part 1 |author-first1=Eckhard |author-last1=Lieber |author-first2=Thomas |author-last2=von Massenbach |magazine=[[c't - magazin für computertechnik]] |publisher=[[Heise Verlag]] |date=1987 |volume=1987 |issue=1 |pages=124–135}}</ref> <ref name="ct_2">{{cite magazine |title=CP/M 2 lernt dazu. Modulare Systemerweiterungen auch für das 'alte' CP/M |language=de |type=part 2 |author-first1=Eckhard |author-last1=Lieber |author-first2=Thomas |author-last2=von Massenbach |magazine=[[c't - magazin für computertechnik]] |publisher=[[Heise Verlag]] |date=1987 |volume=1987 |issue=2 |pages=78–85}}</ref> <ref name="Huck_2016">{{cite web |title=RSM für CP/M 2.2 |language=de |date=2016-10-09 |author-first=Alex |author-last=Huck |work=Homecompuer DDR |url=http://hc-ddr.hucki.net/wiki/doku.php/cpm:rsm:ct |access-date=2016-11-25 |url-status=live |archive-url=https://web.archive.org/web/20161125023237/http://hc-ddr.hucki.net/wiki/doku.php/cpm%3Arsm%3Act |archive-date=2016-11-25}}</ref> <ref name="Shustek_2016">{{cite web |url=http://www.computerhistory.org/atchm/in-his-own-words-gary-kildall/ |title=In His Own Words: Gary Kildall |author-first=Len |author-last=Shustek |date=2016-08-02 |work=Remarkable People |publisher=[[Computer History Museum]] |url-status=live |archive-url=https://web.archive.org/web/20161217072842/http://www.computerhistory.org/atchm/in-his-own-words-gary-kildall/ |archive-date=2016-12-17}}</ref> <ref name="Kildall_1993">{{cite book |orig-date=1993 |date=2016-08-02 |title=Computer Connections: People, Places, and Events in the Evolution of the Personal Computer Industry |author-first=Gary Arlen |author-last=Kildall |author-link=Gary Arlen Kildall |editor-first1=Scott |editor-last1=Kildall |editor-link=Scott Kildall |editor-first2=Kristin |editor-last2=Kildall |publisher=Kildall Family |type=Manuscript, part 1 |url=http://www.computerhistory.org/atchm/computer-history-museum-license-agreement-for-the-kildall-manuscript/ |access-date=2016-11-17 |archive-url=https://web.archive.org/web/20161117231531/http://www.computerhistory.org/atchm/computer-history-museum-license-agreement-for-the-kildall-manuscript/ |archive-date=2016-11-17 |url-status=live}}</ref> <ref name="johnson">{{cite web |url=http://www.retrotechnology.com/dri/d_dri_history.html |title=CP/M and Digital Research Inc. (DRI) History |author-last=Johnson |author-first=Herbert R. |date=2009-01-04 |work=www.retrotechnology.com |access-date=2009-01-28 |url-status=live |archive-url=https://web.archive.org/web/20080820013551/http://www.retrotechnology.com/dri/d_dri_history.html |archive-date=2008-08-20}}</ref> <ref name="Dr. Dobb's Journal Apr 1976">{{cite magazine |author-last=Warren |author-first=Jim |author-link=Jim Warren (computer specialist) |title=First word on a floppy-disk operating system |magazine=[[Dr. Dobb's Journal]] |volume=1 |issue=4 |page=5 |location=Menlo Park, California, US |date=April 1976}} Subtitle: Command language & facilities similar to DECSYSTEM-10.</ref> <ref name="Digital Research (Firm)">{{cite book |title=CP/M |date=1978 |author=Digital Research |author-link=Digital Research |publisher=[[Digital Research]] |location=Pacific Grove, California, US |oclc=221485970}}</ref> <ref name="wise19820510">{{cite magazine |url=https://books.google.com/books?id=bDAEAAAAMBAJ&pg=PA21 |title=Mainframe makers court third-party vendors for micro software | volume=4 |issue=18 |magazine=[[InfoWorld]] |date=1982-05-10 |access-date=2015-01-25 |author-last=Wise |author-first=Deborah |pages=21–22 |url-status=live |archive-url=https://web.archive.org/web/20150318064450/https://books.google.com/books?id=bDAEAAAAMBAJ&lpg=PA22&pg=PA21 |archive-date=2015-03-18}}</ref> <ref name="meyer19820614">{{Cite magazine |author-last=Meyer |author-first=Edwin W. |date=1982-06-14 |title=The Xerox 820, a CP/M-operated system from Xerox |url=https://books.google.com/books?id=YDAEAAAAMBAJ&pg=PA101 |magazine=[[InfoWorld]] |pages=101–104 |volume=4 |issue=23 |access-date=2019-03-30 |archive-date=2024-07-01 |archive-url=https://web.archive.org/web/20240701172646/https://books.google.com/books?id=YDAEAAAAMBAJ&pg=PA101#v=onepage&q&f=false |url-status=live }}</ref> <ref name="dacruz19840427">{{Cite mailing list |last=da Cruz |first=Frank |title=New release of KERMIT for CP/M-80 |mailing-list=Info-CP/M |date=1984-04-27 |url=http://mdfs.net/Archive/info-cpm/1984/04/27/112445.htm |access-date=2025-01-02 |archive-url=https://archive.today/20210417094925/http://mdfs.net/Archive/info-cpm/1984/04/27/112445.htm |archive-date=2021-04-17 |url-status=live |publisher=Kermit Project, Columbia University}}</ref> <ref name="bunnell19820203">{{cite magazine |url=https://books.google.com/books?id=w_OhaFDePS4C&pg=PA16 |title=The Man Behind The Machine? / A PC Exclusive Interview With Software Guru Bill Gates |magazine=[[PC Magazine]] |date=February 1982 |access-date=2012-02-17 |author-last=Bunnell |author-first=David |volume=1 |issue=1 |pages=16–23 [20] |url-status=live |archive-url=https://web.archive.org/web/20130509162040/http://books.google.com/books?id=w_OhaFDePS4C&lpg=RA2-PA18&pg=PA16 |archive-date=2013-05-09}}</ref> <ref name="mace19840109_16">{{cite magazine |url=https://books.google.com/books?id=ey4EAAAAMBAJ&pg=PA79 |title=IBM PC clone makers shun total compatibility |magazine=[[InfoWorld]] |date=1984-01-09 |access-date=2015-02-04 |author-last=Mace |author-first=Scott |volume=6 |issue=2&3 |pages=79–81 |url-status=live |archive-url=https://web.archive.org/web/20150316182214/https://books.google.com/books?id=ey4EAAAAMBAJ&lpg=PA14&ots=qxysACmBMb&pg=PA79 |archive-date=2015-03-16}}</ref> <ref name="pournelle198306">{{cite magazine |url=https://archive.org/stream/byte-magazine-1983-06/1983_06_BYTE_08-06_16-Bit_Designs#page/n411/mode/2up |title=Zenith Z-100, Epson QX-10, Software Licensing, and the Software Piracy Problem |magazine=[[Byte (magazine)|BYTE]] |date=June 1983 |access-date=2013-10-20 |author-last=Pournelle |author-first=Jerry |author-link=Jerry Pournelle |volume=8 |issue=6 |pages=411 |url-status=live |archive-url=https://web.archive.org/web/20140609081942/https://archive.org/stream/byte-magazine-1983-06/1983_06_BYTE_08-06_16-Bit_Designs#page/n411/mode/2up |archive-date=2014-06-09}}</ref> <ref name="loguidice20120728">{{cite web |url=http://www.armchairarcade.com/neo/node/4851 |title=More on Avalon Hill Computer Games on Heath/Zenith platforms |work=Armchair Arcade |date=2012-07-28 |access-date=2015-07-22 |author-last=Loguidice |author-first=Bill |url-status=dead |archive-url=https://web.archive.org/web/20150723044908/http://www.armchairarcade.com/neo/node/4851 |archive-date=2015-07-23}}</ref> <ref name="githubgorilla001">{{cite web |url=https://github.com/sblendorio/gorilla-cpm |title=Gorillas for CP/M |date=2015-12-01 |access-date=2015-07-22 |author-last=Sblendorio |author-first=Francesco |website=[[GitHub]] |url-status=live |archive-url=https://web.archive.org/web/20160205052002/https://github.com/sblendorio/gorilla-cpm |archive-date=2016-02-05}}</ref> <ref name="pournelle198204">{{Cite magazine |last=Pournelle |first=Jerry |author-link=Jerry Pournelle |date=April 1982 |title=The Osborne 1, Zeke's New Friends, and Spelling Revisited |url=https://archive.org/details/byte-magazine-1982-04/page/n213/mode/2up |pages=212 |volume=7 |issue=4 |access-date=2021-05-24 |magazine=[[Byte (magazine)|BYTE]]}}</ref> <ref name="128book">{{cite book |chapter-url=https://archive.org/details/The_Official_Book_for_the_Commodore_128/page/n109 |title=The Official Book for the Commodore 128 Personal Computer |publisher=[[Howard W. Sams & Co.]] |author-last1=Waite |author-first1=Mitchell |author-link1=Mitchell Waite |author-last2=Lafore |author-first2=Robert W. |author-link2=Robert W. Lafore |author-last3=Volpe |author-first3=Jerry |date=1985 |page=98 |isbn=0-672-22456-9 |chapter=The CP/M Mode}}</ref> <ref name="hogan19810914state">{{Cite news |url=https://books.google.com/books?id=Mj0EAAAAMBAJ&pg=PA10 |title=State of Microcomputing / Some Horses Running Neck and Neck |author-last=Hogan |author-first=Thom |date=1981-09-14 |access-date=2019-04-08 |pages=10–12 |archive-date=2024-06-24 |archive-url=https://web.archive.org/web/20240624213643/https://books.google.com/books?id=Mj0EAAAAMBAJ&pg=PA10#v=onepage&q&f=false |url-status=live }}</ref> <ref name="byte198212">{{cite magazine |url=https://archive.org/stream/byte-magazine-1982-12/1982_12_BYTE_07-12_Game_Plan_1982 |title=Now: A Complete CP/M Pascal for Only $29.95! |magazine=[[Byte (magazine)|BYTE]] |date=December 1982 |volume=7 |issue=12 |access-date=2016-10-01 |pages=11 |type=advertisement |url-status=live |archive-url=https://web.archive.org/web/20160721132531/https://archive.org/stream/byte-magazine-1982-12/1982_12_BYTE_07-12_Game_Plan_1982 |archive-date=2016-07-21}}</ref> <ref name="byte198312">{{Cite magazine |date=December 1983 |title=Ellis Computing |url=https://archive.org/stream/byte-magazine-1983-12/1983_12_BYTE_08-12_Easy_Software#page/n69/mode/2up |magazine=[[Byte (magazine)|BYTE]] |volume=8 |issue=12 |type=advertisement |page=69}}</ref> <ref name="derfler19821018">{{cite news |url=https://books.google.com/books?id=CjAEAAAAMBAJ&pg=PA59 |title=Kaypro II—a low-priced, 26-pound portable micro |work=[[InfoWorld]] |date=1982-10-18 |access-date=2013-10-22 |author-last=Derfler |author-first=Frank J. |pages=59 |url-status=live |archive-url=https://web.archive.org/web/20140101062305/http://books.google.com/books?id=CjAEAAAAMBAJ&lpg=PA59&pg=PA59 |archive-date=2014-01-01}}</ref> <ref name="byte198309">{{cite magazine |url=https://archive.org/stream/byte-magazine-1983-09/1983_09_BYTE_08-09_Portable_Computers_in_Depth#page/n221/mode/2up |title=The Kaypro II |magazine=[[Byte (magazine)|BYTE]] |date=September 1983 |volume=8 |issue=9 |access-date=2013-10-20 |author-last1=Fager |author-first1=Roger |author-last2=Bohr |author-first2=John |pages=212 |url-status=live |archive-url=https://web.archive.org/web/20140302195830/https://archive.org/stream/byte-magazine-1983-09/1983_09_BYTE_08-09_Portable_Computers_in_Depth#page/n221/mode/2up |archive-date=2014-03-02}}</ref> <ref name="Johnson-Laird_1983">{{cite book |author-last=Johnson-Laird |author-first=Andy |author-link=Andy Johnson-Laird |title=The programmer's CP/M handbook |date=1983 |publisher=Osborne/McGraw-Hill |location=Berkeley, California, US |isbn=0-88134-103-7 |chapter=3}}</ref> <ref name="Ciarcia_1985">{{cite web |author-last=Ciarcia |author-first=Steve |title=Build the SB-180 |magazine=[[Byte (magazine)|BYTE]] Magazine |date=September 1985 |page=100 |url=http://www.classiccmp.org/dunfield/mmint/bytsep85.pdf |publisher=[[CMP Media]] |access-date=2019-06-18 |archive-date=2019-11-29 |archive-url=https://web.archive.org/web/20191129005746/http://www.classiccmp.org/dunfield/mmint/bytsep85.pdf |url-status=live }}</ref> <ref name="Radio_Shack_1985">{{cite web |title=Radio Shack Computer Catalog RSC-12 page 28 |url=http://www.radioshackcatalogs.com/html/catalogs_extra/1985_rsc-12/h028.html |website=www.radioshackcomputercatalogs.com |publisher=Tandy/Radio Shack |access-date=2016-07-06 |url-status=live |archive-url=https://web.archive.org/web/20161013055333/http://www.radioshackcatalogs.com/html/catalogs_extra/1985_rsc-12/h028.html |archive-date=2016-10-13}}</ref> <ref name="Olmstead">{{cite web |title=Digital Research Source Code |author-first1=Tim |author-last1=Olmstead <!-- |author-link1=Tim Olmstead (CP/M) --> |author-first2=Gabriele "Gaby" |author-last2=Chaudry |url=http://www.cpm.z80.de/source.html |url-status=live |archive-url=https://web.archive.org/web/20160205000740/http://www.cpm.z80.de/source.html |archive-date=2016-02-05}}</ref> <ref name="snyder198306">{{cite magazine |url=https://archive.org/stream/byte-magazine-1983-06/1983_06_BYTE_08-06_16-Bit_Designs#page/n105/mode/2up |title=A DEC on Every Desk? |magazine=[[Byte (magazine)|BYTE]] |date=June 1983 |volume=8 |issue=6 |access-date=2015-02-05 |author-last=Snyder |author-first=John J. |pages=104–106 |url-status=live |archive-url=https://web.archive.org/web/20150102123537/https://archive.org/stream/byte-magazine-1983-06/1983_06_BYTE_08-06_16-Bit_Designs#page/n105/mode/2up |archive-date=2015-01-02}}</ref> <ref name="M68">{{cite web |url=http://www.old-computers.com/museum/computer.asp?st=1&c=218 |title=M 68 / M 68 MX |url-status=dead |archive-url=https://web.archive.org/web/20160306194951/http://www.old-computers.com/museum/computer.asp?c=218&st=1 |archive-date=2016-03-06 |access-date=2012-09-17}}</ref> <ref name="DR_1981_XLT">Digital Research (1981): [http://www.s100computers.com/Software%20Folder/Assembler%20Collection/Digital%20Research%20XLT86%20Manual.pdf ''XLT86 - 8080 to 8086 Assembly Language Translator - User's Guide''] {{webarchive |url=https://web.archive.org/web/20161118230700/http://www.s100computers.com/Software%20Folder/Assembler%20Collection/Digital%20Research%20XLT86%20Manual.pdf |date=2016-11-18}} Digital Research Inc, Pacific Grove</ref> <ref name="pournelle198403">{{cite magazine |title=New Machines, Networks, and Sundry Software |magazine=[[Byte (magazine)|BYTE]] |date=March 1984 |volume=9|issue=3|author-last=Pournelle |author-first=Jerry |author-link=Jerry Pournelle |pages=46 |url=https://archive.org/stream/byte-magazine-1984-03/1984_03_BYTE_09-03_Simulation#page/n47/mode/2up |access-date=2013-10-22 |url-status=live |archive-url=https://web.archive.org/web/20150202232111/https://archive.org/stream/byte-magazine-1984-03/1984_03_BYTE_09-03_Simulation#page/n47/mode/2up |archive-date=2015-02-02}}</ref> <ref name="Isaacson_2014">{{cite book |author-link=Walter Isaacson |author-first=Walter |author-last=Isaacson |title=The Innovators: How a Group of Inventors, Hackers, Geniuses, and Geeks Created the Digital Revolution |url=https://archive.org/details/innovatorshowgro0000isaa_p2p3/ |url-access=registration |date=2014 |publisher=[[Simon & Schuster]] |isbn=978-1-47670869-0 |page=358}}</ref> <ref name="Bellis_2010">{{cite web |author-first=Mary |author-last=Bellis |title=Inventors of the Modern Computer Series - The History of the MS-DOS Operating Systems, Microsoft, Tim Paterson, and Gary Kildall |url=http://inventors.about.com/library/weekly/aa033099.htm |access-date=2010-09-09 |archive-date=2012-04-27 |archive-url=https://wayback.archive-it.org/all/20120427184009/http://inventors.about.com/od/computersoftware/a/Putting-Microsoft-On-The-Map.htm |url-status=dead }}</ref> <ref name="magid1982junjul">{{Cite magazine |author-link=Larry Magid |date=June–July 1982 |title=Baby Blue |url=https://books.google.com/books?id=w_OhaFDePS4C&pg=RA3-PA48 |url-status=live |archive-url=https://web.archive.org/web/20150318054554/https://books.google.com/books?id=w_OhaFDePS4C&lpg=RA2-PA50&ots=cWqvhfFKjb&pg=RA2-PA49 |archive-date=2015-03-18 |access-date=2025-03-17 |magazine=[[PC Magazine]] |pages=49 |volume=1 |issue=3 |author-last=Magid |author-first=Lawrence J.}}</ref> <ref name="Mace_1984">{{cite magazine |author-first=Scott |author-last=Mace |title=CP/M Eludes Home Market |magazine=[[InfoWorld]] |date=1984-06-11 |page=46 |volume=6 |issue=24 |url=https://books.google.com/books?id=wy4EAAAAMBAJ&pg=PA46 |access-date=2021-09-20 |archive-date=2021-09-20 |archive-url=https://web.archive.org/web/20210920220236/https://books.google.com/books?id=wy4EAAAAMBAJ&pg=PA46 |url-status=live }}</ref> <ref name="Groth_1986">{{cite magazine |author-first=Nancy |author-last=Groth |title=Kaypro is retreating on CP/M |magazine=[[InfoWorld]] |date=1986-02-10 |page=6 |volume=8 |issue=6 |url=https://books.google.com/books?id=oi8EAAAAMBAJ&pg=PA6 |access-date=2021-10-29 |archive-date=2022-03-20 |archive-url=https://web.archive.org/web/20220320015940/https://books.google.com/books?id=oi8EAAAAMBAJ&pg=PA6 |url-status=live }}</ref> <ref name="Chen_2010_Filenames">{{cite web |url=https://devblogs.microsoft.com/oldnewthing/20090610-00/?p=17953 |title=Why does MS-DOS use 8.3 filenames instead of, say, 11.2 or 16.16? |author-last=Chen |author-first=Raymond |author-link=Raymond Chen (Microsoft) |work=The Old New Thing |date=10 June 2009 |access-date=2010-12-17 |url-status=live |archive-url=https://web.archive.org/web/20110922053341/http://blogs.msdn.com/b/oldnewthing/archive/2009/06/10/9718865.aspx |archive-date=2011-09-22}}</ref> <ref name="Chen_2010_Wildcards">{{cite web |url=https://devblogs.microsoft.com/oldnewthing/20071217-00/?p=24143 |title=How did wildcards work in MS-DOS? |author-last=Chen |author-first=Raymond |author-link=Raymond Chen (Microsoft) |work=The Old New Thing |date=17 December 2007 |access-date=2010-12-17 |url-status=live |archive-url=https://web.archive.org/web/20110508010315/http://blogs.msdn.com/b/oldnewthing/archive/2007/12/17/6785519.aspx |archive-date=2011-05-08}}</ref> <ref name="Chen_2010_Reserved">{{cite web |url=https://devblogs.microsoft.com/oldnewthing/20031022-00/?p=42073 |title=What's the deal with those reserved filenames like NUL and CON? |author-last=Chen |author-first=Raymond |author-link=Raymond Chen (Microsoft) |work=The Old New Thing |date=22 October 2003 |access-date=2010-12-17 |url-status=live |archive-url=https://web.archive.org/web/20100802040600/http://blogs.msdn.com/b/oldnewthing/archive/2003/10/22/55388.aspx |archive-date=2010-08-02}}</ref> <ref name="Chen_2004_CTRLZ">{{cite web |url=https://devblogs.microsoft.com/oldnewthing/20040316-00/?p=40233 |title=Why do text files end in Ctrl+Z? |author-last=Chen |author-first=Raymond |author-link=Raymond Chen (Microsoft) |work=The Old New Thing |date=16 March 2004 |access-date=2010-12-17 |url-status=live |archive-url=https://web.archive.org/web/20110206100213/http://blogs.msdn.com/b/oldnewthing/archive/2004/03/16/90448.aspx |archive-date=2011-02-06}}</ref> <ref name="Maher_2017">{{cite web |author-first=Jimmy |author-last=Maher |title=The complete history of the IBM PC, part two: The DOS empire strikes |page=3 |date=2017-07-31 |url=https://arstechnica.com/gadgets/2017/07/ibm-pc-history-part-2/ |website=[[Ars Technica]] |access-date=2019-09-08 |archive-date=2019-07-08 |archive-url=https://web.archive.org/web/20190708195301/https://arstechnica.com/gadgets/2017/07/ibm-pc-history-part-2/ |url-status=live }}</ref> <ref name="Sony-SMC-70">{{cite web |title=Old-computers.com: The Museum |url=http://www.old-computers.com/museum/computer.asp?c=362 |access-date=2017-10-06 |archive-url=https://web.archive.org/web/20130703032649/http://www.old-computers.com/museum/computer.asp?c=362 |archive-date=2013-07-03 |url-status=dead}}</ref> <ref name="PL1">{{cite web |url=http://bitsavers.informatik.uni-stuttgart.de/pdf/digitalResearch/pl1/PL1_Language_Programmers_Guide_Dec82.pdf |title=PL/I Language Programmer's Guide |publisher=[[Digital Research]] |access-date=2019-11-18 |archive-date=2019-09-25 |archive-url=https://web.archive.org/web/20190925115216/http://bitsavers.informatik.uni-stuttgart.de/pdf/digitalResearch/pl1/PL1_Language_Programmers_Guide_Dec82.pdf |url-status=live }}</ref> <ref name="ZCPR">{{cite web |url=http://oldcomputers-ddns.org/public/pub/manuals/zcpr |title=ZCPR - oldcomputers.ddns.org}}</ref> <ref name="ZCPR3">{{cite web |url=http://susowa.homeftp.net/index.php/magazines-mainmenu/morrow-owners-review-mainmenu-143/113-the-wonderful-world-of-zcpr3.html |title=The Wonderful World of ZCPR3 |date=1987-11-30 |access-date=2019-11-18 |archive-url=https://web.archive.org/web/20191223043145/http://susowa.homeftp.net/index.php/magazines-mainmenu/morrow-owners-review-mainmenu-143/113-the-wonderful-world-of-zcpr3.html |archive-date=2019-12-23 |url-status=dead}}</ref> <ref name="Thomas_1981_CPM">{{cite news |title=Books, Boards and Software for The New 16-Bit Processors |author-first1=Rebecca A. |author-last1=Thomas |author-first2=Jean L. |author-last2=Yates |newspaper=[[InfoWorld]] - The Newspaper for the Microcomputing Community |issn=0199-6649 |publisher=[[Popular Computing, Inc.]] |date=1981-05-11 |volume=3 |issue=9 |pages=42–43 |url=https://books.google.com/books?id=Cz4EAAAAMBAJ&pg=PA43 |access-date=2020-01-24 }}</ref> <ref name="Digital_Research_1981_News">{{cite journal |title=Digital Research Has CP/M-86 for IBM Displaywriter |journal=Digital Research News - for Digital Research Users Everywhere |publisher=[[Digital Research, Inc.]] |location=Pacific Grove, California, US |date=November 1981 |volume=1 |number=1 |id=Fourth Quarter |pages=2, 5, 7 |url=https://archive.computerhistory.org/resources/access/text/2017/03/102770749-05-01-acc.pdf |access-date=2020-01-18 |url-status=live |archive-url=https://web.archive.org/web/20210417075843/https://archive.computerhistory.org/resources/access/text/2017/03/102770749-05-01-acc.pdf |archive-date=2021-04-17}}</ref> <ref name="Strutynski_2010">{{cite news |title=Kathryn Betty Strutynski |type=Obituary |date=2010-06-19 |newspaper=[[Monterey Herald]] |via=[[Legacy.com]] |url=https://www.legacy.com/us/obituaries/montereyherald/name/kathryn-strutynski-obituary?pid=143631450 |access-date=2021-08-10 |url-status=live |archive-url=https://web.archive.org/web/20210814141540/https://www.legacy.com/us/obituaries/montereyherald/name/kathryn-strutynski-obituary?pid=143631450 |archive-date=2021-08-14 }}</ref><!-- {{usurped|1=[https://web.archive.org/web/20210403100833/http://www.retrotechnology.com/dri/strutynski.txt]}} --> <ref name="Brown-Strutynski-Wharton_1983">{{cite magazine |title=Tweaking more performance from an operating system - Hashing, caching, and memory blocking are just a few of the techniques used to punch up performance in the latest version of CP/M. |author-first1=David K. |author-last1=Brown |author-first2=Kathryn |author-last2=Strutynski |author-link2=Kathryn Strutynski |author-first3=John Harrison |author-last3=Wharton |author-link3=John Harrison Wharton |magazine=Computer Design - The Magazine of Computer Based Systems |department=System Design/Software |publisher=[[PennWell Publications]] / [[PennWell Publishing Company]] |publication-place=Littleton, Massachusetts, US |issn=0010-4566 |oclc=1564597 |volume=22 |number=6 |date=1983-05-14 |id={{CODEN|CMPDA}}. <!-- |ia=bitsavers_computerDe_206764578 -->ark:/13960/t3hz07m4t |pages=[https://archive.org/details/bitsavers_computerDe_206764578/page/105/ 193]–194, 196, 198, 200, 202, 204 |url=https://archive.org/details/bitsavers_computerDe_206764578 |access-date=2021-08-14}} (7 pages)</ref> <ref name="DRI_1983_CPM3">{{cite book |title=CP/M Plus (CP/M Version 3) Operating System User's Guide |publisher=Digital Research |date=1983 |url=http://www.bitsavers.org/pdf/digitalResearch/cpm_plus/CPM_Plus_Users_Guide_Mar83.pdf |access-date=2020-05-09 |archive-date=2019-11-26 |archive-url=https://web.archive.org/web/20191126195711/http://bitsavers.org/pdf/digitalResearch/cpm_plus/CPM_Plus_Users_Guide_Mar83.pdf |url-status=live }}</ref> <ref name="byte1983_07">{{cite magazine |author-last=Dahmke | author-first=Mark |title=CP/M Plus: The new disk operating system is faster and more efficient than CP/M |magazine=BYTE Magazine | url= https://archive.org/details/byte-magazine-1983-07/page/n359/mode/2up?view=theater |date=1983-07-01 |volume=8 |issue=7 |pages=360 |issn= }}</ref> <ref name="CPM-system-manual">{{cite book |url=https://bitsavers.org/pdf/digitalResearch/cpm/CPM_Operating_System_Manual_Jul82.pdf |title=CP/M Operating System Manual |publisher=Digital Research |date=July 1982}}</ref> <ref name="CPM-86-system-guide">{{cite book |url=https://bitsavers.org/pdf/digitalResearch/cpm-86/CPM-86_System_Guide_Jun81.pdf |title=CP/M-86 System Guide |publisher=Digital Research |date=1981}}</ref> <ref name="CPM-68k-system-guide">{{cite book |url=https://bitsavers.org/pdf/digitalResearch/cpm-68k/CPM-68K_System_Guide_Jan83.pdf |title=CP/M-68K Operating System System Guide |publisher=Digital Research |date=January 1983}}</ref> <ref name="CPM-8000-system-guide">{{cite book |url=https://bitsavers.org/pdf/digitalResearch/cpm-8000/CPM8000_systemGuide.pdf |title=CP/M-8000 Operating System System Guide |publisher=Digital Research |date=August 1984}}</ref> }} ==Further reading== * {{cite book |author-last=Zaks |author-first=Rodnay |author-link=Rodnay Zaks |date=1980 |title=The CP/M Handbook With MP/M |publisher=[[SYBEX Inc.]] |isbn=0-89588-048-2 |url-access=registration |url=https://archive.org/details/The_CPM_Handbook_with_MPM}} * {{cite book |title=ZCPR3 - The Manual |author-first=Richard |author-last=Conn |isbn=0-918432-59-6 |date=1985|publisher=New York Zoetrope }} * {{cite journal |title=Z-System Corner: Tenth Anniversary of ZCPR |issue=54 |journal=[[The Computer Journal]] |url=http://www.cpmwelt.de/pool/ad5401.htm |url-status=dead |archive-url=https://web.archive.org/web/20101029154106/http://www.cpmwelt.de/pool/ad5401.htm |archive-date=2010-10-29}} * {{cite web |title=The origin of CP/M's name |url=http://www.khet.net/gmc/docs/museum/en_cpmName.html |url-status=dead |archive-url=https://web.archive.org/web/20080611201653/http://www.khet.net/gmc/docs/museum/en_cpmName.html |archive-date=2008-06-11}} * {{cite web |url=http://www.intel-vintage.info/apps/videos/videos/show/18129431-intel-ipds-100-cp-m |title=Intel iPDS-100 Using CP/M-Video |author-first=Mustafa A. |author-last=Katie |date=2013-08-14 |access-date=2013-09-02 |archive-date=2013-10-07 |archive-url=https://web.archive.org/web/20131007025338/http://www.intel-vintage.info/apps/videos/videos/show/18129431-intel-ipds-100-cp-m |url-status=usurped }} * {{cite web |title=IEEE Milestone in Electrical Engineering and Computing - CP/M - Microcomputer Operating System, 1974 |date=2014-04-25 |publisher=[[Computer History Museum]] |url=http://lazowska.cs.washington.edu/CPM_Program.pdf |access-date=2019-04-03 |url-status=live |archive-url=https://web.archive.org/web/20190403013355/http://lazowska.cs.washington.edu/CPM_Program.pdf |archive-date=2019-04-03}} * {{cite web |title=Triumph of the Nerds |website=[[PBS]] |url=https://www.pbs.org/nerds/}} (NB. This PBS series includes the details of IBM's choice of Microsoft DOS over Digital Research's CP/M for the IBM PC) * {{cite web |title=CP/M FAQ |website=comp.os.cpm |url=http://www.faqs.org/faqs/CPM-faq/}} [http://www.digitalresearch.biz/CPM-FAQ.HTM] ==External links== {{commons category|CP/M}} * [http://www.cpm.z80.de The Unofficial CP/M Web site (founded by Tim Olmstead)] - Includes source code * [http://www.gaby.de/ehome.htm Gaby Chaudry's Homepage for CP/M and Computer History] - includes ZCPR materials * [http://www.seasip.info/Cpm/index.html CP/M Main Page] - John C. Elliott's technical information site * {{usurped|1=[https://web.archive.org/web/20080515232659/http://www.digitalresearch.biz/CPM.HTM MaxFrame's Digital Research CP/M page]}} {{Digital Research}} {{Disk operating systems}} {{Authority control}} {{DEFAULTSORT:Cp M}} [[Category:CP/M| ]] [[Category:CP/M variants]] [[Category:Microcomputer software]] <!-- [[Category:Digital Research]] --> [[Category:Disk operating systems]] [[Category:Digital Research operating systems]] [[Category:Discontinued operating systems]] [[Category:Floppy disk-based operating systems]] [[Category:Free software operating systems]] [[Category:History of computing]] [[Category:1974 software]] [[Category:Formerly proprietary software]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:About
(
edit
)
Template:As of
(
edit
)
Template:Authority control
(
edit
)
Template:Citation needed
(
edit
)
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite magazine
(
edit
)
Template:Cite web
(
edit
)
Template:Commons category
(
edit
)
Template:Currency
(
edit
)
Template:Digital Research
(
edit
)
Template:Disk operating systems
(
edit
)
Template:Frac
(
edit
)
Template:Ill
(
edit
)
Template:Infobox OS
(
edit
)
Template:Main
(
edit
)
Template:R
(
edit
)
Template:Redirect
(
edit
)
Template:Reflist
(
edit
)
Template:Rp
(
edit
)
Template:Short description
(
edit
)
Template:Use dmy dates
(
edit
)
Template:Use list-defined references
(
edit
)
Template:Usurped
(
edit
)
Template:Val
(
edit
)