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
(section)
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!
== 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.
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)