The Wayback Machine - https://web.archive.org/web/20080820013551/http://www.retrotechnology.com/dri/d_dri_history.html

CP/M and Digital Research Inc. (DRI) History

This document copyright Herbert R. Johnson 2008. Updated Aug 15 2008.
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.

Introduction

Dr. Gary Kildall's operating system called CP/M is at least 30 years old as of 2007. That is based on a 1976 announcement and discussion 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 that 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. This material was on my DRI Web page until it became too large, late in Feb 2007.

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. 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

Contents of this page:

History

  • Summary of CP/M
  • Post-PC history and CP/M
  • Early CP/M, PL/M and DRI history

    Early versions of CP/M

  • Background
  • 1975 "Public Domain" CP/M?
  • CP/M 1.2, 1.3
  • CP/M 1.4
  • CP/M 2.0, 2.2
  • CP/M version and serial numbers

    Reference material summarized and linked on this page:

  • More background about Kildall, Torode, PL/M, Intel
  • IMSAI, DRI, Kildall materials and sources
  • Early DRI references in Dr. Dobbs Journal, BYTE
  • "Fire In the Valley" references
  • Publications with references to CP/M, PL/M, Kildall, Torode
  • John Torode and his associates and Digital Systems' FDC
  • Lawrence Livermore Labs and CP/M?

    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.

    The following is a TECHNICAL and CHRONOLOGICAL account of the EARLY work in and around CP/M, which has NOT been well-covered in this way, in my opinion. Notably, various accounts for development of CP/M don't include specific dates; and don't include the roles of Kildall's colleagues, and of the early adopters of CP/M. - Herb Johnson

    A summary of CP/M

    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.

    Post-PC history and CP/M

    In 2006 there were a number of articles in various computer trade journals, on the 25th anniversary of the IBM PC. 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 in 1999. It properly acknowledges his system, the Altair, and CP/M as part of the IBM-PC story.

    Early CP/M, PL/M and DRI history

    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 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. In 1974, Kildall migrated PL/M to compile for the 8080 when that processor was in development {Kildall June 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-74, Kildall wrote a floppy disk operating system in PL/M for the 8080. Portions of that OS included software tools previously written, such as an editor previously used for paper tape files later called "ED". The OS was to run on his Intel Intellec-8 system, probably upgraded with an 8080 processor. He acquired an 8-inch floppy drive from Shugart Associates, and Kildall built a floppy controller. But the controller did not work until it was "completed" (or replaced) by Kildall's U. of W. faculty colleague Dr. John Torode. 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 1983 BYTE account, he says "CP/M was completed in 1974." In another account which quotes Kildall, he says "the first CP/M prompt appearing on my used Teletype in 1974". However, in a private discussion with Dr. Torode, Torode's recollection is that he replaced Kildall's controller with his own design from years prior.

    At some point Kildall offered CP/M to Intel. When Intel declined interest, Kildall licensed it to others in 1975, as Kildall cites in his Jan 1980 DDJ account. 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.

    These events are referenced in "Dr. Dobb's Journal" during 1976, in a Jan 1977 ad for Digital Systems in BYTE, and in the Kildall article in DDJ for Jan 1980. 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.

    CP/M development

    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.

    CP/M in general release

    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.

    Early Versions of CP/M

    Background

    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 into January 2007. Details are described at the end of this section as linked.

    1975 "Public Domain" CP/M?

    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.

    CP/M 1.2, 1.3, and IMDOS

    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.

    See my CP/M development section to get the details and links to first-person accounts and references to original documents.

    CP/M 1.4

    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.

    CP/M 2.0, 2.2:

    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.

    CP/M version and serial numbers

    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.

    Links and references:

    More background about Kildall, Torode, PL/M, Intel

    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.

    IMSAI, DRI, Kildall materials and sources

    DRI original product documents, and code on diskettes, provide dates for various versions of CP/M. Some of these are described on my DRI products Web page.

    IMSAI references:
    IMSAI original documents and diskettes from my IMSAI document collection
    IMSAI's Todd Fischer's email interview with Joe Killian about Kildall, Glenn Ewing and IMSAI's IMDOS development.
    my summary of IMDOS and CP/M development from comp.os.cpm discussions of June 2006;
    An early version of IMDOS is at the "unofficial" CP/M Web site;
    various posts and emails from Todd Fischer as quoted or referenced on my IMSAI Web page.

    Histories of Gary Kildall

    A early history of Gary Kildall is in  Michael Swaine's "Dr. Dobbs Special Report" of Spring 1997 at the Web site linked. Swaine wrote many times about Kildall, including the book "Fire in the Valley" which I discuss in detail below.

    A copy of "From backyard to big time; the history of CP-M" By: Thom Hogan, Creative Computing Vol 9 #11, Nov 1983; is at the Web page linked here. This site has other Creative Computing articles.

    An account of Kildall's early work, written by Sol Libes apparently in 1995 as "The Gary Kildall Legacy", is discussed elsewhere on this page.

    Upside magazine, a business-and-technology publication which filed for bankruptcy in 2002, published in Nov 1994 (after Kildall's death) an unflattering account of Gary Kildall's later years called "Fatal Flaw" It was written by G. Pascal Zachary, a Wall Street Journal reporter and technology author. The December 1994 issue had a letter to the editor about Kildall, written by Rich Roth . Roth says he, Roth, was the author of CDOS for Cromemco, among other claims; Roth has similar claims posted elsewhere on the Web. Roth's letter says: : "In 1976, myself and Ed Hall at Cromemco tried to get Kildall to work with us to add flexibility in CP/M to handle new 5-1/4 inch disk drives and [Kildall] would not even meet with me....I ended up writing a new operating system called CDOS...". Issues of drive support are consistent with changes from CP/M 1.2 to 1.3 to 1.4 at IMSAI. Some of Cromemco's CDOS operating system manuals, in later but not earlier editions, refer to a license with Digital Research specifically in order to use features of CP/M V1.3.

    "digitalresearch.biz" is a Web site dedicated to Dr. Gary Kildall, CP/M and Digital Research history, and the employees of DRI. That site reports a private reunion of DRI employees which occurred September 4th 1999. A document on that site describes the reunion in photos, and includes a brief history of Digital Research and early CP/M development. It and other documents on the site, reference 1974 as when CP/M first ran, and has other information. The site is apparently owned by "Digital Research - MaxFrame Corporation". Most documents and information on the site are no later than 2005 but some personal portions were were updated in 2008 so the site is apparently not "dormant".

    Early DRI references in Dr. Dobbs Journal, Byte, elsewhere

    pre-DRI Kildall work

    "A Heathkit method for building data management systems". Gary Kildall, Naval Postgrad. School, and Earl Hund, Univ. of Wash. April 1971, SIGIR '71 Conference publication, p. 117-131. Kildall and Hunt describe how to structure a data (file) storage and retrevial system between memory and disk storage. "Heathkit" refers to a modular approach using a "kernal package" of subroutines. These were methods intended to produce multiple applications from a well-built set of components: subroutines and data structures. With these methods, Kildall built an APL interpreter and a data retreival systsem for a Burroughs B5500; apparently these were written in Algol. The latter was not a general file system, but a texted-base data system.

    The summary to this paper is notible for what it suggests about Kildall's programming philosophy: "Building complex systems requires sophisicated tools. The Heathkit approach is an attempt to make it easier to program complex programs that are easy to maintain and understand. Basically, the approach will work if many systems can be designed with the same tools." He stressed that using such tools, the projects described were completed by persons "without any substantial background in systems programming".

    "Algol-E: An experimental approach to the study of programming languages". Gary A Kildall, Alan B Roberts. Naval Postgrad. School. pub. March 1972, SIGCSE '72 conference papers, p. 127. Kildall and Roberts describe the Algol-E compiler written for the Burroughs B5500, constructed using XPL compiler generator system, a common software package of the era.

    "High-level language simplifies microcomputer programming", by Gary A. Kildall, Naval Postgraduate School; Electronics magazine, June 27 1974, pgs 103-109. Kildall discusses Intel's PL/M for the 8008 and 8080. This was written before CP/M was completed, as Kildall makes no mention of any floppy disk operating systems as he does in his later NCC publication in arly 1975. The earlier PL/M 8008 version was Fortran programs PLM1 and PLM2 with 8008 interpreter Interp/8. The then-recent 8080 PL/M version was programs PLM81 and PLM82, with 8080 interpreter Interp/80. An example for the 8008 version, compiled to run on the Intel MCS-8 development system (Intellec 8) or SIM-8 single-board 8008 system, is described. As with the 1975 NCC paper, Kildall does not take credit for Intel's PL/M.

    "Microcomputer software design - a checkpoint". Gary A Kildall, Naval Postgraduate School. AFIPS Conference Proceedings 1975 National Computer Conference (NCC). p 99-106. In his introduction, Kildall contrasts hardware development of microprocessors as logic elements, versus software development in the minicomputer world. Kildall's bridge between these is to use cross-products which run on minis or mainframes but which test or produce code for microprocessors. This leads to a discussion of high level-languages for microprocessors, of which there are only two at the time (from an independent survey). He mentions National Semiconductor's PL/M+ for the IMP-16 and PACE microcomputers, to be available in mid-1975, as "basically compatible" with Intel's PL/M. In the rest of the article, Kildall describes Intel's PL/M complier, "available since mid-1973", with an hardware and programming example of a diver's computer for depth and time, as implemented with an 8008 and later 8080. 8080 PL/M code is shown. (He does not take credit for either PL/M or PL/M+ in this article.)

    The article describes (p 102) what may be the CP/M system Kildall developed, as follows. "One such computer system, includes a floppy disk operating system, which implements a named file structure with dynamic disk allocation on multiple disks, sequential or random access, and optimal disk arrangement strategies. When combined with the system's loaders, language processors, editors, and debuggers, the resulting facility rivals that of most time-sharing services for microcomputer program development. All software modules are written in PL/M including basic file management subroutines (3K), transient console command handler (2K), and various utility programs." The language processors include a mention of BASIC with floating point, "written in PL/M (5K)".

    Appopos of the National PL/M product, Kildall says (p 102) this systems software will "execute on Intel's 8008 and 8080 machines, as well as National's IMP-16 and PACE microprocessors with little modification". In the conclusion of this paper (p 103) he says "National's PL/M+... will be available in mid-1975 as an integral part of their floppy disk-based development system". These points suggest Kildall may have implemented National's PL/M+ cross compliler, and possibly influenced their floppy-disk OS, but I have no direct evidence nor further information about National's efforts.)

    Dr. Dobb's April 1976: "First Word on a floppy-disc operating system"

    By DDJ editor Jim Warren: "We have the first tidbits of information on the floppy-disc operating system to which we have alluded to in past issues...the system, called "CP/M", runs on an 8080. It is available from Digital Research [Pacific Grove CA PO box]. Its user interface is patterned after that of the DECSYSTEM-10. The file commands include RENAME, TYPE, ERASE, DIRECTORY, LOAD, and auto-load/execute facility (type the name of an object file; it will be loaded and begin execution)...An Editor is included that has somewhat the flavor of TECO. There is a PIP facility that allows easy transfer of files to and from any available device...The system is written in PL/M...The system is sufficiently modular that its designer feels he can easily modify it to operate on most floppy-disc drives and with most floppy-disc controllers."

    "This system already exists and has been in use for over a year. [italics by author]...It is expected that Digital Research will offer all of the parts for an inexpensive floppy-disc system, ready to build (kit) and/or plug-in (assembled) to an IMSAI or Altair microcomputer. These "parts" consist of CP/M, the operating system; a floppy-disc controller; and floppy-disc drive(s). Pricing is still tentative, however these are the conservative estimates:
    CP/M User's Manual + Editor's User's Manual + CP/M Interface Manual ...$15
    Extensive Systems documentation package...$35
    Formatted, verified "loaded" disc.....$20
    Floppy-disc controller.....$100-$350
    Floppy-disc drives....$550-$650"

    Dr. Dobb's Aug 1976: "The time for Floppy's is Just About NOW!" by DDJ editor Jim Warren

    ...The best [floppy] system we know of...is available from Digital Systems, Livermore CA (ask for Dr. John Torode). This is the same crowd that built Gary Kildall's original floppy disk interface over two years ago. ...Dr. Kildall's fancy, DECSystem-10-like operating system - called CP/M - will run on DS's hardware. CP/M have been in use for over two years in a production and instructional environment.....Dr. Kildall's CP/M is available from Digital Research, for $35-$70 depending on the level of documentation desired. The software comes in the form of a "loaded" disk, including an editor or two, an assembler or two, a PIP, a debugger, and who knows what else (it grows from month to month).

    Dr. Dobb's Nov/Dec 1976, p 51: "Upgraded CP/M floppy disc operating system now available"

    Published as an information item without byline: "...Previously available only to OEM's, CP/M has been in existence for over two years in various manufacturers' products, and thus has had extensive field testing. The overall operation of CP/M closely resembles the standard features of the DEC System-10." The article describes BDOS and CCP with its commands; the system programs PIP, SUBMIT, ED, ASM, DDT, LOAD, DUMP and SYSGEN. The manuals are CP/M Features and Facilities, Editor, Assembler, Debugger, Interface Guide, and System Alteration Guide. "The works" with diskette is $70.

    Published on the same page is a letter from Robert Swartz of Illinois, dated Nov 1 1976, who says he bought a disk operating system from Digital Systems and Dr. Torode. He describes it as "running for nearly a year now and have had no trouble with it".

    BYTE magazine, January 1977, p 128: "Digital Systems" small ad.

    "Floppy disk system, completely assembled unit, $1595.00...Shugart drives and DIGITAL SYSTEMS FDC-1 controller...interface to the Altair/IMSAI bus...The powerful CP/M Disk Operating System, written by the originator of Intel's PL/M compiler, is available for only $70. Systems have been operating in the field for over two years." from "Digital Systems, 1154 Dunsmuir PL, Livermore CA".

    "A simple technique for static relocation of absolute machine code" by Gary Kildall, DDJ ("Dr. Dobb's Journal"), #22, Vol.3, No.2, February 1978, pp.10-13. Kildall describes how to relocate 8080 object code without referring to the source. One assembles two files to Intel HEX format (a standard option); one ORG'ed to 0000H, one ORG'ed to 0100H. An algorithm, described, looks at both files and sees where the code has bytes which are different by *one*, suggesting the reference is the upper byte of a 16-bit address. One can then add an offset to relocate the code to any other 100H ("page") boundary. Differences other than one are treated as an error. Kildall describes this with reference to CP/M, which can be "resized" to fit available memory during system generation; and DDT which is loaded to the top of available TPA memory when in use.

    PL/M-like products, not from Kildall

    There were a number of PL/M-like products in the mid-1970's. Motorola advertized MP/L for the 6800 in the Feb 1976 issue of Computer Design (p 136) as "a subset of PL/I". Signetics advertized PL/M for the 2650 in the June 1976 issue of Computer Design (p 124) as "an extension of Intel's PL/M (tm). Called PLUS...a 32-bit compiler." Kildall himself mentioned in a NCC 1975 article (see above); National Semiconductor's PL/M+ for the IMP-16 and PACE microcomputers, calling it "compatible with PL/M".

    A survey of microcomputer software in IEEE Spectrum by for October 1974 (Falk, pgs 80-81) referenced by Kildall notes for Toshiba's TLCS-12 processor that a "higher level language similar to PL/M is under development". Falk discusses PL/M and says that tests indicate "a PL/M program can be written in less than 10 percent of the time..[of] assembly language".

    Kildall's DDJ 1980 account

    The most direct account of CP/M is in the article by Kildall, in Dr. Dobb's, No.41 JAN 1980, Vol.5, No.1, "The Evolution of an Industry: One Person's Viewpoint". Thanks to Emmanuel Roche for this reference.

    Kildall indirectly dates his early CP/M work. He says that by 1973, he had provided Intel with PL/M for the 8008 and later the 8080, as cross-compilers running on "timesharing computers". A "resident compiler would be the next step". Kildall then obtained on date unknown a used floppy drive (via Dave Scott of Shugart Associates), but he said he failed to complete a hardware controller for it. He wrote: "Between projects, I put together first CP/M file system, designed to support a resident PL/M compiler", by using his "Interp" software simulator, "to the level of primitive disk I/O". (Note the earliest necessity of separation of disk I/O from the operating system! - Herb). This dates the first coding of CP/M as sometime in 1973.

    "Shortly thereafter, in the fall of 1974," wrote Kildall, "John Torode became interested in the project. I offered as much moral support as possible while John worked through the abberations of the IBM standard to complete one of my aborted controllers. Our first controller was a beautiful rat's nest of wirewraps, boards and cables (well it was at least beautiful to us!) which, by good fortune often performed seeks, reads and writes just as requested." He describes loading the paper tape of CP/M and then, "to our amazement, the disk system went through its initialization and printed the CP/M prompt at the Teletype". After a "few nervous tests", Kildall says he and Torode "retired for the evening to take on the easier task of emptying a jug of not so good red wine while reconstructing battles, and speculating on the future of our new software tool". Kildall does not date this event.

    Kildall continued: "In the months that followed, CP/M evolved rather slowly" as his client Intel halted their software development. "Meanwhile," writes Kildall, "John Torode redesigned and refined our original controller and produced his first complete computer system, marketed under his company name, Digital Systems (which later became Digital Microsystems). The first commercial licensing of CP/M took place in 1975 [my emphasis] with contracts between Digital Systems and Omron of America for use in their intelligent terminal, and with Lawrence Livermore [National] Laboratories where CP/M was used to monitor programs in the Octopus network." (In a personal discussion in 2008, Dr. Torode had a slightly different description of his work with Kildall.)

    Kildall wrote: "Little attention was paid to CP/M for about a year. In my spare time, I worked to improve overall facilities, and added an editor, assembler, and debugger which were predecessors of the current ED, ASM, and DDT programs. By this time, CP/M has been adapted for 4 different controllers."

    Kildall goes on to describe work with IMSAI in 1976 for CP/M V1.3; Kildall credits his IMSAI work as "evolving" the notion of a separate BIOS. Discussions "at the same time" with Jim Warren, the DDJ editor, led to the introduction of CP/M 1.3 for sale "to the general public" by "a new company called Digital Research". Kildall's work with IMSAI is discussed elsewhere.

    Kildall's 1981 BYTE account

    Kildall wrote a BYTE article in June 1981 titled, "CP/M: A Family of 8-and 16-Bit Operating Systems". He provided a history from the early 1970's through 1981 for his language and operating system developments and products, and their historic predecessors. In that context, for instance, he says that "MAA" (his consulting company) wrote PL/M for Intel. "PL/M", he describes, "is a refinement of the XPL compiler-writing language which is, in turn, a language with elements from Burroughs Corporation's ALGOL and the full set of PL/I." (Kildall wrote an ALGOL-E compiler for teaching use in 1971: his students later wrote the ALGOL-M compiler for CP/M.) "The first substantial program written by MAA using PL/M was a paper-tape editor for the 8008 microprocessor, which later became the CP/M program editor, called ED."

    He notes that MAA proposed to Intel a "CP/M (Control Program for Microcomputers), which would form the basis for resident PL/M programming.... But the use of PL/M on larger timesharing computers was considered sufficient, and the CP/M idea was rejected. CP/M was, however, completed by MAA in 1974." The article also describes MP/M, CP/NET, his PL/I. The 1981 article discusses 16-bit processors, which Kildall notably calls "already outmoded, and all serious manufacturers are pushing 32-bit machines". CP/M-86 and MP/M-86 are barely mentioned. The IBM PC was announced in 1981.

    "Fire in the Valley" references

    Fire in the Valley was first published in 1984 (ISBN: 0881341215) by Osborne/McGraw-Hill. Written by Paul Freiberger and Michael Swane, it's a compilation of early personal computing history with many first-person accounts. References notable to Kildall and CP/M are excerpted below. Unfortunately, the book's accounts jump back and forth in time, and so I'm obliged to quote out of page order to restore a chronological sequence. References below are from the first edition; an "updated edition" (ISBN: 0071358927) or "collector's edition" with CD (ISBN: 0071358951) was apparently published after year 2000.

    The book's earliest mention of Kildall (p 136 f) describes Kildall's early work with the 4004 and, starting in 1973, with Intel as a consultant. "Soon he was dabbling with Intel's first 8-bit microprocessor, the 8008...In a few months he had created a language called PL/M, a version of a mainframe language called PL/I and significantly more elaborate than BASIC." Kildall received an Intellec-8 from Intel as a result, which was later upgraded from an 8008 to an 8080. "Kildall set out to get a disk drive and did a little programming in exchange for one from Shugart....Kildall tried to design [a floppy] controller several times. He also sought to create an interface [for]...a cassette recorder. The project failed....Finally, at the end of 1973, Kildall approached John Torode, a friend of his from the University of Washington...Torode got the drive to work."

    "Meanwhile, Kildall polished the software. At one point late in 1973, during his months of frustration with the disk drive, Kildall had written a simple operating system in his PL/M language. It took a few weeks to complete, and he called it CP/M, for Control Program/Monitor."

    Given the above, it appears that the first actual operation of CP/M was sometime after late 1973. But Kildall himself says in 1980 that Torode only entered the picture "in the fall of 1974" to complete the hardware controller: Kildall did write software earlier but could not run the diskette file I/O code until the disk hardware was operational.

    Swane's describes (p. 138) that some of CP/M's "enhancements" and "first commercial tests" were done for Ben Cooper's "Computer Cast", a coin-operated machine to cast horoscopes. Systems tested in San Francisco did poorly, "the machine was a failure". But the text explains that what was actually tested and developed were what became CP/M's editor, assembler, and debugger; as well as a BASIC interpreter "that allowed him to write the programs for the astrology machine". In my (Herb Johnson's) opinion, this device was not a CP/M implementation (it was ROM-based), but in effect a test bed for some later CP/M tools. No date is given for this work or when the machines were in use.

    (p. 58) "by mid-1974 Torode and Kildall had assembled a microcomputer and a disk operating system of sorts....They sold two machines to a San Francisco Bay Area computer terminal company called Omron, but sold only a few others before the Altair announcement. They then apparently pursued their interests independently. Torode built computers under the name Digital Systems and later Digital Microsystems, and Kildall wrote software as Intergalactic Digital Research and later Digital Research." The MITS Altair 8800 was announced in Popular Electronics in January 1975.

    (p. 139) "At first the Kildall's called their company Intergalactic Digital Research...Digital Research's earliest customers received some startling bargains. For instance, Thomas Lafleur [later of GNAT Computers]..made one of the first corporate purchases of CP/M...for $90.."

    (p 69) "IMSAI bought an operating system called CP/M from...Gary Kildall, the same man who had sold computers with John Torode to Omron. CP/M was brand new. Kildall had given [Rob] Barnaby [of IMSAI] the third copy in existence. [IMSAI marketing director Seymour] Rubenstein negotiated with Kildall and his partner and lawyer, Jerry Davis, and closed the deal for a flat $25,000." Other references in the text note that Rubenstein joined IMSAI in February 1977, and "when Rubenstein arrived, Barnaby was negotiating two software contracts with people from the Naval Postgraduate School..", a likely reference to Kildall and Gordon Eubanks.

    MS-DOS as "derived" from CP/M?

    It's been repeatedly argued that the original MS-DOS for the IBM PC, bought by Microsoft from Seattle Computer Products and written originally by Tim Patterson, was "derived" in some way from Digital Research's CP/M 2.2. The arguement is how the "derivation" occurred. In July 2007, a Seattle court looked at this issue as a result of Patterson's lawsuit against author Sir Harold Evans who argued as much in his book, "They Made America", which featured Gary Kildall. This report of the judge's ruling by Andrew Orlowski in the UK Register, says that the judge agrees that functions of MS-DOS were copied from corresponding CP/M functions, and that Evan's claims were largely factual and without malice.

    Dr. John Torode and his associates

    A brief biography of Dr. John Torode is elsewhere on this page. His links to CP/M are that he completed (or replaced) Kildall's floppy controller for Kildall's first CP/M implementation; and he was the first "licensee" and seller of CP/M.

    Torode published papers with Theodore Kehl and Lawrence Dunkel; they also published works on digital design. Dr. Theodore Kehl was a 1961 Ph.D from the University of Madison, WI and was a professor of physiology and biophysics at the U of Wash. He may have been a founding member of the U of Wash. Computer Science Department in the mid-1960's. In 1974 Kehl was a Computer Science associate professor at the University of Washington with Dr. Torode. Lawrence Dunkel was a member of the Physiology and Biophysics Dept. in 1974. Kehl and Dunkel were digital designers and programmers. Subsequently, Dr. Kehl has several US and European patents in his name (some with David N. Cutler), assigned to DEC and Microsoft, dating from the 1990's and with a 2005 date.

    "The Logic Machine: A modular computer design system". John Q Torode and Theodore H Kehl; IEEE Transactions on Computers, Vol C-23, no. 11, November 1974. Written in Nov 1973. In the era, computers and digital logic were often designed as a collection of "logic modules". There were software tools, run on mainframes, to facilitate development. Also, computer scientists studied the principles behind these modules and how to use them. Torode and Kehl, in this article, describe the modules behind their microprogrammed computer design: a control processor, a memory manager, a floating point unit, a hard disk management unit, and other "functional units". They refer to actual hardware designs which were implemented, namely a display terminal and a floating point processor.

    "Design Automation for Custom Hardware in Computer Research", by Theodore H Kehl, Christine Moss, Lawrence Dunkel. IEEE Transactions on Education, August 1974. Written in Oct 1973, this paper describes a semi-automated hardware wirewrap system designed and at use at the University of Washington. Combined with CAD software, "this system allows graduate students and faculty [to] experiment with new computer devices not available in the marketplace". This system was used to build the display terminal and floating point processor described in the "Logic Machine" article above.

    "Simplified Floppy-Disk Controller for Microcomputers" by Theodore H Kehl, Lawrence Dunkel. Computer design, June 1976, p 91-7 Absent a description of Torode's or Kildall's floppy controller, this article by Torode's colleagues which describes a controller design and operation may be informative. The article describes a simplified version of the IBM 3741 format (identical to the common "SSSD" 8-inch format), which reduces hardware complexity, improves error recovery, and increases data capacity. Capacity is increased by using larger sectors (8 vs. 26), smaller or no gaps, and reduced redundancy per sector. The article implies use of the Shugart 901 diskette with 32 hard sector holes. The controller design consists of several 74XXX series chips: 8-bit multiplexers, adder, and shift registers. There is no schematic but there is a block diagram. The checksum is a simple 16-bit sum and not a CRC. Flowcharts show general read/write operations and error recovery.

    Digital Systems's FDC controller products

    See this Web page for descriptions and documents about Torode's floppy controller products.

    2008 discussion with Dr. John Torode

    In February 2008, on a Web page then under development about Dr. Torode's Digital Systems products, I referred to Kildall's published statements that Kildall's floppy controller was "completed" by Torode. In personal discussion with Dr. John Torode in March 2008, he had this to say: "You state that I got kildall's floppy controller working, but my memory is that I gave up quickly and produced a new design (based on my thesis, as you say) and that was the only floppy controller that we actually got to work." He also noted: "Gary and I made the first software/hardware (complete system) sales jointly under my company (because I had one!) My company, digital microsystems, was started (in seattle) while i was in grad school as digital systems, in 1967. That name was taken in california so we changed to digital microsystems in some year i forget."

    Lawrence Livermore Labs and CP/M?

    In February 2008, I corresponded with Jeffery W. Shook about the use of CP/M by Lawrence Livermore National Labs (LLL or LLNL). Jeff had researched this out over the prior few years, but had found no clear mention of "CP/M" in the Lab's publications. He kindly provided me with his notes. Those notes and our discussion are on this Web page.



    Contact information:

    Herb Johnson
    New Jersey, USA
    To email @ me, see see my ordering Web page

    Copyright © 2008 Herb Johnson