CP/M and Digital Research Inc. (DRI)

This document copyright Herbert R. Johnson 2011. Updated Mar 23 2011.
Contact and email information can be found in this notice.

The Home page for all my Digital Research Web pages and information is at this link. That page replaces this page as a "central" or "home" page, and that page has the most current links to other DRI pages.

The first CP/M systems and many others were S-100 bus based systems. To learn more about S-100check my S-100 home page.

Introduction

As of year 2009, Dr. Gary Kildall's operating system called CP/M is 35 years old. In 2004, I decided to describe that history on my Web site. I've worked on that through 2009. See my DRI home page for links to Web pages about that event, and about about persons, companies and developments related to Digital Research and/or CP/M in the S-100 and microcomputer world of the 1970's.

Contents of this Web page:

  • Editorial: What is CP/M? Where is it? How do I use it?
  • Digital Research and CP/M ownership: history and status today
  • CP/M products and the "unofficial CP/M web site"
  • early DRI OS's, brief descriptions
  • DRI manuals and disks

    On another page you can find:

  • What is CP/M?
  • where can I get CP/M? what are the alternatives?
  • UNIX versus CP/M?
  • How do I run CP/M on my computer?
  • How do I write my own version of CP/M for my own hardware or computer or emulator?
  • Where can I get CP/M and its software?
  • CP/M emulators under MS-DOS, Windows, Linux

    A description of CP/M-80 Version 2.2 programs and features is on this Web page.

    Related DRI information can be found at the pages linked from my DRI home page. A page of Web pointers to sites related to CP/M is my S-100 Web links page.



    Editorial: What is CP/M? Where is it? How do I use it?

    Here's a bit of editorial from me about CP/M for nubies.

    CP/M was first written for 8080 based computers by Digital Research; that history and subsequent OS products for the 8086 and the 68000 are described elsewhere on this page. CP/M 2.2 for the 8080 as originally provided included the OS, a text editor, an assembler for 8080 code, and sources for the BIOS; and a set of manuals for these programs and the OS. Later versions added to these tools, and added features. I strongly advise obtaining the manuals appropriate to the CP/M you are using and reading them. The so-called unofficial CP/M Web site is where you get these. They have a license from the current owner of that intellectual property; CP/M is not abandoned software and not in the public domain.

    People new to CP/M in the 21st century often expect to find a computer and an operating environment something like Linux or Windows: everything ready to go, hard drives, networking, graphical windows, and so forth. But CP/M was written in the mid-1970's before most everything like that was available on inexpensive computers. CP/M assumes some serial or parallel ports, a printer, a text (not graphical) serial terminal, and a floppy disk drive. That's it. It assumes you have to install it onto a brand new computer by writing the "basic I/O system" or BIOS yourself - and it gives you the tools to do so. These tools are by today's standards very minimal: a text editor, an assembler, a copy program, a debugger. But they were sufficient, and they, and the manuals, were included with the OS. That system and methodology allowed CP/M to dominate computing in the mid 1970's and for years afterward. Later CP/M versions had more features and a few more tools, but the principle of "here's what you need to put this OS on your own computer for the first time" persisted.

    One difficulty in building up CP/M is in getting files and programs into your CP/M system. You can type in text or source code with the ED editor. You can enter in hex codes (binary) using DDT, the debugger. For moving files via serial link to and from a CP/M system without a serial transfer or "modem" program, you can start with PIP to transfer a simple serial program, then run THAT program to move something with more features. PIP is the CP/M copy program, and you can specify the console as the source and a file as the destination. Typically you send the file as an Intel hex format set of records. ASM also creates Intel hex files, if you copy a source code file. DDT will load a hex file and save it as binary. Most of this is described in the CP/M manuals, as they describe how to use CP/M utilites to move CP/M to a new machine. ONe hint: the Intel hex format includes a checksum per line, so if your serial connection is flaky or intermittant, you'll see some failures immediately. (all these terms of use are documented in the CP/M manuals.)

    Part of the "fun" of CP/M is to use these tools to work within the hardware of your system; or to use 1970's programming tools and methods even on more modern hardware. Of course some people may simply want to use CP/M as a tool, as their interest is in some bit of hardware or kind of software. Even so, at times it may be necessary to dig into CP/M and its earliest tools to get out of some jam, or to bootstrap something new. So it's good to know the basics of CP/M and its tools and methods.

    If you want CP/M programs, or CP/M emulators, or Z80 and 8080 emulators: there are a number of CP/M collections on various Web archives, and emulator Web sites. A Web search for CP/M archives, files, programs (or specifics like Lisp) will likely find them. Or if it's a commerical computer, look for a community of owners for the brand of system you have. Some links to them will be on this page.

    Digital Research and CP/M ownership: history and status today

    DRI was founded in 1975 by Gary Kildall and his wife to sell CP/M. But the first sales of CP/M were through Kildall's colleague John Torode and his Digital Systems company. See my DRI home page for links to several pages which discuss those earliest days.

    Digital Research was sold to Novell in the 1990's; DRI assets went through a number of companies after that sale. I describe that history on another page. Most recently (as of 2007), DRI assets are owned by DrDOS Inc. with Brian Sparks as CEO. However, there is also an "open source" version of DR-DOS released by a previous owner, Caldera Systems, as "Caldera Open DOS" (see below for Web links). There are also various open-source variations derived from the Caldera release. In addition, a few former DRI products were licensed and became products of other companies. These include GEM, a graphics interface; and REAL/32, a descendent of DRI "concurrent" OS's.

    But the earliest versions of CP/M are available for personal use under license by Sparks at the "unofficial CP/M Web site" of Gaby Chaudry. Later DRI products are not included in the license from Sparks, and he continues to offer some DR-DOS-based products through the present day.

    See my page on early CP/M development.

    See my page on DRI history and products of the 1990's and since

    CP/M products and the "unofficial CP/M web site"

    The unofficial CP/M web site is an on-line archive of the earliest CP/M products, for the 8080 and 8086 processor. Since Jan 2001 that material has been hosted at http://www.cpm.z80.de. In the 1990's, Tim Olmstead was instrumental in obtaining permission from the owners of CP/M, to allow Tim to archive and freely distribute that material. (That permission document probably looked like this one, from Peter Schorn and the SIMH project.)

    Many Digital Research CP/M products were accumulated and archived by Tim Olmstead with the permission of Caldera's CEO Brian Sparks, but Tim was not otherwise affiliated with Caldera. He gathered the code from various hobbyists and enthusiasts - Caldera never had all the original material - and Tim put it up on his site. However, shortly after Sept 11th 2001 his CP/M section was shut down, when Tim Olmstead died of cancer on that date and his license likewise ended. Subsequently, as of Oct 22 2001, the Lineo Inc. (and later DR-DOS Inc.) CEO Brian Sparks provided another license to Gaby's site, to continue access to that material.

    Since that time, that material is maintained by Gaby Chaudry on her CP/M archive Web site, and mirrored elsewhere. The Web site also has a CP/M and hardware discussion forum (mostly in German).

    early DRI OS's, brief descriptions

    Digital Research Inc. OS's and related products

    Below is a LITTLE bit of information about the various operating systems offered or developed by Digital Research, and some related OS's.

    IMDOS was an OS product for IMSAI (IMS Associates Inc.) for their earliest diskette-based systems, but strongly derived from CP/M V1.2 by Kildall and others. This is noted on IMSAI.net's Web site in an interview with an IMSAI engineer of the period. See my early CP/M notes ; for more discussion of IMSAI and Gary Kildall.

    CP/M is a single user single task operating system, generally released as versions 1.3, 1.4, 2.0, 2.2, 3.0, and 4.0. Early versions are listed in detail on this page. CP/M was first written for the Intel 8080 processor as early as 1975. It was ported in 1981 to the 8086 or 8088 processor (including the IBM PC) as CP/M 86,. and the prior version became CP/M 80. Versions for the Motorola 68000 processor were known as CP/M 68K; apparently a CP/M-8000 version for the Z8000 processor was developed by or for Olivetti. CP/M 3.0 or CP/M Plus supported 8080 based CP/M 2.2 programs and also used banked memory and managed swapping of programs or program sections. CP/M-86 Plus is discussed below.

    Around 1984, DRI developed some customized versions of CP/M 2.2 in Z80 code for a number of computer manufacturers. They called it Personal CP/M version 1.0. Read this bit of Personal CP/M research I did. There's a later 8086 OS of the same name as described below.

    MP/M was an 8080-based OS for "multiple terminal, multi programming access"; each user at a terminal could run one or more programs, including programs compatible with CP/M 2.2. The XIOS was the code area for specific hardware support including banked memory, interrupts including a timer, terminal and file system I/O. Spooling of printing and user task switching were supported. MP/M II and MP/M 1.1. were updates which incorporated CP/NET support.

    "MP/M-86 is an [8086] multi-user, multi-tasking OS....However, MP/M-86 was never released in an IBM PC version. MP/M-86 was [only] a generic product...from DRI's perspective. The [DRI] target hardware was...an Intel development system." (But some people claim DRI worked with Compupro and Gifford to develop or fine-tune MP/M-86.) The various versions floating around the 'Net .....will not run on an IBM-XT clone." "Concurrent CP/M was derived from MP/M [86]..much of the code was the same... but the OS'es are different." [quotes from various comp.os.cpm discussions in 2005 and earlier.]

    MP/M 8/16 (sold with Compupro S-100 equipment) "loads a vector into an 8-bit Z80 slave board (SPU-Z), and picks up the 8-bit BDOS/XDOS calls, translates them to MP/M-86, and returns the results or does the operation, translated back to 8-bit BDOS/XDOS format. Thus MP/M-86 runs a process [written by Compupro?] that takes care of slave processor requests in that manner." [quote from a customer]

    CP/NET was an 8080-based DRI product to provide networking master/slave capabilities. The DRI manual says "CP/NET is a bridge between a microcomputer running MP/M II and a microcomputer running CP/M." Apparently the MP/M II system ran add-on features of CP/NET as a server; and the CP/M slaves or clients ran CP/Net as an OS add-ons. Features of CP/NET were incorporated into later DRI OS's and products.

    The apparent facts of Personal CP/M for the 8086, is that it was not a well-distributed release. It was only provided for several specific European computers by the manufacturers Siemens PG685 and PC16-20, Apricot PC. Binaries and some sources and manuals can be found at the CP/M unofficial archive. For a little more discussion, read this bit of Personal CP/M research I did.

    CP/M-86 Plus is a little controversial, as it was not generally released by DRI, but found its way into a few computer systems, and its code became part of later DRI products such as DOS Plus. Attempts at recreating "Plus" software and docs have been discussed for years in the late 1990's by Emmanuel Roche (aka French Luser), a participant in the comp.os.cpm Usenet discussion group. That was discussed again in comp.os.cpm in Sept-0ct 2004; a Web search of Usenet archives will find that discussion.

    Web research finds press release or articles of the early 1980's, saying that DRI was ending development of this product in favor of Concurrent CP/M 86. There are CP/M archived DRI of docs or software files referencing CP/M-86 Plus, or with embedded references to "CP/M 86 Plus". Further code, documents, and trade announcments at the time have come to light since 2004; and my conversations with Douglas Goodall and Joe Wein of DRI provide an account for what happened to "CP/M-86 Plus". They and others confirm that CP/M-86 Plus was available for the ACT Apricot (UK) and the Olympia PEOPLE computer. Apricot Web sites may have these available, as files or disk images. For example, John Elliot's Apricot Web site, shows a screen image for CP/M 86-Plus V3.1 for Oct 1983.

    On-line copies of docs, dated "Nov 1983, release 3" describe CP/M-86 Plus features such as polled interrupt drivers, clock tick support; 8086, 8088, & 8087 support; has a BIOS and BDOS, simple printer multitasking but "not [multitasking] as a general tool as under Concurrent CP/M". I saw no reference to RSX like extensions. Another DRI reference (copy) says "CP/M-86 Plus includes many new features representing a major improvement over CP/M-86 1.X." These references suggest that CP/M-86 Plus is developmentally between CP/M-86 and Concurrent CP/M; that is consistent with the end-of-development announcement I mentioned.

    Concurrent CP/M as initially released for the IBM PC was a single user 8086-based system which ran one of four programs by the user switching between virtual consoles. Later versions and versions for non-IBM PC's were multiple user via terminals. Later versions of CCP/M became "Concurrent DOS". [from comp.os.cpm discussions]

    Portable CP/M may be an internal DRI name, for their porting of CP/M to non-Intel processors. A C version of CP/M, but not its utilities, was created by 1982. The initial "port" was to the Motorola 68000 processor. Soon after, Zilog worked with DRI for a Z8000 port, which apparently was available for the Olivetti M80 computer. The name "Portable CP/M" or "P-CP/M" is mentioned in the sources, but apparently not with the released products. For more information, read this Web document of notes about portable CP/M and where you can find the sources today.

    CCDOS-86 (Concurrent DOS) was an MS-DOS compatible 8086 OS which also supported many MP/M 86 function calls. It runs on an IBM-PC compatibles and non-compatibles, and supports one or two users and up to four programs [so says the CCDOS docs].

    GSX was a DRI graphics support standard and set of programs which appeared with some DRI products; from about the time when CP/M-80 and CP/M-86 were popular products. GIOS (graphics BIOS) had the hardware drivers for bit-graphic, character display or plotter (line drawing) devices. GDOS provided a set of system calls for user's graphic programs. Features of GSX were later incorporated into the GEM environment. Check the Web, and the "GEM" section of this page, for GSX docs and early (and current) implementions.

    GEM was a DRI graphical user interface that was also licensed by a number of computer companies. DRI produced a series of GEM OS and application products for IBM PC's. The original GEM (GEM/1) led to a lawsuit by Apple for design infringment, and DRI changed the package accordingly and released GEM/2. Check the Web and this page for more info. As of 2005 there was current GEM open-source (OpenGEM) development across many platforms (PC, Atari, etc.).

    DRI also produced a number of OS's for the 80286 and 80386 market. Names and details are beyond the scope of this section, check this Web page and other Web sites for details. Some later prodcuts, and the final history of DRI product's ownership, are discussed on another Web page.

    Additional Web pages about DRI OS products

    A nice time chart of DRI products, with annotations, can be found at this site, by "Matthias Paul". Additionally, I've archived versions of of this chart as follows: A version from year 2000 as linked above; a 2006 version updated by JH at the freedos Web site; a description taken from a Club Dr-DOS site. Web links are contained within the documents.

    I found the FreeDOS Web site had an interesting time line of DRI products. The list seems to be comprehensive. Unfortunately there is no obvious link to this page from the FreeDOS home page, it's a "news item" with no obvious author. Bug the webmaster about this.

    I found some old seminar documents about DRI products on the site of Les Bell of Australia. One article, CP/M and Derivatives is a technical article which discusses basic features of most of DRI's OS products. Another article, Languages and software development, published in 1985, discusses languages of the era and specifics on DRI and MS language products. They are linked here with Mr. Bell's permission, he says "it's nice to see all that old gear still living on".

    DRI manuals and disks

    The ORIGINAL DRI documents I have in my archives, are listed on my DRI Web page on my S-100 Web site at this link. Contact me to obtain copies via my manuals copy service. I also have Morrow documentation including DRI's CP/M; and Compupro documentation including DRI's CP/M.

    Gaby's "unofficial" CP/M Web site is licensed from the owners of DRI assets, DR-DOS Inc. The site provides early CP/M files and docs for personal use, as I described above.

    Other Web links

    The "Computer History Museum" has a timeline of several computer companies of the 1970's. One of them is Digital Research Inc. Check this page of companies for DRI and other companies.

    my S-100 Web links page has descriptions of some useful CP/M programs and products written to support CP/M; and many Web links to site of CP/M interest.


    Contact information:

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

    Copyright © 2010 Herb Johnson