View Full Version : Build your own CP/M machine

April 25th, 2012, 11:24 AM

You may be interested in one of my web pages.
Here it shows how to build a CP/M computer using 9 ICs.
The drives are held on a Compact Flash disk, 8 drives on a 64M card, or 16 drives on a 128M card.

64K RAM and a 16K shadow boot/BASIC rom is on-board.
Cold and Warm reset switches included, and two high-speed serial ports.

I have written the BIOS myself, along with the formatter, putsys, boot monitor ROM and file transfer programs.
The ROM also contains BASIC to allow programming without CP/M.
I built this several years ago (2007/8) and is still working with no problems.


I put a lot of work into designing the hardware and software - please feel free to use :)

There is also a PC keyboard interface and 80 column display driver for it, but I haven't published details for that yet, but you can see pics of it on the page. This uses only 3 IC's - 2 ATMEL processors and a bit-shift IC. It connects to one of the serial ports and is, effectively, an ANSI-compatible serial terminal.

Other stuff, please see my home page



Lawrence Woodman
April 26th, 2012, 02:24 AM
Great work.

I'm curious, did you optimize the BIOS for the Z80, or stick to standard 8080?


April 26th, 2012, 02:50 AM
The bios is written from scratch, but I did use the original blocking/unblocking code from Digital Research as a straight conversion (no omptimisation) from 8080 code. It didn't seem to need it as it is really fast using the Compact Flash.
The CPM 2.2 is a straight 8080 --> Z80 opcode conversion, as found on a CP/M archive site on the web with a couple of tweaks to get it to assemble correctly.

I wanted to get it working, without the risk of introducing any new bugs :)


April 26th, 2012, 11:04 AM
You know what would be interesting (to me) would be to emulate something on a keychain or such pocket size and perhaps accept bluetooth as an i/o. Wonder what would be required or if one could have a system on a keychain.

April 26th, 2012, 01:15 PM
Nice minimalistic design.

It would be interesting to see your display card schematics. Does it use a VGA display?

April 27th, 2012, 09:58 PM
Nice minimalistic design.

It would be interesting to see your display card schematics. Does it use a VGA display?

He did say ANSI-compatible so I would guess no. Sounds Text only atm. Any plans for Hercules emulation?

I love to make this! I have a serial eprom programmer that would pair awesome with this thing. All it really needs is a tty/ansi terminal that can capture to file, and serial port @ 9600 7n1... :O

I could then in theory tuck it inside the programmer, with just the cf sticking out, and maybe a few buttons to activate macros. I love it!

Lawrence Woodman
April 27th, 2012, 11:18 PM
I wanted to get it working, without the risk of introducing any new bugs :)

I don't blame you, these things are notoriously time consuming to debug.

I like the relative simplicity of the old hardware and enjoy tinkering with it, but when doing low-level work like this I miss the hardware support and decent tools for debugging that modern processors provide.

April 28th, 2012, 02:44 AM
Thanks for your comments. This started off as a simple Z80 computer running a ROM , RAM and a serial port. Once I worked out that CF cards can be interfaced easily, the urge to CP/M-it was irresistable. My aim was to leave it as simple as possible, so that it can be used as a core of more complex designs if needed, although it is a fully-fledged (and fast) CP/M machine in it's own right. I made it originally in 2007, and is still working in that configuration.

The interface is a text-only 80x25 display, using the UK PAL timing spec, but can be changed. Credit for this goes to someone called Daryl Rictor who published a 40 column display (easy found using a search engine on the net) which I then re-wrote parts to work in 80 column mode on an ATMEGA32 display.
This is used purely for display. The other Atmel chip handles the ANSI conversion, serial port buffering from the CP/M board to the display and also the PC keyboard interface to serial to the CP/M board.
It is currently configured for 115200, but can be used to add a keyboard/display to anything that interfaces to a terminal/serial port.
I'll publish details as soon as I get time.



November 8th, 2012, 08:19 AM
I tried taking a look at what you've done, but I get SSL certificate errors suggestive of a badly formed self-signed cert, or of a hijacked site.

November 8th, 2012, 09:12 AM
Same. I'm curious but it says sign into BT Yahoo first.

November 8th, 2012, 01:13 PM
me also, unfortunately "your" is under BT/Yahoo umbrella....

November 10th, 2012, 06:20 AM
It looks like his pages have moved here: http://searle.hostei.com/grant/
The CP/M computer page is here: http://searle.hostei.com/grant/cpm/index.html

November 24th, 2012, 11:47 PM
Grant has relocated his pages to http://searle.hostei.com/grant/cpm/index.html

It is a great design. I built it earlier this year with some minor changes (Flash rather than EPROM, serial interfaces via USB). Some into at http://www.quicktrip.co.nz/jaqblog/