The bi-directional 8-bit data bus of the Intel 8080 was split into two unidirectional 8-bit data buses. Later these two 8-bit busses would be combined to support a 16-bit data width for more advanced processors.


Why were the data lines of the early S-100 bus split into these unidirectional lines? Certainly the control signals provided were sufficient to allow cards to properly buffer a bidirectional signal.


It's rather simple concerning the hardware. To operate the bus without the CPU (while plugged in), the databus needs to be separable from the CPU. That's why buffers are needed. While the processors direction signal (DBIN) could have been used for CPU initiated transfers, it would not be possible to use that when the CPU is halted in any state. Also a simple override wouldn't have worked well, as changing memory when the data bus was driven by the CPU would have resulted in an undefined CPU behaviour (possible damage). A more complicated logic would have been needed to not only define direction but also validity. Further it would have been complicated due the fact that the front panel was not only meant to access memory insted of the CPU, but also be able to directly present data to the processor.

Having two separate drivers and control for each was the only way to solve all the requirements.

Of course, after doing so it would have been possible to join these busses again. But then again, the selected 100 pin connector offered way more lines than needed anyway and keeping them separate might have opened other use cases as well. So not joining them again was a sensible decision.

  • Do you mean to test non-CPU cards from the front panel?
    – DrSheldon
    Sep 29 '18 at 20:23
  • 1
    I don't understand your question. The Altair had a front panel that could drive the bus to read or write any address, memory or I/O - asl well as present data to the CPU.
    – Raffzahn
    Sep 29 '18 at 20:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.