Stumbled upon this thread after noticing that those fail in my emu ("9C SYA abs,X", "9E SXA abs,Y").blargg wrote:I just tested and 9C and 9E are screwey. I need to take them off the test. Depending on X and Y they sometimes write to $700, among other things. Maybe someone else can figure them out properly.
My guess is that the "AND addr_high + 1" behavior comes from always calculating addr_high + 1, regardless of whether its needed to correct the address. In that case, maybe the screwy behavior occurs when the value is actually used, i.e. when "addr + x" or "addr + y" crosses into a new page.
Maybe it affects AXA and TAS in addition to SYA and SXA in that case.