G8PP+Z80, Part 1

A project log for Generic 8-bit Processors Prototype (G8PP)

Generic prototyping of processors from 1970's and 1980's

PlasmodePlasmode 02/03/2019 at 17:560 Comments

The original intent of G8PP was to have a prototype area for DIP-40 or DIP-48 processors and enough room for a clock controller which is required for some of the earlier processors such as 8080.

G8PP with Z80 in the prototype area is the logical first experiment.  After all, the RC2014 bus which the G8PP is based on is designed for Z80 processor.  The first picture shows the Z80 on a G8PP board.  The second picture shows the solder side of the board.  It is immediately obvious that this approach is a manual-wiring-intensive prototyping.  Since Z80 is a 40-pin device, there are at least 40 hand wires.  There are additional wiring for banked memory and Z80-specific configurations.  Some of the hand wires can be standardized and eliminated in revised G8PP pc board, but CPU's pin-out are not standardized, so 40-pin CPU needs about 40 manual wires that's unavoidable.  

Having done the manual wiring, the resulting single-board Z80 is quite capable.  Here are its features:

The serial bootstrap code is 255 bytes long and is basically a Intel Hex file loader.  Once the code is loaded, the console outputs the sign-on message and waits for more files to be loaded.  At the end of file loads, a 'Gxxxx" command executes the program at specified location.  Because the RAM is battery-backed and the bootstrap code can be hidden away in one of the banked memory, the serial bootstrap operation only need to be done once.  Below is an interactive session showing the process of loading bootstrap and loading a monitor/debugger.  Once Z80 boots up and is in control, more files can be loaded; the compact flash interface can store data and files; and more functions can be added through RC2014 expansion bus.  This is in fact a compact, high performance Z80 SBC.  There are not many Z80 that's this compact and runs at 22MHz.  A side note: for the exact 115200 serial baud, the CPU clock should be 22.1184MHz, I used 22MHz because I have a bag of 22MHz oscillators on hand.

A well-known application for Z80 is CP/M.  Part 2 will show CP/M 2.2 and CP/M 3 running on the G8PP+Z80.  I will also include design information and software source codes.