Ever since I uploaded a few videos of this 8-bit programmable computer,
that I built a while ago, I've gotten a lot of questions about it.
I wanted to answer a few of the most common questions,
and definitely by far the most common question,
is, "can you show us how to build it?" or "do you have schematics for this?"
Or something along those lines. The answer is, believe it or not, I actually don't have schematics
for this thing, I never sat down and drew out a full schematic.
Because of how modular everything is, or how modular this architecture is,
I was able to build each piece of it by itself, and build it, and test it, and experiment with
one module at a time, before I had to put it all together. It wasn't really until all the pieces came together
that I really had to be a little bit more thoughtful about how it was all going to work.
For that I had this really good model to follow in this book that I really recommend,
"Digital Computer Electronics", by Albert Paul Malvino.
Unfortunately, I think the book is out of print, but hopefully you can find a used copy online
or something. This book has an architecture... has a couple architectures.
One is the SAP-1, which is, "simple as possible". The goal is to be a very simple computer architecture,
that demonstrates all the crucial ideas behind computer operation
without being any more complicated than it needs to be.
The architecture that they have in here, is basically the model that I followed,
what I based this computer on. So you can see that all of the same components are there.
There's a program counter here, there's the memory address register,
the 16 bytes of memory that are used, programmable read only memory,
I've got RAM but, same difference, as far as the operation is concerned.
An instruction register, the control unit, which is all this stuff down here,
and you can see that they have all these signals going out, that come back in
to all the other components, and that's what all these yellow wires are.
They're all the control signals. They come from the control unit and go out
to all the different pieces to orchestrate everything.
The accumulator, which is the A register here. The ALU, which is the arithmetic
logic unit, which in this computer, just adds and subtracts.
Those are the only arithmetic operations it knows how to do.
And then the B register. The A and the B register are the inputs for the arithmetic.
And the output register, they have a binary display, I've got a decimal display
which I thought was a little nicer.
That's one enhancement that I made.
I made a few other enhancements to this as well, primarily around the instruction set
and what you can actually do with it.
The model here in the book, it talks about the instructions having a
"load A" instruction, an add instruction, subtract, output, and halt, and that's it.
I added a couple other things. I added a load immediate, which just lets you
save a little bit of memory, if you wanted to load a particular value into the A register.
And then a "store A" command, which in addition to the "load A," which loads the accumulator
from memory, you can store what's in the accumulator to memory.
So that let's you build a little bit more complex programs.
I also added jump instructions, which I thought were pretty important
for a programmable computer. There's a regular jump instruction,
there's also a conditional jump instruction, that jumps when the carry bit is set,
anytime the addition over flows.
So you might still be wondering, can I just tell you how to build this thing already,
can you draw up a schematic or something like that? Well, I've got some good news.
That is exactly what I plan to do, to make a bunch of videos, that go through every step of the process.
I am planning to actually build a whole new copy of this computer from scratch,
and have videos of all of it. The bad news is that it's going to take a while.
I don't have a ton of free time, unfortunately, but my personal goal is to make one video a week,
at a minimum. So we'll see how well that goes, but even with that, I want to make sure I'm covering
everything from first principles, not leaving any mystery about why things work the way that they do.
I don't wanna ask you to take anything on faith, but going step by step,
probably means it's going to take a while to get to everything. So at least...
at least a few months. Probably longer. I hope that it will be worth the wait. My goal, and I'm convinced that
anyone can build this computer. As long as you're patient enough to wire it all up, carefully,
and you have the persistence to troubleshoot the inevitable wrong connections,
or broken connections or something. I'm convinced that anyone can build this and really understand
at a very deep level, how a computer works, by building this. Even if you, don't have any experience with
this sort of thing, or with electronics. In fact I really hope, I'm really looking forward to that happening, and
people building these things, and improving on it even. So, I think for the next videos, I'm going to be
traveling over the next week, so it may be in a couple weeks before I can get the next video up.
My goal is to just start focusing on the clock, as the first steps, and walk through
building this, the clock circuit, from scratch. There's a couple interesting things going on here.
The clock, of course, coordinates everything in the computer, the timing of everything.
In this case, you can adjust the speed of the clock, you can see here I'm slowing it down,
so everything else is running slower. You can also stop the clock, and then step one step at a time,
which is very useful for troubleshooting something, if something isn't working, which inevitably,
if you build this you're going to run into a point where something isn't working, and you need to
go step by step. A couple features that are of the clock, is that it uses the 5-5-5 timers,
so I will go through how those work, and they're being used in a couple different applications,
in the clock circuit. So, I think that that's the next thing that I'll do, the next set of videos.
You can look forward to seeing those. I hope you're as excited as I am about this.
Again, I ask for your patience, it's going to take a while to get through it all,
but I hope it will be worth it. If this is exciting to you, please give this video a thumbs up,
and subscribe to the channel, tell all your friends, cause if you like what you see,
knowing that people find these videos valuable, is really motivating to me, so
subscribing and watching the videos, is honestly the best way to make sure that I
keep working on them. Thanks for watching.