This document copyright Herbert R. Johnson 2008. Updated April 24 2008.
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.
As of year 2007, Dr. Gary Kildall's operating system called CP/M is at least 31 years old. In 2004, I decided to describe that history on my Web site. I've worked on that through 2008. 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:
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.
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.
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
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.
Below is a LITTLE bit of information about the various operating systems
offered by Digital Research, and some related OS's.
CP/M is a single user single task operating system, generally released as versions 1.3, 1.4, 2.0, 2.2 and 3.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.
IMDOS was an OS product from 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.
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.
CP/M-86 Plus is a little controversial. For some years since the late
1990's, its been under "reconstruction" by Emmanuel Roche (aka French Luser) as it was not generally released by DRI. It's hard for me to judge the discussion of this in comp.os.cpm in Sept-0ct 2004, which is one place on the Web that discusses this at length.
A press release or article of the early 1980's, cited there, said that DRI was ending development of this product in favor of Concurrent CP/M 86. There was no general product release of CP/M-86 Plus, but there apparently were some limited products for specific computers (German and British models?) which had some "CP/M-86 Plus" code in them. Also, there are apparently docs or text files referencing CP/M-86 Plus in
existence (copies? originals?); and apparently some DRI code with embedded references to "CP/M 86 Plus".
Subsequently in year 2006, discussion in comp.os.cpm suggests that DRI's "DOS Plus" products may have some
CP/M-86 Plus-like code in them. Also, further code and documents have come to light since 2004.
But it is difficult to find any of these on line, and originals of any sort are scarce at best. I reviewed some on-line copies of docs, dated "Nov 1983, release 3". It apparently has 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]
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.
A nice time chart of DRI products, with annotations, can be found
at this site, by "Matthias".
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".
Most early versions of CP/M consist of an operating system or OS; various tool programs for editing, assembling
and debugging; and sample source code files.
CP/M's OS was divided into a BDOS, a CCP and a BIOS as separate programs. BDOS is the core of
the operating system, responding to system calls from running programs.. The CCP is the
command-line processor with simple features like "dir", "type", and so forth. BIOS is the
custom I/O software for each computer model, which accepts calls from the BDOS to perform disk
and console and printer hardware access. Programs would be called through the CCP, loaded in, and run by calling BDOS routines, some of which would call the BIOS to access specific hardware. When a program finished, it would call the BDOS to reload the CCP, or reboot to reload the CCP, BDOS and BIOS. The user could
then run another program. Later OS's from DRI had additional layers of software
and supported much more hardware and OS features: you'll have to read the docs
for specifics!
DRI's CP/M CCP and BDOS were distributed as binaries, assembled or compiled for the 8080 or 8086 processor. Also, the BIOS was specific to each computer
design, and often users would construct their own BIOS versions. A description of the process of
migrating CP/M is in this section. But the CCP and BDOS could be separated and replaced with alternatives, in effect a new OS. Many CP/M compatible OS's
were written specifically for Z80 based systems: they took advantage of Z80 instructions not
available offered by the 8080-only programs from DRI.
From time to time, someone asks some basic questions about CP/M like "what is standard CP/M?" or "what are alternatives to CP/M?" or "what is good or bad about CP/M?". There is no simple answer to these questions. This Web page has some of the answers. Frankly, a Web search (or the links on this page) will lead to plenty of information. But only a few sites have listed all or even some of DRI OS's, or all the alternative OS's that have some kind of CP/M compatibility. And there is no "standard" for CP/M, just various versions of Digital Research operating systems, and various other OS's which offer some compatiblitiy to SOME of those versions. If you want to compare them, download the docs and software and go right ahead! a comparison without some context or specifics is meaningless.
There are, or were, CP/M compatible operating systems from other companies. They were "compatible" with specific versions of CP/M; or were alternatives to the BDOS or CCP of CP/M. To understand what that means, you must know a bit of CP/M terminology. I describe CP/M internal parts above.
In the early days of CP/M, many computer companies produced their own version of CP/M. Early S-100 companies who did this include Cromemco, TDL, and so forth. Some of them obtained a licence from DRI (Cromemco), some eventually moved to DRI's CP/M (IMSAI). When time permits, I'll write more about these alternatives, but my
early DRI history Web page discusses a few of these.
Many CP/M compatible OS's were designed for Z80 based systems: they took advantage of Z80 instructions not available on the 8080 or later 8085. DRI's 8080-based
programs and OS's did not use Z80-specific instructions. So, people used CP/M alternatives either for additional features, or speed due to Z80 support; or because they were offered by their computer's manufacturer.
Mentioned in Usenet newsgroup comp.os.cpm as CP/M alternatives are: P2DOS,
SUPRBDOS, Novados, ZRDOS, DOSplus, TurboDOS. Some of these may be
commercial products (like TurboDOS), some are free (ZRDOS). Some are BDOS replacements, so you need a CCP from CP/M, or they include a CCP such as ZCPR. Again, search the Web for discussions and documents and mentions of these and other products.
QPM: A Web search suggests that QPM was sold by Emerald Software, a CP/M distributor of the 1980's, as an alternative to CP/M. In April 24 2006, the following was message posted in comp.os.cpm. "Hi all. In a moment of great timing -- or irony -- I just read a posting about QP/M and wondering where it was at. Wonder no more. As MICROCode Consulting has moved onto other turf, all of its Z-80 8-bit packages are available on-line -- free for personal use. It
took me over 100 hours to convert everything into something usable on a modern system. I sure *hope* it is worth it to somebody out there.
Visit [MicroCode Consulting's Legacy Z80 page]". Enjoy! -Mitch[Mitchell Milner]
Microcode's "Legacy Z80" page provides QPM and other related Z80 products, free for personal use only. Tools include a linker and a debugger product; ROM BIOS's and ROM subsititutes for BigBoard and Kaypro; and support for the WD 1002 hard disk controller. (We sell docs for that controller on this page. There is discussion of the history of QPM versus ZCPR. MYZ80 in its "original" form is provided to emulate a Z80 under MS-DOS.
From John Elliot's page, is a list of alternative free "BDOSes" or CP/M compatible OS's. Named and described
are Z80DOS, DOS+, P2DOS, NovaDOS, ZSDOS, ZPM3. Also listed are FreeDOS , an S-DOS alternative,
and a version of DR-DOS..
Here is Gaby's site to download NZCOM and Z3Plus, the "Z system" replacements for CP/M and CP/M-Plus, on Z80 systems.
This private site offers "ZCN ... a free operating system for the Amstrad NC100 (Notepad) and NC200 (Notebook). It's largely compatible with CP/M 2.2." - ZCN V1.3, June 2001
Hal Bower's ZsDOS and ZDDOS, released under GPL. It was a popular replacment for CP/M on Z80 systems.
An occasional question about Z80's is "can it run Unix (or Linux?)". Hal Bower created a modification of System 7 several years ago, and called it UZI. In 2006 UZI was revised and runs on a current Z180 computer, the P112. Here's Hal's Web page section for UZI for YASBEC & the "old" P112 and for the changes made by Hector Peraza to support the "new" P112 Z180 computer. The "new" P112, a single board Z180 from the 1990's available in 2006 as a kit, has a Web site (as of June 2007) at this link.
A thread in comp.os.cpm in late April 2006 discussed CP/M alternatives. One reply was
from Chuck Falconer, about DOSPLUS and CCPLUS, which are CP/M-80 replacements. "... I have similar biases for DOSPLUS 2.5, which the associated
CCPLUS. I wrote these because I was highly dissatisfied with the
methods of configuring ZCPR, and the features available. My system
is dynamically configurable, and does not require any reassemblies,
yet it fits in the exact space of the original BDOS/CCP, but
requires a Z80. You can find out all about it with various
downloads from [link given above], which gives you full binaries, source, auxiliaries, etc. It gives
you most of the features of CP/M 3, and much better security."
CP/M alternatives on non-Intel architectures
CP/M was run on some non-Z80 and non-Intel systems by use of a slave processor. The classic implementation was to offer a Z80 card for the Apple II, with CP/M from DRI. Interestingly enough, Microsoft offered one of these! DRI did not offer CP/M on any processors but the 8080, 8086 and derivatives, the Motorola 68000; and I believe on the National 16000(?) series processor.
In late Jan 2008, Peter Dassow announced that he's going to provide on his Web site, a 6502 processor-based CP/M work-alike called "DOS-65", written and initially sold by Richard Leary. It's on Peter's DOS/65 Web page and includes some source files, executables, and PDF'd manuals. A version of BASIC-E is also provided. Richard says these are offered from him as "shareware for non-profit, educational, or private use". The 6502 8-bit processor was developed by MOS Technologies and was used in the KIM, Apple II, the Commodore 64, and many other computers.
An occasional question about Z80's is "can it run Unix (or Linux?)". Well, Cromemco created a Cromix which was a kind of Unix for their Z80 systems, which evolved into a System 7 Unix when they included a 68000 processor. Morrow developed an OS called Micronix which was based on System 7 Unix.
A more accessable "unix" for the Z80 was from Hal Bower and called UZI, a modification of System 7. The news in 2006 is that UZI was revised and runs on a current Z180 computer, the P112. Here's Hal's Web page section for UZI for YASBEC & the "old" P112 and for the changes made by Hector Peraza to support the "new" P112 Z180 computer. The "new" P112, a single board Z180 from the 1990's available in 2006 as a kit, has a Web site at this link.
another Web site for UZI is this Sourceforge UZIX project page. While the SourceForge project is for MS-DOS machines, there are links and references to USI, UZI180 (for the Z180), Minix and related efforts. But some links are dead in April 2008; the project does not look active after 2005. Look for UZI180
on this Web site for the P112.
The originator of UZI, Doug Brawn, is not working on UZI these days but still has
a Web page where you can get what he did; or check various CP/M or Z80 archive sites.
Another Unix look-alike for the Z80, from the 1980's, is Morrow's "Micronix" operating system, a licenced version of System 6.
HEre's my Web page about it.
People who want to run CP/M have several options. They are divided between running CP/M-80 for 8080 and Z80 based programs and systems, or to run CP/M-86 typically on a older Windows/Intel PC.
One option is to emulate CP/M-80 on their Windows or Linux system or Mac under an emulator. Do a Web search for "CP/M emulator Windows" or "...Linux" or "...Mac" for more information. I discuss CP/M emulators under MS-DOS, Windows, Linux in this section.
The second option, for running CP/M "native" on an old computer which was sold with CP/M. If you don't have the CP/M disk for that computer, you have to FIND a CP/M specific to that hardware. Do a Web search using your computer's brand and model and "CP/M" to see if anyone is running it, and contact them to see about getting a copy. Or post in Usenet newsgroup "comp.os.cpm" to request a CP/M boot disk for your specific computer.
Some Web sites have CP/M or other OS boot disks as disk images, which you can download to recreate a CP/M boot disk. There has been a lot of discussion in comp.os.cpm from David Dunfield. Since at least 2004 he is doing a lot of work on CP/M and other DRI op systems; working with or CREATING 8-bt system emulators; saving CP/M disk images as MS-DOS files and archiving them; and discussing how to upgrade old systems to use 3.5" floppy drives. Here's a link to
David Dunfield's computer museum. Check it out for all these activities! I have more to say on my S-100 Web pointers page about Dave's work.
Another option is to take a generic or distributed CP/M and write the
new code necessary to run it on your 8080, Z80, or 8086-compatible system. The notes below discuss this option and what that means. (Of course, your computer has to have one of the processors listed. There is a CP/M 68000 but it's rarely used.)
I have some links here to the sites I've mentioned here. A page of Web pointers to sites related to CP/M is my S-100 Web links page.
Hope all this is helpful.
The fundamentals of CP/M are described in this "What is" section. CP/M has a BIOS section which is specific to manufacturer's hardware, namely the console/text I/O ports and the floppy controller. There is also some software logic in BIOS that converts the expected arrangement of tracks and sectors into what is expected by the rest of the CP/M OS. That's another way of saying that there are a variety of ways CP/M 86 sets up its boot tracks, the directory sectors, and the arrangment of data sectors on a track.
Also, there are various CP/M "boot" methods. Most of them use the very first sector on the first track as boot code. The hardware is able to read that boot sector and execute its contents. Most boot sector code reads the rest of the "system" tracks, usually the first few tracks, which contains CP/M and the BIOS code, and then starts it up. Some systems have sufficient hardware to read the system tracks directly without a boot sector.
Consequently a strategy of just trying any old CP/M boot disk probably will not be successful.
Just to be complete, CP/M systems (usually) have a FORMAT program, to format diskettes from scratch. There are various methods to set up sectors which require various FORMAT programs. Some proprietary systems do not distribute their FORMAT programs. Also, there are some MS-DOS, Windows and Linux programs which will format diskettes in ways you can specify. So you may be able to format diskettes on a Windows or Linux system. "Format" does not put the CP/M OS on a diskette however, it just sets up the sectors and tracks in a way a particular CP/M system expects to see.
So how can an ordinary programmer or tech "create" a specific CP/M for a specific system? Well, CP/M is designed to be ported to a new architecture. The manuals with it tell you how to do this. The tools provided with it are sufficient to aid you in doing this. It is not impossible, just a challenge like many other challenges presented by older computers or older equipment.
For an example of generating a CP/M system "from scratch", in Jan 2008 Rich Cini restored an IMSAI to operation and installed CP/M 2.2. While his system originally had an ancient (even by CP/M standards) iCOM floppy controller and FD 400 drives, he changed those to a Compupro Disk 1A controller and Teac FD-55GRF 5.25 inch drives. Read this document by Rich for details about how he generated a new CP/M for that system. I also discussed his iCOM hardware and docs on this Web page.
A number of people have provided me with sources for a complete CP/M BIOS and FORMAT program, with docs including the technical docs on floppy disk controller code, for a specific S-100 floppy controller.
Here's my Web page for that controller and that code.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
Digital Research Inc. OS's and related products
Additional Web pages about DRI OS products
What is CP/M?
what were the alternatives to CP/M?
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?
CP/M 86, like CP/M 80, is available for free download for personal use. The "unofficial CP/M" site that has it will have copies of the manuals, the executables, and some source code. It and other sites have basic BIOS source code, or BIOSes for other CP/M systems. Other Web sites and other sources may have other CP/M's or other information which may help you in making over YOUR CP/M for YOUR system. To use CP/M to make a new CP/M, you can run CP/M 86 on most old and many recent Pentium/Windows systems by creating a bootable disk and booting it up; or you can run a CP/M 86 or CP/M 80 emulator which runs in the MS-DOS "box" under Windows; or run similar emulators under Linux.
For information on creating a bootable CP/M 86 disk for an old or recent Pentium/Windows system, I suggest you search newsgroup comp.os.cpm for recent discussions of just that. That question comes up a couple of times a year. One discussion was in March 2006 named "Ready to setup CP/M 86". Sites mentioned in such discussions include the "unofficial" site above and this CP/M site for running CP/M 86 on "IBM compatibles".
There are various Web links throughout this Web page and in my other DRI documents.
Of course you should check out the Usenet Newsgroup "comp.os.cpm". It is an old discussion group which has talked about CP/M for decades. Usenet newsgroups can be accessed from services of your Internet Service Provider (ISP); via Google Groups (which includes an archive); and other Web sites.
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. What's there? CP/M-80 in various versions, CP/M-86, CP/M 68K, CP/M 8000, CCP/M (concurrent CP/M), CP/net, and the early GSX extensions. Also, MP/M I, II, and MP/M-86; and Personal CP/M-86. Descriptions of these versions are on this page. The history of that site is discussed above.
The "CP/M-86 Software Repository", was a popular site for the IBM-PC version. It has patches to run it on recent Windows/Intel type machines. But in July 2007, this site went away. An apparent copy of it may be found at: at P. Betti's mirror site or at katzy mirror site
Gene Buckle's retroarchive.org has a lot of CP/M stuff, among other things.
Roger Hanscom's Computer Archaeology site has a section where he's collected a number of CBIOS sources. He also has a number of CP/M Web links. among other sites, on his home page.
John Elliot's extremely instructive early CP/M page. There are: several articles about CP/M in the modern context; a lot of technical information about CP/M 1.X, 2.X and 3.X as well as CP/M 86 versions; file formats; and many Web links. Updated sometime up to 2005. He has some recent (2007) work on GEM at this page on his site.
Some popular CP/M-80 emulators run under MS-DOS; you can run them in a "DOS box" in most versions of Windows. Others run under Windows directly, or Linux, or both. What they all do is read 8080 or Z80 instructions and execute them in a SIMULATED 8080 or Z80. They can run actual CP/M-80 programs at speeds faster than any Z80 today! Some of them emulate the CP/M operating system; some of them are set up to execute actual CP/M OS code as well, or some version or work-alike CP/M.
Most of these emulators were written years or decades ago. But in many cases there has been a "revival" of them since the mid-millenium. I'll name a few below, but one way to find them is via the CP/M archive sites under "emulators", or a Web search. Also check the Usenet news group "comp.emulators.misc" for their frequent questions and any posts about specific emulators. Also check my list of S-100 Web links for the latest notes about these.
Dave Dunfield continues to do work through 2008 on emulators and on archiving CP/M "boot disks".
The Altair32 is a Z80 and CP/M simulator for the MITS Altair which runs under Windows. Check the Altair32 Web site for more info.
The AltairZ80 emulator of Peter Schorn also supports other S-100 computers with "devices" for NorthStar, Vector Graphics, and Compupro; as well as the Altair 8800. It's based on the SIMH family of emulators for minicomputers and older mainframes. Check Peter Schorn's Altair SIMH site for the latest verision of SIMH and for links back to the SIMH Web site.
In 2008, someone suggested the CP/M-86 emulator for MS-DOS "AME86" would run under Windows XP (presumably in the DOS window). Source code is included for the emulator, which can be found at various Web archives (it's not under development currently). There may be some issues with Windows support for "FCB's" in recent versions of Windows.
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". (ISIS is discussed by me on this page.) Late in 2007, Udo announced he modified his code to run under either Windows or Linux. Details are on his Web site.
To run Linux on a Windows-based system, search the Web for more info. Basically, you can either "dual boot" Linux or Windows; or you can run an EMULATOR program in which you can run a Linux operating system. Details are too complicated for me to discuss. Or, you can find some old computer and install Linux on it.
We have a number of CP/M and S-100 Web links to software and discussions on my S-100 Web pointers page, and my S-100 home page is at this link. The "S-100 bus" was first developed in 1975 by MITS for the Altair 8800, followed by IMSAI's IMSAI 8080. Over 100 manufacturers used variations of the s-100 bus through the 1980's. MOst of those S-100 systems ran CP/M, so that's why I have many CP/M links among my S-100 links.
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.
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:
Copyright © 2008 Herb JohnsonDRI manuals and disks
Other Web links
New Jersey, USA
To email @ me, see see my ordering Web page