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.
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.
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.
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.
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:
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.
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.
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.