After tinkering with the 8-bit breadboard computer, I started to get more interested in other 8-bit processors which then led to reading about early home computers. Some of the first computers that I can remember using are the Commodore 64 and the Apple II, so I started reading more about 8-bit machines and the history of personal computers. I started with the early machines like the COSMAC Elf, the Altair 8800, and the IMSAI 8080 all the way to the end of the 8-bit era in the early 90s.
Over the last few weeks, I’ve continued work on the 8-bit breadboard computer. I first added the control signals. The bundle of yellow wires in the bottom right are the control lines that run to each module. The blue LEDs underneath the bundle will show the active signals. The next step was to define the microcode and add the control logic using two eeproms. The code snippet below shows the instructions as a binary representation of the control signals above.
After a busy few weeks, I finally got back to the 8-bit computer project. Since the last post, I’ve added the output register and the bus connections. I used a CD4040BE for the counter instead of the 74LS76 as I didn’t have any of those on hand. In the image above, I’ve added the bus connections. The output register is counting up with the program counter. The blue diodes in the top right module are showing the number 6 in binary which is mirrored on the output display.
Part of the output display of the 8-bit computer relies on an eeprom to drive the 7-segment displays. In order to program the eeprom, I needed to build a programmer. In Ben Eater’s youtube series, he builds a programmer with an arduino nano and a couple of shift registers because the nano doesn’t have enough digtal pins to program the parallel eeprom. I had an arduino mega with plenty of digital pins, so I used it instead.
I finished up the ram and built the program counter for my 8-bit computer. Its starting to come together. The modules on the left from the top down are: Clock Module Memory Address Register Ram Module Ram Module Instruction Register The center is the bus and the right side is: Program Counter A Register ALU B Register A shot of it running.
My problems with the ALU ended up being the cheap jumper wires that I bought from amazon. The inner wire was so thin and soft that some of the wires were actually broken inside of the insulation. I rewired the ALU using good 22awg wire and it worked like a charm. In the image above, register A (the top LED) is displaying the number 2. Register B (the bottom LED) is showing the number 1.