Ben Eater Computer Build

A lot of people ask me Why I’m building a computer that does… Almost nothing useful? So I think it’s important to cover how I ended up working on this project, and why I love it so much, because I really just have to start at the beginning:

In 2020, I had a lot of time on my hands after work. While I was watching my neighbor play Fallout76, I was thinking about Ready Player One (the book and the movie :P) and I had an idea that was in line with The Oasis, but a bit different.

I got a notebook that day, and started writing everything down I could think of. After I filled the notebook, I switched to a google drive folder, and have since worked on some very small pieces of the game. But I knew ultimately I was going to need to get a lot deeper in the development if I wanted to have any hope of seeing it through to a reality. So I broke off from writing about the game and focused on programming. I worked on classes for Unreal engine with C++ and got as immersed as I could. But the classes didn’t help me understand C++ very well, so I took a break and checked out other classes. I found some with better explanations of what the code was doing, but not what the computer was doing. So then I was directed to assembly, where I would find a class on programming an Atari in assembly language for it’s own 6502 processor.

In the midst of trying to find commands I didn’t understand for a program the class was going over, I discovered Ben Eaters breadboard project and became obsessed (first time that’s happened Ha Ha…)

So without further ado, this is the first part of his kit: The clock!

ben eater clock
Ben Eaters Clock Kit

It looks pretty complicated, but just remember that everything in a computer breaks down to either On or Off. This clock is no exception, although the SR latch that makes up the heart of the 555 timer is still hurting my brain.

The longer IC’s towards the bottom of the picture are just Not, Or, and And gates of which I’m only using a few from each. The purpose of this part is to tell the processor to Step or Cycle. Every processor runs in cycles, and that is where the processor speed is derived from: how fast can it do one cycle?

In the case of the W65C02, we’ll be running at a max speed of 1Mhz (or 1,000,000 cycles per second). But for our purposes we don’t necessarily want to run at full speed, we want to be able to slow down and watch each command as it happens so we know that we understand what’s happening. And we even want to be able to stop.

To do this we created two different circuits, one with an adjustable time via an adjustable resistor in our 555 circuit. And one with a simple push button, that is using the 555 timer as a de-bouncer to keep from running more than one command per push. This will run through a circuit in our gates to make sure both of those options can’t run at once. This is the layout of the and/or/not gates:

Starting from the selector switch, with one side being Not, we move to and and then or 😛

But currently I’m having trouble with my makeshift Arduino logic analyzer getting noise on the inputs, which is making it really hard to get accurate readings. Hopefully I’ll be able to figure that out with a friend this evening in fact!

More on this project soon 😀

Shout out to Ben Eater! Check out his site eater.net and buy his things 😛