; Slalom (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 ; 18 refs; reads=5 writes=13; used at $8071, 80B9, 80DC, 80E3, +14 more Zp01 = $01 ; 10 refs; reads=1 writes=9; used at $8075, 80E7, 8387, 8542, +6 more Zp02 = $02 ; 14 refs; reads=4 writes=10; used at $8133, 81AF, 821B, 8227, +10 more Zp03 = $03 ; 12 refs; reads=4 writes=8; used at $85A8, 8D40, 8D44, 9E05, +8 more Zp04 = $04 ; 7 refs; reads=3 writes=4; used at $8D56, 8D5A, A68D, A695, +3 more Zp05 = $05 ; 5 refs; reads=1 writes=4; used at $809E, 8D4C, A6A0, A967, +1 more Zp06 = $06 ; 20 refs; reads=19 writes=1; used at $8373, 8D1F, 8D25, 8D2E, +15 more Zp07 = $07 ; 4 refs; reads=3 writes=1; used at $8D23, 8D30, 9147 Zp08 = $08 ; 8 refs; reads=7 writes=1; used at $8D27, 8D2C, 96E9, 9907, +4 more Zp09 = $09 ; 1 refs; reads=0 writes=1; used at $8D32 Zp0A = $0A ; 15 refs; reads=11 writes=4; used at $807F, 8BAB, 8BAF, 8CA7, +11 more Zp0B = $0B ; 3 refs; reads=1 writes=2; used at $8081, 8BAD, 8BB1 Zp0C = $0C ; 12 refs; reads=11 writes=1; used at $8410, 88CF, 88FC, 8929, +8 more Zp0D = $0D ; 19 refs; reads=13 writes=6; used at $8083, 83BD, 83DE, 8569, +15 more Zp0E = $0E ; 4 refs; reads=3 writes=1; used at $A8E0, A97B, A982, A9A8 Zp0F = $0F ; 33 refs; reads=17 writes=16; used at $81BC, 82E9, 8325, 8DBF, +28 more Zp10 = $10 ; 28 refs; reads=24 writes=4; used at $8183, 9274, 94FF, 9537, +24 more Zp11 = $11 ; 23 refs; reads=19 writes=4; used at $916B, 927D, 94E7, 958B, +19 more Zp12 = $12 ; 12 refs; reads=10 writes=2; used at $916F, 9584, 9589, 9678, +8 more Zp13 = $13 ; 35 refs; reads=28 writes=7; used at $8D69, 8D9E, 8E09, 8E11, +31 more Zp14 = $14 ; 33 refs; reads=27 writes=6; used at $8DC3, 90E2, 9561, 9564, +28 more Zp15 = $15 ; 9 refs; reads=3 writes=6; used at $8DC5, 961B, 961D, B14A, +5 more Zp16 = $16 ; 23 refs; reads=16 writes=7; used at $8DF4, 8E18, 8E23, 8E25, +19 more Zp17 = $17 ; 11 refs; reads=6 writes=5; used at $8DC7, 8E3D, 8E46, 8E6A, +7 more Zp18 = $18 ; 9 refs; reads=6 writes=3; used at $8DC9, 8E97, 8EAD, 8EB9, +5 more Zp19 = $19 ; 7 refs; reads=4 writes=3; used at $8DCB, 8EB5, 8EC2, 9579, +2 more Zp1A = $1A ; 3 refs; reads=2 writes=1; used at $9575, 9577, 9587 Zp1B = $1B ; 2 refs; reads=1 writes=1; used at $98F7, 9905 Zp1C = $1C ; 1 refs; reads=0 writes=1; used at $9921 Zp1D = $1D ; 1 refs; reads=0 writes=1; used at $9925 Zp1E = $1E ; 2 refs; reads=1 writes=1; used at $96D0, 9929 Zp1F = $1F ; 1 refs; reads=0 writes=1; used at $9935 Zp20 = $20 ; 1 refs; reads=0 writes=1; used at $990F Zp23 = $23 ; 1 refs; reads=0 writes=1; used at $9937 Zp24 = $24 ; 1 refs; reads=0 writes=1; used at $9917 Zp25 = $25 ; 1 refs; reads=0 writes=1; used at $991B Zp26 = $26 ; 1 refs; reads=0 writes=1; used at $991D Zp33 = $33 ; 5 refs; reads=4 writes=1; used at $8D62, 8D76, 8D7C, 94EF, +1 more Zp34 = $34 ; 1 refs; reads=0 writes=1; used at $9504 Zp35 = $35 ; 1 refs; reads=0 writes=1; used at $9508 Zp36 = $36 ; 1 refs; reads=0 writes=1; used at $950C Zp37 = $37 ; 2 refs; reads=1 writes=1; used at $8D66, 951B Zp38 = $38 ; 1 refs; reads=0 writes=1; used at $950E Zp39 = $39 ; 1 refs; reads=0 writes=1; used at $9510 Zp4C = $4C ; 1 refs; reads=0 writes=1; used at $AEEF Zp63 = $63 ; 13 refs; reads=5 writes=8; used at $8C61, 8C73, 90B4, 9105, +9 more Zp64 = $64 ; 19 refs; reads=9 writes=10; used at $8C6D, 90BD, 913A, 91A7, +15 more Zp65 = $65 ; 13 refs; reads=7 writes=6; used at $8C71, 90C2, 91AD, 91CA, +9 more Zp66 = $66 ; 15 refs; reads=7 writes=8; used at $8C69, 90C6, 90CC, 9179, +11 more Zp67 = $67 ; 4 refs; reads=2 writes=2; used at $90B8, 9362, 93C5, 9403 Zp68 = $68 ; 7 refs; reads=2 writes=5; used at $8329, 96E3, 9B4D, AF53, +3 more Zp69 = $69 ; 3 refs; reads=1 writes=2; used at $80EC, A391, A39F Zp6A = $6A ; 2 refs; reads=1 writes=1; used at $9714, 9718 Zp6B = $6B ; 4 refs; reads=2 writes=2; used at $B0D7, B154, B18E, B1F2 Zp6C = $6C ; 4 refs; reads=3 writes=1; used at $90F4, B271, B27E, B843 Zp6D = $6D ; 9 refs; reads=9 writes=0; used at $81EF, 8242, 82A9, 8D1A, +5 more Zp6E = $6E ; 5 refs; reads=1 writes=4; used at $808F, 80CA, A667, FE49, +1 more Zp6F = $6F ; 4 refs; reads=1 writes=3; used at $96DC, 96E5, 99F7, 9B25 Zp70 = $70 ; 4 refs; reads=1 writes=3; used at $99CF, 9B78, B28D, B29B Zp71 = $71 ; 6 refs; reads=3 writes=3; used at $AF0C, AF79, AF7B, AF81, +1 more Zp72 = $72 ; 2 refs; reads=1 writes=1; used at $92D2, B002 Zp73 = $73 ; 3 refs; reads=2 writes=1; used at $95D7, AEC2, B06F Zp74 = $74 ; 1 refs; reads=0 writes=1; used at $95DC Zp75 = $75 ; 17 refs; reads=13 writes=4; used at $8175, 8E3B, 8E78, 90CA, +13 more Zp76 = $76 ; 5 refs; reads=2 writes=3; used at $94E3, 94EB, 9506, 95F6, +1 more Zp77 = $77 ; 6 refs; reads=4 writes=2; used at $94D7, 94DC, 9512, 951D, +2 more Zp78 = $78 ; 3 refs; reads=1 writes=2; used at $9526, 9548 Zp79 = $79 ; 10 refs; reads=9 writes=1; used at $8177, 8F4A, 952B, 95D1, +6 more Zp7A = $7A ; 4 refs; reads=2 writes=2; used at $9672, AE83, AE8E, AEB0 Zp7B = $7B ; 5 refs; reads=3 writes=2; used at $9676, AE88, AE91, AEA9, +1 more Zp7C = $7C ; 2 refs; reads=1 writes=1; used at $967A, B052 Zp7D = $7D ; 8 refs; reads=5 writes=3; used at $8198, 8EA2, 8F34, 9605, +4 more Zp7E = $7E ; 10 refs; reads=6 writes=4; used at $819A, 8EA0, 8F01, 8F2E, +6 more Zp7F = $7F ; 9 refs; reads=5 writes=4; used at $819C, 8E9E, 8F28, 95FD, +5 more Zp80 = $80 ; 6 refs; reads=5 writes=1; used at $960E, 990D, B1BF, B1CC, +2 more Zp81 = $81 ; 6 refs; reads=2 writes=4; used at $B140, B1DC, B1DF, B1E7, +2 more Zp82 = $82 ; 6 refs; reads=2 writes=4; used at $95E2, B088, B08D, B09B, +2 more Zp83 = $83 ; 7 refs; reads=4 writes=3; used at $8194, 984B, 9864, 9866, +1 more Zp84 = $84 ; 5 refs; reads=4 writes=1; used at $8196, 9861, A3D0, A3E8, +1 more Zp85 = $85 ; 6 refs; reads=3 writes=3; used at $969E, 96B3, 982B, 9BCE, +1 more Zp86 = $86 ; 27 refs; reads=21 writes=6; used at $820B, 82F3, 82FC, 8501, +22 more Zp87 = $87 ; 11 refs; reads=8 writes=3; used at $8503, 8D51, A687, A933, +6 more Zp88 = $88 ; 3 refs; reads=1 writes=2; used at $AFE3, B0E3, B213 Zp89 = $89 ; 5 refs; reads=2 writes=3; used at $9762, 97B2, 97D5, 9B97, +1 more Zp8A = $8A ; 4 refs; reads=2 writes=2; used at $9BA5, AFB6, AFBA Zp8B = $8B ; 24 refs; reads=9 writes=15; used at $8192, 8237, 82DF, 9087, +20 more Zp8D = $8D ; 8 refs; reads=6 writes=2; used at $8173, 81BA, 81D9, 81DE, +4 more Zp8F = $8F ; 85 refs; reads=51 writes=34; used at $817C, 8185, 83C8, 83E7, +79 more Zp90 = $90 ; 31 refs; reads=6 writes=25; used at $8181, 83CD, 83EB, 857B, +24 more Zp91 = $91 ; 54 refs; reads=26 writes=28; used at $8138, 81C3, 8477, 848C, +47 more Zp92 = $92 ; 26 refs; reads=8 writes=18; used at $813D, 81C8, 847C, 857F, +22 more Zp93 = $93 ; 37 refs; reads=18 writes=19; used at $8910, 891C, 8931, 896E, +24 more Zp94 = $94 ; 9 refs; reads=4 writes=5; used at $8B2F, 8B54, A49B, A4C3, +3 more Zp95 = $95 ; 160 refs; reads=90 writes=70; used at $8300, 8305, 8309, 831B, +146 more Zp96 = $96 ; 42 refs; reads=23 writes=19; used at $8F2C, 8F30, 8F41, 8F48, +37 more Zp97 = $97 ; 13 refs; reads=8 writes=5; used at $8F2A, 8F38, 8F3F, 8F6B, +9 more Zp99 = $99 ; 29 refs; reads=19 writes=10; used at $8DD3, 8E8C, 8EDE, 9037, +24 more Zp9A = $9A ; 27 refs; reads=13 writes=14; used at $9689, 9690, 969C, 96C9, +20 more Zp9B = $9B ; 18 refs; reads=13 writes=5; used at $B612, C470, C622, C62D, +13 more Zp9C = $9C ; 7 refs; reads=2 writes=5; used at $B617, C631, C688, C694, +2 more Zp9D = $9D ; 6 refs; reads=3 writes=3; used at $B647, C67E, C686, C699, +2 more Zp9E = $9E ; 6 refs; reads=3 writes=3; used at $B649, C680, C68A, C69B, +2 more Zp9F = $9F ; 1 refs; reads=0 writes=1; used at $B61C ZpA0 = $A0 ; 1 refs; reads=0 writes=1; used at $B621 ZpA1 = $A1 ; 1 refs; reads=0 writes=1; used at $B64B ZpA2 = $A2 ; 1 refs; reads=0 writes=1; used at $B64D ZpA3 = $A3 ; 1 refs; reads=0 writes=1; used at $B626 ZpA4 = $A4 ; 1 refs; reads=0 writes=1; used at $B62B ZpA5 = $A5 ; 3 refs; reads=1 writes=2; used at $9826, B64F ZpA6 = $A6 ; 1 refs; reads=0 writes=1; used at $B651 ZpA7 = $A7 ; 1 refs; reads=0 writes=1; used at $B630 ZpA8 = $A8 ; 1 refs; reads=0 writes=1; used at $B635 ZpA9 = $A9 ; 1 refs; reads=0 writes=1; used at $B653 ZpAA = $AA ; 1 refs; reads=0 writes=1; used at $B655 ZpAE = $AE ; 3 refs; reads=1 writes=2; used at $AEF1, FE0F ZpB0 = $B0 ; 1 refs; reads=0 writes=1; used at $FE5C ZpB5 = $B5 ; 1 refs; reads=1 writes=0; used at $B829 ZpB7 = $B7 ; 3 refs; reads=2 writes=1; used at $B7F2, B82B, FE5E ZpBB = $BB ; 1 refs; reads=0 writes=1; used at $FE92 ZpC5 = $C5 ; 3 refs; reads=1 writes=2; used at $FE2B, FED9 ZpCF = $CF ; 3 refs; reads=1 writes=2; used at $FE6A, FEA7, FEA9 ZpD3 = $D3 ; 4 refs; reads=1 writes=3; used at $FE2F, FEB3, FEBE, FEC3 ZpD7 = $D7 ; 2 refs; reads=0 writes=2; used at $FE6C, FEAB ZpDB = $DB ; 1 refs; reads=0 writes=1; used at $FE60 ZpDC = $DC ; 1 refs; reads=0 writes=1; used at $B7ED ZpDE = $DE ; 1 refs; reads=0 writes=1; used at $FE62 ZpE3 = $E3 ; 2 refs; reads=0 writes=2; used at $FE39, FE41 ZpE8 = $E8 ; 1 refs; reads=0 writes=1; used at $FE64 ZpEA = $EA ; 1 refs; reads=0 writes=1; used at $FE47 ZpED = $ED ; 1 refs; reads=0 writes=1; used at $FE66 ZpF0 = $F0 ; 2 refs; reads=1 writes=1; used at $AF00 ; Pass 3 semantic aliases (proven from the disassembly): PpuCtrlShadow = Zp00 PpuMaskShadow = Zp01 PlayerX = Zp95 PlayerY = Zp96 PlayerZ = Zp97 DispatchPtrLo = Zp91 DispatchPtrHi = Zp92 VramWritePtrLo = Zp8F VramWritePtrHi = Zp90 ObjectIndex = Zp0F SkierX = Zp7D SkierY = Zp7E SkierZ = Zp7F GameState = Zp14 PpuAddrLow = Zp8D CourseIndex = Zp79