View Full Version : How to be able to run CP/M on a 'new' computer?

February 23rd, 2017, 05:16 AM

I always have had an interest in CP/M. I own a Commodore 128, Bondwell 14 and a P2000C. They all run fine but I wanted to 'build' my own CP/M machine and to program the needed ROM plus files that are needed for starting CP/M. Just to find out how things work.

I'm not going to build the hardware from scratch, therefore this 'build'. The idea is to use a Sciento MicroProfessor and expand it with some memory (64 KB for the moment).

If I understood well, after start-up the ROM has to be replaced by RAM. Is this a must?

The MP has no floppy drive, no video and not a real keyboard and the idea is to use a PC as a terminal by connecting it with the LPT port using the on board PIO. The PC should also provide the needed disk capacity. This is not a new idea, the Acorn BBC used the same trick with its Z80 Second Processor (https://en.wikipedia.org/wiki/BBC_Micro_expansion_unit) and Elektuur/Elektor had a CP/M card for its various 6502 systems.
The EPROM that should start up the system and should handle the various calls should be programmed by me. I think I do have the information what the structure of this EPROM should look like. But Info is always welcome.

CP/M has three components: CCP, BDOS and BIOS. AFAIK the BIOS is the only part that is hardware dependent. Thus this part has to be written by me. The problem: I have no idea what it should contain. The only thing I can think of: it should do a similar job as the EPROM because the EPROM is "switched off" at one point. More info is certainly welcome

Theoretically I should be able to use the CCP and BDOS of one of my working systems. Correct?

Last question: is there some kind of site that provides the needed information for people who want to build their own CP/M system?

Thank you vary much in advance!

February 23rd, 2017, 06:08 AM
Several sites to look at:


As a first CP/M system consider Sergey's Zeta-2 (PCB's are available, look at the inventory on retrobrewcomputer). It can run stand alone, and can be hooked up to a propeller based video card etc.

The Z80-SBC S-100 board http://s100computers.com/My%20System%20Pages/SBC%20Z80%20Board/SBC%20Z80%20CPU%20Board.htm is a single S-100 board that can boot CP/M from CF, and can later be expanded to a full S-100 System.

Josh Bendason's 8080A S-100 system is also very well done. http://s100computers.com/My%20System%20Pages/8080%20CPU%20Board/8080%20CPU%20Board-Old.htm

- Gary

February 23rd, 2017, 07:50 AM
All of the retrobrewcomputers.org stuff is pretty good, but also consider the P112, which is a relatively simple build and relatively inexpensive for what you get. https://661.org/proj/p112/

I mention it primarily because you can get a full kit (comes in two boxes, one of which is directly from Mouser) for a great price. You can buy directly from David at 661.org or you can find them on eBay from David; $112 gets you a lot of computer that is very stable, very well tested, and very well supported. Oh, and the design just turned 20 years old last year, so maybe it's officially vintage!

As good as the retrobrew boards are (and I'm doing one myself with boards and a hard-to-find parts kit for the CPU280, a Z280-based single-board designed by Tilmann Reh in 1990), the P112 is much better for a builder who either doesn't have a large parts box or wants a complete all-parts-included kit.

February 23rd, 2017, 05:55 PM
As to the BIOS - the CP/M Implementation Guide is readily available with instructions and examples of BIOS construction. The boot ROM in most primitive form just sets up whatever ports and routines are needed to load the full BIOS into RAM, then hands over control to BIOS. Typically the ROM uses the bottom of memory addresses for itself, but BIOS is loaded higher, then BIOS then overwrites those low RAM addresses with jump tables for BIOS functions. BIOS also contains "soft reboot" routines that allow user-defined reboots without need to call ROM and reinitialise all memory. This can be handy for data recovery from RAM.

For your purposes it wouldmake sense to include a capable monitor program in your ROM. There are many good ones available for different ROM sizes and functions.

As an example, my 2K ROM monitor includes the usual debugging tools plus ability to load from serial port directly to a RAM address - eg you could load a BIOS or CP/M application from another machine without local storage. You can find it and documentation here (http://thwaites.homemail.com.au/minimon/).


February 24th, 2017, 02:06 AM
Hallo Gary, Lowen,

Thank you for your answers but I'm not looking for new hardware, just for the information how to make the needed software for my own CP/M system.

The link to retrobrewcomputers.org: beside the sources for the UNA systems I found other usuable stuff.

This morning I even got a better idea: why building some 'new' hardware, why not using the Bondwell or C128 as base?

To be continued.....