1975 "Public Domain" CP/M?

This document copyright Herbert R. Johnson 2007. Updated Oct 30 2007.
To return to my Digital Research page linked to this document, click here.
To contact me @ email follow this link.

Summary:

Dr. Gary Kildall developed in 1974-75 an early version of the CP/M operating system, during his development of PL/M. Some argue that a 1975-dated version of CP/M belonged "in the public domain" dueto Kildall's employment in a public institution. Kildall established his company, Digital Research, to license and develop the CP/M product line. A similar argument was given for Gordon Eubanks's BASIC-E; Eubanks was Kildall's student at the time. Eubanks clearly permitted the public release of BASIC-E. But he subsequently developed another version, CBASIC, which was licensed and sold by Eubank's company.

Both Kildall's 1975 CP/M PLM sources, and Eubank's BASIC-E, were put on a CPM User Group (CPMUG) disk #5 in 1977 for public distribution. But, the Kildall code was subsequently removed some time afterward. This is based on different descriptions of the contents of that CPMUG disk in some surviving CPMUG and SIGM disks archives, and other reports. A SIGM disk #15 in 1981 which cataloged and described some CPMUG disks, includes an explicit description of Kildall's CP/M files as a "public release". A few of those PL/M files have been recovered over time, and are available on some Web sites. Details and links are below.

Thanks to Steve Dubrovich and Udo Munk, among others, for discussions about these sources and compilers, with me privately and publically in comp.os.cpm during year 2007.

early code by Kildall, Eubanks

An account of Kildall by Sol Libes copyrighted in 1995, "The Gary Kildall Legacy", refers to Gary Kildall's and John Torode's early work on CP/M and of Kildall colleague Gordon Eubanks' creation of a BASIC interpreter. Libes says "Early versions of CP/M and the BASIC interpreter were in the public domain since it had been created at a publicly funded institution. Copies found their way to some other government contractors and agencies." Mr. Libes' article offers no reference for this statement.

Kildall wrote about the early development of CP/M in a 1980 article in Dr. Dobb's Journal, dating its completion during 1973 and 1974. Kildall was a faculty member at the Naval Postgraduate School and a Naval officer, as well as a consultant and provider of software to Intel. He says CP/M was offered to Intel; they declined to buy or license it. Kildall decided to form a company, Digital Research, to sell and license it himself. That article does not mention a public release. He does mention one early licensee, Lawrence Livermore Labs, which is relevant later in this discussion. I've found only one other reference to a "public domain" release, which is detailed below.

Gordon Eubanks was Kildall's graduate student at the school, and also a Naval officer. Eubanks wrote in a 1977 DDJ article that BASIC-E was public domain and available from him and others. Eubank's BASIC-E also appeared in the CP/M User's Group Volume 5 software distribution disk. Accounts after that time, and an interview of Eubanks himself, say that Eubanks developed and publically released a version of BASIC (BASIC-E), and then licensed a new version of BASIC (CBASIC) to IMSAI and others. BASIC-E code was clearly released to the public, while CBASIC was developed as a licensed product by Eubank's company "Compiler Systems". Further details of Eubanks's early work is on this Web page.

1975 CP/M code "distribution"

Kildall's 1975 PL/M-based CP/M sources were likely in the CP/M User's Group CPMUG disk #5, but at some subsequent point removed. There are "deleted" entries in that distribution's file list, which likely correspond to those same files. This was discussed in comp.os.cpm on Jan 2007 as led by Steve Dubrovich who performed that analysis. Some of Steve's comp.os.cpm Jan 2007 posts are quoted below, with my commentary in []'. Steve or others were apparently able to find a good "fit" between the size of the deleted files, and the size of the corresponding PL/M sources in discussion. Here's an exerpt from Steve's comp.os.cpm discussion:

A) The pre-DRI (1975) CCP.PLM and BDOS.PLM (which contain the integral
 bios, hardware interface for the Intel MDS.)  This is purported to have
 always been in the public domain.  It starts out with the bios portion
 but the bdos is further on.  Furthermore, the entire FDOS is delineated
 within the DISKMON procedure block, it is all in one procedure.  This
 is the Disk Monitor which evolves thru the subsequent versions into a
 general purpose operating system. 
 
 [The first few lines are as follows:]
 $Q=1
 $RIGHTMARGIN=80
 /* FDOS LLL V.3  11/21/75
    CON DEVICE 3 IS TI SILENT 700.
    OCT IS READER DEVICE 3 OR 4. */
 3200H: DECLARE BOOT LITERALLY '0H';
 
 
  /* C P / M   B A S I C   I / O    S Y S T E M    (B I O S)
 
                     COPYRIGHT (C) GARY A. KILDALL
                              JUNE, 1975
                                                           */
 
 DECLARE CONSOLE LITERALLY '00$00$10$00B'; /* READER IS OCT CHANNEL A.
 */
 DECLARE ECHO BYTE INITIAL (0FFH); /* ECHO CALL NO. 1.  SEE CALL 30 */
 
 
 DISKMON: PROCEDURE(FUNC,INFO) ADDRESS;
 [end of quote] 
 
 The LLL V.3 11/21/75 was pointed out to me to possibly mean the
 Lawrence Livermore Laboratory version. [by me, Herb Johnson, I believe. ;)]

These PL/M sources, deleted from the CPMUG disk 5, are available in part from the "unofficial" CP/M archive site. The sources are on the "Digital Research Source Code" page, under "operating systems", where it says EARLY CP/M SOURCE, which includes files CCP.PLM and BDOS.PLM.

Another version, which may be more complete, is available from Udo Monk's site. That PL/M and ASM code was compiled and patched by Udo during October 2007 (as reported in comp.os.cpm at that time), by an Intel version 2.0 PL/M cross-compiler in Fortran from 1975. That V2.0 compiler is on on Gaby's "Digital Research Source Code" page, Under "languages", under "Assemblers, compilers, linkers, etc." where it says PLM compiler source. Udo worked on refining these sources during Oct 2007, as discussed by him and others in comp.os.cpm. See Unix Z80 emulator Z80PACK Web site for additional CP/M sources and tools, and his Linux-based Z80 emulator.

Where did these files come from?

Subsequently in Oct 2007, Udo Monk posted in comp.os.cpm about CP/M in the "public domain", and later referred to it as "the 1975 sources". That discussion called to my attention two document files. Both are from an archive of archives: the 1995 Walnut Creek CP/M CD-ROM, with the Simtel CP/M archives including the SIGM disks and CPMUG disks of CP/M programs. Here's one Web link for a Walnut Creek CP/M CD archive..

One file is the SIG/M disk #15, with a list of files, and file descriptions of the CPMUG disk library including disk #5. A publication at the time, S-100 Microsystems, announced in mid-1981 that and related SIG/M disks (by volume number) just became available.

Udo referenced the SIG/M description of CPMUG disk #5 files in his comp.os.cpm discussion. Here's a link to that file in one archive. And, here's my copy of that file. Note this exerpt from that file, no author or date given:


CP/M SOURCE FILES

THE JUNE 1975 RELEASE OF CP/M IS IN PUBLIC DOMAIN.  THE PLM
AND ASSEMBLY FILES HERE ARE PART OF THAT RELEASE.

THE FULL RELEASE WAS:

		CCP.PLM
		BDOS.PLM
		PIP.PLM  (CALLED Z-PIP.PLM AS ADDED LATE)
		LOAD.PLM
		DUMP.ASM
		IOLIB.PLM

THESE ARE CERTIFIED BY GARY KILDALL TO BE AVAILABLE FOR
PUBLIC DISTRIBUTION FOR ANY PURPOSE WITHOUT RESTRICTION

However, the corresponding catalog file for the CPMUG disk #5 from the CPMUG disk archive, only has the list of files (including the entries marked "deleted"), and NOT the additional descriptions above or the description of the "CP/M SOURCE FILES". The CPMUG disk #5 does not have the ASM and PLM files listed above; the SIGM disk is of catalogs only, not files and programs.

The "CP/M User's Group" was started in the late 1970's by a group based in New York City; they distributed a set of CP/M diskettes from at least 1977 onward. An early mailing address is: "CP/M User's Group, 1651 3rd Avenue, New York, NY 10028", a Manhattan address. They were or became associated with Lifelines, a for-profit software distributing company who later published "Lifelines" magazine.

The SIG/M disk set was started in 1980, by a part of the non-profit Amateur Computer Group of New Jersey, Inc. (ACGNJ), a group called "Special Interest Group/Microcomputers". SIG/M was based in Iselin NJ, and still meets in Scotch Plains NJ. Sol Libes describes himself as the founder of ACGNJ in 1975, and president in its early years, on his history article on the ACGNJ Web site at www.acgnj.org (as of 2007). The ACGNJ is a founding sponsor of the Trenton Computer Festival (TCF).

Sol Libes, a long-time New Jersey resident, also published and edited a magazine, S-100 Microsystems, which covered S-100 and CP/M activities from 1980 to 1984, when the magazine was bought by Ziff-Davis. Libes started "Microsystems Journal" which ran from 1985 to 1988.

When were the 1975 CP/M files added and removed?

It's difficult in 2007 to find "original" CPMUG or SIGM files on the Web. Original CPMUG disks are rare; copies are less rare. Copies of files from these disks were available from dial-up CP/M systems at least by 1981, from reports in Microsystems magazine. And they were on government and university systems in the era.

The earliest Web archives of those collections are taken from mainframe servers. Namely, the OAK archive from a Washington University server in Oakland WA; the SIMTEL20 archive on a military DEC-20 server; MIT's early servers. These servers were taken down in the 1990's. The commonly available Web archives of these sites amount to those written to CDROM by Walnut Creek. Unfortunately, I've confirmed from two sources (Udo Munk, David McGlone) that Walnut Creek told them that Walnut Creek wanted to avoid including anything on their CP/M CD-ROM which was commercial or not public domain - consequently they likely deleted many files.

In Oct 2007, I posted in comp.os.cpm a link to this Web page. Jeffrey W. Shook posted the following on Oct 21 in reply:


Hello Herb,

I have a copy of [CPMUG] volume 5 which I received at a LICA
(Long Island Computer Association) meeting. This would have
been shortly after the volume was released. I can't remember
when that was however.

It was our custom for one or more users to bring their
computer to the meeting so that others could bring blank
floppies and have copies of the latest volumes made there.
I remember several occasions where I dragged my IMSAI 8080,
Digital Systems dual 8 in. floppy drive system, and video
display to meetings and used it to make copies. We normally
made image copies of the disks because using PIP to copy the
files took far longer.

Later when it became known that the CP/M source files were
deleted from volume 5 I used a sector editor to unerase the
files that were there. CCP.PLM, BDOS.PLM and LOAD.PLM were
complete and are identical to those available at the Unoffical
CP/M site. Z-PIP.PLM was badly corrupted because in the
process of copying volumes the floppy had been made bootable
and PIP.COM and COPY.COM placed on it. How I wish that had
not been the case. Earlier this year I made a disk image of
the volume 5 disk and in studying it found there may be
another piece of Z-PIP.PLM which was not unerased. I am now
checking to see if more can be recovered. IOLIB.PLM must
have been overwritten as there is no evidence of it.

In your WWW page at the link above it mentions that Udo Munk
reported that LOAD.PLM is broken and would not compile. The
actual problem is with the setup of the compiler. In the
excerpt from LOAD.PLM below the secret is the line "$I=5"...
That appears to be a compiler directive to include the
file from Unit 5 into the source at this point..." - Jeffrey W. Shook 

Jeffrey concludes that a portion of CCP.PLM may be an acceptable file, and he discusses how to use it. Udo Munk replied accordingly and posted that the "fix" seems to work for his CP/M PLM sources at his site.

I examined the Retroarchive.org image of the Walnut Creek version of these Simtel archives, to try to set a date for CPMUG disk #5 and SIGM disk #15, their files and what files were captured by Walnut Creek. (CP/M 2.2 file directories don't have dates, MS-DOS files do.) The CPMUG disk #5 file was compressed as an ARK file. The unARKed file shows all the files mentioned in the directory for disk 5 as dated April 29 1984 and Feb 10 1985. This may be when the compressed files were compressed, at the source where Walnut Creek obtained the Simtel files. The Walnut Creek CDROM has numerous text files "files.bbs" with the information: "CP/M CDROM, Sep. 1994. Walnut Creek CDROM." which dates the CDROM itself.

The contents of CPMUG disk #5 have documents with dates of Aug and Sept 1977. The CPMUG disk #6 has documents dated of June-Oct 1977, disk #4 has similar dates March to Oct 1977. So that suggests disk #5 was likely compiled in late 1977.

The SIGM volume #15 on the Walnut Creek CD image, with the same April 84 and Feb 85 file dates, includes an "00-index.txt" file which catalogs CPMUG disks 001 through 042 - so it had to be issued AFTER CPMUG disk #42 was issued. And, CPMUG disk #42 has files with dates from Feb 1979 to Sept 1979, well before the 1980 start of the SIGM library, so that's not informative.

The Walnut Creek Simtel image includes an "simtel/archives/cpm" and a /cpm/news" directory, which contain text files of correspondence of the 1980's. I found a series of "SIG/M Reports" starting in Nov 1980, and other email traffic, which suggest SIG/M began producing volumes in Oct 1980, with the first SEVEN by Dec 1980, and by the May 1981 report there were 25 volumes. Therfore SIGM disk #15 (with its notes about the Kildall files of CPMUG disk #5) was likely released early in 1981.

It's not clear (as of Oct 2007) if other copies of CPMUG or SIGM exist on the Web beyond those archived by Walnut Creek from Simtel. Udo said to me in Oct 2007: "I know, I have searched forth and back for an intact copy of this [CPMUG] disk. On every copy of the disk I was able to find the files are deleted....[Meanwhile of] the 3 files are archived at Gaby's site, load.plm is broken, can't be compiled, file is incomplete probably." (Udo Monk will likely have these sources on his site at some point.)

There are some references to these early PL/M files which are available. In Oct 2007, Udo found this referenced article from the German-language Atari magazine "Happy Computer" for October 1986, written by Elisabeth Stenzel. It's about the CPMUG disk library of "public domain disks" including a review of CPMUG disk #5, which says when translated: "..the Basic compiler Basic-E on CP/MUG Diskette 5....Additionally [to the BASIC-E and example BASIC programs] one finds the source code of the CP/M parts "LOAD.PLM", "CCP.PLM", and "BDOS.PLM" on this disk. But it's only the old version of CP/M from 1975. Surprisingly one notes, that the CP/M operating system was not coded in assembler language, but in PL/M.". That apparently confirms the PL/M sources were on some copy of CPMUG #5 disk up to 1986. Udo himself recalls seeing those sources at some early time, but he said (private email) they were not of interest to him at the time.

What does this code tell us?

Steve Dubrovich noted (Oct 2007 comp.os.cpm) that the DDJ article by Kildall said in part:


> ... "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
> Mircosystems).  The first commercial licensing of CP/M took place in
> 1975 with contracts between Digital Systems and Omron of America for
> use in their intelligent terminal, and with Lawrence Livermore
> Laboratories where CP/M was used to monitor programs in the Octopus
> network."

Steve notes further:


> I believe 'Octopus' is a word which is found in the PL/M
> sources..yes..
> "
>     /* FUNC IS THE DISK MONITOR FUNCTION NUMBER AS SHOWN BELOW:
>         0:   SYSTEM RESET
>         1:   READ CONSOLE DEVICE
>         2:   WRITE CONSOLE DEVICE
>         3:   READ OCTOPUS
>         4:   WRITE OCTOPUS
> "
In a subsequent post, Udo notes another section of the PLM source:

DECLARE
    /* TELETYPE DECLARATIONS */
    TTI LITERALLY '0',
    TTO LITERALLY '0',
    TTS LITERALLY '1',
    TTC LITERALLY '1',
    /* CRT DECLARATIONS (NOTE CONFLICT WITH OCTOPUS)*/
    CTI LITERALLY '4',
    CTO LITERALLY '4',
    CTS LITERALLY '5',
    /* OCTOPUS DECLARATIONS */
    /* (CHECK WITH TORODE FOR CHANNEL B ASSIGNMENTS) */
    OAI LITERALLY '4',
    OAO LITERALLY '4',
    OAS LITERALLY '5',
    OBI LITERALLY '6',
    OBO LITERALLY '6',
    OBS LITERALLY '7',
Udo says: "Looks like Torode also build the octopus controller for Kildall, and at the time this software was written, he didn't know the I/O ports assigned to channel B. "

Conclusions:

Based on information I can find: The suggestion that a 1975 version of CP/M was, or should have been, "in the public domain", was apparently limited to a group of people and apparently was not acknowledged by Kildall. There clearly was a public domain version of BASIC by Kildall colleague Gordon Eubanks, who created a licenced version later. However, some early version of CP/M was put on a disk of "public domain" software by the CP/M User's Group.

The CPMUG disk #5 was likely created in late 1977, with Kildall's 1975 .PLM files for CP/M on it. At some point, CPMUG deleted those files and marked a directory listing of them as "deleted" unnamed entries. (One early disk-to-disk copy contains the file's contents and the deleted entries). But the PL/M files were not deleted on some copies of that disk, at least through early 1981, when SIGM did their review of CPMUG disk #5 for their catalog disk SIGM #15, likely released in mid-1981. And, they were on SOME VERSION of the CPMUG disk #5 as late as Oct 1986, when someone wrote a review of those files. But they are NOT on the 1994 Walnut Creek version of the SIMTEL 1985-86 archive of compressed CPMUG disks; and they are not readily found on other copies today of the CPMUG disk #5.

These circumstances are confused by the fact that in the 70's, files were distributed mostly by physically copying disks; but in the 80's, by bulletin board systems or by dial-up systems which had their own archives of CPMUG. But by the present day, the only archives of CPMUG on the Web appear to be copies of the Walnut Creek version of SIMTEL's files, apparently compiled in 1984 and 1985.

Notes from MicroSystems magazine

S-100 Microsystems was published in the 1980's by Sol Libes. He and his writers covered the world of S-100 systems and CP/M, among other personal computing activities. Below are some news items relevant to CPMUG, SIG/M and Digital Research. - Herb Johnson

Vol 1 #4, July/Aug 1980: "News and Views" by Sol Libes. "Gary [Kildall] began to distribute CP/M mainly by word of mouth recommendations. Within three years sales rose to over $1 million. Today DR employs 16 people and expects 1980 sales to hit $3 million. They plan to double in size and reach $30 million next year. Currently CP/m is licensed to 200 manufacturers and software houses and tehre are over 400 application programs which run under CP/M."

Vol 1 #6, Nov/Dec 1980: "News and Views" by Sol Libes. "SIG/M generates first three CP/M disks."

Vol 2 #1, Jan/Feb 1981 in "the CP/M Bus" by Bruce Ratoff, "Digital Research has released CP/M-86. They started shipping copies at the end of November. DR has also released version 1.3 of the PL/I-80 language." The article also mentions "CP/M dial up system for CPMUG": eight locations and phone numbers are given to access systems with the CPMUG library files. And it's announced that SIG/M disks 01-07 were released, as well as CPMUG disk #46.

Vol 2 #2, Mar/Apr 1981 in "the CP/M Bus" by Anthony Skjellum, "CP/M 2.2 is the latest release of the operating system".

Vol 2 #3, May/June 1981: "News and Views" by Sol Libes. "the SIG/M user group has released volumes 9, 10, and 11". By issue #4 for July/Aug 1981, his column says "the SIG/M has released seven new disks bringing the total up to 25 volumes".



Contact information:

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

Copyright © 2007 Herb Johnson