For more CP/M information, please check the HTML document I have on other CP/M versions. This document last edited Feb 27 2010 by Herb Johnson. (c) 2010 Herbert R Johnson
In Feb 2010 in comp.os.cpm, someone with the pseudonym "floppy software" (AKA "MikePcw") asked about "Portable CP/M", a C language based version of CP/M. Various persons responded with some skeptcism as to what this person was talking about.
It emerged that Digital Research developed a Z8000 version of CP/M with the help of Zilog in 1982 and 1983. The z8000 version was developed to run on the Olivetti M20 system. This version was written in C, likely due to a lack of a PL/M for the Zilog Z-8000, a 32-bit version of their Z80 processor family. The C version of CP/M has a close relationship to the 68000 version of CP/M, which apparently still uses CP/M utility programs written in PL/M.
The first Web archive where I found these C sources, was in the "CP/M unofficial archive" at: http://www.cpm.z80.de/source.html. Sources for many versions of CP/M are there, by permission of the current owners of that Digital Research intellectual property. See the "CP/M-8000" section for what they call "P-CP/M-Z8K SOURCES". There are versions for 1.1 and 1.3, and something which apparently is 1.0 . There is another section on that Web page, for CP/M-68K. All these were apparently put in the archive in 2002. The comments below about Personal CP/M are based on sources from this site obtained in Jan 2010.
Thanks to Miguel Garcia of Spain for informing me of another archive of CP/M software, at retroarchive.org. As of 2010, the file "DRIPAK.ZIP" on that site, has Personal CP/M and other sources and executables.
These files are from the CP/m unofficial archive at z80.de. P-CP/M-Z8k is a collection of .C and .H files for BIOS, BDOS, CCP, ED, PIP, and more. Not too many .Z8K (assembly) files. Headers for the files include references to "the portable CP/M environment", "P-CP/M" The BIOS.C file refers to the OLIVETTI M20 (Z8000 system) and has dated entries from 1982 and 1983 by S. Savitzky (Zilog) and F. Zlotnick (Zilog). There are references to "Language: Standard C" in some modules.
CCP.C has a header which says "P- CP/M: A CP/M derived operating system". Creation dates are 1982, copyright is by Digital Research. A few Digital Research personnel are listed; Tom Saulpaugh 7/13/82; David Heintz 10/26/82;. Modules you would expect to be CPU independent (ED.C) have DRI copyrights from 1981 and 1982, an DRI personnel including Bill Fitler Doug Huskey.
The PIP.C program has a long header with a description of the program's features, and the following history:
/* Revised: */ /* 17 Jan 80 by Thomas Rolander (MP/M 1.1) */ /* 05 Oct 81 by Ray Pedrizetti (MP/M-86 2.0) */ /* 18 Dec 81 by Ray Pedrizetti (CP/M-86 1.1) */ /* 29 Jun 82 by Ray Pedrizetti (CCP/M-86 3.0) */ /* 24 Aug 82 by Dave Sallume (Translate to C) */ /* 20 Sep 82 by Dominic Dunlop (PCP/M 2.2) */
STAT.C shows similar dates. It also has these statements:
/* Common module for MP/M 2.0, MP/M-86 2.0, CP/M-80 2.2, CP/M-86 1.1 */ /* and Portable CP/M implementation (P-CP/M) */ /* */ /* Copyright(C) 1975, 1976, 1977, 1978, 1979, 1980, 1981 */ /* Digital Research */ /* Box 579 */ /* Pacific Grove, Ca */ /* 93950 */ /* */ /* Revised: */ /* 20 Jan 80 by Thomas Rolander */ /* 29 July 81 by Doug Huskey (for MP/M 2.0) */ /* 02 Sept 81 (for MP/M-86) */ /* 14 Nov 81 by Doug Huskey (for CP/M-86) */ /* 21 Sept 82 by Zilog (translate to C) */ /* */ /* */ /* Modified 10/30/78 to fix the space computation */ /* Modified 01/28/79 to remove despool dependencies */ /* Modified 07/26/79 to operate under CP/M 2.0 [more comments] /* Dominic Dunlop, Zilog Inc. 10/20/82 */
MAKEFI. file is the make file. It's headed with "Makefile for Portable CP/M Peripheral Interchange Program, PIP" and "Author: D Dunlop, Zilog Inc. 11/19/82".
These files are from the CP/m unofficial archive at z80.de. Some of the C programs are dated 1982, but have "mods" dated 1983 and 1984. But comments are dated as early as Jan 1980. A few sources note "Configured for Alcyon C on the VAX". A CP/M version number of 2.2 was used. A doc file has notes: "Also in user 15 are the sources for ED, PIP, and STAT. These require the Hitachi Super PL/H compiler, which we also can't distribute. The port to the Z-8000 involved re-coding these in C. We will try to incorporate the C versions into the next release." This information seems to confirm the CP/M Z8000 version came after the 68K version.
A general Google search for "Portable CP/M" was not very fruitful. It may be that the name "Portable CP/M" was an internal reference at DRI. Possibly, after DRI generated a product for a specific processor or system, customers and OEM's would simply have their own named versions. This is conjecture on my part.
Herb Johnson
Feb 2010