Building 8-Bit Computer [Not Arduino]

Hi,

I found this video of an 8-Bit computer: Stepping through a program on the 8-bit breadboard computer - YouTube

I would like to build my own, but I'm having problems identifying all of the components he used. It looks like this is just several circuits connected together.

The main problem is, that he doesn't describe what the various ICs are. I assume that a lot of them are logic gates, and because he can program the computer: Programming my 8-bit breadboard computer - YouTube

Based on that programming video, he must have some type of RAM on the computer as well.

I can figure out how to replicate the computer, but I just can't figure out how to identify all the ICs that he's using. I need to make a parts list so that I can buy everything.

The guy said he was going to go over the construction in other videos but I can't find them, so he must have decided not to post any more. It's been a couple years.

A few of the chips have numbers that are readable when I zoomed in. When I entered those numbers into Mouser.com they came up as various logic gates. But that really doesn't give me enough information to start ordering parts.

I am a computer science student and we just went over all of the components of a computer and talked about how this stuff worked.

I would like to build this as my final project.

I don't know of too many electronics forums, so I am asking on the Arduino site. I know a lot of people here are really good with electronics.

Thanks.

Edit: I noticed if I pause at 3 seconds into the second video (on programming) he has the various circuits listed out on paper. I think that's going to be a big help. I think I've already identified a couple chips just from knowing what the circuits were.

It looks more complicated than it is. It's just a few smaller circuits connected together. Most of the components are pretty basic and I've identified them all except the ICs.

Do you think this is an appropriate project for a computer science major? To me it seems more like an electronics project, except an electronics major would probably be building the "computer" for a specific purpose... Where I work we make several specialized products and every one basically has a computer on a board... A processor, RAM, ROM, a clock, and some specialized input/output circuitry, and specialized firmware.

I think he's using a microprocessor. A computer made from basic logic chips would be more complex. Decoding and executing commands with logic chips is crazy-complicated... It's been done, even with vacuum tubes, but it ain't easy and it's not practical when we have more highly-integrated circuits.

If you look at the manufacturer's application notes for a particular microprocessor might give you a suggested basic circuit. You might also find a development/evaluation board, and if they publish the schematic for that, that's a good start too.

When I was in college in the late 70s we had a board (with an 8085 I think) that looked similar to that breadboard computer, except it was a manufactured PC board and it had a keypad for hexadecimal input. We wrote programs in (not assembly language) and we entered the instructions & data one command at a time. I don't remember if we could single-step it.

We had another more primitive computer with toggle switches for binary input and LEDs for binary output. The front panel looked a lot like an [u]Altair[/u]. You should be able to find schematics for the Altair, but you probably can't find the components. ...And, I don't think it makes any sense to make an "antique" computer.

A less ambitious project might be to build an Apple 1. It can be done with 3 chips on a stripboard. See Ben Heck's youtube video about it. He gives you the full schematic and tells you what to buy.

The hardware construction is probably relative easy, if a bit tedious to ensure all the connections are correct.

The real question is "how will you program it? "
Without a practical answer to that I strongly suggest you don't start.

Even to program it in assembler code needs some "system".

  • Where will you write the program?
  • How will you convert it to the appropriate hex code for your CPU?
  • How will you upload the hex code to the CPU?
  • How will you demonstrate that the program works properly?
  • How will you debug it to find the errors if it does not work properly?

And you will find assembler gets tedious very quickly if you plan anything even a little bit complex.

...R

I found the guy's email address. I'm going to email him and see what he says. He's done the project, and it doesn't seem all that complicated. A lot of connections.

As far as programming it goes, he has a video that shows how to do that. The second video I linked has uses DIP switches to program a couple values into the RAM.

The computer doesn't do much more than adding a couple binary numbers, but that's not really the point... It's a concept and helps learn how a real computer works, because they have the exact same components.

I just got done learning about how the registers, ALU and program counters worked, and we wrote our own machine and assembly code.

Here have all the parts to build the computer

Google "homebrew CPU." for more info.

BillHo:
Here have all the parts to build the computer
http://www.instructables.com/id/How-to-Build-an-8-Bit-Computer/?ALLSTEPS

Google "homebrew CPU." for more info.

Thanks!

That is going to be helpful.

It seems like everyone else just wanted to give me reasons on why I shouldn't do it, instead of providing anything else.

The tricky part of a design like that is getting control signals & timing correct. You're going to need at least a 2-channel oscilloscope to debug stuff, and a logic analyzer would help a lot too, but you can get by without it.

I used to draw out the timing needed on D-size sheets of paper showing how it all worked.
On another forum that I was on for a bit after building a tube amp and before finding the Arduino forum in2010, I had posted pictures of a 4-channel digital delay line I made in fall/winter 1985, not long after getting out of college. It has 4 12-bit ADCs, 32Kx16 of SRAM (only 12 bits used), 4 DACs, opamps for signal conditioning & output filtering, UVEPROM for display lookup for a 4 digit display to show the delay time that was dialed in. Delay times are totally variable, each output can be fed back into the input at controllable levels so they fade out after a few iterations, and the multiple delays all adding up can yield different sounds.
Uses a couple parts like 74LS154 to make a series of clock pulses that get turned into all the control signals.
Worked quite well. I was inspired by the multiple echoes/reverb heard in Men At Work songs that were out at the time. Still like those songs too.
At the same time, processor based stuff in surround sound systems with their different hall, theater, large room, etc. sounds were coming out and it was easy to see a faster processor and some software could do all that I had done in discrete hardware with no software.

But, I'm a hardware designer and not so much a coder, so I never pursued it down the software side. And I still enjoy the hardware side of things. Maybe I'll revisit it at some time with cooler running chips, PCBs (vs 100% wirewrap), add a keypad for entering delay times, digital pots, add some nonvolatile memory so settings can be saved & recalled.
At the same time, you can get little effects box like this with more effects and so inexpensive.
So satisfying to make something yourself tho.

This is a fascinating project. You should check out the videos and work done on reverse engineering the 6502, for example from: http://vids.glsenneo.com/videos/27c3-reverse-engineering-the-mos-6502-cpu-en

The video explains how a CPU works - as instructions are fetched they (the opcodes) are combined with the clock cycle to do a lookup into an instruction-decode table (like a state table). Each action (output) of the decode table is done either if the corresponding bit is:

  • True
  • False
  • Don't care

The "don't care" part lets a whole lot of similar instructions do the same thing for one clock cycle (eg. add and subtract might both start by fetching data from a register).

Actions might be: get data from memory, put data into memory, put data into the P-code register, add two things together, and so on.

Also see: Block Diagram of 6502 Microprocessor, Circa 1979 and 6507 Decode ROM

You can see from the block diagram that the decode ROM outputs 130 different signals which activate other parts of the CPU. This causes things to happen, like loading, storing, etc. during that particular clock cycle.

Part of the above diagram:

I love that one block - "Random Control Logic" - like they threw the parts in a box, shook it up, then pulled them out, soldered them all together, crossed their fingers - et Voila! LOGIC!

:smiley:

The 6502 was a great product and fanned the flames of the Motorola-Intel Endian wars. My first 8-bit in high school was the Altair 8008 kit. http://en.wikipedia.org/wiki/Altair_8800 Lot of history in that one. We took apart the simplicity of the early 1 bite instruction processor in college CS classes, and then built a basic one in EE. Usually the more you understand the hardware the better you can be at the software.