With time people started filling up
the real estate on the CPU board with extra components. Such as jump on reset circuits
to specific memory locations, ROM's, I/O ports, diagnostic LED's, interrupt controllers
and when 16 bit data bus and 24 bit addressing appeared modifications to make them
IEEE 696 compatible. An excellent example of a board like this is the Ithaca
Intersystem's CPU board. This is the CPU board I have used in my homebrew
system. The board is completely IEEE 696 compatible allowing one to actually
address 1MG of system RAM. It has an on board interrupt controller and
onboard ROM.
Memory Boards
As with the above CPU boards the early
S-100 memory boards were very basic. All utilized static RAM chips. The figures
below show pictures of the original Altair and IMSAI RAM boards. Because the
early CPU's ran at a slow 2MHz clock speed they were simple to construct and
were consequently quite reliable. The late 1970's was a time of rapid
development of RAM chips. 1K, 2K, 4K, and 8K boards proliferated. Soon people
started to look seriously at using dynamic RAM memory chips for the S-100 bus.
After a few early boards which had compatibility problems they gradually became
as reliable as static RAM boards. There were eventually a number of these
boards. Probably one of the most successful was the SD Systems ExpandoRam board.
This held what seems like an enormous block of memory at that time (16K). This
was latter improved upon to the enormously popular 64K dynamic memory board.
There were probably more of these boards sold than all other 64K RAM boards put
together at the time. A picture of the board is shown in figure 15. Later, 64k
boards became common in both static and dynamic forms. Later still 256K memory
boards (see below)) started to appear. Static memory came down in price in the
early 1980's so many people switched to using static RAM memory boards. The
difficulty of refreshing dynamic memory in an 8/16 bit dual CPU system was
simply too much trouble. By 1985 it became common to see S-100 systems with over
500K of memory.
I/O Boards
Clearly in all but the simplest applications
you are going to have to get data into and out of the computer. From the start of
the S-100 bus era a whole proliferation of I/O boards started to appear. Early S-100
boards where simply parallel, or serial (RS232) port boards. Then both started to
appear on the same board. Typical later boards had 1, 2 or 3 serial ports along with
a few parallel ports. Later more sophisticated boards started to appear. A major
milestone in those early days was the TDL "System Monitor Board". This
board ,with
a CPU board, gave you a complete functional system. It had a ROM monitor to take
care of all software I/O and system initialization. It had 3 serial RS232 ports,
a parallel port (for a printer) a cassette interface to read and store data on tape
as well as 4K of static RAM. It was the first real example of having software
redirecting computer I/O via an "IOBYTE" to different ports. A guy named Roger Amidon
in 1976 wrote the Zapple Monitor for the ROM which in countless other situations
was used and modified as the basic S-100 startup monitor. The board was way ahead
of its time.
With time quite
elaborate I/O boards started to appear for the bus. Following the TDL example most
combined serial and parallel ports on the one board. The Z80 and 8080
allows for only 64 IO ports. One issue that soon started to appear was finding a
"block" of ports on the bus for a new board that did not overlap with other boards.
It became quite important to have a flexible and movable I/O ports addressable setup.
Perhaps the most elaborate example of I/O port flexibility was the Morrow "Multi
I/O board". You addressed one port on the board which then bank selected other
ports on the board in software. Unfortunately the thing was so complicated that
few spent the time figuring the thing out. Nevertheless the board was extremely
powerful.. It had 3 serial ports, one parallel port, a timer/clock chip and a interrupt
controller chip. The Cromemco TU-ART dual serial and parallel board was an
example of a board that while powerful requited a lot of IO ports. Another popular
board was the Victor Graphic "ByteStreamer". It had three serial ports and
two parallel ports.
Video Boards
The other way these computers were
configured to talk to you was to use a video display board to display the
information and input the data from a serial or (more common) a parallel
keyboard driven port. These boards were typically a bit more complex that some
of the above early boards because even in the late 70's CRT controller chip like
functions had to be implicated with 7400 TTL chips. A popular video S-100
display board was one made by Solid State Music called the VB-1. The board was
memory mapped meaning that when characters were placed in a certain region of
the S-100 CPU's 64K memory space they appeared in the video produced by the
board. This allowed fast (but primitive) B&W games to be played. A color output
equivalent of this board was the Cromemco Dazzler board. It was an amazing
implementation of TTL logic on a 2 piece S-100 board system. Indeed it was
quite a few years before any other equivalent color video board could match this
Cromemco board. Unfortunately these boards were not capable of displaying more
than 64 characters per line on the CRT. The real world for text required 80
characters per line and at least 24 lines per CRT display.
A somewhat later but very popular
display board matching these parameters was the SD Systems 8024 video board. As
shown above. This S-100 board had it's own CRT controller and character
generator chip set. It was I/O mapped, meaning that from a software point of
view for the S-100 CPU, it communicated over a set of ports as if it was an
external CRT terminal. Towards the end of the S-100 bus era quite sophisticated
video boards started to appear. A popular one was the Lomas data "Color Magic"
board. This board contained an IEEE 969 24 bit addressable memory mapped video
that was completely compatible with the IBM-PC CGA video board. It also had an
IBM-PC compatible keyboard port and interrupt controller on board.
Cassette Controller Boards
Early S-100 computers loaded and
stored data on common cassette magnetic tapes. The TDL System monitor described
above for example had the hardware to do this. However this system was finicky
and was never real popular. A very popular dedicated S-100 board for reading and
writing to a cassette was one made by Tarbell. It was almost universal in its
acceptance and quite reliable. These days when I download from the web a 10MG
file in seconds I sometimes reflect on the time and tension one experienced when
downloading a 100K file on a cassette from a friend. Taking many minutes (and
sometimes try's) to do in those days. Other tape controller boards did exist but
none as popular as the Tarbell. For a brief period of time even commercial
software was sold in "Tarbell format".
Floppy Disk Controller Boards
When Shugart brought out the first 5"
floppy disk drives and it became commonly available to S-100 users the world of
data storage changed forever. IBM and others already had 8" floppy disk drives
and they were becoming more prevalent for those that could afford them, but the
5" floppy was much cheaper. What was needed was a S-100 board to read and write
to these drives. Two early formats of disk drives emerged. One was a disk
controller by Northstar. This controller board consisted of many 7400 type TTL
discrete logic chips. It required a "hard sectored" disk, meaning the disk had
many holes, one for each track sector. It was reliable, simple and popular for a
time. However with the availability of LSI floppy disc controllers such as the
1771 and 1791/1795 by Western Digital all this changed. Very reliable high
density floppy discs could be easily read and written to with S-100 boards that
utilized these chips. Further the disks were a single index hole soft sectored
type allowing a proliferation of many disk formats. An extremely popular and
reliable floppy disk controller of this type was the SD Systems Versafloppy II
disk controller. The controller worked with both 8" and 5" drives in single and
double density formats. However in the end almost every major S-100 manufacturer
had their own disk controller.
Other popular floppy disk controller
S-100 boards were those by CompuPro and Cromemco. These types of boards
represented to some extent the apex of the S-100 board era. They were quite
complex for their time. Made good use of the boards real estate and were very
reliable.
Hard Disk Controllers
Next came hard disks as the medium of
storing data in S-100 based computers. I remember well the day I installed my
first 5 MG Shugart hard disk. And how I marveled at all that storage space!
S-100 controller boards for hard disks were initially slow in coming. There was
no equivalent of the 1771 or 1791/95 controller chips. Furthermore these early
pre IBM-PC, MFM encoded drives did not have a disk controller on the drive (as
current IDE, SATA etc. drives have). Everything had to be done in 7400 based TTL
logic chips and software. Eventually however hard disk controller boards came.
One very good and reliable board (actually two S-100 boards joined via an overhead
connector), was the XComp
disk controller board. This board set is shown below. The board could control both
8" or the soon to become more common 5" drives.
Front Panel Board
While not strictly essential, a front
panel control board makes life much easier when building an S-100 system. Some
early systems came with one already built in. The best known being the classical
Altair and IMSAI computer system front panels. These boards via
the numerous switches allowed the operation to do things like examine a memory
location or port, alter the values there, or "single step" the CPU one
instruction at a time through memory. Historically the front panel also
generated the S-100 memory write signal (pin 68) by combining the status line
sOUT and the line pWR*. Later CPU boards of course moved this function to their
CPU board. You should always check this however and make sure there are not two
memory write signals being generated on the bus. This still remains one of the
most embarrassing aspects of the S-100 Bus. There is no reason why the memory
write signal should be treated any different to other bus signals generated by
the CPU or slave controller. I have spent some time with my own homebrew system
putting together a more modern front panel board that is IEEE-696 compatible and
controls the bus and displays the program counter etc in HEX display LED's. This
will be described elsewhere on this site. The Wamco front panel shown
below was a particularly good board and is described in more detail
here.
S-100 Computers Today
Over
time many specialized S-100 boards appeared. These included modem boards, math processor
boards, speech synthesis boards, time clock boards, and many relay control I/O boards.
Towards the early 1980's with the approval of the IEEE 969 standard, S-100 bus
boards
had become very sophisticated allowing multiple 8 and 16 bit CPU's on the bus and
clock speeds of up to 5MHz and above.
Today
S-100 based computers do not exist commercially.
Technology has moved on. CPU clock speeds are now in the GHz range rather that
the 2-5 MHz ranges. 32 and 64 bit systems are the standard and computer buses
it they exist at all on a home computer systems are orders of magnitude faster
and more complex. Nevertheless there is a growing number of amateur computer collectors and hobbyists
that collect and maintain S-100 based computers much as veteran car collectors and
hobbyists work with cars of the by-gone ages.
This web site is one of a number that
shares this passion. It is by no means inclusive, it is however the effort of one
person to share with others the magic of those early days and reinvent the spirit.
The best way to get in contact with me is
to use our forum.
Alternatively via e-mail at
monahan @vitasoft.org
Please Note: Remove the space before the '@' character to use the above
e-mail address (This prevents spam).
My address is:-
John Monahan
3839 Cottonwood Drive
Danville, CA 94506.