Catching those Old Busses
The PC has had its fair share of bus slots. What started with the ISA bus has culminated, so far, in PCI Express slots, M.2 slots, and a few other mechanisms to connect devices to your computer internally. But if the 8-bit ISA card is the first bus you can remember, you are missing out. There were practically as many bus slots in computers as there were computers. Perhaps the most famous bus in early home computers was the Altair 8800âs bus, retroactively termed the S-100 bus, but that wasnât the oldest standard.
There are more buses than we can cover in a single post, but to narrow it down, weâll assume a bus is a standard that allows uniform cards to plug into the system in some meaningful way. A typical bus will provide power and access to the computerâs data bus, or at least to its I/O system. Some bus connectors also allow access to the computerâs memory. In a way, the term is overloaded. Not all buses are created equal. Since we are talking about old bus connectors, weâll exclude new-fangled high speed serial buses, for the most part.
Tradeoffs
There are several trade-offs to consider when designing a bus. For example, it is tempting to provide regulated power via the bus connector. However, that also may limit the amount of power-hungry electronics you can put on a card and â even worse â on all the cards at one time. Thatâs why the S-100 bus, for example, provided unregulated power and expected each card to regulate it.
On the other hand, later buses, such as VME, will typically have regulated power supplies available. Switching power supplies were a big driver of this. Providing, for example, 100 W of 5 V power using a linear power supply was a headache and wasteful. With a switching power supply, you can easily and efficiently deliver regulated power on demand.
Some bus standards provide access to just the CPUâs I/O space. Others allow adding memory, and, of course, some processors only allow memory-mapped I/O. Depending on the CPU and the complexity of the bus, cards may be able to interrupt the processor or engage in direct memory access independent of the CPU.
In addition to power, there are several things that tend to differentiate traditional parallel buses. Of course, power is one of them, as well as the number of bits available for data or addresses. Many bus structures are synchronous. They operate at a fixed speed, and in general, devices need to keep up. This is simple, but it can impose tight requirements on devices.
Tight timing requirements constrain the length of bus wires. Slow devices may need to insert wait states to slow the bus, which, of course, slows it for everyone.
An asynchronous bus, on the other hand, works transactionally. A transaction sends data and waits until it is acknowledged. This is good for long wires and devices with mixed speed capability, but it may also require additional complexity.
Some buses are relatively dumb â little more than wires hanging off the processor through some drivers. Then how can many devices share these wires? Open-collector logic is simple and clever, but not very good at higher speeds. Tri-state drivers are a common solution, although the fanout limitations of the drivers can limit how many devices you can connect to the bus.
If you look at any modern bus, youâll see these limitations have driven things to serial solutions, usually with differential signaling and sophisticated arbitration built into the bus. But thatâs not our topic today.
Unibus
A Unibus card (public domain)
A common early bus was the Digital Equipment Corporation Unibus. In 1969, you needed a lot of board space to implement nearly anything, so Unibus cards were big. PDP-11 computers and some early VAX machines used Unibus as both the system bus for memory and I/O operations.
Unibus was asynchronous, so devices could go as fast as they could or as slow as they needed. There were two 36-pin edge connectors with 56 pins of signals and 16 pins for power and ground.
Unibus was advanced for its time. Many of the pins had pull-up resistors on the bus so that multiple cards could assert them by pulling them to ground. For example, INTR, the interrupt request line, would normally be high, with no cards asserting an interrupt. If any board pulls the line low, the processor will service the interrupt, subject to priority resolution that Unibus supported via bus requests and grants.
The grants daisy-chained from card to card. This means that empty slots required a âgrant continuity cardâ that connected the grant lines to prevent breaking the daisy chain.
Q-Bus CPU card (CC BY-SA 4.0 by [Phiarc])The bus also had power quality lines that could inform devices when AC or DC power was low. High-performance computers might have âFastbus,â which was two Unibuses connected but optimized to increase bandwidth. Because the boards were large, Digital would eventually adopt Q-Bus, or the LSI-11 bus. This was very similar to Unibus, but it multiplexed data and address lines, allowing boards to be smaller and cheaper to produce. Fewer wires also meant simplified backplanes and wiring, reducing costs.
Eventually, the Digital machines acquired Massbus for connecting to specific disk and tape drives. It was also an asynchronous bus, but only for data. It carried 18 bits plus a parity bit. Boards like the RH11 would connect Massbus devices to the Unibus. There would be other Digital Equipment buses like TURBOChannel.
Other computer makers, of course, had their own ideas. Sun had MBus and HP 3000 and 9000 computers, which used the HP Precision Bus and HP GSC. But the real action for people like us was with the small computers.
S-100 and Other Micros
It is easy to see that when the designers defined the Altair 8800 bus, they didnât expect it to be a standard. There was simply a 100-pin connector that accepted cards 10 inches long by 5 inches tall. The bus was just barely more than the Intel 8080 pins brought out, along with some power. At first, the bus split the databus into an input and output bus. However, later cards used a bidirectional bus to allow for more grounds on the now unused bus bits to help reduce noise.
Through the late 1970s and early 1980s, the S-100 market was robust. Most CP/M machines using an 8080 or Z-80 had S-100 bus slots. In fact, it was popular enough that it gave birth to a real standard: IEEE 696. However, by 1994, the IBM PC had made the S-100 bus a relic, and the IEEE retired the standard.
Of course, the PC bus would go on to be dominant on x86 machines for a while; other systems had other buses. The SS-50 was sort of the S-100 for 6800 computers. The 68000 computers often used VMEbus, which was closely tied to the asynchronous bus of that CPU.
Embedded Systems
While things like S-100 were great for desktop systems, they were generally big and expensive. That led to competitors for small system use. Eurocard was a popular mechanical standard that could handle up to 96 signals. The DIN 41612 connectors had 32 pins per row, with two or three rows.
Eurocard CPU (CC BY-SA 4.0 by [SpareHeadOne])A proper Eurocard could handle batteries and had strict rules about signal fanout and input levels. Unfortunately, it wasnât really a bus because it didnât define all the pin assignments, so cards made by one vendor didnât always work with cards from another vendor. The N8VEM homebrew computer (see the video below) used Eurocards. VME used a 3-row Eurocard connector, as well.
youtube.com/embed/wjf0k0vNxrQ?âŚ
STD Bus card (CC-BY 4.0 by [AkBkukU])Another popular small system bus was the STD Bus popularized by companies like Mostek. These were small 6.5âł x 4.5âł cards with a 56-pin connector. At one time, more than 100 companies produced these cards. You can still find a few of them around, and the boards show up regularly on the surplus market. You can see more about the history of these common cards and their bus in the video below.
youtube.com/embed/HaqWV9qY5fs?âŚ
Catching the Bus
We donât deal much with these kinds of buses in modern equipment. Modern busses tend to be high-speed serial and sophisticated. Besides, a hobby-level embedded system now probably uses a system-on-a-chip or, at least, a single board computer, with little need for an actual bus other than, perhaps, SPI, I2C, or USB for I/O expansion.
Of course, modern bus standards are the winners of wars with other standards. You can still get new S-100 boards. Sort of.
hackaday.com/2025/12/17/catchiâŚ