Many years ago I studied Electronic Engineering in college, but then I got a job as a software developer and never touched electronics again. It's been nearly 20 years, but lately I decided I wanted to fiddle with hardware again.
I decided I wanted to build the simplest computer I could think of using a 6502. Just something that could execute code and allow me to get a good hands-on insight into how the chip worked and how to wire it up etc. I know there are a lot of resources both here and elsewhere on the internet, but I wanted to work purely off data sheets rather than following someone else's path as I felt that would force me to learn the most as I went.
I succeeded in creating a circuit that will run a program from ROM and display the contents of the address and data busses on LEDs. I'm looking forward to building on this further by adding RAM, some sort of input method, and perhaps an I2C LCD for output.
I am using a W65C02 with 8k ROM in the form of an AT28C64. The clock is provided by a simple 555 circuit.
Below is the schematic, which is probably riddled with fundamental errors and I'd definitely be open to and interested in feedback in that regard. I have it running at about 1Hz so that it's possible to watch and understand everything that the chip is doing via the LEDs.
And below is a short video of it running a simple program. When the read LED goes off, the data bus will show a single bit lit, which shifts up the bus and then loops.
Code: Select all
.ORG $100;
START: LDA #01;
STA $0200;
LOOP: ASL;
STA $0200;
CMP #$80;
BEQ START;
JMP LOOP;