Finishing the 6502 Emulator

1 minute read

Published:

This will be a short blog post–I’ve officially finished v1.0.0 of my 65c02 emulator. Since last time, I’ve fixed a bunch of bugs, finished implementing the 65C02 extended opcode set (including the Rockwell/WDC bit set/clear instructions and test-and-branch instructions), and wrote assembly scripts to test the implementation of (nearly) all the opcodes. The only ones I haven’t thoroughly checked are the Rockwell/WDC extended instructions (e.g. RMB0, SMB0, BBR0, BBS0). I’ve also updated the GUI to graphically iterate through instructions when (r)un is input, meaning you can set up an infinite loop and watch it iterate through. The iteration executes at the same speed the computer normally would (determined by the clock speed), so you can watch it step through programs at slow speeds if you’d like.

At this point, I’m considering the project tentatively done for the near future. There are some things I’d like to improve eventually, such as adding support for ROM and some other external chips, but those are lower priority than some other projects I have in my queue. I’m going to be moving on to focus on my FORTH interpreter and starting to get into making contributions to the Biostrings R package. Maybe eventually I’ll have time to come back to this emulator.

As always, you can check out the complete code on Github. If you try it out and find any bugs, please let me know!