6502 Emulation - The Jump Indirect Bug
Summary
This article analyzes a 6502 emulation bug in the JMP indirect instruction where the high byte of the program counter is incorrectly loaded when a page boundary is crossed. It explains the bug's root cause, references hardware behavior, and shows a fix that reads the high byte from the page start (XX00) to avoid incorrect carries, supplemented by historical compiler workarounds.