This document copyright Herbert R. Johnson 2014. Last updated July 30 2014.
To return to my S-100 Home page click here.
To return to my Digital Research and CP/M home page click here.
An outline of CP/M history with documents is on this page.
To contact me @ email follow this link.
Dr. Gary Kildall's operating system called CP/M is likely 35 years old as of 2009. That is based on a "fall of 1974" reference by Kildall to get Dr. John Torode to provide a working floppy controller to run his software on real hardware. During 1975 there were announcements and discussions of CP/M as a product in a new but popular computer magazine called "Dr. Dobb's Journal". Dr. Kildall and his company, Digital Research Inc., sold CP/M and subsequent operating systems and development tools into the 1990's, until the company was acquired by a series of other companies. As of 2006 the current owners of the DRI licenses including CP/M is DR-DOS Inc. Kildall died in 1994.
My DRI Web page lists the earliest OS products of DRI, describes them technically. Another Web page describes where you can get CP/M or similar OS's, for old and new computers. This DRI history page describes the early development history of CP/M in the 1970's and the people and companies behind that development. Another Web page lists and discusses the content of various reference documents used to construct this Web page.
My 16-bit DRI Web page reviews the sequence of ownership history of DRI assets in the 1990's and 2000's. That page has notes about a few operating systems derived from DRI products, commercial and "free", and describes their current status. We have some original documents and disks for early DRI products, which are listed on that page and available.
Note: this document does NOT discuss or cover the persistent controversy about the origins of MS-DOS in CP/M, nor the history between IBM, DRI and Microsoft. (However, in 2007 the MS-DOS vs CP/M issue was looked at by a judge. Check this account of his ruling for background and details.) Many other people have published in great detail about those issues, and about Microsoft, so I leave those matters to them.
Updates to any information on either DRI page are welcome; we have many links to sites which may go "dark" so keep us posted! - Herb Johnson
In Feb 2014 I was contacted by David A. Laws of the Computer History Museum with the follow note: quote
"About a year ago I contacted you seeking information on Gary Kildall's work on CP/M. I am pleased to let you know the the IEEE has designated his development of CP/M as a Milestone in Electrical Engineering and Computing. A plaque commemorating this award will be dedicated in Pacific Grove on April 25, 20014 . For more information see the attached notice and visit the Facebook page at [this link]. Thanks for your help."
[signed] David, David A. Laws, Semiconductor Curator, Computer History Museum
Laws' CHM blog page
The notice says the plaque will be presented at a public event, after the Asilomar Microcomputer Workshop of April 25th, in Pacific Grove CA. Kildall presented at previous AMW events. The plaque is placed at the former DRI offices at Pacific Grove; DRI artifacts will be shown in April at the local public library. The plaque states that Kildall demonstrated CP/M in 1974, and credits him with the invention of BIOS, together as "an important foundation for the personal computer revolution".
David Laws wrote a blog entry about Kildall and his achievement in late Feb 2014, Here's a link to David's entry on the Computer History Museum Web site blog. A video by CHM on youtube is the Legacy of Gary Kildall: The CP/M IEEE Milestone Dedication .
Here's a link to the IEEE History Web site
for the Milestone award to Kildall. A notice of the Milestone award was posted by the
University of Washington, where Kildall got his Ph. D.
Kildall was active in the Asilomar Microcomputer Workshop from its founding in 1975. This was a by-invitation annual event which included Kildall and other Silicon Valley leaders in microprocessor and later LSI development. It's still a signifigant event. For their 40th Workshop in 2014, the AMW commerated the IEEE's Milestone Award to Gary Kildall.
History
Early versions of CP/M
More background about Kildall, Torode, PL/M, Intel
Reference material summarized and linked on the reference page:
Broken links may be found on the reference page.
DRI's CP/M was an early diskette operating system for 8080 computers, first offered as a product in 1975. It was used on Intel 8080-based computers of the mid 1970's and later, then for Z80 and 8086/88 computers up through the 1980's. It was notable for small size, an included set of assembly, debug and text tools and a minimal dependence on hardware specifics which were isolated to a "BIOS" section (provided in source form) with standard entry points from the "BDOS" disk operating system, which supported system calls from CP/M programs or from the "CCP" console processor program. The CCP provided basic console/terminal functions including calling other programs. The BIOS source could be rewritten to support a variety of hardware, without changing the CCP or BDOS which were only provided in object form. CP/M included the tools and documents to edit and assemble a new BIOS, and to relocate the CCP and BDOS to fit available memory. Most CP/M programs ran on most CP/M systems with little change, often just a matter of binary patches. These features of size, portability and tools - plus the inexpensive, per-computer cost of a license - were critical for the early expansion of microcomputing, and CP/M became the "software bus" for the new Intel-based microcomputers of the 1970's and well into the 1980's.
Further discussion of this sort is on my DRI Web page, and on sites which offer CP/M or info about it.
In 2006 there were a number of articles in various computer trade journals, on the 25th anniversary of the IBM PC in August. Many of them minimized or even ignored the impact of CP/M (and S-100) on the IBM PC and the market that IBM was entering. That fact, and the so-so reception I got when I reminded some editors of the CP/M legacy, encouraged me to work on these CP/M histories I've written since.
On the other hand, some histories of the IBM PC get it "right". One was written by Jon Titus, who developed the Mark-8 in 1974. It was published as a construction article in the July 1974 Radio-Electronics. This development is generally cited as "inspiring" Popular Electronics to carry the MITS Altair on their cover page in January 1975. Jon wrote this 20th anniversary PC article "Whence Came the IBM PC?" for September 15, 2001 in Test and Measurement World, a trade magazine. It properly acknowledges his system, the Altair, and CP/M as part of the IBM-PC story.
In 2010, MITS founder and Altair 8800 designer Ed Roberts passed away. A tribute Web page to Dr. Robert's passing includes references to IBM, Microsoft and the IBM PC.
In Aug 2011, the 30th anniversary of the IBM PC announcement, once again there were mis-informed reporters who wrote about the IBM PC. When time permits, I'll show an example of such a story and my published letter of corrections and comment.
During April 2014, the IEEE will honor Dr. Kildall on the 40th anniversary of the first successful operation of CP/M. Follow the Web link for details.
I have an extensive outline of CP/M and Kildall history on this page.
Dr Gary Kildall, the author of CP/M, got his Ph. D. in Computer Science in 1972 at the University of Washington, where he working on a XPL cross-compiler and on Algol compilation. His prior work, including his MS thesis, was on file storage methods and organization. In these programming projects, he'd stress time and again the need to work from component modules, and in top-down or high-level manner. Case in point is his "Heathkit"-like design paper written with Dr. Earl Hunt (his faculty advisor) in 1971. These were also themes in his subsequent work.
After Kildall got his PhD, he formed a company named MAA (Microcomputer Application Associates) to do consulting and development work; and he became a faculty member of the Naval Postgraduate School. At the school he taught about microprocessors, and developed a number of projects in hardware and software with his students and with faculty. Some of his students and his faculty colleagues went on to commercial success, as did Dr. Kildall.
From about 1973, Dr. Kildall provided to Intel cross-products for the 8008, written in Fortran. These were a cross assembler, a simulator, and a PL/M cross compliler. PL/M, released by Intel in June 1973, was a PL/I-like, and Algol-like, programming language. PL/I was the programming language for IBM's mainframe and minicomputer products from the early 1970's; Algol was a primarily academically-used programming language. The book "Fire in the Valley" covers Kildall's earliest work for Intel and at the University of Washington. By March 1974, Kildall migrated PL/M to compile for the 8080 when that processor was in development {Kildall June 1974] and [Kildall Sept 1974]. Others also developed PL/I like cross-compilers, as I discuss in this note. It's unclear if Intel or Kildall licensed to any of these companies. Kildall himself would write about Intel's PL/M but not mention he wrote it.
Sometime during 1973 and into 1974, Kildall wrote a floppy disk operating system and related software tools, mostly in PL/M, for the 8080. Portions of that OS included software tools previously written for paper tape based development, such as an editor later called "ED" in CP/M. Kildall's 1980 DDJ article says that in 1973, as part of his PL/M development proposal to Intel, he also offered to develop "a resident compiler operating on Intel's new Intellec-8 development system". The OS was to run on his Intel Intellec-8 system, upgraded with an 8080 processor. Kildall used his 8080 simulator to work on file I/O support for PL/M, so he could compile and test-run a resident PL/M without a working disk drive. (See my linked notes on the DDJ article for specifics and cross-references.)
He acquired an 8-inch floppy drive from Shugart Associates, and Kildall built a floppy controller, or tried to. Various published comments by Kildall suggest about a year's efforts, as he also worked on PL/M's disk resident code. Kildall's controller did not work until it was "completed" (actually, replaced) by one designed and built by Kildall's colleague from the University of Washington, Dr. John Torode, "after the fall of 1974". This back-dates his acquisition of that floppy drive to sometime in 1973, which is consistent with his original proposal to Intel; and to when Shugart first had their drives in production.
The exact date of completion and operation of Kildall's CP/M actual hardware is not clear. According to Kildall's Jan 1980 DDJ account, he worked with Torode after "the fall of 1974" on the controller, so they could not have run CP/M earlier than that. In a 1981 BYTE account, Kildall says "CP/M was completed in 1974." In another account which quotes Kildall in 1982, he says "with a home-built disk drive controller" from Torode, "the first CP/M prompt appear[ed] on my used Teletype in 1974". Additionally, in a private discussion with Dr. Torode, Torode's recollection is that he replaced Kildall's controller with his own design from years prior. And, in a 2000 interview, Kildall's graduate student Gordon Eubanks describes that by 1975 when he first met Kildall, there were "There were like two or three of these systems in existence in the world", each with a "wire wound" floppy controller.
At some point Kildall offered CP/M to Intel: they declined. Numerous accounts by Kildall, state that Intel management was not interested in 8080-based or "resident" development tools. A 1997 book on Intel and Andy Grove, "Inside Intel" by Tim Jackson, has an interview with the Intel executive that "passed" on CP/M. Kildall states in the 1980 DDJ article that Intel declined interest, and then "nearly two years passed...[to] their introduction of the ISIS operating system.." (I do not have a date for the introduction of ISIS.)
After Intel declined interest, Kildall licensed it to others in 1975, as Kildall cites in his various accounts. He says the first "commercial licensing" was to Torode's Digital Systems, who got a contract from Omron of America for use on their intelligent terminal; and to Lawrence Livermore Labs for their Octopus lab network. In any event, some version of CP/M was sold in 1975 and 1976 by Torode with an Altair-compatible floppy controller, under Torode's company named "Digital Systems", which later became "Digital Microsystems". Meanwhile, Kildall and his wife Dorothy McEwen offered CP/M to individuals sometime early in 1976 as "Intergalactic Digital Research Inc.", later known as "Digital Research Inc." or DRI.
References to Kildall's and Torode's activities are detailed on this section of this Web page. These references include "Dr. Dobb's Journal" during 1976, a Jan 1977 ad for Digital Systems in BYTE, Kildall's article in DDJ for Jan 1980, and quotes from him in a 1982 account published within Digital Research. It's also discussed (but not well-dated) in "Fire In the Valley", a book written by Freiberger and DDJ Editor Michael Swaine from first-person accounts.
In mid-1976, IMSAI (IMS Associates Inc.) obtained some version of CP/M from Kildall (Todd Fischer implies version 1.2, on his Web site). Kildall, and his colleague and IMSAI consultant Glen Ewing, worked with IMSAI for IMSAI's first floppy controller product, the FIB and IFM boards sold in late 1976. CP/M 1.2 was apparently used internally by IMSAI. IMSAI and Kildall and other persons developed a version 1.3, which was sold as CP/M 1.3 by IMSAI. A license agreement was reached in 1977 between IMSAI and Digital Research; this was described as the third commercial license of CP/M by IMSAI staffer Todd Fischer. (Fischer's and Ewing's accounts are discussed on my IMSAI Web page, and on the imsai.net Web site.)
For their next floppy controller design in 1977-78, IMSAI developed IMDOS V2.01 from CP/M 1.3 It was based on CP/M 1.3 binaries and code and patches from IMSAI, and many DRI CP/M utilites under license. Other companies who obtained CP/M V1.3 found similar limitations. Those pushed development of a CP/M version 1.4, the first widely distributed version by DRI starting in 1977-78. Generally, the development of CP/M from 1.2 to 1.3 to 1.4 dealt with moving diskette structure information out of the BDOS and into the BIOS, so it could be easily modified or updated as diskette control technology changed. A full discussion of IMDOS vs CP/M 1.4 occurred in comp.os.cpm: my account of that is on my IMDOS Web page.
With DRI's CP/M 1.4, other companies with 8080 or Z80 microcomputer and floppy products either obtained DRI licenses and offered CP/M 1.4 by that name, or licensed DRI's CP/M and incorporated it into their own OS as IMSAI did. Or, they apparently copied the features (and some obtained a license subsequently). For instance, Cromemco and Digital Research apparently had some "relationship", according to DRI references in CDOS manuals and a published letter to the editor of a business magazine.
Rapid developments in floppy disk controllers and in processor speeds, forced vendors to support multiple diskette formats (double density, double sides); and to accommodate then-new single-chip floppy controllers while supporting older formats. That prompted the development of CP/M 2.0 to move those features into BIOS from the BDOS. This was followed closely by bug-fix version CP/M 2.2 in 1979, which was the next popular version sold by DRI and by many companies who sold systems running CP/M.
Both versions 1.4 and 2.2 were sold directly to individuals, to support their home-made or modified systems and to run the growing number of CP/M programs. Some of those individuals created their own companies to build, design, and sell those hardware systems. Others became producers of CP/M programs. In this way CP/M became a "standard" operating system during that period, across a variety of 8080 and 8085 and Z80 systems.
DRI developed many more OS and language products; I've only covered the earliest history here. My DRI Web page lists their subsequent operating systems; my DRI 16-bit page describes what happened to DRI in the 1990's and beyond.
Digital Research considered their CP/M OS source code as proprietary, and (with one possible exception) never offered it to the public or to binary licensees. Over time, some of that source code has emerged. The repository for early CP/M code is the "unofficial" CP/M Web site, which has a specific license from Brian Sparks to make early CP/M available for private use. In Jan of 2007, Steve Dubrovich posted in comp.os.cpm a summary description of some of the earliest CP/M sources there, which I quote below. But those descriptions require some background notes from me. Also, Udo Monk did some work on revising his 1990's Z80 emulator under Unix; then he gathered, tweaked and re-compiled various CP/M sources to run under emulation. He posted his progress in comp.os.cpm, during late 2006 through 2009. Go to my "how to CP/M" Web page for more information on these and other CP/M supporting Web sites.
My notes above about Gary Kildall's earliest work include the fact that he came up with an operating system during his development of PL/M. Some argue that "CP/M" was "in the public domain" before Kildall established his company and the CP/M product line. Inspection of some early CP/M PL/M code, dated June 1975, suggests an early version was written for or used by Lawrence Livermore National Labs. Kildall says elsewhere was an early commercial licensee of CP/M in 1975.
Apparently that 1975 version of PL/M and ASM code was put on a CPM User Group (CPMUG) disk #5 in 1977 for public distribution, but that code was subsequently removed some time afterward. This is based on different descriptions of the contents of that disk in some surviving CPMUG and SIGM disks archives. A SIGM disk #15 which catalogs and describes some CPMUG disks includes an explicit description of Kildall's CP/M files. A few of those PL/M files have been recovered over time, and are available on some Web sites in 2007. Details and links are on this linked Web page.
My review of files and documents of the period, suggests that the two references to a "public domain" release of CP/M are related by the people involved. I have no reference to any Kildall statement or document of his, which suggests any "public domain" release.
IMSAI obtained some version of CP/M from Kildall, apparently a version 1.2. In mid-1976, Kildall and Glen Ewing (Kildall's student and an IMSAI consultant) worked with IMSAI's first floppy controller hardware, which was sold by IMSAI in late 1976. A CP/M version 1.3 was developed and sold by IMSAI with their hardware as CP/M 1.3.
IMSAI later adapted CP/M V1.3 for other floppy controllers, and sold that adaptation as "IMDOS V2.01". IMDOS version 2.02 disks and manuals have dates from Nov. 1977 to Feb. 1978. A later version of IMDOS was 2.05.
I have a Web page devoted to IMSAI's CP/M and IMDOS, follow this link. Also see my CP/M development section to get the details and links to first-person accounts and references to original documents.
Some V1.4 sources are on the "Digital Research Source Code" page, under "operating systems", where it says BDOS PL/M SOURCE". This is an image of a CP/M disk with various files including a BDOS PL/M file. Ernie Price reports on how he extracted the BDOS sources from the apparent CP-M 1.4 disk image using programs he wrote. Then he compiled them, and compared them to an extracted BDOS binary from a MOVECPM from another CP/M 1.4 file collection. The two binaries matched. He then took a CP/M 2.0 CCP source, and modified it slightly until its compilation matched an extracted CCP binary from that same MOVECPM. Ernie therefore considers the resulting CCP and BDOS sources as a correct "reconstruction" of CP/M 1.4 sources.
The report of this compilation is by Ernie Price, on the same Web page, under "contributed Sources", labled Make CPM 1.4 V 0.1". Ernie wrote tools to extract version 1.4 BDOS sources from the disk image. He used a 1982-dated PL/M compiler (version unclear) running under ISIS-II as emulated by an MS-DOS program. Ernie's tools and various programs he used are also available on the archive site or from his ZIP'ed file.
Thanks to Steve Dubrovich for discussions about these sources and compilers; Steve's comp.os.cpm Jan 2007 posts are quoted below, with my commentary in []'.
B) Ernie's recovery from submitted disk image of BDOSI.SRC [8080 asm interface module (c) 1978 DRI] and BDOS.PLM (c) DRI 1976,1977,1978 [is] probably version 1.4, as claimed. By the time of this version, the FDOS has been separated into the BDOS and OEM supplied BIOS.
In later correspondence with me, Steve identifies the compiler used to create the .LST and .OBJ files on the "BDOS PL/M SOURCE" disk as "ISIS-II PL/M-80 V3.0", dated "15 AUG 78", based on a dump of the disk image. Udo Monk also compiled these V1.4 sources using a FORTRAN cross-compiler (as described below), after working on later CP/M sources.
Thanks to Steve Dubrovich for discussions about these sources and compilers; Steve's comp.os.cpm Jan 2007 posts are quoted below, with my commentary in []'.
C) 1980 CP/M v.2.0 ASM sources [are linked at the Digital Research Operating Systems page as:] http://www.retroarchive.org/cpm/os/DRIPAK.ZIP and http://www.cpm.z80.de/source.html D) CP/M V2.2 sources [are likewise at:] http://www.retroarchive.org/cpm/os/DRIPAK.ZIP and http://www.cpm.z80.de/source.html E) CP/M V3.0 [source] is there also [??].
There's other recent work on CP/M 2.0 and later sources. In late 2006, programmer Udo Munk revived his Unix Z80 emulator Z80PACK and updated it for current Linux and Unix. He then proceeded to gather the Intel ISIS tools to run the native PL/M compiler (under an ISIS emulator), and gathered the various CP/M 2.2 and MP/M sources to compile and assemble them, and to run them under his emulator. He then did the same for CP/NET. By January 2007 he obtained the available FORTRAN PL/M compiler from the CP/M archive, and at Steve's request complied the CP/M 1.4 sources with it, as well as the so-called "publicly released CP/M" PL/M code as discussed above. Udo reported both "compiled cleanly".
In June 2006, Howard Harte reported doing source-code comparisons of CP/M 2.0 and 2.2 sources; he posted as much in comp.os.cpm. He also posted a note in his blog, titled "Tracing the Evolution of CP/M-80", at this link. You need to install "Subversion" to work with his sources, however.
There are other references about working with the CP/M sources at the unofficial CP/M Web site by Gaby Chaudry.
This section of my DRI Web page lists and describes CP/M and subsequent OS's from Digital Research.
CP/M was sold directly by Digital Research and others, and also sold with various microcomputer systems. In Feb 2008, Jeff Shook described to me how he's read the CP/M version and serial numbers, from various distributions of CP/M 1.4, 2.0, and 2.2. His notes and catalog is on this Web page, with his permission. I'll pass along any questions or additions to his catalog.
Dr. Gary Kildall got his Ph. D., in May 1972 at the University of Washington. His Ph. D. thesis was on "Global Expression Optimization During
Compilation", based on work on the XPL Compiler system and tested on ALGOL compilation. His MS thesis in 1968, also done at the U of W, was on
disk drive storage allocation methods. After he got his PhD, he became a
faculty member of the Naval Postgraduate School, as a naval officer. to do
consulting and development work, he formed a company named MAA (Microcomputer
Application Associates).
At the Naval School in the early 1970's, he developed PL/M and later CP/M while working on Intel's 4004, 8008 and 8080 products for teaching materials and for Intel. In
1975 he and his wife Dorothy McEwen Kildall started Digital Research to sell CP/M, and that company became a leading producer of programming languages, tools and operating systems. See Wikipedia's entry for Dr. Gary Kildall for further discussion and links to many sites.
Notably, one of the licensees of DRI assets, MaxFrame, has a website devoted to the early DRI days and to the Kildalls. Dr. Kildall died in 1994.
Dr. John Torode, a graduate of the University of Washington, worked on Kildall's floppy controller and got it operational in late 1974. Torode started Digital Microsystems in 1975 and sold CP/M with a floppy disk controller for IMSAIs and Altairs. He founded Digital Microsystems Inc. in 1979. He continued to work both in academia and in business through a number of companies, through the present day. A biography of Dr. John Torode was available as of 2007 at the U of W. at this link. Torode was honored as a UW Distinguished Alumnus in 1996.
Intel, ISIS, and CP/M: Kildall worked with Intel from at least 1973, developing cross assemblers and compliers. He offered CP/M to Intel, and they declined it. Intel offered a floppy disk-based operating system for development called "ISIS", to run on their own floppy controller cards sometime on or after 1975 (dated from Intel controller board copyright dates). Kildall was not likely part of Intel's ISIS development effort. CP/M and ISIS in operation have some general similarities to interactive operating systems on minicomputers and mainframes such as the DEC PDP-10 "TOPS-10" OS. Kildall used such systems to develop and run his cross-assemblers and compilers, which became Intel products;
and later to develop his own products which ran "native" on CP/M systems. For more info about Intel's ISIS and their earliest development systems, see this document in progress. PL/M
(discussed below) was not available under ISIS (or CP/M) until well after 1976, based on product documents of Intel.
PL/M: Kildall was one of many who adapted a subset of IBM's PL/I to microprocessors or minicomputers of the era. Dr. Kildall's PhD thesis was on compiler optimization, and he worked on Algol compilers at the U. of Washington and at the Naval school. Kildall's work on PL/M began in 1973, as discussed in Kildall's 1981 BYTE account. He may have been the first to develop a PL/M microprocessor cross-complier, written in FORTRAN and producing 8008 code. It became an Intel product as two FORTRAN programs PLM1 and PLM2; plus an 8008 simulator Interp/8. By mid-1974, Intel offered (from Kildall) a new version of PL/M to produce 8080 code, programs PLM81 and PLM82; and a Interp/80 for an 8080 simulator. Over time, Intel offered PL/M for the 8086, 80186, and later processors. Years later, Kildall's DRI offered a PL/I (not PL/M) compiler under CP/M-86.
Kildall described Intel's (his) cross compilers in a number of articles, but he often neglected to mention himself as the author or developer. Other companies with PL/I-like compilers included Motorola, with MP/L for the 6800 in Feb 1976; National Semiconductor's PL/M+ for the IMP-16 and PACE microcomputers; and Signetics' "PLUS" compiler for the 2650 as "an extension of Intel's PL/M". References are at this link.
Contact information:
Copyright © 2014 Herb Johnson
New Jersey, USA
To email @ me, see see my ordering Web page