Details CP/M history and Digital Research, are on my Digital Research Web page.

CP/M was one of a series of operating systems offered by Digital Research Inc, in th 1970's and '80's. More information is on my Digital Research Web page, and other pages on my Web site.

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.

People who want to run CP/M today have several options. They can run CP/M on 8080 and Z80 based hardware (old systems or new). Or, they can run CP/M on an 8080 or Z80 emulator, typically on a older Windows/Intel PC. (A few work with CP/M-68K on 68000 based computers.) 8080/8085/Z80 computers of the 1970's and 80's can be found; check this part of my document about old and new CP/M computers.

A popular 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 is to run CP/M "native" on an old computer which was originally 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, or "port" CP/M to it yourself. 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. Check Dave Dunfield's archive as discussed below. Or post in Usenet newsgroup "comp.os.cpm" to request a CP/M boot disk for your specific computer.

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. There are various archives of CP/M software, once distributed on CD-ROMS or as diskette libraries. I describe some of those archives on my S-100 Web links page.

Don Maslin's and Rlee Peter's and other archives

In most cases, when someone requests "a copy of CP/M", they mean a boot disk for their old CP/M computer. CP/M requires a "BIOS" section which is tailored to specific hardware; it was designed to allow individuals to do so. One person who provided many CP/M boot disks in the 1990's was Don Maslin. As of 2003 there is a on Gaby's CP/M Web site, a list of what were maslin's available system disks..

Don Maslin passed away on Sept 10 2004. There was discussion in comp.os.cpm through the end of 2005, but No one was able to take over his work, or to obtain his physical archives, for many years. But in 2012, Al Kossow of bitsavers.org and the Computer History Museum, acquired and distributed a copy of two tape backups of Don Maslin's former computer. Here's a Web page with a 200MB copy of Don Maslin's files, which include Teledisk images of many vintage system disks.

Rlee Peters accumulated a huge archive of CP/M and related commercial diskettes, which he imaged decades ago. After he passed, his archives spread to several Web archive sites. classiccmp.org has one Rlee Peters archive.

In 2011, I found that Al Kossow's "bitsavers.org" archive of documents and software also contains a substantial number of CP/M and other diskette image files. A Google search string ".IMD" for that site, yields 104 "hits", almost all to directories which contain multiple *.IMG files. Other disk images there include .TD0 (Teledisk format) and .IMG (not photos but disk bit images from versions of Catweasel). See my note above about Catweasel and other formats for details.

In early 2018, Jon Chapman AKA System Glitch set up a supplemental list, of floppy controllers and MS-DOS systems which passed portions of Dave Dunfield's tests for use of IMAGEDSK. Jon says Dave apparently is not updating his list. - Herb

Please read this entire paragraph before using the following Web link. Meanwhile, in 2005 or 2006, there were references in comp.os.cpm to Dave Dunfield's disk imaging Web site for system boot disks, disk images, and for tools to create and manipulate them. In 2006 he moved much of that information to the linked "classiccmp" Web site from his own Web domain. Unfortunately, in 2019 Dave suffered serious injury and as a result has liquidated his vintage computers and it's impacted much of his activities. Details are on his Web site. However, it's now more difficult to access his "imagedisk" files, and to contact him. I suggest you do a Web search for "dunfield imagedisk testfdc", to figure out the most-current (and only) links to his great imagedisk products. Consider a donation for his decades of service to the vintage computing community.

For several years, Dave had done a lot of work on CP/M and other DRI operating systems; working with or CREATING 8-bit 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. Check his Web pages on the classiccmp site for all these activities. (There's also versions of Teledisk there, and I believe Dave's utilities can handle Teledisk images too.)

For most old CP/M systems, you will likely find someone with a bootable diskette, or obtain a disk image using the Dunfield tools and archives described on this Web page. I discuss the Catweasel floppy controller product, and a variety of issues about diskette formats, on a technical Web page about diskette data recovery and copying.

Dunfield's Imagedisk

As of August 2006 I counted about 75 different disk images there; including images for non-CP/M systems with 6800 and 68K processors. (by 2011 there were about 100 image files.) Here's what Dave had to say at in 2006, about his work and where to access it, from a public post in comp.os.cpm:

"... For backing up and restoring disks, as well as finding boot disks for known configurations, I urge people to check out the imaging tools and disk image archive on my [archive] site [now at classiccmp.org]."

"ImageDisk is a program that runs on a PC and can backup and restore complete [*.IMD files of disk] images of most soft-sector formats, including mixed density, odd sector numbering, differently formatter tracks etc. I have a page with details on how to connect 8" drives which work well in this configuration on a PC - this is my prime soft-sector disk manipulation tool."

"North Star Transfer (NST) is a program specifically for backing up and restoring NorthStar hard-sectored disks. It handles both single and double density formats and works with either controller (obviously it can't backup DD on the SD controller) - It uses a small client running under NorthStar DOS and a serial link to the PC."

"CPM Transfer (CPT) is a program which uses a small stub resident under CP/M to backup and restore complete disk images from most CP/M systems. There are other transfer utilities for other systems available on that page as well."

"I also have a growing collection of system disk images for various machines and configurations available on the same page. I'd like to ask that anyone with boot disks not already in the archive to please if you could, make images and send them to me for inclusion in the archive. What I am trying to do is to build a shareable and archivable resource of boot disks, and the means to recreate them so that classic treasures won't have to sit idle waiting for the right disk to come along...Regards, Dave"

Don't contact ME, Herb Johnson, about this archive or program set. Go to the classiccmp site for Dave Dunfield's work.

A common question is "how do I run the Internet on CP/M?". Or, how do I network a CP/M machine, or "run the Web", etc. It ain't that easy. Mostly, CP/M systems lack the processor speed and memory, and the programs like browsers and email clients, and an Ethernet hardware interface, and the "TCP/IP" networking software....all that stuff. But, through the years, and even recently, some people have or are providing some of these capabilities. First and foremost, you need TCP/IP and utilities which run above them; and a physical connection to some kind of network or to a computer which has that connection to "the Internet".

Check this Web page for past work done by amateur radio with KA9Q, some recent work with modern Ethernet hardware and TCP/IP stacks, older work done on other computers, and discussions from comp.os.cpm. However, by year 2011 or so, most prior hardware and software work is moot: obtain a $50 microcontroller which supports both a serial port and Ethernet and a "TCP/IP stack" . Then "run" your CP/M system "on the Internet", whatever the hex that means. There's some clues in the referenced discussion.

Running CP/M "native" on a computer, means you need a computer with an 8080, 8085 or Z80 or compatible processor - to run CP/M-80 and other 8080 versions. Or, you can run CP/M-86 on an Intel-based PC - check the Web and elsewhere in this document about how to do that.

Used Z80-compatible computers are still available, decades after they were first sold and built. They are available from individuals, for sale or give-away; they are bought and sold on eBay and other general auction Web sites; and some Web sites for specific old computers also offer hardware for sale. Check the Web, or personal for-sale Web sites, accordingly, there are too many venues to list. For example, the S-100 systems I support to this day. If the computer you get does not have a CP/M diskette, read elsewhere in this document about "How do I run CP/M on my computer?"

New Z80-compatible computers are generally not in commercial production, as of year 2009 forward. There are companies which produce computer "hobby kits" of various sorts, but few of them are 8085 or Z80 based, and most don't support any kind of file storage device. (But see my note below.) But there are private or "home brew" efforts which provide new CP/M-compatible computers in kit form, with CP/M and related software. One project is the N8VEM Z80 Eurocard-bus computer. Another is Dave Griffith's Z180-based P112 single board computer.. Les Bird of the Society of Eight-Bit Heathkit Computerists (SEBHC) alerted me to his organization and their Google group. He's developed some new Heath H8 cards, similar or better than the original cards. I try to keep current Web pointers for these and similar Web sites, on my S-100 Web pointers page.

note: In Nov 2012, I was informed that a Kolter, a German company, has a Z80 Eurocard "retro project". They also have a Z80-based industrial controller.

The CP/M OS consists of an operating system with a BIOS section; utility programs; a booting program; a FORMAT program. The CP/M operating system and utilities have no hardware dependencies other than the processor. CP/M will run on any system for which a BIOS is written and with the proper processor. The FORMAT, BIOS and BOOT MUST be written specifically to support specific hardware.

The fundamentals of CP/M are described on another Web page on this Web site. A description of CP/M programs and features is on this Web page.

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 sets up its boot tracks, the directory sectors, and the arrangment of data sectors on a track. The BIOS starts with a series of JUMP instructions to specific hardware tasks, performed by the BIOS. That "jump table" is standardized so that the CP/M OS knows what to expect.

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 on an unknown system, probably will not be successful.

Smething has to load the "boot", and often that is a program in ROM called a "monitor", which runs when the computer is powered up. I have some versions of ROM monitors on my Web site, most in my section on S-100 computers.

Finally, 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 original DRI 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 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 source programs for a specific S-100 floppy controller. These include a complete CP/M BIOS and FORMAT program, with docs including the technical docs on that floppy disk controller. These are useful as an example. Here's my Web page for that controller and that code.