I didn’t set out to build a microprocessor. It just back on the data lines. I built a program counter out sort of happened. We were building logic circuits in my of binary counters. The address bus needed some-Logic Machines course at Bennington College. Noth- where to go, so I added a RAM chip. I made another ing complicated, just adders and flip-flops made from register just because they’re easy.
70s-era TTL chips. We even wired eight big flip-flops on I sequenced the whole thing with more RAM, an breadboards to make one whole byte (we estimated 16 instruction register, and a 4-bit counter. The RAM square miles to make the memory in my PowerBook). bits go to the different components’ controls. By
Over midterm weekend, I brought home parts and sequencing the bit patterns, I can, for example, tell breadboards and spread them out on the coffee the math unit to place its sum on the data bus and tell table. I’d been thinking about how a microproces- a register to record it. Another sequence can incre-sor is just a bunch of simple circuits tied together ment the program counter and load the next RAM val-by a common interface (address and data buses) ue into the instruction register. My big insight is that a and controlled by some kind of clever sequencer. machine language instruction is just a reference to I started by building a register: a single byte of mem- a sequence of controls, like a band leader reading ory with eight data lines in/out and two wires to con- notes and calling out musical chords. trol whether it’s recording or playing back. I wired up The whole project came together over the weekend. LEDs and switches to the data lines. By setting a val- By Monday, I had a wiry bunch of breadboards that ue on the switches and pressing the record button, were busy figuring square roots. I think I’ll add a serial I could set the byte, and by pressing the play button, interface, make a GCC back end, and port Zork.
I could see the value on the LEDs. Amazing.
Emboldened, I built a math unit with two registers Do you have your own Homebrew story to share? Send it to us as inputs and an 8-bit adder and latch to put the sum at homebrew@makezine.com.
References:
Archives