; Pac-Man (Tengen) (U) application-specific RAM aliases - Pass 1 ; Generated from every direct zero-page operand in reachable code: ; ref counts are reads/writes, `where` lists the referencing addresses. ; ZpXX names indicate storage with a role not yet unique enough for a behavioral name; ; Pass 2 replaces them with names derived from observed usage. Zp00 = $00 ; 58 refs; reads=26 writes=32; used at $C054, C0B5, C0BD, C27F, +51 more Zp01 = $01 ; 33 refs; reads=13 writes=20; used at $C059, C05B, C283, C293, +25 more Zp02 = $02 ; 45 refs; reads=18 writes=27; used at $C287, C2B4, C920, C93E, +39 more Zp03 = $03 ; 18 refs; reads=6 writes=12; used at $C29A, C2A3, C925, C943, +12 more Zp04 = $04 ; 18 refs; reads=11 writes=7; used at $D803, D8E7, D8FA, DAC2, +12 more Zp05 = $05 ; 40 refs; reads=22 writes=18; used at $D761, D771, D773, D775, +24 more Zp06 = $06 ; 13 refs; reads=6 writes=7; used at $D779, D791, D7A0, D7B5, +8 more Zp07 = $07 ; 2 refs; reads=1 writes=1; used at $D78F, D793 Zp08 = $08 ; 4 refs; reads=2 writes=2; used at $D76A, D76F, D784, D789 Zp0A = $0A ; 2 refs; reads=1 writes=1; used at $D740, E47D Zp0B = $0B ; 5 refs; reads=2 writes=3; used at $D745, E485, E4A1, E4BC Zp0C = $0C ; 3 refs; reads=2 writes=1; used at $D74A, D75A, E472 Zp0D = $0D ; 2 refs; reads=1 writes=1; used at $D754, E474 Zp0E = $0E ; 1 refs; reads=0 writes=1; used at $E476 Zp0F = $0F ; 1 refs; reads=0 writes=1; used at $E478 Zp10 = $10 ; 4 refs; reads=0 writes=4; used at $C249, D3C3, D908, D9AF Zp11 = $11 ; 4 refs; reads=0 writes=4; used at $C24E, D3C8, D90D, D9B4 Zp12 = $12 ; 4 refs; reads=2 writes=2; used at $E286, E28A, E294, E298 Zp13 = $13 ; 4 refs; reads=2 writes=2; used at $E28C, E290, E29A, E29E Zp14 = $14 ; 2 refs; reads=2 writes=0; used at $E288, E296 Zp15 = $15 ; 2 refs; reads=2 writes=0; used at $E28E, E29C Zp1A = $1A ; 5 refs; reads=5 writes=0; used at $C8AA, C9BB, D370, D723, +1 more Zp1C = $1C ; 3 refs; reads=3 writes=0; used at $D372, D72D, D733 Zp1E = $1E ; 2 refs; reads=2 writes=0; used at $C8ED, D726 Zp1F = $1F ; 1 refs; reads=1 writes=0; used at $C8F1 Zp20 = $20 ; 1 refs; reads=1 writes=0; used at $D730 Zp2A = $2A ; 1 refs; reads=0 writes=1; used at $C90D Zp2B = $2B ; 1 refs; reads=0 writes=1; used at $C911 Zp3F = $3F ; 3 refs; reads=2 writes=1; used at $C0A2, C22D, C244 Zp40 = $40 ; 5 refs; reads=2 writes=3; used at $C109, C1D5, C1D7, C23E, +1 more Zp41 = $41 ; 3 refs; reads=1 writes=2; used at $C06C, C119, C225 Zp42 = $42 ; 3 refs; reads=1 writes=2; used at $C06E, C11E, C223 Zp43 = $43 ; 4 refs; reads=1 writes=3; used at $C0D9, C12A, C1E0, C23A Zp45 = $45 ; 2 refs; reads=1 writes=1; used at $C0A6, C10B Zp46 = $46 ; 9 refs; reads=7 writes=2; used at $C0AE, C125, C152, C1F1, +5 more Zp47 = $47 ; 10 refs; reads=8 writes=2; used at $C0AA, C123, C154, C21F, +6 more Zp48 = $48 ; 4 refs; reads=2 writes=2; used at $C0E0, C15E, C21B, DE3D Zp4B = $4B ; 12 refs; reads=11 writes=1; used at $C15C, C977, C982, C9D3, +7 more Zp4C = $4C ; 1 refs; reads=0 writes=1; used at $C227 Zp4D = $4D ; 3 refs; reads=2 writes=1; used at $C142, C150 Zp4E = $4E ; 3 refs; reads=2 writes=1; used at $C14B, C158 Zp4F = $4F ; 1 refs; reads=0 writes=1; used at $C15A Zp50 = $50 ; 5 refs; reads=3 writes=2; used at $D365, D378, D381, D388, +1 more Zp51 = $51 ; 4 refs; reads=3 writes=1; used at $D36C, D383, D391, D3BC Zp64 = $64 ; 1 refs; reads=0 writes=1; used at $C09E Zp6C = $6C ; 2 refs; reads=1 writes=1; used at $C20E, DEF5 Zp6D = $6D ; 1 refs; reads=0 writes=1; used at $C210 Zp6E = $6E ; 1 refs; reads=0 writes=1; used at $C212 Zp6F = $6F ; 1 refs; reads=0 writes=1; used at $C214 Zp87 = $87 ; 7 refs; reads=4 writes=3; used at $C229, C565, C567, C589, +1 more Zp88 = $88 ; 4 refs; reads=2 writes=2; used at $C22B, C560, D397, D805 Zp89 = $89 ; 3 refs; reads=2 writes=1; used at $C8CF, C8D1 Zp8A = $8A ; 1 refs; reads=0 writes=1; used at $C8D5 Zp9F = $9F ; 1 refs; reads=1 writes=0; used at $D3B4 ZpA0 = $A0 ; 1 refs; reads=1 writes=0; used at $D3B8 ZpAF = $AF ; 1 refs; reads=1 writes=0; used at $D815 ZpB0 = $B0 ; 1 refs; reads=1 writes=0; used at $D819 ZpB1 = $B1 ; 1 refs; reads=1 writes=0; used at $D81E ZpB2 = $B2 ; 1 refs; reads=1 writes=0; used at $D822 ZpB3 = $B3 ; 1 refs; reads=1 writes=0; used at $D7FA ZpB4 = $B4 ; 1 refs; reads=1 writes=0; used at $D7FE ZpB5 = $B5 ; 1 refs; reads=0 writes=1; used at $D3B6 ZpB6 = $B6 ; 1 refs; reads=0 writes=1; used at $D3BA ZpB7 = $B7 ; 3 refs; reads=2 writes=1; used at $C9C3, C9C5 ZpB8 = $B8 ; 4 refs; reads=4 writes=0; used at $D737, D7E0, D903, D9AA ZpB9 = $B9 ; 4 refs; reads=3 writes=1; used at $D75C, D7B9, D7CC, E492 ZpBA = $BA ; 2 refs; reads=1 writes=1; used at $D24B, D251 ZpC2 = $C2 ; 5 refs; reads=0 writes=5; used at $D7FC, D80E, D817, D820, +1 more ZpC3 = $C3 ; 5 refs; reads=0 writes=5; used at $D800, D812, D81B, D824, +1 more ZpCA = $CA ; 1 refs; reads=1 writes=0; used at $D80C ZpCB = $CB ; 1 refs; reads=1 writes=0; used at $D810 ZpCD = $CD ; 2 refs; reads=1 writes=1; used at $D72B, D763 ZpCE = $CE ; 2 refs; reads=1 writes=1; used at $D735, D77B ZpE3 = $E3 ; 3 refs; reads=1 writes=2; used at $D4C7, D4D4 ZpE4 = $E4 ; 6 refs; reads=4 writes=2; used at $D4C5, D4CB, D4CD, D4CF ZpEF = $EF ; 2 refs; reads=2 writes=0; used at $F020, F050 ZpF0 = $F0 ; 4 refs; reads=1 writes=3; used at $EE4D, EE77, EEF4, F001 ZpF1 = $F1 ; 1 refs; reads=0 writes=1; used at $EE51 ZpF2 = $F2 ; 30 refs; reads=10 writes=20; used at $EE55, EE84, EEA3, EEC8, +26 more ZpF3 = $F3 ; 1 refs; reads=0 writes=1; used at $EE59 ZpF4 = $F4 ; 3 refs; reads=2 writes=1; used at $EE5E, EF05, EF16 ZpF5 = $F5 ; 1 refs; reads=0 writes=1; used at $EE63 ZpF6 = $F6 ; 4 refs; reads=1 writes=3; used at $EECD, EED7, EED9 ZpF7 = $F7 ; 1 refs; reads=0 writes=1; used at $EE67 ZpF8 = $F8 ; 1 refs; reads=0 writes=1; used at $EE91 ZpF9 = $F9 ; 1 refs; reads=0 writes=1; used at $EE93 ZpFA = $FA ; 1 refs; reads=0 writes=1; used at $EE95 ZpFB = $FB ; 1 refs; reads=0 writes=1; used at $EE97 ZpFC = $FC ; 6 refs; reads=4 writes=2; used at $EEEE, EEF2, EF01, EF10, +2 more ZpFD = $FD ; 23 refs; reads=19 writes=4; used at $EE99, EEA1, EEC6, EEE1, +19 more ZpFE = $FE ; 12 refs; reads=5 writes=7; used at $EE9F, EEB1, EEBA, EEC0, +7 more ZpFF = $FF ; 8 refs; reads=3 writes=5; used at $EE9B, EF7B, EF85, EF98, +3 more ; --------------------------------------------------------------------------- ; --------------------------------------------------------------------------- ; --------------------------------------------------------------------------- ; --------------------------------------------------------------------------- ; --------------------------------------------------------------------------- ; Semantic zero-page aliases (Pass 3) ; ; Every alias below was read out of this dump's own code. An address whose ; role is the same at every reference is renamed everywhere; an address that ; is reused for several roles keeps the neutral ZpXX name outside the ; routines where the role is proven, and the per-site choice is recorded in ; sites.tsv. ; --------------------------------------------------------------------------- DispatchPtrLo = $10 ; semantic alias for Zp10 (low byte of the pointer the computed dispatch jumps through) DispatchPtrHi = $11 ; semantic alias for Zp11 (high byte of that pointer) ScoreLo = $12 ; semantic alias for Zp12 (low byte of the 16-bit score accumulator (AddScore/SubScore)) ScoreHi = $13 ; semantic alias for Zp13 (high byte of the score accumulator) ScoreAddendLo = $14 ; semantic alias for Zp14 (low byte of the value added to the score) ScoreAddendHi = $15 ; semantic alias for Zp15 (high byte of the value added to the score) GameState = $3F ; semantic alias for Zp3F (index into the game-state dispatch table at $C253) NmiFlag = $40 ; semantic alias for Zp40 (set to 1 by the game, waited on until the NMI clears it) ScrollX = $41 ; semantic alias for Zp41 (written to PPUSCROLL) ScrollY = $42 ; semantic alias for Zp42 (written to PPUSCROLL) PpuCtrlShadow = $43 ; semantic alias for Zp43 (PPUCTRL shadow - always stored together with $2000) OamDmaPage = $45 ; semantic alias for Zp45 (the page written to $4014 (OAMDMA)) CocktailModeFlag = $46 ; semantic alias for Zp46 (ANDed with $47 to form the PPUCTRL nametable bit) ActivePlayerFlag = $47 ; semantic alias for Zp47 (selects which controller the NMI reads) GameplaySuspended = $48 ; semantic alias for Zp48 ($FF while the game is running; gates the level script) FrameCounter = $4B ; semantic alias for Zp4B (incremented every NMI; masked to pick the behaviour) Player1Input = $4D ; semantic alias for Zp4D (JOY1 shift register) Player2Input = $4E ; semantic alias for Zp4E (JOY2 shift register) ActiveInput = $4F ; semantic alias for Zp4F (the controller the NMI selected) CopyrightVerified = $64 ; semantic alias for Zp64 (set to 1 once the signature is in RAM) GhostDataIndex = $87 ; semantic alias for Zp87 (steps through the character table at $C66A) GhostFlags = $88 ; semantic alias for Zp88 (mode flags for the ghost being updated) TargetSlotIndex = $89 ; semantic alias for Zp89 (the pellet slot picked as the ghost's target) FruitIndex = $B7 ; semantic alias for ZpB7 (the fruit type counter) GhostSlotIndex = $B8 ; semantic alias for ZpB8 (the ghost slot, indexed by X) GhostState = $B9 ; semantic alias for ZpB9 (per-ghost state, indexed by X) PositionDeltaX = $CD ; semantic alias for ZpCD (the computed X delta) PositionDeltaY = $CE ; semantic alias for ZpCE (the computed Y delta) AnimationTimer = $E3 ; semantic alias for ZpE3 (the animation frame timer) AnimationFrameIndex = $E4 ; semantic alias for ZpE4 (the animation frame index) PtrLo = $00 ; semantic alias for Zp00 (low byte of the VRAM address DrawMazeGraphics writes to; applied only inside $C27D-$C2DC, elsewhere the neutral name is kept) PtrHi = $01 ; semantic alias for Zp01 (high byte of that VRAM address; applied only inside $C27D-$C2DC, elsewhere the neutral name is kept) Ptr2Lo = $02 ; semantic alias for Zp02 (low byte of the destination pointer; applied only inside $DAB0-$DBAC, elsewhere the neutral name is kept) Ptr2Hi = $03 ; semantic alias for Zp03 (high byte of that pointer; applied only inside $DAB0-$DBAC, elsewhere the neutral name is kept)