# Pac-Man (U) — per-site resolution for multi-alias zero-page addresses. # Format: # # Each entry below is proven from the instruction context, not guessed: # # 58 a:$0000,y -> Zp00 # 129 a:$0000,y -> Zp00 # Both are the literal zero-page base $0000 in the two zero-page # clear loops (ClearLowRAM at $C048 clears $0000-$003D, and # ColdStart_OnNonzero_C089 at $C089 clears $0000-$00FF). The # operand is the page base, not a pointer variable, so the # neutral Zp00 is used rather than the semantic WorkPtrLo. # The 'a:' prefix is kept by apply_symbols.py, so the bytes stay # 99 00 00 (sta abs,Y) rather than 91 00 (sta zp,Y). # # 564 ($0010) -> DispatchPtrLo ($C250) # 1560 ($0010) -> DispatchPtrLo ($D3CA) # 2040 ($0010) -> DispatchPtrLo ($D90F) # 2115 ($0010) -> DispatchPtrLo ($D9B6) # Each of these four indirect jumps is immediately preceded by # 'sta DispatchPtrLo' ($10) / 'sta DispatchPtrHi' ($11), which # load the table entry's address from a dispatch table. The # indirect operand is that same pointer pair. # # 4113 ($00FE) -> AudioHandlerPtrLo ($EFDA) # Preceded by 'sta AudioHandlerPtrLo' ($FE) / 'sta AudioHandlerPtrHi' # ($FF), loaded from the AudioCommandTable at $EFDD. 58 Zp00 129 Zp00 564 DispatchPtrLo 1560 DispatchPtrLo 2040 DispatchPtrLo 2115 DispatchPtrLo 4113 AudioHandlerPtrLo