Note to mods: I talk about 6502 emulation, but my implementation is incompatible with any 6502 computer or game system currently in existence.
Hey guys, wanted to show off a little project I'm working on.
I wanted to make a 6502 computer for a friend of mine for his birthday. I started with a Kim-1
kit which, sadly failed. After putting the whole thing together, all it did was light it's power light and nothing happened. I tried to troubleshoot it the best I could, only to find that I soldered two caps in the wrong place and bent a few IC pins. Well, that was a lesson learned.
Discouraged, I put the project away.
About three weeks ago I was cleaning my apartment and found my Arduino 2560 Mega. I decided as opposed to making a 6502 computer from ICs, I would make a software version of the same thing using my Arduino. It came out awesome!
I designed it to be a kind of "Super Kim". The system emulates a 6502 with 512k of ram. the bottom 32k ($8000-$FFFF) is banked in depending on what is written to $FB ($00 to $0F) if you write a zero in $FB it will mirror the top half of memory ($0000-$7FFF) and I call this "32k mode".
When you plug in a USB, it becomes a com port on a computer and you can use this as a terminal running @ 9600-8-N-1.
The emulation code I used was found here
however, I did a rewrite the memory portion (The original only could use 1024 bytes of memory), added registers for my LCD display and keypad, and implemented the BRK and RESET interrupt. (The original code does not have interrupts implemented)
With everything now implemented how I want, I'm implementing a cute mini-assembler, something like the system monitor from the Apple II. This is so you can write short little programs using the keypad. The keypad matrix looks like this.
The letters down the right-hand side (U-Z) are just placeholders. I can make them whatever I want. I'll probably borrow from the Kim-1 keypad (GO, ST, RS, AD, DA, PC, and an extra one left over).
Programs are loaded via the USB Serial port. You load programs by uploading them over the com port using Xmodem. You save you programs by doing the reverse. (I originally planned to have it load actual punch cards, but couldn't find/make a cheap punch card peripheral)
I'm going be mounting this into a black plastic case with fake wood grain detail to complete the 1977 look of it.
Sadly, I'm having problems with my Monitor because my code-fu kind of weak. If anyone wants to help, I'll post my emulation core and Monitor code. It's all GPL anyway. I think I botched something up when I implemented my 65C02 opcodes and the monitor I'm using is being ported to ca65 from TASS (Which doesn't run on x64 machines)