In order to be of any use this board needs to be programmed for the 8080A.
We need a monitor program. Monitors tend to be personal things everybody
has their own favorites and requirements. Mine is the format/menu of
our Z80 "Master" monitor.
The problem is it is in Zilog nemonics and in places utilizes the unique special
instructions of the Z80. I had to hand recode it into Intel format and
expand out the Zilog opcodes into the (longer) 8080A codes. This monitor
8080.ASM can be obtained here. For this board we have one further
complication, unlike our Z80 CPU board the is no circuit for a "power on jump"
to a specific RAM location (usually F000H). Instead the CPU expects the
monitor in ROM to start at 0H. This is a problem for CPM which assumes the
availability of low RAM.
An S-100 8080 CPU Board.
Every serious S-100 board manufacture had their own CPU card. Many had
a number of them. While almost everybody started off with Altair or IMSAI
cards. These early 8080 based cards were quickly
replaced by faster Z80 CPU boards. Nevertheless most S100 and CPM
based software stuck with the Intel 8080A, its software, and indeed the
Intel based assembly nemonics.
If you look at the layout of the original MITS
CPU board you will notice that there are very few plated through holes
on the board. That is because the (unknown) engineer who laid out the board
picked the S100 pins that presented the shortest route to the CPU and the
other components on the board. In contrast to, for example the Intel
multibus, the S100 bus address, data and control lines have no order on the
bus. This has allowed for the production of 8080 CPU
boards with plenty of space to add extra components. Over the
years some manufactures went on to produced 8080 CPU S100 boards with
numerous "extra" components.
Recently Josh Bensadon of Toronto Canada (aka Crusty OMO) has designed and
fabricated an excellent 8080 CPU board with many extra capabilities.
What I have here is essentially Josh's work. I am presenting it here
with his permission. If you have specific questions or comments about
the board and its related software, please contact him directly.
CrustyOMO is a regular contributor to the
The history of Intel's 8080 CPU can be seen here.
The 8080 CPU Board Circuitry
The complete schematic of the prototype board can be seen
Josh has also written up a nice manual to go with the board. It can be
downloaded from here.
In fact much of what I have below is directly from that manual.
Before working with this board that manual should be read cover to cover.
The board can be configured as a bus master where the 8080A controls the bus
completely or it can be configured in "slave mode" where the 8080A CPU is
inactive but the other components on the board are active and available to
another CPU on the bus. Note this "slave mode" should not be confused
with the normal IEEE-696 definition of the S100 bus in slave mode where two
bus CPU's transfer bus control back and forth between each other with
a well defined handshake protocol (often one being a 16 bit CPU).
Slave mode here essentially means a board with the UARTs, the SD card,
8212's etc being available to another CPU on the bus.
The board also has two connections that hook up correctly to either the
Altair or IMSAI front panels. This conveniently allows you to review
the CPU's in action, single step etc.
Pushing the sixteen
8080 address lines out on to the S-100 bus on this 8080 board
is not complicated. The two 74LS245 bus drivers (IC-G8 and IC-F8) , do
the job. Pin 1 of each chip is grounded so the direction is always
away from the CPU. As for most S100 CPU boards the address lines can be
disabled by lowering the ADDR DSBL S100 pin #22. This for example
would be done by a DMA controller on the bus.
The S100 bus in 8 bit mode
utilizes a separate data in and data out bus. On this board it is
handles by two 74LS245 bus drivers (IC-I8 and IC-H8). The
direction (pin 1 in each case) is determined by the jumpers JP4 & JP5.
In the normal master mode they are jumpered 2-3 in each case.
Directions is normally from the CPU (I8 and H8, pin 1 high) except for
CPU reads/data in, where the DBIN signal to gate D1 lowers pin 1 of
The 8080A status lines
essentially need no modifications and are posted directly to the S100 bus
via IC-J7 and IC-J8.
Likewise the 8080A control lines need no modifications and are posted
directly to the S100 bus via IC-E8.
The 8080A was the last of it's kind to require multiple input voltages. It
required a 12V, -5V and 5V input. It also required an elaborate
clock structure, reset and ready signal. These are provided by E7, an
Intel 8224 clock generator. With the onboard UARTs (see below), the
board has no less than 6 different voltage regulators! The
primary 5V regulator (A7) supplies most of the power to the board. It should
be a 7805C 1.5 Amp regulator. Because the heat sink area is
quite small special care must be used to get as much heat radiated away from
the board as possible. Use heat sink compound, a mica washer between
the board and heat sink if possible. I actually have one small heat
sink inside the other to have more heat radiation fins.
The board has two 8250 UARTS (IC-A5 & IC-A6) along with RS232 line drivers 1488's
and 1489's. The RS232 signals are brought up to the top of
the board and can be connected via the headers P1 and P2.
The board also has an a bit parallel port. Actually two (IC-J3 and IC-J5), one for
input, one for output. These are implemented with standard 8212's. For
more information is programming and using these chips see our
Parallel Ports board.
One really neat aspect of this card is the
presence of an SD card socket. This will allow the card to directly
boot CPM and run the many 8080 programs available.
Step By Step Building the 8080 CPU Board.
As always, first examine the bare board carefully for scratches or damaged traces, use a magnifying glass if need be. The quality of this board is excellent.
However there is always a first time. A broken trace is almost impossible to detect by eye on a completed board. I find it useful to carefully slide a file at 45 degrees along the edges (front & back) of the S100 connector for easier insertion into the bus. Carefully, just one or two strokes.
There is a slight error on the board for the SD card interface. Due to
propagation issues with the Q1 transistor, it is necessary to direct connect
the SD Memory card Data Output directly to the SPI MOSI. The VIH of the
74LS299 is 2V and the Data Output is 3.3V, that will not be enough for a
safe logic “1”. This change requires cutting 1 trace and installing 1 jumper
wire. Cut the trace on the component side between Pin 11 of IC H4 and the
silk screen text “SD LOOP BACK”. Install one jumper wire on the solder
side between JP3 and Pin 11. We will omit Q1, R7 and R13 during the assembly
below. Here is a picture of the change.
Also pin 15 of the 8T97 (74LS367), IC H7, is left disconnected on the
board. We need to install a jumper from IC H7 pin 15 to IC H6 (74LS04) pin
Alternatively, you can hide this jumper under IC H7 by placing it between
pins 15 and pin 1 (or by adding a short solder bridge on the back of the
Here is a picture:-
Lets get started.
First solder in all the required IC sockets, resistors, resistor arrays, capacitors, jumpers, and the
six voltage regulators. Do not add the LED's yet. Be sure you put the resistor array in with the correct orientation of pin 1. Check their values before soldering (they are difficult to remove).
(5.0V, 1.5A) regulator heat sink must as large as possible. Use a mica insulator
to insulate the board a little from the heat it generates. Use
heat sink compound.
For prototype boards I generally use "double swipe" IC sockets. For a critical board like this I prefer to use "Machine Tooled" IC sockets. However they are more expensive and you have to be particularly careful not to bend the IC pins.
the two LED's. Before soldering them in place ground pin 9 on the I5 socket
and pin 5 of E2 to make sure they light up.
Capacitors C15 to C19
are the 3.3uF Tantalums. These are the capacitors that work on the
voltage regulator outputs. They may be somewhat overrated. You can
probably use lower values if need be -- as low even as 0.33 uF. The decoupler capacitor under IC-C2
are not critical and are placed there to save space. Use small 0.1uF caps if
you have tem.
Check that voltage to sockets on the board are above 5V by placing the board in your S-100 system using an extender board. With no load you will typically get 5.00V (+/- 0.25V).
Also check that you are getting +12V and -5V on pins 28
and 11 of the 8080A. BTW, your system should boot and run correctly with its Z80 master CPU board. If not, you have a serious solder bridge somewhere on the board. Before you do anything else with a magnifying glass go over every socket on the board and examine for a proper solder joint. Extra time here will save you hours later. Pin
28 of the 8080 socket should read 12 volts. Its pin 11 should read -5
volts. Remember the 8080 goes on to this board upside-down. Here
is a picture of the board at this stage.
Next install all the IC's on the board except:-
The two UARTs (A5 & A6)
Two of the 3 8212's (J5 & J3)
J2 the 74HCT245
and the SD card holder.
Take care to insert the 8080A on to this board upside-down. As we have
done for all the other S100 bus CPU bards, we will first bring up the board
in a very simple mode where it simply continuously sends a character to the
console. The board only takes a UV EPROM (a 27256 or 27C256), so
burn the following code into such an EPROM.
EA, 33, D3, 01, C3, 00, 00
I use the Wellon VP-290 to do this. The code is so
short you can simply enter the bytes directly within its own programming
interface. The board need to be configured as a "master".
Unconnected to the front panel (if present) set the following jumpers:-
We will place our ROM starting at 0H in memory and utilize the full 64K or
RAM space. So jumper the ROM & RAM jumpers as shown here.
Remember on this board if there is no I/O port jumper, that port address
range is available from other S100 bus boards. In my system the
console I/O ports are 0H & 1H, so no jumper at the first position of JP10.
We will be using the onboard SD card (see below). I have assigned it to the
60H to 7FH ports range. The only other boards I have here that
use this range are the
Lomas Video board and the old
Tarbell cassette board. With the above configuration the
board came up fine displaying data on the console as shown here:-
If you do not see the above output it may be because this board does not
supply the upper 8 address lines for port I/O. Only address lines A0
to A7 are valid. For many old S100 boards this is all that is decoded
anyway. But IEEE-696 boards (and all of our own S100Computes boards),
utilize the full 16 bit address range. Fortunately these
boards have a jumper to restrict the port range to 8 bits. On our Propeller
Console IO board its jumper K5 2-3.
If you get this far you are well on your way to bringing up the
board. At this point you can either hook the board up to your
Altair/IMSAI front panel or if you have one, insert the
SMB. In any case you
need to insure that the S100 bus signal MWRT (S100 pin 68) is being
generated in your system. On the
SMB this is jumper JP11.
Finally this board lets the IEEE-696 Address lines A16 to A23 float.
If you are using IEEE-696 RAM/ROM boards these lines need to be grounded
if you use them. Since the board has its own 64K of RAM this is
probably not a big issue. BTW, our
V2-SMB has a circuit to
ground these lines (when a 16 bit CPU is not being used).
An 8080 Monitor.
Fortunately the board has the capability of switching out the onboard ROM chip
giving it the full 64K complement or RAM. Before we do this however we
need to relocate the ROM code up to (say) F000H in RAM. Jump to that
location and then switch out the ROM. We do this by outputting a
zero on bit 1 to the SD card port (71H). When done correctly the "SHADOW
ROM" LED should go out.
With all the above in place the monitor signs on nicely with all the usual
commands such as display RAM, ports, MEM map, substitute RAM, Goto etc.
I have not yet implemented the boot CPM on the IDE of FDC board commands yet.
Perhaps somebody else could do that for us all. The code is there its just
not yet debugged.
The 8080 Monitor can be downloaded from the link at the bottom of this page.
A Second Version of the 8080 CPU Board (Rev 1).
Josh has made a second version of the above board (Rev 1). This board
corrects the above small errors on the above board. The main changes are:-
Here is a picture of that board:-
||Added jumpers to be able
to create a Memory Write signal without a Front panel (allows board to
work stand alone, no need for front panel).
Added socket for the FT232 module
Rotated IMSAI connector to match those on the original IMSAI and Altair
Changed some text on the board
Two traces need to be cut if you intend to run this board as a SBC.
A new jumper block, JP11, is made of 7 pins in 2 rows as follows:
1 2 3 4
5 6 7
On the top of the board, there are traces that connect pins 2-3 and 6-7.
You will need to cut these traces and either install a jumper block or if you
prefer you can just jumper the pads with some wire leads.
The jumper settings for SBC is 1-2, 3-4, 5-6.
If you are using the board as an ALTAIR or IMSAI cpu, with the front panel, then
you don't need to cut the traces or install the jumper block.
This jumper reuses a NOR gate to create the Memory Write signal that would have
been created by the front panel.
Josh tested the board for SBC use, it work fine, but you may need to apply a
reset after power on (there is no power on reset circuit).
If this is important to you, then there are some 3 pin IC's (TO-92) that produce
power on reset that can be added.
The very detailed manual and construction noted for this 8080 Rev 1 board can be
downloaded from here.
A Production S-100 Board.
Realizing that a number of people might want to utilize a board like this
Josh Bensadon at the
S100Computers forum has
completed a "production" run of the of this board. These are now
all gone! We will collect names for another
batch if needed -- possibly an updated version. If
you have an interest in such a bare board, let Josh know via
a posting on the forum.
Please note all the above
clearly applies only to people who know what they are doing and can do
a little soldering and board assembly.
There will be little hand holding at this stage.
The links below will contain the most recent schematic of this board.
Note, it may change over time and some IC part or pin numbers may not correlate
exactly with the text in the article above.
8080 Board manual
8080 Board Parts List
Monitor Software (V1,1
Monitor & CPM Disk Software (V2.1
Monitor Software (AIR-V12.zip) (V1,2
Monitor Software (AIR-V23.zip) (V2.3
Manual and software for
the new Rev 1 8080 board (Rev1 6/2/2016)
Other pages describing my S-100
hardware and software.
This page was last modified