The 6502ctl project is an Arduino controller for the 6502 CPU. The controller controls all 6502 pins, including the clock signal and interrupts, and simulates an address and data bus with attached memory and an output peripheral. The controller includes a clock-cycle debugger with disassembler. An assembler is also included with the project.
I came across a similar project in the past - a shield to drive a 6502 from an arduino:<p><a href="https://www.tindie.com/products/8bitforce/retroshield-6502-for-arduino-mega-2/" rel="nofollow">https://www.tindie.com/products/8bitforce/retroshield-6502-f...</a><p>I bought the z80 variant and had a bit of fun with it, single-stepping and emulating RAM, before I moved on to a single-board computer.
Using half of zero-page for IO (and then dedicating 1/4 of that to a string printing interface) is a somewhat odd design choice. Most nontrivial 6502 software leans heavily on zero page (since there are very few registers and shorter/faster instructions for zero-page memory access).<p>Simulating something that looks like a serial port (transmit/receive/status registers) would seem more natural, peripheral-wise.
<i>NOTE: Most modern debuggers show the next statement/instruction that is going to be executed. The 6502ctl debugger always shows the last operation (not instruction) that was executed.</i><p>That "note" should be more of a "warning". I can't think of <i>any</i> debugger, "modern" or otherwise, that doesn't show the next instruction to be executed. Expect this to cause a lot of confusion.