As this is my first blog post here, I better provide a brief background of how I got to this point with my 6502 build.
I started with Ben Eater's 6502 video series, ordering his 6502 kit from his website. (Prior to getting into the 6502, I went through Ben's entire video series to build an 8-bit CPU). Kudos to Ben on the quality of what he's been sharing. I started with zero knowledge of the 6502 or similar microprocessors, and I've been building up from there. I completed Ben's 6502 build on breadboards. I then continued with Ben's World’s worst video card series, followed by his videos on implementing a PS2 keyboard. The result was a single breadboard-based system running a 6502, single VIA, LCD display, VGA output, and PS2 keyboard support. As I had no background in programming assembly, I had to learn some of that along the way, too. At that point, I had something that looked like this:
I wanted to expand on this base system, adding additional I/O, peripherals, etc. As I worked on miscellaneous projects, I got irritated with loose wires, components coming out of place as I moved the board around, and power distribution issues. So, I designed a custom PCB to take the above system, put it into a PCB, and enhance it a bit to support expandability. That got me to this:
The 6502 PCB above was my second PCB I've ever designed. Along the way, I did develop a PCB for just the VGA portion (Ben's design); this was my first PCB ever -- far from perfect, but it worked!
The 6502+VGA+PS2 PCB has been great. It has been a solid base from which I can tinker and expand. Since completing the 6502 PCB, I have expanded the system on breadboards to include:
Auto-reset on power on
Joystick support
Serial communications with 65C51 ACIA
SPI interface
SPI environmental sensor (e.g., temperature, humidity)
SPI 8-character 7-segment LED display
Audio support with dual AY-3-8910 ICs
USB mouse support
As I write this post, here what my current system looks like (click right for an image with annotations):
And then there's all of the assembly code. For now, if you're interested in getting a feel for it, you can check it out at VGA-6502/PCB_ROM_20211002. Disclaimer: I have a ton of cleanup to do in this code, and I'm still actively learning assembly programming. As I make improvements, I'll post to my GitHub.
That should get you up-to-speed with where I am today with my 6502 project. I hope to continue to build on this system -- both hardware and assembly code. If you have interest in me sharing details about any specific aspects of this build, drop me a note.
Of course, I could not have done any of this without help from many others along the way. Ben's videos have been great, along with the Reddit beneater community. Thank you to all of those that have helped me along the way!
Comments