; Mario Bros (JU) 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 ; 92 refs; reads=44 writes=48; used at $C019, C01D, C296, C2A1, +87 more Zp01 = $01 ; 58 refs; reads=19 writes=39; used at $C015, C022, C29A, C31F, +50 more Zp02 = $02 ; 21 refs; reads=11 writes=10; used at $CD58, CD71, CE1E, CE21, +17 more Zp03 = $03 ; 22 refs; reads=4 writes=18; used at $CE18, CE25, D081, D0A2, +18 more Zp04 = $04 ; 8 refs; reads=2 writes=6; used at $CE1C, CE3E, CE7A, D0B9, +3 more Zp05 = $05 ; 7 refs; reads=4 writes=3; used at $CE36, CE53, D0DC, D103, +3 more Zp06 = $06 ; 15 refs; reads=8 writes=7; used at $C6CD, CE55, CE63, D0D1, +10 more Zp07 = $07 ; 16 refs; reads=8 writes=8; used at $C6CF, D0C6, D0ED, D266, +11 more Zp09 = $09 ; 7 refs; reads=3 writes=4; used at $C049, CD0B, CD12, CD46, +3 more Zp0A = $0A ; 6 refs; reads=3 writes=3; used at $C04D, C4E0, C4E7, E135, +2 more Zp0B = $0B ; 1 refs; reads=1 writes=0; used at $CE0A Zp0C = $0C ; 2 refs; reads=1 writes=1; used at $CE0F, D322 Zp0D = $0D ; 1 refs; reads=1 writes=0; used at $D320 Zp10 = $10 ; 26 refs; reads=20 writes=6; used at $C0FB, C10D, C116, C12E, +21 more Zp11 = $11 ; 26 refs; reads=10 writes=16; used at $C0CC, C4B1, C7B9, C7BE, +17 more Zp12 = $12 ; 21 refs; reads=6 writes=15; used at $C450, CA82, CAC3, CB12, +17 more Zp13 = $13 ; 16 refs; reads=2 writes=14; used at $C454, CA86, CAC7, CB16, +12 more Zp14 = $14 ; 84 refs; reads=44 writes=40; used at $C0C4, C458, C460, C473, +80 more Zp15 = $15 ; 29 refs; reads=9 writes=20; used at $C0C8, CA8A, CA91, CA94, +23 more Zp18 = $18 ; 4 refs; reads=3 writes=1; used at $C4BC, C528, CCEA, CCEE Zp19 = $19 ; 3 refs; reads=1 writes=2; used at $C5EE, CCF0, CCFC Zp1B = $1B ; 1 refs; reads=1 writes=0; used at $C5F3 Zp1C = $1C ; 2 refs; reads=1 writes=1; used at $C44A, C4A1 Zp1D = $1D ; 5 refs; reads=2 writes=3; used at $C175, C17C, C44C, C478, +1 more Zp1E = $1E ; 40 refs; reads=21 writes=19; used at $C1F9, C216, C47A, C47E, +34 more Zp1F = $1F ; 26 refs; reads=13 writes=13; used at $C1F0, C21C, C422, C42B, +22 more Zp20 = $20 ; 3 refs; reads=1 writes=2; used at $C051, C06A, C0A7 Zp21 = $21 ; 7 refs; reads=4 writes=3; used at $CCFF, CD40, CE2E, D031, +3 more Zp22 = $22 ; 9 refs; reads=4 writes=5; used at $C068, C072, C08C, FB32, +2 more Zp23 = $23 ; 3 refs; reads=1 writes=2; used at $C0AE, D5DE, D5E1 Zp26 = $26 ; 3 refs; reads=1 writes=2; used at $C4C2, C4C7, C509 Zp27 = $27 ; 4 refs; reads=2 writes=2; used at $E719, E71B, E723 Zp28 = $28 ; 4 refs; reads=1 writes=3; used at $C54F, C56C, C572, D421 Zp29 = $29 ; 7 refs; reads=5 writes=2; used at $C521, C553, C55C, C582, +2 more Zp2A = $2A ; 5 refs; reads=2 writes=3; used at $C4D9, C53E, CD8A, CD90 Zp2B = $2B ; 4 refs; reads=2 writes=2; used at $C4FB, CD94, CD98 Zp2C = $2C ; 3 refs; reads=1 writes=2; used at $D2F3, D306, D30D Zp2D = $2D ; 16 refs; reads=9 writes=7; used at $C540, C574, C57C, D34A, +12 more Zp2E = $2E ; 3 refs; reads=1 writes=2; used at $CF01, D578, D6B7 Zp2F = $2F ; 9 refs; reads=8 writes=1; used at $C06E, CA06, CB01, CB5E, +4 more Zp30 = $30 ; 8 refs; reads=6 writes=2; used at $C03D, C053, C4B8, C532, +4 more Zp31 = $31 ; 2 refs; reads=0 writes=2; used at $D350, D368 Zp32 = $32 ; 1 refs; reads=1 writes=0; used at $D990 Zp33 = $33 ; 22 refs; reads=10 writes=12; used at $C5E5, C636, C660, C673, +12 more Zp34 = $34 ; 1 refs; reads=1 writes=0; used at $D6A2 Zp35 = $35 ; 7 refs; reads=5 writes=2; used at $C764, CEEF, CF04, D56E, +3 more Zp36 = $36 ; 4 refs; reads=3 writes=1; used at $CEF4, CEFB, D6A9, D6B5 Zp37 = $37 ; 1 refs; reads=0 writes=1; used at $D6AD Zp39 = $39 ; 3 refs; reads=2 writes=1; used at $D385, E030, E061 Zp3A = $3A ; 4 refs; reads=3 writes=1; used at $D39F, E757, E8A7, EC54 Zp3B = $3B ; 4 refs; reads=1 writes=3; used at $C4E9, E12D, E1F0, E347 Zp3F = $3F ; 4 refs; reads=1 writes=3; used at $CA66, CA79, D3A3, D41D Zp40 = $40 ; 12 refs; reads=3 writes=9; used at $C4C9, C4ED, C4FF, C50B, +7 more Zp41 = $41 ; 2 refs; reads=1 writes=1; used at $D352, D57C Zp42 = $42 ; 4 refs; reads=2 writes=2; used at $C0AA, C5D8, CAF7, CB58 Zp43 = $43 ; 4 refs; reads=2 writes=2; used at $C66A, C76E, CF64 Zp44 = $44 ; 6 refs; reads=3 writes=3; used at $C671, C68F, C758, C775 Zp45 = $45 ; 7 refs; reads=5 writes=2; used at $C66F, C68D, C76A, D582, +2 more Zp46 = $46 ; 5 refs; reads=4 writes=1; used at $C711, C77F, DD2C, DE24, +1 more Zp48 = $48 ; 10 refs; reads=5 writes=5; used at $C5A0, D35C, D5E6, DCDC, +3 more Zp49 = $49 ; 5 refs; reads=3 writes=2; used at $D389, DEFA, E027, E03E, +1 more Zp4A = $4A ; 8 refs; reads=4 writes=4; used at $C511, D35E, E042, E065, +3 more Zp4C = $4C ; 5 refs; reads=2 writes=3; used at $D373, D37D, D5EC, E249 Zp4D = $4D ; 5 refs; reads=3 writes=2; used at $D38B, DF27, E058, E06F, +1 more Zp4E = $4E ; 6 refs; reads=3 writes=3; used at $D381, E034, E073, E1E8, +2 more Zp50 = $50 ; 9 refs; reads=5 writes=4; used at $C057, C543, C564, C58E, +3 more Zp51 = $51 ; 12 refs; reads=10 writes=2; used at $C51F, C618, C647, C69F, +8 more Zp52 = $52 ; 5 refs; reads=2 writes=3; used at $D434, D43A, D440, E277 Zp53 = $53 ; 1 refs; reads=1 writes=0; used at $C51B Zp54 = $54 ; 3 refs; reads=1 writes=2; used at $E254, E263, E269 Zp5A = $5A ; 1 refs; reads=0 writes=1; used at $C4DB Zp5C = $5C ; 1 refs; reads=1 writes=0; used at $C523 Zp70 = $70 ; 7 refs; reads=5 writes=2; used at $C011, D2DF, D2F5, D356, +2 more Zp71 = $71 ; 11 refs; reads=9 writes=2; used at $CF67, D202, D2E4, D2EB, +6 more Zp72 = $72 ; 2 refs; reads=1 writes=1; used at $D2EF, D988 Zp75 = $75 ; 1 refs; reads=1 writes=0; used at $EDB0 Zp7A = $7A ; 1 refs; reads=1 writes=0; used at $EDB2 Zp82 = $82 ; 1 refs; reads=0 writes=1; used at $FB3B Zp85 = $85 ; 1 refs; reads=0 writes=1; used at $F8FA Zp8B = $8B ; 2 refs; reads=1 writes=1; used at $C525 Zp8D = $8D ; 1 refs; reads=0 writes=1; used at $F8FC Zp90 = $90 ; 1 refs; reads=0 writes=1; used at $D1DB Zp91 = $91 ; 1 refs; reads=0 writes=1; used at $D1DF Zp92 = $92 ; 1 refs; reads=0 writes=1; used at $D1E3 Zp93 = $93 ; 1 refs; reads=0 writes=1; used at $D1E7 Zp94 = $94 ; 8 refs; reads=6 writes=2; used at $D0BD, D0E4, D118, D11C, +4 more Zp95 = $95 ; 10 refs; reads=7 writes=3; used at $D0D8, D0E1, D0FF, D108, +6 more Zp96 = $96 ; 11 refs; reads=7 writes=4; used at $C598, D0CD, D0D6, D0F4, +6 more Zp97 = $97 ; 9 refs; reads=6 writes=3; used at $D0C2, D0CB, D0E9, D0F2, +5 more Zp99 = $99 ; 1 refs; reads=1 writes=0; used at $E241 Zp9B = $9B ; 2 refs; reads=1 writes=1; used at $C59A Zp9D = $9D ; 7 refs; reads=1 writes=6; used at $D8F7, DDBD, E202, E206, +3 more Zp9E = $9E ; 3 refs; reads=1 writes=2; used at $D375, E20F, E213 Zp9F = $9F ; 10 refs; reads=6 writes=4; used at $D785, D98B, E8C2, EB0B, +5 more ZpA0 = $A0 ; 13 refs; reads=4 writes=9; used at $C59C, C5DD, C677, CB85, +8 more ZpA1 = $A1 ; 7 refs; reads=2 writes=5; used at $C5E1, C67B, CB89, CEC9, +3 more ZpA2 = $A2 ; 8 refs; reads=3 writes=5; used at $C5E9, C67F, CB8D, CBAE, +4 more ZpA3 = $A3 ; 2 refs; reads=1 writes=1; used at $C517 ZpA8 = $A8 ; 2 refs; reads=1 writes=1; used at $C515 ZpAD = $AD ; 4 refs; reads=2 writes=2; used at $D360, E221, E22F ZpAE = $AE ; 4 refs; reads=2 writes=2; used at $D383, E239, E247 ZpAF = $AF ; 2 refs; reads=1 writes=1; used at $C59E ZpB0 = $B0 ; 15 refs; reads=7 writes=8; used at $C0B6, C5FB, C689, C74A, +11 more ZpB1 = $B1 ; 88 refs; reads=57 writes=31; used at $C101, C107, C11A, C129, +84 more ZpB2 = $B2 ; 7 refs; reads=3 writes=4; used at $C9F1, CAE3, CAF2, DA56, +3 more ZpB3 = $B3 ; 21 refs; reads=8 writes=13; used at $C182, C73B, C792, C9B9, +17 more ZpB4 = $B4 ; 16 refs; reads=3 writes=13; used at $C2A5, C355, C36B, C81F, +11 more ZpB5 = $B5 ; 12 refs; reads=1 writes=11; used at $C24D, C886, CBD0, D8A1, +8 more ZpB6 = $B6 ; 17 refs; reads=3 writes=14; used at $C256, C81B, C881, C8BB, +13 more ZpB7 = $B7 ; 14 refs; reads=7 writes=7; used at $CBFE, CC06, D8BE, D9D6, +10 more ZpB8 = $B8 ; 34 refs; reads=21 writes=13; used at $C1A9, C1CE, C23C, C2BF, +29 more ZpB9 = $B9 ; 24 refs; reads=16 writes=8; used at $C424, C429, C489, C91D, +20 more ZpBA = $BA ; 8 refs; reads=6 writes=2; used at $C24F, CBDB, DE09, DE57, +4 more ZpBB = $BB ; 17 refs; reads=8 writes=9; used at $C260, C3B3, C3B7, C729, +10 more ZpBC = $BC ; 15 refs; reads=2 writes=13; used at $C1FD, C204, C2FF, C7B3, +11 more ZpBD = $BD ; 15 refs; reads=2 writes=13; used at $C1FF, C209, C301, C7B5, +11 more ZpBE = $BE ; 9 refs; reads=8 writes=1; used at $C608, C69A, C7AB, CFE1, +5 more ZpBF = $BF ; 49 refs; reads=49 writes=0; used at $C6A7, C6C3, C715, C731, +45 more ZpC0 = $C0 ; 25 refs; reads=16 writes=9; used at $C6A3, C6F2, C6FC, C70B, +20 more ZpC1 = $C1 ; 18 refs; reads=10 writes=8; used at $C3AA, C927, C9C5, C9EC, +12 more ZpC2 = $C2 ; 24 refs; reads=11 writes=13; used at $C29F, C34C, C40B, C6DC, +19 more ZpC3 = $C3 ; 1 refs; reads=1 writes=0; used at $CAC1 ZpC4 = $C4 ; 24 refs; reads=14 writes=10; used at $C133, C141, C185, C294, +15 more ZpC5 = $C5 ; 5 refs; reads=2 writes=3; used at $C180, C90C, CADE, DA5A, +1 more ZpC6 = $C6 ; 19 refs; reads=11 writes=8; used at $C0DC, C610, C61F, C7DA, +14 more ZpC7 = $C7 ; 4 refs; reads=1 writes=3; used at $C739, C908, CAE8, DA5E ZpC8 = $C8 ; 11 refs; reads=6 writes=5; used at $C8ED, C8FC, D94F, D963, +6 more ZpC9 = $C9 ; 10 refs; reads=7 writes=3; used at $C6BF, C6DA, C74E, CC6A, +6 more ZpCA = $CA ; 3 refs; reads=2 writes=1; used at $CC62, CF92, CFD4 ZpCB = $CB ; 4 refs; reads=4 writes=0; used at $C966, CFAD, CFCA, CFF1 ZpCC = $CC ; 3 refs; reads=2 writes=1; used at $D787, D8D2, D8F3 ZpCD = $CD ; 8 refs; reads=8 writes=0; used at $C298, C345, C7DE, C85D, +4 more ZpCE = $CE ; 1 refs; reads=1 writes=0; used at $C476 ZpCF = $CF ; 1 refs; reads=1 writes=0; used at $C49F ZpE5 = $E5 ; 2 refs; reads=2 writes=0; used at $C519, C51D ZpF0 = $F0 ; 7 refs; reads=1 writes=6; used at $F8D1, F9A2, FA1E, FA97, +3 more ZpF1 = $F1 ; 15 refs; reads=9 writes=6; used at $F8CF, F9A6, F9B5, F9B7, +9 more ZpF2 = $F2 ; 15 refs; reads=7 writes=8; used at $F9AA, F9CB, F9D1, F9DF, +10 more ZpF3 = $F3 ; 16 refs; reads=7 writes=9; used at $FB42, FB48, FB7E, FB89, +11 more ZpF4 = $F4 ; 16 refs; reads=7 writes=9; used at $FB46, FB4E, FB56, FB5A, +10 more ZpF5 = $F5 ; 4 refs; reads=2 writes=2; used at $FCB3, FCC4, FCD1 ZpF6 = $F6 ; 5 refs; reads=3 writes=2; used at $FCEA, FCFD, FD02, FD11, +1 more ZpF7 = $F7 ; 6 refs; reads=5 writes=1; used at $FD4E, FD83, FD93, FDBA, +2 more ZpF8 = $F8 ; 1 refs; reads=0 writes=1; used at $FD53 ZpF9 = $F9 ; 8 refs; reads=5 writes=3; used at $C513, FCC9, FD58, FDA0, +3 more ZpFA = $FA ; 9 refs; reads=5 writes=4; used at $FA91, FD5D, FD78, FD81, +3 more ZpFB = $FB ; 11 refs; reads=1 writes=10; used at $FB3E, FB7A, FBAE, FBD8, +7 more ZpFC = $FC ; 9 refs; reads=3 writes=6; used at $C4F5, D502, DD36, E33C, +5 more ZpFD = $FD ; 10 refs; reads=3 writes=7; used at $C503, D487, DD34, DF1B, +6 more ZpFE = $FE ; 33 refs; reads=16 writes=17; used at $C4F3, D76F, D773, D77F, +21 more ZpFF = $FF ; 32 refs; reads=16 writes=16; used at $C4F1, C803, C807, C8C1, +20 more ; --------------------------------------------------------------------------- ; Semantic zero-page aliases (Pass 3) ; ; Every alias below was read out of this dump's own code. The neutral ZpXX ; name stays on the same line in locals.inc so the file keeps both readings. ; ; The game's vocabulary: the player is Mario, the moving enemies are the ; turtles, beetles, paratroopa and piranha plants, and the score and timer ; live in the $0500 page. ; ; $20 the frame-pending flag: the NMI sets it and the main loop ; spends it ($C0A7 sets it, $C06A tests it) ; $22 the NMI phase flag: the NMI handler sets it while it is running ; so the per-frame work happens once per frame ($C08C tests it) ; $26 the mode index, tested by the state dispatcher ; $28 the "an actor action is running" flag ($C56C sets it, $C054F ; tests it) ; $2A the frame countdown: it is decremented once a frame and reloaded ; with 10 when it underflows ($CD88); the same slot is the first ; byte of the six-byte actor parameter block ; $2C the actor type, set when an actor is spawned ($D2F3) ; $2D the index of the actor the code is working on ($C540) ; $2F the frame counter: it is incremented once per frame and its low ; bit is the frame parity the animation uses ($C06E, $CA06) ; $30 the "the game is running" flag ($C03D sets it, $C4B8 tests it) ; $33 the script step counter: the actor scripts count down through ; their steps with it ($C5E5, $C660) ; $34 the parameter the next script step is called with ($D6A2) ; $35 the script command byte, compared against $AA and $BB to pick ; the command's meaning ($C764, $CF04) ; $3F the player slot the code is working on ($CA66) ; $45 the actor's Y position, counted down as it falls ($C66F, $C68D) ; $46 the actor's X position ($C711, $D3B4) ; $4A the Y position the actor animation counts towards ($D35E, $E042) ; $A0/$A1 the low and high bytes of the pointer to the actor script block ; ($C5DD, $CB85) ; $A2 the byte offset inside the actor script block ($C677) ; $B4 the four palette bytes copied to the PPU ($C2A5, $C355) ; $B8 the actor's tile index ($C1A9, $C1CE) ; $B9 the horizontal scroll position the code is working against ; ($C424, $C489) ; $BB the number of actors in use ($C260, $C3B3) ; $BF the actor command byte: the code switches on its high and low ; nibbles to decide what the actor does ($C6A7, $C715) ; $C4 the actor's state byte, compared against the byte at $0334 ; ($C133, $C185) ; ; The slots that keep their neutral ZpXX name, and why: ; ; $00-$0F the general-purpose working slots: the code uses them for ; intermediate values, and the same slot serves different ; purposes in different routines, so no single role is provable. ; $10/$11 the Mario sprite state: $10 holds the sprite flags the NMI ; handler tests and $11 a copy of them, but the code also writes ; them from several unrelated places. ; $12/$13 a scratch 16-bit pair used by the tile and the score helpers. ; $16/$17 the "the player is on the ground" pair, written by the physics ; code and read by the collision code; the two are not ; separated by the code. ; $18 a bit mask the game state is tested against. ; $19 a counter with no fixed unit. ; $1A-$1F the remaining per-actor scratch slots; each is read and ; written from more than one routine. ; $21 the "the HUD must be redrawn" flag. ; $23/$25 a counter each, used by the NMI phase dispatch. ; $27 a counter, decremented by the frame code. ; $29 a counter incremented by the round code. ; $31/$32 counters incremented by the actor and the score code. ; $36-$38 counters in the actor script code. ; $39 a flag tested by the enemy spawn code. ; $3A a counter in the enemy spawn code. ; $3B the actor state the stage script leaves behind. ; $3C/$3D scratch slots in the NMI phase dispatch. ; $3E a counter. ; $40 a counter incremented by the actor update. ; $41 a counter incremented by the score code. ; $42 a flag the actor code tests. ; $43/$44 the actor's fall counters. ; $48 the sprite slot the actor is drawn into. ; $49 a counter. ; $4B a counter in the enemy movement code. ; $4C an actor field the stage script writes. ; $4D a counter. ; $4E a timer. ; $4F a counter. ; $50-$58 counters in the enemy movement and spawn code. ; $59 a counter. ; $5A a counter. ; $5B-$5F the actor's timers; each is read in more than one context. ; $60-$6F never referenced. ; $70-$75 the stage counters the timer code counts down. ; $76-$7F never referenced. ; $80 the actor's animation state. ; $81/$82 never referenced. ; $83 a flag the actor code tests. ; $84 a flag the actor code tests. ; $85 a counter. ; $86 a counter. ; $87-$8A the actor's remaining animation fields. ; $8B-$8F the actor's remaining animation fields. ; $90-$99 the actor state block: the code reads and writes the bytes ; through different indices, so the individual fields are not ; separated. ; $9A-$9C never referenced. ; $9D a counter. ; $9E a counter. ; $9F the index of the actor currently being drawn. ; $A3-$A9 the actor's remaining script fields. ; $AA-$AF counters in the actor movement code. ; $B0-$B3 counters in the actor list code. ; $B5 a flag the actor code clears. ; $B6 the actor's speed value. ; $B7 the actor's flag byte. ; $BA a counter. ; $BB see the alias above. ; $BC/$BD the 16-bit pointer the actor code walks the sprite table with. ; $BE a counter. ; $BF see the alias above. ; $C0-$C3 the actor's state flags: each bit is tested separately, so the ; code does not separate the individual flags. ; $C4 see the alias above. ; $C5 a counter. ; $C6-$CB counters and flags in the actor collision code. ; $CC never referenced. ; $CD a value the actor code compares against a range. ; $CE/$CF never referenced. ; $D0-$D3 the sound engine's per-note state. ; $D4 the sound engine's per-note counter. ; $D5-$D7 the sound engine's per-note state. ; $D8-$DE the sound engine's per-note counters. ; $DF never referenced. ; $E0 the sound engine's envelope counter. ; $E1-$E3 never referenced. ; $E4 the sound engine's envelope value. ; $E5 the sound engine's note table index. ; $E6 the note index the current note was read for. ; $E7 never referenced. ; $E8 never referenced. ; $E9/$EA the two values the APU sweep registers are loaded with. ; $EB/$EC the sound engine's envelope state. ; $ED/$EE the sound engine's envelope state. ; $EF the sound engine's envelope state. ; $F0/$F1 the sound engine's volume table indices. ; $F2 the sound engine's channel state. ; $F3 the sound engine's main state byte, read and written by ; thirty different sites; the layout is not separated by the code. ; $F4/$F5 the sound engine's note table base and offset. ; $F6/$F7 the sound engine's note table pointer. ; $F8-$FF the eight note parameters the sound engine reads from the ; table at $FCC8. ; --------------------------------------------------------------------------- FramePendingFlag = $20 ; semantic alias for Zp20 (the frame-pending flag) NmiPhaseFlag = $22 ; semantic alias for Zp22 (the NMI phase flag) ModeIndex = $26 ; semantic alias for Zp26 (the mode index) ActorActionFlag = $28 ; semantic alias for Zp28 (the actor-action-running flag) FrameCountdown = $2A ; semantic alias for Zp2A (the frame countdown) ActorType = $2C ; semantic alias for Zp2C (the actor type) ActorIndex = $2D ; semantic alias for Zp2D (the actor being worked on) FrameCounter = $2F ; semantic alias for Zp2F (the frame counter) GameRunningFlag = $30 ; semantic alias for Zp30 (the game-running flag) ScriptStepCounter = $33 ; semantic alias for Zp33 (the script step counter) ScriptParam = $34 ; semantic alias for Zp34 (the script step parameter) ScriptCommand = $35 ; semantic alias for Zp35 (the script command byte) PlayerSlot = $3F ; semantic alias for Zp3F (the player slot) ActorYPosition = $45 ; semantic alias for Zp45 (the actor's Y position) ActorXPosition = $46 ; semantic alias for Zp46 (the actor's X position) ActorYTarget = $4A ; semantic alias for Zp4A (the Y position the animation counts towards) ScriptPtrLo = $A0 ; semantic alias for ZpA0 (the low byte of the actor-script pointer) ScriptPtrHi = $A1 ; semantic alias for ZpA1 (the high byte of the actor-script pointer) ScriptStep = $A2 ; semantic alias for ZpA2 (the byte offset in the actor script block) ActorPalette = $B4 ; semantic alias for ZpB4 (the four palette bytes) ActorTileIndex = $B8 ; semantic alias for ZpB8 (the actor's tile index) ScrollX = $B9 ; semantic alias for ZpB9 (the horizontal scroll position) ActorCount = $BB ; semantic alias for ZpBB (the number of actors in use) ActorCommand = $BF ; semantic alias for ZpBF (the actor command byte) ActorState = $C4 ; semantic alias for ZpC4 (the actor's state byte)