
It finally occurred to me that my 6502 instruction database is unhelpful for writing an emulator: it records that certain instructions can take a variable number of cycles, but not the cause of the variation. As a result, it can't represent things like "an Absolute Indexed With X addressing mode takes an extra cycle for crossing a page boundary, unless the instruction writes a value, unless it reads *and* writes, unless it's INC or DEC". That information would have to be hard-coded into the emulator, and that undermines the values of having a machine-readable reference.
So I'm going to have to expand it to report more detail about the variable cycles, instead of just adding them up.
