Hello,
I saw Ben Eater's video on the 65C02 and got hooked. I set out to build my own computer, and this is what I've come up with. I haven't programmed it to do much yet, but I do have plans for it.
Attachment:
Everything.jpg [ 29.86 KiB | Viewed 734 times ]
As you can see, it's a modular computer, allowing you to build it out, tear it down and build it up differently.
I'll start with the main board.
Attachment:
Main_add.jpg [ 34.06 KiB | Viewed 734 times ]
From the bottom, working up, is the 65C02, an AT28C256 ROM, an AS6C2256SA RAM, and a 65C22. The 65C22 is rotated 180 degrees so pin 1 is on the right to get PA and PB facing the top of the board.
On the left is my addressing logic. It uses standard 74 series logic gates to put the RAM at $0000-$3FFF, the ROM at $8000-$FFFF and the VIA at $6000-$600F (really goes to $6FFF). By having the addressing board separate, I can keep the main board setup, and swap out the small addressing board to reconfigure the computer quickly.
Just to the left of the ROM is a spot for an oscillator. It's not populated right now because I'm using a clock based on Ben Eater's clock design.
Attachment:
Clock.jpg [ 34.59 KiB | Viewed 734 times ]
The clock board creates a clock signal with the 555 timer on the top of the board. The next 555 timer down creates a single shot pulse using the Pulse button in the lower left. There is a switch and a 555 timer below that which allows me to select between the clock signal and the pulse signal by using the 74157 data selector below it. Finally, there is a reset circuit at the bottom of the board that holds the reset line low for a little bit when the board powers up.
To the right of that is the second VIA on my computer:
Attachment:
VIA_2.jpg [ 31.27 KiB | Viewed 734 times ]
It's just a 65C22 turned around with basic logic chips below it to address it at $7000-$700F ($7FFF). Note that there are gates available on the logic chips on the addressing board shown earlier, and if the computer weren't modular, I could have used them instead of a new set of chips. But that's the price you pay for the modular design.
Next over is an address and data display board:
Attachment:
add_data.jpg [ 27.99 KiB | Viewed 734 times ]
This uses MC14495P seven segment display drivers to display what is currently on the address and data lines. When I slow down the clock, or use the Pulse feature to go through a running program step by step, this helps with troubleshooting.
The MC14495Ps aren't made anymore. It was difficult finding a chip that could display the hex values, but once I settled on a chip, they were there on eBay. I could have gone for a microprocessor design, but I wanted to stick to the 8-bit theme, and felt that a microprocessor chip would detract from the overall feel of the computer. I may change that at some time, as one of the 10 MC14495Ps barely works.
Above that is the VIA data board.
Attachment:
VIA_data.jpg [ 22.65 KiB | Viewed 734 times ]
This can be plugged into the header above either VIA to display what is on PA and PB. It also uses the MC14495P decodes to display the hex values.This was very helpful in getting the LCD running.
Speaking of the LCD, as you can see in the first picture, it's a board I threw together myself from perfboard, but it fits right into the header of the VIA. I do have a board designed that includes a VIA and an LCD in it, but haven't ordered it yet. I'm not really sure I'm going to
And finally, you see a keypad wired up to the second VIA using a breadboard. I'm still working on the code to make the keypad work, so I don't have it soldered up to anything (well, I did--you can see the board next to it, but it didn't work).
All of my designs are available on EasyEDA:
Main BoardAddress boardClockVIAAddress/data boardVIA dataThe one thing that is missing from this is the ACIA chip. You can almost see them to the right in the first picture. They are just sticking out. I'm waiting on crystals to start playing with them. Once I get them running, I'll put one on a board with a VIA and some address decoding. I'll put a USB port on the bottom, and some supporting hardware to communicate with it via USB on my laptop. But that's a little way's away.
Thanks for looking!