S-100 and IEEE-696 Bus List

This document copyright Herbert R. Johnson 2008. Last updated Oct 21 2008. AM-100 added April 2002. SD Systems added Jan 2003
original Copyright 2002 Herb Johnson
To return to my S-100 Web page click here.

S-100 History and Bus lines: Altair/IMSAI, IEEE-696 & others.

I think it is fair to say there are THREE major versions of the S-100 bus.

The MITS Altair 8800 of course introduced the "Altair" bus, which IMS Associates, Inc. replicated on its product, the IMSAI 8080. Several of the MITS bus signals were replaced or ignored on the IMSAI bus but the core set remained: two 8-bit unidirectional data lines, 16 address lines, the 8080 status and control signals, some front-panel control lines, and power (unregulated positive and negative 8 volts, unregulated positive and negative 16 volts). Power was regulated on each S-100 card with individual voltage regulators: +8 became +5 for logic for instance. In this document we refer to the Altair/IMSAI bus as the first version of the S-100 bus. Examine this document for a list of IMSAI and Altair signals, as well as our bus lists in this document.

Many people bought an IMSAI 8080 or MITS Altair 8800, and began to manufacture their own "Altair plug-in" boards. They used slight variations of the Altair or IMSAI bus; even MITS varied their bus in later Altair models. With a suggestion from Roger Mellon of Cromemco, they referred to their bus as "the S-100 bus", based on their "Standard" for the 100 pins in use: check this Web document for some details. Most variations amounted to different signals to accomodate refresh or memory timing. Some front panel signals (such as memory write protect) did not persist as systems were developed without elaborate front panels.

Some people at the time, and still today, complain about the layout of signals on the S-100 bus. However, other busses of the period were comparably designed. Look at this document of Intel's bus for their Intellec development systems of the early 1970's.

There was a loose standard for managing banked memory (16 bit address = 64Kbyte memory) via I/O ports but there were other schemes as well. Many 8-bit processors were adapted to the S-100 bus in this period, but most systems used the Z80 or, later, the 8088 or 8086. All continued to use 16 address lines and 8 unit-directional data lines. We call this later bus "the S-100 bus" and the second version is listed below.

Then in the late 1970's, Compupro (Bill Godbout) and Morrow (George Morrow) and others developed a faster and expanded S-100 bus. It provided bus speeds to 10 MHz, 24 address lines and an option for EITHER 2-8 bit one-directional data paths or one 16-bit bidirectional data path. Other features included master/slave arbitration and bus mastering arbitration; these exchanged control of the bus from one board to another.

This expanded bus was in discussion by Morrow and Godbout since 1977. It was proposed as an IEEE standard called IEEE-696 in mid 1978, and was in products by Compupro and Morrow since 1980. We call this the third version of the S-100 bus. Over time, these and other companies produced CPU cards with Motorola or Intel 32-bit processors, and 8 or 16-bit memory cards, for single or multiprocessor systems. They out-performed the IBM-PC's of the era, up until roughly the late 1980's. We document a number of these later busses in the bus signal lists below.

While a de-facto standard since the late 1970's, the IEEE 696 committee only approved it in 1983, unfortunately about the time the S-100 bus began to decline in use. The official IEEE-696 bus signals are listed below. The IEEE standard was withdrawn in June 1994.

References:
"The S-100 Bus Handbook" by Dave Bursky. Hayden Press, 1980
various IMSAI and Altair manuals
IEEE Standard 696-1983, notes in the "Forward"
May 1978 and July 1979 articles in IEEE Computer magazine, "Standard Specifications for S-100 Bus Interface Devices"
Compupro CPU 8085/88 User's Manual, July 1980
"Interfacing to S-100/IEEE 696 Microcomputers" by Mark Garetz and Sol Libes, publised 1981 and 1988. The introduction by Garetz has the quote about the S-100 name.

Impact of the S-100 bus

The S-100 architecture was completely open; boards were not just expansions but DEFINED the entire computer. After the MITS Altair 8800 and IMSAI 8080, subsequent early S-100 manufacturers started with board products; then produced S-100 systems. In the late 1970's S-100 systems were a large, arguably dominant, segment of the personal and business microcomputing market; they were a strong presence through the mid-1980's. Many features of the 1981 IBM PC, which is mis-repesented as "starting" the personal computer market, can be attributed to the need to compete with S-100 systems and to provide comparable support. Third-party card expansion, open hardware and full software documentation were standard for S-100 systems long before the IBM-PC. The work of people like George Morrow and Bill Godbout to standardize and advance the S-100 bus into the IEEE-696 standard was critical for the future of S-100 systems, and set the course followed by the later "PC compatible" industry.

During the mid-1970's, industrial controllers and scientific instruments were often made from S-100 systems. This market was eventually taken over by IBM-PC's in the mid-1980's, followed in the 1990's by what is now called "embedded controllers". Those are non-bussed single-card computers. Later some of these were replaced by single-chip computers, as chips became complex enough to do the work needed while sending data to other computers for analysis and storage.

S-100 books and documents

For detailed descriptions of the original IMSAI 8080 and Altair 8800 bus architectures, check our lists in our bus document; and the bus pin lists below on this page. We have a S-100 Frequent Questions document to cover many questions of use. Bill Godbout, founder of Compupro and George Morrow of Morrow worked on the IEEE-696 bus design, we have many manuals of those products. A discussion of pins 20 and 70 on the original Altair bus, which supported front-panel memory write protect, is in this document. My S-100 home page links to other documents of interest.

There were a number of S-100 technical books of the era. "Interfacing to S-100/IEEE 696 Microcomputers", by Sol Libes and (in the 2nd edition) Mark Garetz, was published in 1981 by Osborne/McGraw-Hill and later published by M&T Press in 1988. It covers in depth how to design and interface S-100 cards for all kinds of uses. "The S-100 Bus Handbook" by Dave Bursky was published in 1980 by Hayden Book Company, covers systems and boards of the 1970's. It also has many early S-100 board schematics, and a lot of how-to information. Both books have versions of the 696 standard. A Web search will find these books as often available for sale.

The IEEE 696-1983 standard in preliminary form was published in "IEEE Computer" magazine in July 1979; it's likely available as a reprint. Godbout/Compupro published a version in their "Product Users Manuals 1975-1980" in 1981. The IEEE Standards publication was published in 1983 and is available from the IEEE as a PDF for about $29 as of 2007.

Of course, review our list S-100 bus manufacturers to find links to their product documents. S-100 and IEEE-696 product docs generally include schematics, bus lists, and functional descriptions for that company's implementation of the bus.

IMSAI/Altair bus and IEEE-696

The chart below lists the "S-100 bus" signals for the Altair 8800(a), the IMSAI 8080 variations, and seperately the IEEE-696 lines. A detailed list of the IMSAI bus and the Altair bus Active low signals are shown as "/". Unused lines are "---". Reserved lines are "rsvd". The first column are Altair 8800 and IMSAI 8080 signals; if the IMSAI signals are different they are in "()". The next column are the IEEE-696 signals. Signals 24 and 25 are named "phi" one and two. IEEE-696 signals separated by "|" represent the 8-bit and 16-bit data path signals, respectively, the latter enabled by the /SIXTN and /SXTRQ handshake.

PIN    Alt(IMS)   696          PIN      Alt(IMS)     696

1       +8 V      +8 V          51      +8 V         +8V
2       +18 V     +18 V         52      -16 V        -16V
3       XRDY      XRDY          53      /SSW DSBL    GND
4       VI 0      /VI0          54      /EXTCLR      /S CLR
5       VI 1      /VI1          55      RTC(---)     /DMA0
6       VI 2      /VI2          56      /STSTB(---)  /DMA1
7       VI 3      /VI3          57      DIG1(---)    /DMA2
8       VI 4      /VI4          58      FRDY(---)    /SXTRQ
9       VI 5      /VI5          59      ---          A19
10      VI 6      /VI6          60      ---          /SIXTN
11      VI 7      /VI7          61      ---          A20
12      ---       /NMI          62      ---          A21
13      ---       /PWRFAIL      63      ---          A22
14      ---       /DMA3         64      ---          A23
15      ---       A18           65      ---          ---
16      ---       A16           66      ---          ---
17      ---       A17           67      ---(/PHANT)  /PHANTOM
18      /STADSB   /SDSB         68      MWRT         MWRT
19      /CCDSB    /CDSB         69      /PS(--)      rsvd
20      UNPROT(T5) GND          70      PROT(GND)    GND
21      SS        ---           71      RUN          rsvd
22      /ADDDSB   /ADSB         72      PRDY         RDY
23      /DODSB    /DODSB        73      /PINT        /INT
24      phi2      phi2,phi0     74      /PHOLD       /HOLD
25      phi1      /PSTVAL       75      /PRESET      /RESET
26      PHLDA     PHLDA         76      PSYNC        PSYNC
27      PWAIT     rsvd          77      /PWR         /PWR
28      PINTE     rsvd          78      PDBIN        PDBIN
29      A5        A5            79      A0           A0
30      A4        A4            80      A1           A1
31      A3        A3            81      A2           A2
32      A15       A15           82      A6           A6
33      A12       A12           83      A7           A7
34      A9        A9            84      A8           A8
35      DO1       DO1|D1        85      A13          A13
36      DO0       DO0|D0        86      A14          A14
37      A10       A10           87      A11          A11
38      DO4       DO4|D4        88      DO2          DO2|D2
39      DO5       DO5|D5        89      DO3          DO3|D3
40      DO6       DO6|D6        90      DO7          DO7|D7
41      DI2       DI2|D10       91      DI4          DI4|D12
42      DI3       DI3|D11       92      DI5          DI5|D13
43      DI7       DI7|D15       93      DI6          DI6|D14
44      SM1       SM1           94      DI1          DI1|D9
45      SOUT      SOUT          95      DI0          DI0|D8
46      SINP      SINP          96      SINTA        SINTA
47      SMEMR     SMEMR         97      /SWO         /SWO
48      SHLTA     SHLTA         98      SSTACK       /ERROR
49      /CLOCK    CLOCK         99      /POC         /POC
50      GND       GND           100     GND          GND

S-100 bus signals

After the IMSAI 8080, several manufacturers produced S-100 systems and cards. Northstar used most but not all of the IMSAI/Altair bus lines, adding lines 65 for memory request and 66 for the Z80 refresh line, respectively. A number of CPU card makers used line 66 to strobe a refresh address onto the bus: the Z80 produced a sequential address and this address strobe signal. In later S-100 designs it was common to ground pins 70 and 20 - watch for this when mixing cards! The signals below are from Northstar ZPB-A (Z80) card documentation; they are compared to the IMSAI/Altair bus lines.


PIN    Alt(IMS)   N*            PIN      Alt(IMS)     N*

1       +8 V      +8 V          51      +8 V         +8V
2       +18 V     +18 V         52      -16 V        -16V
3       XRDY      XRDY          53      /SSW DSBL    /SSW-DSBL
4       VI 0      /VI0          54      /EXTCLR      /EXTCLR
5       VI 1      /VI1          55      RTC(---)
6       VI 2      /VI2          56      /STSTB(---)
7       VI 3      /VI3          57      DIG1(---)
8       VI 4      /VI4          58      FRDY(---)
9       VI 5      /VI5          59      ---
10      VI 6      /VI6          60      ---          GND optional
11      VI 7      /VI7          61      ---
12      ---       /NMI          62      ---
13      ---                     63      ---
14      ---                     64      ---
15      ---                     65      ---          /PMREQ
16      ---                     66      ---          /PRFSH
17      ---                     67      ---(/PHANT)  /PHANTOM
18      /STADSB   /STA-DSBL     68      MWRT         MWRITE
19      /CCDSB    /CC-DSBL      69      /PS(--)      /PS
20      UNPROT(T5) GND optional 70      PROT(GND)    GND optional
21      SS        SS            71      RUN          RUN
22      /ADDDSB   /ADDR-DSBL    72      PRDY         PRDY
23      /DODSB    /DO-DSBL      73      /PINT        /PINT
24      phi2      phi2          74      /PHOLD       /PHOLD
25      phi1      phi1          75      /PRESET      /PRESET
26      PHLDA     PHLDA         76      PSYNC        PSYNC
27      PWAIT     PWAIT         77      /PWR         /PWR
28      PINTE     PINTE         78      PDBIN        PDBIN
29      A5        A5            79      A0           A0
30      A4        A4            80      A1           A1
31      A3        A3            81      A2           A2
32      A15       A15           82      A6           A6
33      A12       A12           83      A7           A7
34      A9        A9            84      A8           A8
35      DO1       DO1           85      A13          A13
36      DO0       DO0           86      A14          A14
37      A10       A10           87      A11          A11
38      DO4       DO4           88      DO2          DO2
39      DO5       DO5           89      DO3          DO3
40      DO6       DO6           90      DO7          DO7
41      DI2       DI2           91      DI4          DI4
42      DI3       DI3           92      DI5          DI5
43      DI7       DI7           93      DI6          DI6
44      SM1       SM1           94      DI1          DI1
45      SOUT      SOUT          95      DI0          DI0
46      SINP      SINP          96      SINTA        SINTA
47      SMEMR     SMEMR         97      /SWO         /SWO
48      SHLTA     SHLTA         98      SSTACK       SSTACK
49      /CLOCK    CLOCK         99      /POC         /POC
50      GND       GND           100     GND          GND

Additional: Alpha Micro AM-100 bus

A company produced a 16-bit processor on a varient of the S-100 bus. The Alpha Micro AM-100 used a Western Digital multichip processor set - the same one used to emulate the PDP-11 for the LSI-11 - and used most of the S-100 bus pins in a fashion similar to the IMSAI bus. Alpha Micro sold their AM-100 in an IMSAI chassis with IMSAI front panel. Here are the AM-100 interface signals, from a document for the AM-100 processor. card. Lines marked ??? were not specified in the document. I assume the power and ground pins are the same. The pin 49 clock is 2MHz. Note the extensive DMA lines. An owner of both an IMSAI and an Alpha Micro said to me: "The Alpha Micro did not support a front panel. Sure, the lights blinked but you could not toggle programs in through those keys."

PIN    Alt(IMS)   AM-100        PIN      Alt(IMS)    AM-100

1       +8 V      +8 V          51      +8 V         +8V
2       +18 V     +18 V         52      -16 V        -16V
3       XRDY      ----          53      /SSW DSBL    ????
4       VI 0      /VI0          54      /EXTCLR      ???   
5       VI 1      /VI1          55      RTC(---)     ???  
6       VI 2      /VI2          56      /STSTB(---)  /DMAGR7
7       VI 3      /VI3          57      DIG1(---)    /DMAGR6
8       VI 4      /VI4          58      FRDY(---)    /DMAGR5
9       VI 5      /VI5          59      ---          /DMAGR4
10      VI 6      /VI6          60      ---          /DMAGR3
11      VI 7      /VI7          61      ---          /DMAGR2
12      ---                     62      ---          /DMAGR1
13      ---                     63      ---          /DMAGR0
14      ---                     64      ---          /DMARCVD
15      ---                     65      ---          ---
16      ---                     66      ---          ---
17      ---                     67      ---(/PHANT)  ???
18      /STADSB   ----          68      MWRT         MWRT
19      /CCDSB    ----          69      /PS(--)      ??? 
20      UNPROT(T5) ???          70      PROT(GND)    ???
21      SS        ---           71      RUN          ???
22      /ADDDSB   ---           72      PRDY         ???
23      /DODSB    ---           73      /PINT        ??? 
24      phi2      phi2          74      /PHOLD       /DMAREQ
25      phi1      /PSTVAL       75      /PRESET      /PRESET
26      PHLDA     PHLDA         76      PSYNC        ???
27      PWAIT     PWAIT         77      /PWR         /PWR
28      PINTE     PINTE         78      PDBIN        PDBIN
29      A5        A5            79      A0           A0
30      A4        A4            80      A1           A1
31      A3        A3            81      A2           A2
32      A15       A15           82      A6           A6
33      A12       A12           83      A7           A7
34      A9        A9            84      A8           A8
35      DO1       DO1           85      A13          A13
36      DO0       DO0           86      A14          A14
37      A10       A10           87      A11          A11
38      DO4       DO4           88      DO2          DO2
39      DO5       DO5           89      DO3          DO3
40      DO6       DO6           90      DO7          DO7
41      DI2       DI2           91      DI4          DI4
42      DI3       DI3           92      DI5          DI5
43      DI7       DI7           93      DI6          DI6
44      SM1       SM1           94      DI1          DI1
45      SOUT      SOUT          95      DI0          DI0
46      SINP      SINP          96      SINTA        SINTA
47      SMEMR     SMEMR         97      /SWO         /SWO
48      SHLTA                   98      SSTACK       ???
49      /CLOCK    CLOC          99      /POC         /POC
50      GND       GND           100     GND          GND

Additional: SD Systems S-100 bus

SD Systems built a number of S-100 and IEEE-696 systems. They used bus line 66 for refresh; lines 15, 16, and 17 for some kind of timer; line 19 for a disable of some sort. Phase 1 and 2 were both provided (pins 25 and 24). Note that some of the interrupt lines are different from their use on the IMSAI. Most of the other lines appear to be similar to the IMSAI (shown here as IMS) except for the absence of front panel signals. In this S-100 design pins 70 and 20 are grounded. The signals below are from the SD-Systems documents, they may not include all pin functions on all cards. A good rule of thumb is to check the lines on the CPU card of choice.

Some of the SD Systems motherboards have a current source to drive a set of terminating resistors: each active signal line has a 560 ohm resistor at either end of the bus tied to this current source. That is one of a number of ways to "terminate" S-100 active signal lines to reduce ringing and noise.


PIN    Alt(IMS)   SDS           PIN      Alt(IMS)     SDS

1       +8 V      +8 V          51      +8 V         +8V
2       +18 V     +16 V         52      -16 V        -16V
3       XRDY                    53      /SSW DSBL
4       VI 0      NMI           54      /EXTCLR
5       VI 1      V11           55      RTC(---)
6       VI 2      V12           56      /STSTB(---)
7       VI 3      V13           57      DIG1(---)
8       VI 4      V14           58      FRDY(---)
9       VI 5                    59      ---
10      VI 6                    60      ---
11      VI 7                    61      ---
12      ---                     62      ---
13      ---                     63      ---
14      ---       IE            64      ---          IEO
15      ---       ZC1 to 0      65      ---
16      ---       ZC1 to 1      66      ---          /PRFSH
17      ---       ZC1 to 3      67      ---(/PHANT)  /PHANTOM
18      /STADSB                 68      MWRT         MWRITE
19      /CCDSB    CSA-DSBL      69      /PS(--)
20      UNPROT(T5) GND          70      PROT(GND)    GND
21      SS                      71      RUN
22      /ADDDSB                 72      PRDY         PRDY
23      /DODSB                  73      /PINT        /PINT
24      phi2      phi2          74      /PHOLD       /PHOLD
25      phi1      phi1          75      /PRESET      /PRESET
26      PHLDA     PHLDA         76      PSYNC        PSYNC
27      PWAIT     PWAIT         77      /PWR         /PWR
28      PINTE                   78      PDBIN        PDBIN
29      A5        A5            79      A0           A0
30      A4        A4            80      A1           A1
31      A3        A3            81      A2           A2
32      A15       A15           82      A6           A6
33      A12       A12           83      A7           A7
34      A9        A9            84      A8           A8
35      DO1       DO1           85      A13          A13
36      DO0       DO0           86      A14          A14
37      A10       A10           87      A11          A11
38      DO4       DO4           88      DO2          DO2
39      DO5       DO5           89      DO3          DO3
40      DO6       DO6           90      DO7          DO7
41      DI2       DI2           91      DI4          DI4
42      DI3       DI3           92      DI5          DI5
43      DI7       DI7           93      DI6          DI6
44      SM1       SM1           94      DI1          DI1
45      SOUT      SOUT          95      DI0          DI0
46      SINP      SINP          96      SINTA        SINTA
47      SMEMR     SMEMR         97      /SWO
48      SHLTA     SHLTA         98      SSTACK
49      /CLOCK    CLOCK         99      /POC         /POC
50      GND       GND           100     GND          GND
Contact information:
Herb Johnson
New Jersey, USA
To email @ me, see
see my ordering Web page.

Copyright © 2008 Herb Johnson