My soft-core passes all of the vectors *except* for the self-modifying JSR instruction that has a stack that points into the middle of the instruction stream and pushes the return address atop the partially fetched instruction. I think I'll ignore that one for now... https://github.com/SingleStepTests/65x02/issues/18
And the softcore passes the most important test: it seems to run BattleZone correctly! Time to get the hardware out of storage for testing on the oscilloscope.