RNG1
Ordered list of places in the game´s code (http://old.metroidconstruction.com/docs/pjboydissassemblylist.txt) at which the RNG routine ($05E5) is called (the corresponding lines are highlighted via stars at the beginning and the end of the line), together with the relevant surrounding code (the list in here is complete, but only with respect to PJBoy´s dissassembly list):
Routines/Subroutines that contain the following structure:
$(...) LDA $05E5 (...)
$(...) AND $0001
$(...) BEQ (...)
Those are listed above, separately, since those are the ones that contain RNG-dependent results where the RNG-dependency is decided by the parity (odd or even) of the RNG value.
7. --- $86AD5E db EB $86AD60 db AD, AC, 15, AB, 07, 07, 08, 90, 00, 00, 68, AB $86AD7A db 7C $86AD7C db FA, AC, 15, AB, 07, 07, 50, B0 $86AD86 db 68, AB $86ADD2 db 12, 83, 48, 06, 00, 3F, 8D, 06, 00, 55, 8D, 50, 00, 75, 8D $86ADE5 db 6A, 81, 52, 82, 5C, 82, 84, 82, D5, 81, 05, 00, BE, A3, DF, 81, 0F, 00, 1F, 00, 02, 00, 9C, 8D, 02, 00, A3, 8D, 03, 00, B9, 8D, 03, 00, CF, 8D, 02, 00, E5, 8D, DE, 81, C6, 81, F1, AD, 54, 81 $86AE15 22 11 81 80 JSL $808111[$80:8111] $86AE19 AE 54 0E LDX $0E54 [$86:0E54] *$86AE1C AD E5 05 LDA $05E5 [$86:05E5]* $86AE1F 29 01 00 AND #$0001 $86AE22 F0 05 BEQ $05 [$AE29] $86AE24 A9 F4 FF LDA #$FFF4 $86AE27 80 03 BRA $03 [$AE2C] $86AE29 A9 14 00 LDA #$0014 $86AE2C 18 CLC $86AE2D 7D 7E 0F ADC $0F7E,x[$86:0F7E] $86AE30 99 93 1A STA $1A93,y[$86:1AA1] $86AE33 A9 00 00 LDA #$0000 $86AE36 99 DB 1A STA $1ADB,y[$86:1AE9] $86AE39 3C B4 0F BIT $0FB4,x[$86:0FB4] $86AE3C 30 17 BMI $17 [$AE55] $86AE55 BD 7A 0F LDA $0F7A,x[$86:0F7A] $86AE58 18 CLC $86AE59 69 20 00 ADC #$0020 $86AE5C 99 4B 1A STA $1A4B,y[$86:1A59] $86AE5F A9 70 02 LDA #$0270 $86AE62 99 B7 1A STA $1AB7,y[$86:1AC5] $86AE65 A9 D2 AD LDA #$ADD2 $86AE68 99 47 1B STA $1B47,y[$86:1B55] $86AE6B 60 RTS --- 43. --- $A5899A 9C AA 0F STZ $0FAA [$A5:0FAA] *$A5899D AD E5 05 LDA $05E5 [$A5:05E5]* $A589A0 29 01 00 AND #$0001 $A589A3 F0 07 BEQ $07 [$89AC] $A589A5 A9 B3 89 LDA #$89B3 $A589A8 8D A8 0F STA $0FA8 [$A5:0FA8] $A589AB 60 RTS --- 44. --- *$A58ADC AD E5 05 LDA $05E5 [$A5:05E5]* $A58ADF 29 01 00 AND #$0001 $A58AE2 F0 18 BEQ $18 [$8AFC] $A58AE4 A9 F4 87 LDA #$87F4 $A58AE7 8D A8 0F STA $0FA8 [$A5:0FA8] $A58AEA 9C AA 0F STZ $0FAA [$A5:0FAA] $A58AED AF 00 78 7E LDA $7E7800[$7E:7800] $A58AF1 8D 7A 0F STA $0F7A [$A5:0F7A] $A58AF4 AF 02 78 7E LDA $7E7802[$7E:7802] $A58AF8 8D 7E 0F STA $0F7E [$A5:0F7E] $A58AFB 60 RTS --- 61. --- $A6BF1A A9 06 78 LDA #$7806 $A6BF1D 20 CB DB JSR $DBCB [$A6:DBCB] $A6BF20 AF 04 88 7E LDA $7E8804[$7E:8804] $A6BF24 85 12 STA $12 [$00:0012] $A6BF26 AF 08 88 7E LDA $7E8808[$7E:8808] $A6BF2A 85 14 STA $14 [$00:0014] $A6BF2C 64 16 STZ $16 [$00:0016] $A6BF2E 4C 13 DC JMP $DC13 [$A6:DC13] $A6BF31 db F2, BF $A6BF35 db 0A, 00, FD, BF, 0A, 00, 18, C0, 0A, 00, 33, C0, 0A, 00, 18, C0, F2, BF $A6BF49 db 0A, 00, FD, BF, 0A, 00, 18, C0, 0A, 00, 33, C0, 0A, 00, 18, C0, C9, BF, 31, BF, E1, BF, 0F, E2, 06, 00, FD, BF, E1, BF, 2D, E2, 05, 00, 18, C0, E1, BF, 4B, E2, 04, 00, 33, C0, E1, BF, 2D, E2, 03, 00, 18, C0, E1, BF, 0F, E2, 02, 00, FD, BF, E1, BF, 2D, E2, 03, 00, 18, C0, E1, BF, 4B, E2, 04, 00, 33, C0, E1, BF, 2D, E2, 05, 00, 18, C0, E1, BF, 0F, E2, 06, 00, FD, BF, E1, BF, 2D, E2, 07, 00, 18, C0, E1, BF, 4B, E2, 08, 00, 33, C0, E1, BF, 2D, E2, 09, 00, 18, C0, E1, BF, F1, E1, F2, BF $A6BFC5 db F8, BF, 31, BF $A6BFC9 AF 0C 88 7E LDA $7E880C[$7E:880C] $A6BFCD D0 08 BNE $08 [$BFD7] *$A6BFCF AD E5 05 LDA $05E5 [$A6:05E5]* $A6BFD2 29 01 00 AND #$0001 $A6BFD5 D0 21 BNE $21 [$BFF8] $A6BFD7 A9 24 00 LDA #$0024 $A6BFDA 22 4D 91 80 JSL $80914D[$80:914D] $A6BFDE E8 INX $A6BFDF E8 INX $A6BFE0 60 RTS ---
Routines/Subroutines in which 2 cases are distinguished depending on the RNG value (similar to the odd/even case, but differently). A jump in the code is executed or not, depending on if for an RNG value VWXY, Y is either among the values 0,1,4,5,8,9,C,D, or among the values 2,3,6,7,A,B,E,F. At the instruction BIT $0002, since 0x0002 has a binary representation of 0010, the game checks if this 1 occurs in the binary representation of the RNG value or if it doesn't:
41. --- $A49108 20 6C 91 JSR $916C [$A4:916C] $A4910B AD 7E 0F LDA $0F7E [$A4:0F7E] $A4910E A0 64 BF LDY #$BF64 $A49111 C9 18 01 CMP #$0118 $A49114 10 13 BPL $13 [$9129] $A49116 A0 6C BF LDY #$BF6C $A49119 C9 08 01 CMP #$0108 $A4911C 10 0B BPL $0B [$9129] $A4911E A0 72 BF LDY #$BF72 $A49121 C9 F8 00 CMP #$00F8 $A49124 10 03 BPL $03 [$9129] $A49126 A0 78 BF LDY #$BF78 $A49129 98 TYA $A4912A 8D 92 0F STA $0F92 [$A4:0F92] $A4912D A9 01 00 LDA #$0001 $A49130 8D 94 0F STA $0F94 [$A4:0F94] $A49133 4C C1 91 JMP $91C1 [$A4:91C1] $A49136 AF 16 90 7E LDA $7E9016[$7E:9016] $A4913A C9 16 00 CMP #$0016 $A4913D 30 03 BMI $03 [$9142] $A4913F 4C BA 91 JMP $91BA [$A4:91BA] $A49142 AA TAX $A49143 1A INC A $A49144 1A INC A $A49145 8F 16 90 7E STA $7E9016[$7E:9016] $A49149 BD 56 91 LDA $9156,x[$A4:9156] $A4914C A0 9D 8F LDY #$8F9D $A4914F 22 27 80 86 JSL $868027[$86:8027] $A49153 4C BA 91 JMP $91BA [$A4:91BA] $A49156 db 80, 07, 30, 07, 90, 07, 40, 07, B0, 07, 60, 07, A0, 07, 70, 07, 10, 07, 50, 07, 20, 07 $A4916C AF 18 90 7E LDA $7E9018[$7E:9018] $A49170 3A DEC A $A49171 8F 18 90 7E STA $7E9018[$7E:9018] $A49175 D0 42 BNE $42 [$91B9] $A49177 A9 06 00 LDA #$0006 $A4917A 8F 18 90 7E STA $7E9018[$7E:9018] *$A4917E AD E5 05 LDA $05E5 [$A4:05E5]* $A49181 29 3F 00 AND #$003F $A49184 AA TAX *$A49185 AD E5 05 LDA $05E5 [$A4:05E5]* $A49188 89 02 00 BIT #$0002 $A4918B D0 05 BNE $05 [$9192] $A4918D 8A TXA $A4918E 49 FF FF EOR #$FFFF $A49191 AA TAX $A49192 8A TXA $A49193 18 CLC $A49194 6D 7A 0F ADC $0F7A [$A4:0F7A] $A49197 85 12 STA $12 [$00:0012] *$A49199 AD E5 05 LDA $05E5 [$A4:05E5]* $A4919C 29 00 1F AND #$1F00 $A4919F EB XBA $A491A0 85 14 STA $14 [$00:0014] $A491A2 AD 62 19 LDA $1962 [$A4:1962] $A491A5 18 CLC $A491A6 69 10 00 ADC #$0010 $A491A9 38 SEC $A491AA E5 14 SBC $14 [$00:0014] $A491AC 85 14 STA $14 [$00:0014] $A491AE A9 15 00 LDA #$0015 $A491B1 85 16 STA $16 [$00:0016] $A491B3 64 18 STZ $18 [$00:0018] $A491B5 22 26 BC B4 JSL $B4BC26[$B4:BC26] $A491B9 60 RTS --- 68. --- $A7C995 AD B5 05 LDA $05B5 [$A7:05B5] $A7C998 89 02 00 BIT #$0002 *$A7C99B AD E5 05 LDA $05E5 [$A7:05E5]* $A7C99E 29 3F 00 AND #$003F $A7C9A1 AA TAX *$A7C9A2 AD E5 05 LDA $05E5 [$A7:05E5]* $A7C9A5 89 02 00 BIT #$0002 $A7C9A8 D0 05 BNE $05 [$C9AF] $A7C9AA 8A TXA $A7C9AB 49 FF FF EOR #$FFFF $A7C9AE AA TAX $A7C9AF 8A TXA $A7C9B0 18 CLC $A7C9B1 6D 7A 0F ADC $0F7A [$A7:0F7A] $A7C9B4 85 12 STA $12 [$00:0012] *$A7C9B6 AD E5 05 LDA $05E5 [$A7:05E5]* $A7C9B9 29 00 3F AND #$3F00 $A7C9BC EB XBA $A7C9BD 85 14 STA $14 [$00:0014] $A7C9BF A9 C0 01 LDA #$01C0 $A7C9C2 38 SEC $A7C9C3 E5 14 SBC $14 [$00:0014] $A7C9C5 85 14 STA $14 [$00:0014] $A7C9C7 A9 15 00 LDA #$0015 $A7C9CA 85 16 STA $16 [$00:0016] $A7C9CC 64 18 STZ $18 [$00:0018] $A7C9CE 22 26 BC B4 JSL $B4BC26[$B4:BC26] $A7C9D2 A0 61 9C LDY #$9C61 *$A7C9D5 AD E5 05 LDA $05E5 [$A7:05E5]* $A7C9D8 89 10 00 BIT #$0010 $A7C9DB F0 03 BEQ $03 [$C9E0] $A7C9DD A0 6F 9C LDY #$9C6F $A7C9E0 AE 54 0E LDX $0E54 [$A7:0E54] *$A7C9E3 AD E5 05 LDA $05E5 [$A7:05E5]* $A7C9E6 29 F0 03 AND #$03F0 $A7C9E9 22 27 80 86 JSL $868027[$86:8027] $A7C9ED 60 RTS ---
In the following routine/subroutine, the game jumps in the code or doesn't, depending on the RNG value, and the decision is done by checking for an RNG value VWXY, if Y is among 0 and 8 or if it isn't.
66. --- $A7ADE9 A9 A4 AE LDA #$AEA4 $A7ADEC 8D A8 0F STA $0FA8 [$A7:0FA8] $A7ADEF AD 7E 0F LDA $0F7E [$A7:0F7E] $A7ADF2 38 SEC $A7ADF3 E9 14 00 SBC #$0014 $A7ADF6 8D FE 0F STA $0FFE [$A7:0FFE] $A7ADF9 AD 7E 0F LDA $0F7E [$A7:0F7E] $A7ADFC 18 CLC $A7ADFD 69 2E 00 ADC #$002E $A7AE00 8D 3E 10 STA $103E [$A7:103E] $A7AE03 AD 7E 0F LDA $0F7E [$A7:0F7E] $A7AE06 18 CLC $A7AE07 69 70 00 ADC #$0070 $A7AE0A 8D 7E 10 STA $107E [$A7:107E] *$A7AE0D AD E5 05 LDA $05E5 [$A7:05E5]* $A7AE10 29 07 00 AND #$0007 $A7AE13 D0 03 BNE $03 [$AE18] $A7AE18 0A ASL A $A7AE19 0A ASL A $A7AE1A 0A ASL A $A7AE1B 0A ASL A $A7AE1C 0A ASL A $A7AE1D 0A ASL A $A7AE1E 8F 06 78 7E STA $7E7806[$7E:7806] $A7AE22 60 RTS ---
In the following routine/subroutine, the game jumps in the code or doesn't, depending on the RNG value, and the decision is done by checking for an RNG value VWXY, if Y is among 0, 4, 8, C or if it isn't.
74. --- $A8DF33 5A PHY $A8DF34 A9 02 00 LDA #$0002 $A8DF37 80 E7 BRA $E7 [$DF20] $A8DF39 5A PHY $A8DF3A A9 04 00 LDA #$0004 $A8DF3D 80 E1 BRA $E1 [$DF20] $A8DF3F AE 54 0E LDX $0E54 [$A8:0E54] $A8DF42 A9 4B DE LDA #$DE4B $A8DF45 9D A8 0F STA $0FA8,x[$A8:10E8] *$A8DF48 AD E5 05 LDA $05E5 [$A8:05E5]* $A8DF4B 29 03 00 AND #$0003 $A8DF4E D0 03 BNE $03 [$DF53] $A8DF50 A9 02 00 LDA #$0002 $A8DF53 9F 08 78 7E STA $7E7808,x[$7E:7948] $A8DF57 A0 E7 DB LDY #$DBE7 $A8DF5A BD AE 0F LDA $0FAE,x[$A8:10EE] $A8DF5D 30 03 BMI $03 [$DF62] $A8DF5F A0 57 DC LDY #$DC57 $A8DF62 6B RTL ---
In the following routine/subroutine, the game jumps in the code or doesn't, depending on the RNG value, and the decision is done by checking for an RNG value VWXY, if all the following conditions hold or don't all hold: V is among 0,1,2,3,4,5,6,7 (i.e. strictly less than 8). W is among 0,2,4,6,8,A,C,E (i.e. even). X is among 0,1,2,3,8,9,A,B. Y is among 0,1,4,5,8,9,C,D.
100. --- $AAC620 AD 9F 07 LDA $079F [$AA:079F] $AAC623 F0 03 BEQ $03 [$C628] $AAC625 4C 42 C6 JMP $C642 [$AA:C642] *$AAC628 AD E5 05 LDA $05E5 [$AA:05E5]* $AAC62B 29 42 81 AND #$8142 $AAC62E D0 11 BNE $11 [$C641] $AAC630 BD 8C 0F LDA $0F8C,x[$AA:0F8C] $AAC633 F0 0C BEQ $0C [$C641] $AAC635 C9 5E 01 CMP #$015E $AAC638 B0 07 BCS $07 [$C641] $AAC63A A0 69 A9 LDY #$A969 $AAC63D 22 27 80 86 JSL $868027[$86:8027] $AAC641 60 RTS ---
Routines/Subroutines that contain the following structure:
$(...) LDA $05E5 (...)
$(...) AND $0101
$(...) BEQ (...)
Those are listed next, separately, since those are the ones that contain RNG-dependent results where the RNG-dependency is decided by the parity (odd or even) of each of the high byte and the low byte of the RNG value, such that at least 2 cases are distinguished (and at most 4), and the game then either continues to work with one of the values 0001,0100,0101, or continues to work with the value 0000 (at a different place):
35. --- *$A2C2E7 AD E5 05 LDA $05E5 [$A2:05E5]* $A2C2EA 29 01 01 AND #$0101 $A2C2ED F0 09 BEQ $09 [$C2F8] $A2C2EF A9 C0 00 LDA #$00C0 $A2C2F2 22 9B BB A0 JSL $A0BB9B[$A0:BB9B] $A2C2F6 90 14 BCC $14 [$C30C] $A2C2F8 BF 02 78 7E LDA $7E7802,x[$7E:7882] $A2C2FC F0 0D BEQ $0D [$C30B] $A2C30B 6B RTL --- 37. --- *$A2C771 AD E5 05 LDA $05E5 [$A2:05E5]* $A2C774 29 01 01 AND #$0101 $A2C777 F0 09 BEQ $09 [$C782] $A2C779 A9 70 00 LDA #$0070 $A2C77C 22 9B BB A0 JSL $A0BB9B[$A0:BB9B] $A2C780 90 0E BCC $0E [$C790] $A2C782 A9 00 00 LDA #$0000 $A2C785 9F 02 78 7E STA $7E7802,x[$7E:7982] $A2C789 A9 1A C6 LDA #$C61A $A2C78C 20 A3 C8 JSR $C8A3 [$A2:C8A3] $A2C78F 6B RTL ---
In the following subroutines/routines, up to 16 cases are distinguished (but at least 2 cases, namely if the value is 0000 or not), in the way that the game continues to work with one of the values 0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,1111, or it continues with the value 0000 (at a different place):
45. --- $A58BAE 20 AA 87 JSR $87AA [$A5:87AA] $A58BB1 AD 66 0A LDA $0A66 [$A5:0A66] $A58BB4 D0 63 BNE $63 [$8C19] *$A58BB6 AD E5 05 LDA $05E5 [$A5:05E5]* $A58BB9 29 0F 00 AND #$000F $A58BBC D0 17 BNE $17 [$8BD5] $A58BBE AF 06 78 7E LDA $7E7806[$7E:7806] $A58BC2 3A DEC A $A58BC3 8F 06 78 7E STA $7E7806[$7E:7806] $A58BC7 F0 4B BEQ $4B [$8C14] $A58BC9 A0 90 9C LDY #$9C90 $A58BCC 8C 92 0F STY $0F92 [$A5:0F92] $A58BCF A9 01 00 LDA #$0001 $A58BD2 8D 94 0F STA $0F94 [$A5:0F94] $A58BD5 A9 20 00 LDA #$0020 $A58BD8 8D 32 0E STA $0E32 [$A5:0E32] $A58BDB AF 1A 78 7E LDA $7E781A[$7E:781A] $A58BDF 22 B2 B0 A0 JSL $A0B0B2[$A0:B0B2] $A58BE3 18 CLC $A58BE4 69 80 01 ADC #$0180 $A58BE7 8D 7E 0F STA $0F7E [$A5:0F7E] $A58BEA AF 1A 78 7E LDA $7E781A[$7E:781A] $A58BEE 18 CLC $A58BEF 69 01 00 ADC #$0001 $A58BF2 29 FF 00 AND #$00FF $A58BF5 8F 1A 78 7E STA $7E781A[$7E:781A] $A58BF9 AD 7C 0F LDA $0F7C [$A5:0F7C] $A58BFC 18 CLC $A58BFD 6D B0 0F ADC $0FB0 [$A5:0FB0] $A58C00 8D 7C 0F STA $0F7C [$A5:0F7C] $A58C03 AD 7A 0F LDA $0F7A [$A5:0F7A] $A58C06 6D AE 0F ADC $0FAE [$A5:0FAE] $A58C09 8D 7A 0F STA $0F7A [$A5:0F7A] $A58C0C 30 05 BMI $05 [$8C13] $A58C0E C9 A0 02 CMP #$02A0 $A58C11 10 01 BPL $01 [$8C14] $A58C13 60 RTS --- 46. --- $A58D30 AD 66 0A LDA $0A66 [$A5:0A66] $A58D33 D0 63 BNE $63 [$8D98] *$A58D35 AD E5 05 LDA $05E5 [$A5:05E5]* $A58D38 29 0F 00 AND #$000F $A58D3B D0 17 BNE $17 [$8D54] $A58D3D AF 06 78 7E LDA $7E7806[$7E:7806] $A58D41 3A DEC A $A58D42 8F 06 78 7E STA $7E7806[$7E:7806] $A58D46 F0 4B BEQ $4B [$8D93] $A58D48 A0 FE 98 LDY #$98FE $A58D4B 8C 92 0F STY $0F92 [$A5:0F92] $A58D4E A9 01 00 LDA #$0001 $A58D51 8D 94 0F STA $0F94 [$A5:0F94] $A58D54 A9 20 00 LDA #$0020 $A58D57 8D 32 0E STA $0E32 [$A5:0E32] $A58D5A AF 1A 78 7E LDA $7E781A[$7E:781A] $A58D5E 22 B2 B0 A0 JSL $A0B0B2[$A0:B0B2] $A58D62 18 CLC $A58D63 69 80 01 ADC #$0180 $A58D66 8D 7E 0F STA $0F7E [$A5:0F7E] $A58D69 AF 1A 78 7E LDA $7E781A[$7E:781A] $A58D6D 18 CLC $A58D6E 69 01 00 ADC #$0001 $A58D71 29 FF 00 AND #$00FF $A58D74 8F 1A 78 7E STA $7E781A[$7E:781A] $A58D78 AD 7C 0F LDA $0F7C [$A5:0F7C] $A58D7B 38 SEC $A58D7C ED B0 0F SBC $0FB0 [$A5:0FB0] $A58D7F 8D 7C 0F STA $0F7C [$A5:0F7C] $A58D82 AD 7A 0F LDA $0F7A [$A5:0F7A] $A58D85 ED AE 0F SBC $0FAE [$A5:0FAE] $A58D88 8D 7A 0F STA $0F7A [$A5:0F7A] $A58D8B 10 05 BPL $05 [$8D92] $A58D92 60 RTS ---
In the following subroutine/routine, up to 256 cases are distinguished (but at least 2 cases, namely if the low byte is 0000 or not), in the way that the game continues to work with any low non-zero low byte value or it continues with the low byte value 0x00 (at a different place):
47. --- $A58FD6 AD 64 0A LDA $0A64 [$A5:0A64] $A58FD9 89 01 00 BIT #$0001 $A58FDC F0 1D BEQ $1D [$8FFB] *$A58FFB AD E5 05 LDA $05E5 [$A5:05E5]* $A58FFE 29 FF 00 AND #$00FF $A59001 D0 0E BNE $0E [$9011] $A59003 A9 40 00 LDA #$0040 $A59006 8F 18 78 7E STA $7E7818[$7E:7818] $A5900A A9 D4 90 LDA #$90D4 $A5900D 8D A8 0F STA $0FA8 [$A5:0FA8] $A59010 60 RTS ---
In the following Routine/Subroutine, the RNG value is normalized to 0x0061 which is the initial RNG value with which the game starts:
2. --- $80841C 78 SEI $80841D 18 CLC $80841E FB XCE $80841F 5C 23 84 80 JMP $808423[$80:8423] $808423 E2 20 SEP #$20 $808425 A9 01 LDA #$01 $808427 8D 0D 42 STA $420D [$00:420D] $80842A 85 86 STA $86 [$00:0086] $80842C C2 30 REP #$30 $80842E A2 FF 1F LDX #$1FFF $808431 9A TXS $808432 A9 00 00 LDA #$0000 $808435 5B TCD $808436 4B PHK $808437 AB PLB $808438 E2 30 SEP #$30 $80843A A2 04 LDX #$04 $80843C AD 12 42 LDA $4212 [$80:4212] $80843F 10 FB BPL $FB [$843C] $808441 AD 12 42 LDA $4212 [$80:4212] $808444 30 FB BMI $FB [$8441] $808446 CA DEX $808447 D0 F3 BNE $F3 [$843C] $808449 C2 30 REP #$30 $80844B A2 FE 1F LDX #$1FFE $80844E 9E 00 00 STZ $0000,x[$80:1FFE] $808451 CA DEX $808452 CA DEX $808453 10 F9 BPL $F9 [$844E] $808455 22 46 91 8B JSL $8B9146[$8B:9146] $808459 22 0A 80 80 JSL $80800A[$80:800A] $80845D db 00, 80, CF $808460 80 20 BRA $20 [$8482] $808482 E2 20 SEP #$20 $808484 A9 8F LDA #$8F $808486 8D 00 21 STA $2100 [$80:2100] $808489 C2 30 REP #$30 $80848B F4 00 7E PEA $7E00 $80848E AB PLB $80848F AB PLB $808490 A2 FE 1F LDX #$1FFE $808493 9E 00 00 STZ $0000,x[$7E:1FFE] $808496 9E 00 20 STZ $2000,x[$7E:3FFE] $808499 9E 00 40 STZ $4000,x[$7E:5FFE] $80849C 9E 00 60 STZ $6000,x[$7E:7FFE] $80849F 9E 00 80 STZ $8000,x[$7E:9FFE] $8084A2 9E 00 A0 STZ $A000,x[$7E:BFFE] $8084A5 9E 00 C0 STZ $C000,x[$7E:DFFE] $8084A8 9E 00 E0 STZ $E000,x[$7E:FFFE] $8084AB CA DEX $8084AC CA DEX $8084AD 10 E4 BPL $E4 [$8493] $8084AF 4B PHK $8084B0 AB PLB $8084B1 E2 30 SEP #$30 $8084B3 9C 00 42 STZ $4200 [$80:4200] $8084B6 64 84 STZ $84 [$00:0084] $8084B8 A9 8F LDA #$8F $8084BA 85 51 STA $51 [$00:0051] $8084BC 20 5D 87 JSR $875D [$80:875D] $8084BF 20 92 87 JSR $8792 [$80:8792] $8084C2 20 D1 88 JSR $88D1 [$80:88D1] $8084C5 E2 20 SEP #$20 $8084C7 9C 43 06 STZ $0643 [$80:0643] $8084CA 9C 44 06 STZ $0644 [$80:0644] $8084CD 9C 45 06 STZ $0645 [$80:0645] $8084D0 9C 46 06 STZ $0646 [$80:0646] $8084D3 9C 47 06 STZ $0647 [$80:0647] $8084D6 9C 48 06 STZ $0648 [$80:0648] $8084D9 9C 49 06 STZ $0649 [$80:0649] $8084DC 9C 4A 06 STZ $064A [$80:064A] $8084DF 9C 4B 06 STZ $064B [$80:064B] $8084E2 9C 4D 06 STZ $064D [$80:064D] $8084E5 9C 4E 06 STZ $064E [$80:064E] $8084E8 9C 4F 06 STZ $064F [$80:064F] $8084EB 9C 50 06 STZ $0650 [$80:0650] $8084EE 9C 51 06 STZ $0651 [$80:0651] $8084F1 9C 52 06 STZ $0652 [$80:0652] $8084F4 9C 56 06 STZ $0656 [$80:0656] $8084F7 9C 66 06 STZ $0666 [$80:0666] $8084FA 9C 76 06 STZ $0676 [$80:0676] $8084FD C2 20 REP #$20 $8084FF 9C 90 05 STZ $0590 [$80:0590] $808502 64 53 STZ $53 [$00:0053] $808504 22 1A 8B 80 JSL $808B1A[$80:8B1A] $808508 22 6E 89 80 JSL $80896E[$80:896E] $80850C 9C 1D 07 STZ $071D [$80:071D] $80850F 9C 1F 07 STZ $071F [$80:071F] $808512 9C 21 07 STZ $0721 [$80:0721] $808515 22 4B 83 80 JSL $80834B[$80:834B] $808519 C2 30 REP #$30 $80851B 9C 40 21 STZ $2140 [$80:2140] $80851E 9C 42 21 STZ $2142 [$80:2142] $808521 E2 30 SEP #$30 $808523 A2 04 LDX #$04 $808525 AD 12 42 LDA $4212 [$80:4212] $808528 10 FB BPL $FB [$8525] $80852A AD 12 42 LDA $4212 [$80:4212] $80852D 30 FB BMI $FB [$852A] $80852F CA DEX $808530 D0 F3 BNE $F3 [$8525] $808532 C2 30 REP #$30 $808534 A9 61 00 LDA #$0061 *$808537 8D E5 05 STA $05E5 [$80:05E5]* $80853A A9 00 00 LDA #$0000 $80853D 8D 3F 06 STA $063F [$80:063F] $808540 8D 29 06 STA $0629 [$80:0629] $808543 8D 2B 06 STA $062B [$80:062B] $808546 8D 2D 06 STA $062D [$80:062D] $808549 8D 2F 06 STA $062F [$80:062F] $80854C 8D 31 06 STA $0631 [$80:0631] $80854F 8D 33 06 STA $0633 [$80:0633] $808552 8D 35 06 STA $0635 [$80:0635] $808555 8D 37 06 STA $0637 [$80:0637] $808558 AF 04 80 80 LDA $808004[$80:8004] $80855C 8D D1 05 STA $05D1 [$80:05D1] $80855F 20 F6 85 JSR $85F6 [$80:85F6] $808562 C2 30 REP #$30 $808564 22 61 82 80 JSL $808261[$80:8261] $808568 9C F5 05 STZ $05F5 [$80:05F5] $80856B 9C 86 06 STZ $0686 [$80:0686] $80856E 5C 3D 89 82 JMP $82893D[$82:893D] $80858C 08 PHP $80858D C2 30 REP #$30 $80858F AD 9F 07 LDA $079F [$81:079F] $808592 EB XBA $808593 AA TAX $808594 A0 00 00 LDY #$0000 $808597 BF 52 CD 7E LDA $7ECD52,x[$7E:CD52] $80859B 99 F7 07 STA $07F7,y[$81:07F7] $80859E E8 INX $80859F E8 INX $8085A0 C8 INY $8085A1 C8 INY $8085A2 C0 00 01 CPY #$0100 $8085A5 30 F0 BMI $F0 [$8597] $8085A7 AE 9F 07 LDX $079F [$81:079F] $8085AA BF 08 D9 7E LDA $7ED908,x[$7E:D908] $8085AE 29 FF 00 AND #$00FF $8085B1 8D 89 07 STA $0789 [$81:0789] $8085B4 28 PLP $8085B5 6B RTL ---
In the following Routine/Subroutine, the RNG value is normalized to 0x0011 which is the same that the Polyp enemy (volcanic rocks) normalizes the RNG value to:
34. --- $A2B4AA db 01, 00, F8, 81, F8, 00, 21, 01, 00, F8, 81, F8, 02, 21, 01, 00, F8, 81, F8, 04, 21, 01, 00, F8, 81, F8, 06, 21, 01, 00, F8, 81, F8, 08, 21, 01, 00, F8, 81, F8, 0A, 21, 01, 00, F8, 81, F8, 0C, 21, 01, 00, F8, 81, F8, 0E, 21 $A2B51A db 01, 00, FB, B5, 2F, 81, 10, 00 $A2B524 db 20, 00 $A2B528 db 30, 00 $A2B52E db 48, 00 $A2B536 db 1F, 00 $A2B542 db 25, 00, 26, 00 $A2B548 db 28, 00 $A2B556 db 90, 00 $A2B560 db A0, FF $A2B56A db 50, FF $A2B570 AE 54 0E LDX $0E54 [$A2:0E54] $A2B573 A9 1A B5 LDA #$B51A $A2B576 9D 92 0F STA $0F92,x[$A2:1112] $A2B579 A9 01 00 LDA #$0001 $A2B57C 9D 94 0F STA $0F94,x[$A2:1114] $A2B57F 9E 90 0F STZ $0F90,x[$A2:1110] $A2B582 A9 96 B5 LDA #$B596 $A2B585 9D A8 0F STA $0FA8,x[$A2:1128] $A2B588 A9 11 00 LDA #$0011 *$A2B58B 8D E5 05 STA $05E5 [$A2:05E5]* $A2B58E 6B RTL ---
In the following Routine/Subroutine, the RNG value is normalized to 0x0025 which is the same that any Sidehoppers normalize the RNG value to:
38. --- $A3AB09 AE 54 0E LDX $0E54 [$A3:0E54] $A3AB0C A9 25 00 LDA #$0025 *$A3AB0F 8D E5 05 STA $05E5 [$A3:05E5]* $A3AB12 22 11 81 80 JSL $808111[$80:8111] $A3AB16 A9 00 00 LDA #$0000 $A3AB19 9F 06 78 7E STA $7E7806,x[$7E:7846] $A3AB1D 9F 08 78 7E STA $7E7808,x[$7E:7848] $A3AB21 9F 0A 78 7E STA $7E780A,x[$7E:784A] $A3AB25 BD 78 0F LDA $0F78,x[$A3:0FB8] $A3AB28 AA TAX $A3AB29 BF 2A 00 A0 LDA $A0002A,x[$A0:D9E9] $A3AB2D 0A ASL A $A3AB2E AE 54 0E LDX $0E54 [$A3:0E54] $A3AB31 9F 0C 78 7E STA $7E780C,x[$7E:784C] $A3AB35 BD B4 0F LDA $0FB4,x[$A3:0FF4] $A3AB38 D0 0A BNE $0A [$AB44] $A3AB3A BF 0C 78 7E LDA $7E780C,x[$7E:784C] $A3AB3E A8 TAY $A3AB3F B9 C2 AA LDA $AAC2,y[$A3:AAC4] $A3AB42 80 08 BRA $08 [$AB4C] $A3AB44 BF 0C 78 7E LDA $7E780C,x[$7E:78CC] $A3AB48 A8 TAY $A3AB49 B9 CA AA LDA $AACA,y[$A3:AACC] $A3AB4C 9F 00 78 7E STA $7E7800,x[$7E:7840] $A3AB50 20 BB AB JSR $ABBB [$A3:ABBB] $A3AB53 BD 78 0F LDA $0F78,x[$A3:0FB8] $A3AB56 AA TAX $A3AB57 BF 2A 00 A0 LDA $A0002A,x[$A0:D9E9] $A3AB5B F0 0A BEQ $0A [$AB67] $A3AB5D A9 02 00 LDA #$0002 $A3AB60 AE 54 0E LDX $0E54 [$A3:0E54] $A3AB63 9F 0A 78 7E STA $7E780A,x[$7E:784A] $A3AB67 AE 54 0E LDX $0E54 [$A3:0E54] $A3AB6A BF 0A 78 7E LDA $7E780A,x[$7E:784A] $A3AB6E A8 TAY $A3AB6F B9 EE AA LDA $AAEE,y[$A3:AAF0] $A3AB72 85 16 STA $16 [$00:0016] $A3AB74 B9 E6 AA LDA $AAE6,y[$A3:AAE8] $A3AB77 85 18 STA $18 [$00:0018] $A3AB79 20 9D AB JSR $AB9D [$A3:AB9D] $A3AB7C 9F 02 78 7E STA $7E7802,x[$7E:7842] $A3AB80 BF 0A 78 7E LDA $7E780A,x[$7E:784A] $A3AB84 A8 TAY $A3AB85 B9 FA AA LDA $AAFA,y[$A3:AAFC] $A3AB88 85 16 STA $16 [$00:0016] $A3AB8A B9 F2 AA LDA $AAF2,y[$A3:AAF4] $A3AB8D 85 18 STA $18 [$00:0018] $A3AB8F 20 9D AB JSR $AB9D [$A3:AB9D] $A3AB92 9F 04 78 7E STA $7E7804,x[$7E:7844] $A3AB96 A9 D6 AB LDA #$ABD6 $A3AB99 9D AA 0F STA $0FAA,x[$A3:0FEA] $A3AB9C 6B RTL ---
In the following Routine/Subroutine, the RNG value is normalized to 0x0017 which is the same that the Beetom normalizes the RNG value to:
69. --- $A8B776 AE 54 0E LDX $0E54 [$A8:0E54] $A8B779 A9 00 00 LDA #$0000 $A8B77C 9D AE 0F STA $0FAE,x[$A8:10EE] $A8B77F 9D AC 0F STA $0FAC,x[$A8:10EC] $A8B782 9F 0A 78 7E STA $7E780A,x[$7E:794A] $A8B786 9F 10 78 7E STA $7E7810,x[$7E:7950] $A8B78A 9D A8 0F STA $0FA8,x[$A8:10E8] $A8B78D A9 40 00 LDA #$0040 $A8B790 9D B0 0F STA $0FB0,x[$A8:10F0] $A8B793 A5 8B LDA $8B [$00:008B] $A8B795 9D B2 0F STA $0FB2,x[$A8:10F2] $A8B798 A9 17 00 LDA #$0017 *$A8B79B 8D E5 05 STA $05E5 [$A8:05E5]* $A8B79E A9 00 30 LDA #$3000 $A8B7A1 85 16 STA $16 [$00:0016] $A8B7A3 A9 04 00 LDA #$0004 $A8B7A6 85 18 STA $18 [$00:0018] $A8B7A8 20 EF B7 JSR $B7EF [$A8:B7EF] $A8B7AB 9F 04 78 7E STA $7E7804,x[$7E:7944] $A8B7AF A9 00 40 LDA #$4000 $A8B7B2 85 16 STA $16 [$00:0016] $A8B7B4 A9 05 00 LDA #$0005 $A8B7B7 85 18 STA $18 [$00:0018] $A8B7B9 20 EF B7 JSR $B7EF [$A8:B7EF] $A8B7BC 9F 06 78 7E STA $7E7806,x[$7E:7946] $A8B7C0 A9 00 30 LDA #$3000 $A8B7C3 85 16 STA $16 [$00:0016] $A8B7C5 A9 03 00 LDA #$0003 $A8B7C8 85 18 STA $18 [$00:0018] $A8B7CA 20 EF B7 JSR $B7EF [$A8:B7EF] $A8B7CD 9F 08 78 7E STA $7E7808,x[$7E:7948] $A8B7D1 A9 F2 B6 LDA #$B6F2 $A8B7D4 9F 00 78 7E STA $7E7800,x[$7E:7940] $A8B7D8 22 E5 AE A0 JSL $A0AEE5[$A0:AEE5] $A8B7DC 10 07 BPL $07 [$B7E5] $A8B7DE A9 96 B6 LDA #$B696 $A8B7E1 9F 00 78 7E STA $7E7800,x[$7E:7900] $A8B7E5 20 62 B7 JSR $B762 [$A8:B762] $A8B7E8 A9 14 B8 LDA #$B814 $A8B7EB 9D AC 0F STA $0FAC,x[$A8:10EC] $A8B7EE 6B RTL ---
Routine/Subroutine that contains the following structure:
$(...) LDA $05E5 (...)
$(...) XBA
$(...) STA $05E5 (...)
This is put here, since it applies XBA to the RNG value and stores the new RNG value again with the swapped high and low bytes.
16. --- $88B3BE C2 30 REP #$30 $88B3C0 F4 C5 B3 PEA $B3C5 $88B3C3 6C 6C 19 JMP ($196C)[$88:B343] $88B3C6 20 C9 B2 JSR $B2C9 [$88:B2C9] $88B3C9 E2 10 SEP #$10 $88B3CB AD 76 19 LDA $1976 [$88:1976] $88B3CE 18 CLC $88B3CF 6D 70 19 ADC $1970 [$88:1970] $88B3D2 8D 60 19 STA $1960 [$88:1960] $88B3D5 AD 78 19 LDA $1978 [$88:1978] $88B3D8 6D 72 19 ADC $1972 [$88:1972] $88B3DB 8D 62 19 STA $1962 [$88:1962] $88B3DE A5 B1 LDA $B1 [$00:00B1] $88B3E0 8F DC CA 7E STA $7ECADC[$7E:CADC] $88B3E4 A9 00 00 LDA #$0000 $88B3E7 8F 00 9C 7E STA $7E9C00[$7E:9C00] $88B3EB A9 00 00 LDA #$0000 $88B3EE 8F DE CA 7E STA $7ECADE[$7E:CADE] $88B3F2 AD 62 19 LDA $1962 [$88:1962] $88B3F5 30 18 BMI $18 [$B40F] $88B3F7 38 SEC $88B3F8 ED 15 09 SBC $0915 [$88:0915] $88B3FB F0 02 BEQ $02 [$B3FF] $88B3FD 10 0B BPL $0B [$B40A] $88B3FF 49 1F 00 EOR #$001F $88B402 29 1F 00 AND #$001F $88B405 09 00 01 ORA #$0100 $88B408 80 10 BRA $10 [$B41A] $88B40A C9 00 01 CMP #$0100 $88B40D 90 05 BCC $05 [$B414] $88B40F A9 00 00 LDA #$0000 $88B412 80 06 BRA $06 [$B41A] $88B414 49 FF 00 EOR #$00FF $88B417 29 FF 00 AND #$00FF $88B41A 8F 02 9C 7E STA $7E9C02[$7E:9C02] $88B41E AE B2 18 LDX $18B2 [$88:18B2] $88B421 AD 6E 19 LDA $196E [$88:196E] $88B424 C9 02 00 CMP #$0002 $88B427 D0 21 BNE $21 [$B44A] $88B429 AD 62 19 LDA $1962 [$88:1962] $88B42C 30 1C BMI $1C [$B44A] $88B42E DE 2C 19 DEC $192C,x[$88:192C] $88B431 D0 17 BNE $17 [$B44A] $88B433 A9 70 00 LDA #$0070 $88B436 9D 2C 19 STA $192C,x[$88:192C] *$88B439 AD E5 05 LDA $05E5 [$88:05E5]* $88B43C 29 07 00 AND #$0007 $88B43F A8 TAY $88B440 B9 A1 B3 LDA $B3A1,y[$88:B3A4] $88B443 29 FF 00 AND #$00FF $88B446 22 CB 90 80 JSL $8090CB[$80:90CB] *$88B44A AD E5 05 LDA $05E5 [$88:05E5]* $88B44D EB XBA *$88B44E 8D E5 05 STA $05E5 [$88:05E5]* $88B451 AE B2 18 LDX $18B2 [$88:18B2] $88B454 BD C0 18 LDA $18C0,x[$88:18C0] $88B457 29 FF 00 AND #$00FF $88B45A A8 TAY $88B45B AD 62 19 LDA $1962 [$88:1962] $88B45E 30 14 BMI $14 [$B474] $88B460 38 SEC $88B461 ED 15 09 SBC $0915 [$88:0915] $88B464 18 CLC $88B465 69 00 01 ADC #$0100 $88B468 10 05 BPL $05 [$B46F] $88B46A A9 FF 00 LDA #$00FF $88B46D 80 08 BRA $08 [$B477] $88B46F C9 00 02 CMP #$0200 $88B472 90 03 BCC $03 [$B477] $88B474 A9 FF 01 LDA #$01FF $88B477 49 FF 01 EOR #$01FF $88B47A 1A INC A $88B47B 29 FF 03 AND #$03FF $88B47E 85 12 STA $12 [$00:0012] $88B480 A5 12 LDA $12 [$00:0012] $88B482 0A ASL A $88B483 18 CLC $88B484 65 12 ADC $12 [$00:0012] $88B486 69 2A B6 ADC #$B62A $88B489 9D D8 18 STA $18D8,x[$88:18D8] $88B48C AB PLB $88B48D 6B RTL ---
The following Routines/Subroutines all have very similar structure:
22. --- $A0B9A5 DA PHX $A0B9A6 5A PHY $A0B9A7 08 PHP $A0B9A8 A9 10 00 LDA #$0010 $A0B9AB 8D 0B 06 STA $060B [$A6:060B] $A0B9AE 22 11 81 80 JSL $808111[$80:8111] $A0B9B2 29 7F 00 AND #$007F $A0B9B5 18 CLC $A0B9B6 69 40 00 ADC #$0040 $A0B9B9 85 12 STA $12 [$00:0012] *$A0B9BB AD E5 05 LDA $05E5 [$A6:05E5]* $A0B9BE 29 00 3F AND #$3F00 $A0B9C1 EB XBA $A0B9C2 18 CLC $A0B9C3 69 40 01 ADC #$0140 $A0B9C6 85 14 STA $14 [$00:0014] $A0B9C8 A9 7F E1 LDA #$E17F $A0B9CB 22 0E 92 A0 JSL $A0920E[$A0:920E] $A0B9CF CE 0B 06 DEC $060B [$A6:060B] $A0B9D2 D0 DA BNE $DA [$B9AE] $A0B9D4 28 PLP $A0B9D5 7A PLY $A0B9D6 FA PLX $A0B9D7 6B RTL --- 23. --- $A0B9D8 DA PHX $A0B9D9 5A PHY $A0B9DA 08 PHP $A0B9DB A9 10 00 LDA #$0010 $A0B9DE 8D 0B 06 STA $060B [$A4:060B] $A0B9E1 22 11 81 80 JSL $808111[$80:8111] $A0B9E5 29 7F 00 AND #$007F $A0B9E8 18 CLC $A0B9E9 69 40 02 ADC #$0240 $A0B9EC 85 12 STA $12 [$00:0012] *$A0B9EE AD E5 05 LDA $05E5 [$A4:05E5]* $A0B9F1 29 00 3F AND #$3F00 $A0B9F4 EB XBA $A0B9F5 18 CLC $A0B9F6 69 60 00 ADC #$0060 $A0B9F9 85 14 STA $14 [$00:0014] $A0B9FB A9 BF DD LDA #$DDBF $A0B9FE 22 0E 92 A0 JSL $A0920E[$A0:920E] $A0BA02 CE 0B 06 DEC $060B [$A4:060B] $A0BA05 D0 DA BNE $DA [$B9E1] $A0BA07 28 PLP $A0BA08 7A PLY $A0BA09 FA PLX $A0BA0A 6B RTL --- 24. --- $A0BA0B DA PHX $A0BA0C 5A PHY $A0BA0D 08 PHP $A0BA0E A9 10 00 LDA #$0010 $A0BA11 8D 0B 06 STA $060B [$A7:060B] $A0BA14 22 11 81 80 JSL $808111[$80:8111] $A0BA18 29 7F 00 AND #$007F $A0BA1B 18 CLC $A0BA1C 69 40 00 ADC #$0040 $A0BA1F 85 12 STA $12 [$00:0012] *$A0BA21 AD E5 05 LDA $05E5 [$A7:05E5]* $A0BA24 29 00 3F AND #$3F00 $A0BA27 EB XBA $A0BA28 18 CLC $A0BA29 69 60 00 ADC #$0060 $A0BA2C 85 14 STA $14 [$00:0014] $A0BA2E A9 BF E4 LDA #$E4BF $A0BA31 22 0E 92 A0 JSL $A0920E[$A0:920E] $A0BA35 CE 0B 06 DEC $060B [$A7:060B] $A0BA38 D0 DA BNE $DA [$BA14] $A0BA3A 28 PLP $A0BA3B 7A PLY $A0BA3C FA PLX $A0BA3D 6B RTL --- 25. --- $A0BA3E DA PHX $A0BA3F 5A PHY $A0BA40 08 PHP $A0BA41 A9 10 00 LDA #$0010 $A0BA44 8D 0B 06 STA $060B [$B3:060B] $A0BA47 22 11 81 80 JSL $808111[$80:8111] $A0BA4B 29 7F 00 AND #$007F $A0BA4E 18 CLC $A0BA4F 69 40 00 ADC #$0040 $A0BA52 85 12 STA $12 [$00:0012] *$A0BA54 AD E5 05 LDA $05E5 [$B3:05E5]* $A0BA57 29 00 3F AND #$3F00 $A0BA5A EB XBA $A0BA5B 18 CLC $A0BA5C 69 80 00 ADC #$0080 $A0BA5F 85 14 STA $14 [$00:0014] $A0BA61 A9 93 F2 LDA #$F293 $A0BA64 22 0E 92 A0 JSL $A0920E[$A0:920E] $A0BA68 CE 0B 06 DEC $060B [$B3:060B] $A0BA6B D0 DA BNE $DA [$BA47] $A0BA6D 28 PLP $A0BA6E 7A PLY $A0BA6F FA PLX $A0BA70 6B RTL --- 26. --- $A0BA71 DA PHX $A0BA72 5A PHY $A0BA73 08 PHP $A0BA74 A9 10 00 LDA #$0010 $A0BA77 8D 0B 06 STA $060B [$A7:060B] $A0BA7A 22 11 81 80 JSL $808111[$80:8111] $A0BA7E 29 FF 00 AND #$00FF $A0BA81 18 CLC $A0BA82 69 80 00 ADC #$0080 $A0BA85 85 12 STA $12 [$00:0012] *$A0BA87 AD E5 05 LDA $05E5 [$A7:05E5]* $A0BA8A 29 00 3F AND #$3F00 $A0BA8D EB XBA $A0BA8E 18 CLC $A0BA8F 69 60 01 ADC #$0160 $A0BA92 85 14 STA $14 [$00:0014] $A0BA94 A9 BF E2 LDA #$E2BF $A0BA97 22 0E 92 A0 JSL $A0920E[$A0:920E] $A0BA9B CE 0B 06 DEC $060B [$A7:060B] $A0BA9E D0 DA BNE $DA [$BA7A] $A0BAA0 28 PLP $A0BAA1 7A PLY $A0BAA2 FA PLX $A0BAA3 6B RTL --- 27. --- $A0BAA4 DA PHX $A0BAA5 5A PHY $A0BAA6 08 PHP $A0BAA7 A9 10 00 LDA #$0010 $A0BAAA 8D 0B 06 STA $060B [$AA:060B] $A0BAAD 22 11 81 80 JSL $808111[$80:8111] $A0BAB1 29 7F 00 AND #$007F $A0BAB4 18 CLC $A0BAB5 69 40 00 ADC #$0040 $A0BAB8 85 12 STA $12 [$00:0012] *$A0BABA AD E5 05 LDA $05E5 [$AA:05E5]* $A0BABD 29 00 3F AND #$3F00 $A0BAC0 EB XBA $A0BAC1 18 CLC $A0BAC2 69 60 00 ADC #$0060 $A0BAC5 85 14 STA $14 [$00:0014] $A0BAC7 A9 FF EE LDA #$EEFF $A0BACA 22 0E 92 A0 JSL $A0920E[$A0:920E] $A0BACE CE 0B 06 DEC $060B [$AA:060B] $A0BAD1 D0 DA BNE $DA [$BAAD] $A0BAD3 28 PLP $A0BAD4 7A PLY $A0BAD5 FA PLX $A0BAD6 6B RTL --- 28. --- $A0BAD7 DA PHX $A0BAD8 5A PHY $A0BAD9 08 PHP $A0BADA A9 10 00 LDA #$0010 $A0BADD 8D 0B 06 STA $060B [$AA:060B] $A0BAE0 22 11 81 80 JSL $808111[$80:8111] $A0BAE4 29 FF 00 AND #$00FF $A0BAE7 18 CLC $A0BAE8 69 80 00 ADC #$0080 $A0BAEB 85 12 STA $12 [$00:0012] *$A0BAED AD E5 05 LDA $05E5 [$AA:05E5]* $A0BAF0 29 00 3F AND #$3F00 $A0BAF3 EB XBA $A0BAF4 18 CLC $A0BAF5 69 20 01 ADC #$0120 $A0BAF8 85 14 STA $14 [$00:0014] $A0BAFA A9 FF EE LDA #$EEFF $A0BAFD 22 0E 92 A0 JSL $A0920E[$A0:920E] $A0BB01 CE 0B 06 DEC $060B [$AA:060B] $A0BB04 D0 DA BNE $DA [$BAE0] $A0BB06 28 PLP $A0BB07 7A PLY $A0BB08 FA PLX $A0BB09 6B RTL --- 29. --- $A0BB0A DA PHX $A0BB0B 5A PHY $A0BB0C 08 PHP $A0BB0D A9 10 00 LDA #$0010 $A0BB10 8D 0B 06 STA $060B [$A5:060B] $A0BB13 22 11 81 80 JSL $808111[$80:8111] $A0BB17 29 7F 00 AND #$007F $A0BB1A 18 CLC $A0BB1B 69 40 00 ADC #$0040 $A0BB1E 85 12 STA $12 [$00:0012] *$A0BB20 AD E5 05 LDA $05E5 [$A5:05E5]* $A0BB23 29 00 3F AND #$3F00 $A0BB26 EB XBA $A0BB27 18 CLC $A0BB28 69 10 02 ADC #$0210 $A0BB2B 85 14 STA $14 [$00:0014] $A0BB2D A9 3F DF LDA #$DF3F $A0BB30 22 0E 92 A0 JSL $A0920E[$A0:920E] $A0BB34 CE 0B 06 DEC $060B [$A5:060B] $A0BB37 D0 DA BNE $DA [$BB13] $A0BB39 28 PLP $A0BB3A 7A PLY $A0BB3B FA PLX $A0BB3C 6B RTL --- 30. --- $A0BB3D DA PHX $A0BB3E 5A PHY $A0BB3F 08 PHP $A0BB40 A9 10 00 LDA #$0010 $A0BB43 8D 0B 06 STA $060B [$A5:060B] $A0BB46 22 11 81 80 JSL $808111[$80:8111] $A0BB4A 29 FF 00 AND #$00FF $A0BB4D 18 CLC $A0BB4E 69 80 00 ADC #$0080 $A0BB51 85 12 STA $12 [$00:0012] *$A0BB53 AD E5 05 LDA $05E5 [$A5:05E5]* $A0BB56 29 00 3F AND #$3F00 $A0BB59 EB XBA $A0BB5A 18 CLC $A0BB5B 69 60 01 ADC #$0160 $A0BB5E 85 14 STA $14 [$00:0014] $A0BB60 A9 3F DE LDA #$DE3F $A0BB63 22 0E 92 A0 JSL $A0920E[$A0:920E] $A0BB67 CE 0B 06 DEC $060B [$A5:060B] $A0BB6A D0 DA BNE $DA [$BB46] $A0BB6C 28 PLP $A0BB6D 7A PLY $A0BB6E FA PLX $A0BB6F 6B RTL ---
The following Routines/Subroutines aswell have similar structure:
31. --- $A29B06 AE 54 0E LDX $0E54 [$A2:0E54] $A29B09 22 11 81 80 JSL $808111[$80:8111] *$A29B0D AD E5 05 LDA $05E5 [$A2:05E5]* $A29B10 18 CLC $A29B11 7D A4 0F ADC $0FA4,x[$A2:1124] $A29B14 29 07 00 AND #$0007 $A29B17 85 1C STA $1C [$00:001C] $A29B19 60 RTS --- 32. --- $A2A01C AE 54 0E LDX $0E54 [$A2:0E54] $A2A01F 22 11 81 80 JSL $808111[$80:8111] *$A2A023 AD E5 05 LDA $05E5 [$A2:05E5]* $A2A026 18 CLC $A2A027 7D A4 0F ADC $0FA4,x[$A2:0FA4] $A2A02A 29 FF 00 AND #$00FF $A2A02D C9 03 00 CMP #$0003 $A2A030 10 16 BPL $16 [$A048] $A2A032 A9 1B A0 LDA #$A01B $A2A035 9D B2 0F STA $0FB2,x[$A2:0FB2] $A2A038 BD B5 0F LDA $0FB5,x[$A2:0FB5] $A2A03B 29 FF 00 AND #$00FF $A2A03E F0 05 BEQ $05 [$A045] $A2A040 20 5C A0 JSR $A05C [$A2:A05C] $A2A043 80 03 BRA $03 [$A048] $A2A045 20 82 A0 JSR $A082 [$A2:A082] $A2A048 60 RTS --- 33. --- $A2A553 22 11 81 80 JSL $808111[$80:8111] *$A2A557 AD E5 05 LDA $05E5 [$A2:05E5]* $A2A55A 18 CLC $A2A55B 7D A4 0F ADC $0FA4,x[$A2:1164] $A2A55E 29 FF 00 AND #$00FF $A2A561 C9 06 00 CMP #$0006 $A2A564 10 06 BPL $06 [$A56C] $A2A566 A9 03 00 LDA #$0003 $A2A569 9D B0 0F STA $0FB0,x[$A2:1170] $A2A56C 60 RTS ---
Other routines/subroutines:
1. --- $808111 E2 20 SEP #$20 *$808113 AD E5 05 LDA $05E5 [$82:05E5]* $808116 8D 02 42 STA $4202 [$82:4202] $808119 A9 05 LDA #$05 $80811B 8D 03 42 STA $4203 [$82:4203] $80811E EA NOP $80811F C2 20 REP #$20 $808121 AD 16 42 LDA $4216 [$82:4216] $808124 48 PHA $808125 E2 20 SEP #$20 $808127 AD E6 05 LDA $05E6 [$82:05E6] $80812A 8D 02 42 STA $4202 [$82:4202] $80812D A9 05 LDA #$05 $80812F 8D 03 42 STA $4203 [$82:4203] $808132 EB XBA $808133 EA NOP $808134 AD 16 42 LDA $4216 [$82:4216] $808137 38 SEC $808138 63 02 ADC $02,s [$00:1FFB] $80813A 83 02 STA $02,s [$00:1FFB] $80813C C2 20 REP #$20 $80813E 68 PLA $80813F 69 11 00 ADC #$0011 *$808142 8D E5 05 STA $05E5 [$82:05E5]* $808145 6B RTL --- 3. --- $869286 DA PHX $869287 AE 54 0E LDX $0E54 [$86:0E54] $86928A AD 93 19 LDA $1993 [$86:1993] $86928D 99 4B 1A STA $1A4B,y[$86:1A5B] $869290 A9 BB 00 LDA #$00BB $869293 99 93 1A STA $1A93,y[$86:1AA3] $869296 A9 00 00 LDA #$0000 $869299 99 6F 1A STA $1A6F,y[$86:1A7F] $86929C 99 27 1A STA $1A27,y[$86:1A37] $86929F A9 00 00 LDA #$0000 $8692A2 99 B7 1A STA $1AB7,y[$86:1AC7] *$8692A5 AD E5 05 LDA $05E5 [$86:05E5]* $8692A8 29 3F 00 AND #$003F $8692AB 18 CLC $8692AC 69 40 00 ADC #$0040 $8692AF 99 DB 1A STA $1ADB,y[$86:1AEB] $8692B2 A9 00 04 LDA #$0400 $8692B5 99 BB 19 STA $19BB,y[$86:19CB] $8692B8 FA PLX $8692B9 60 RTS --- 4. --- $869C29 db 24 $869C2B db 81, 99, 5C, 97, 08, 10, 28, 80, 00, 00, FA, 97, 3A $869C39 db 29, 9B, E8, 97, 08, 10, 28, 40 $869C61 db 0C $869C63 db 56, 9D, 7D, 9C, 04, 04, 00, A0 $869C6F db 0C $869C71 db 56, 9D, 83, 9C, 04, 04, 00, A0 $869C7D db FF, 7F, 68, 82 $869C83 db FF, 7F, 6F, 82 $869D0C DA PHX *$869D0D AD E5 05 LDA $05E5 [$86:05E5]* $869D10 29 3F 00 AND #$003F $869D13 AA TAX *$869D14 AD E5 05 LDA $05E5 [$86:05E5]* $869D17 89 01 00 BIT #$0001 $869D1A D0 05 BNE $05 [$9D21] $869D1C 8A TXA $869D1D 49 FF FF EOR #$FFFF $869D20 AA TAX $869D21 8A TXA $869D22 AE 54 0E LDX $0E54 [$86:0E54] $869D25 18 CLC $869D26 7D 7A 0F ADC $0F7A,x[$86:0F7A] $869D29 99 4B 1A STA $1A4B,y[$86:1A6D] $869D2C A9 B0 01 LDA #$01B0 $869D2F 99 93 1A STA $1A93,y[$86:1AB5] $869D32 A9 00 00 LDA #$0000 $869D35 99 6F 1A STA $1A6F,y[$86:1A91] $869D38 99 27 1A STA $1A27,y[$86:1A49] $869D3B AD 93 19 LDA $1993 [$86:1993] $869D3E 99 B7 1A STA $1AB7,y[$86:1AD9] $869D41 A9 00 FB LDA #$FB00 $869D44 99 DB 1A STA $1ADB,y[$86:1AFD] $869D47 A9 00 06 LDA #$0600 $869D4A 99 BB 19 STA $19BB,y[$86:19DD] $869D4D A9 1E 00 LDA #$001E $869D50 22 4D 91 80 JSL $80914D[$80:914D] $869D54 FA PLX $869D55 60 RTS --- 5. --- $86A46A db 02, 00, 00, 80, 02, 00, 00, 80, 61, 81, 87, A8, 30, 82, 00, 30, 05, 00, 54, 8C, 3C, 82, FF, EF, 40, 00, 54, 8C $86A48E db 6A, 81, 08, 00, 5B, 8C, 08, 00, 62, 8C, 08, 00, 69, 8C, 54, 81 $86A4AA db 7E, 83, 26, 05, 00, 9C, 8D, 05, 00, A3, 8D, 05, 00, B9, 8D, 05, 00, CF, 8D, 05, 00, E5, 8D, 54, 81, 80, 00, FB, 8D, 12, 83, 0C, 61, 81, EF, A8, 70, 00, FB, 8D, 54, 81, 78, 00, 02, 8E, 12, 83, 0C, 61, 81, EF, A8, 70, 00, 02, 8E, 54, 81, 70, 00, 09, 8E, 12, 83, 0C, 61, 81, EF, A8, 70, 00, 09, 8E, 54, 81, 68, 00, 10, 8E, 12, 83, 0C, 61, 81, EF, A8, 70, 00, 10, 8E, 54, 81, 60, 00, 17, 8E, 12, 83, 0C, 61, 81, EF, A8, 70, 00, 17, 8E, 54, 81, 58, 00, 1E, 8E, 12, 83, 0C, 61, 81, EF, A8, 70, 00, 1E, 8E, 54, 81, 50, 00, 25, 8E, 12, 83, 0C, 61, 81, EF, A8, 70, 00, 25, 8E, 54, 81, 48, 00, 2C, 8E, 12, 83, 0C, 61, 81, EF, A8, 70, 00, 2C, 8E, 54, 81 $86A5D3 A9 00 00 LDA #$0000 $86A5D6 99 BB 19 STA $19BB,y[$86:19D7] $86A5D9 22 11 81 80 JSL $808111[$80:8111] $86A5DD 4A LSR A $86A5DE 29 0E 00 AND #$000E $86A5E1 AA TAX $86A5E2 BD 4D A6 LDA $A64D,x[$86:A659] $86A5E5 99 47 1B STA $1B47,y[$86:1B63] $86A5E8 22 11 81 80 JSL $808111[$80:8111] $86A5EC AE 54 0E LDX $0E54 [$86:0E54] $86A5EF BD 7E 0F LDA $0F7E,x[$86:0F7E] $86A5F2 18 CLC $86A5F3 69 FB FF ADC #$FFFB $86A5F6 99 93 1A STA $1A93,y[$86:1AAF] $86A5F9 3C B4 0F BIT $0FB4,x[$86:0FB4] $86A5FC 50 08 BVC $08 [$A606] $86A606 30 05 BMI $05 [$A60D] $86A608 A9 E0 00 LDA #$00E0 $86A60B 80 03 BRA $03 [$A610] $86A610 85 12 STA $12 [$00:0012] *$86A612 AD E5 05 LDA $05E5 [$86:05E5]* $86A615 29 0F 00 AND #$000F $86A618 38 SEC $86A619 E9 08 00 SBC #$0008 $86A61C 18 CLC $86A61D 65 12 ADC $12 [$00:0012] $86A61F 0A ASL A $86A620 AA TAX $86A621 BF 43 B4 A0 LDA $A0B443,x[$A0:B605] $86A625 99 B7 1A STA $1AB7,y[$86:1AD3] $86A628 BF C3 B3 A0 LDA $A0B3C3,x[$A0:B585] $86A62C 99 DB 1A STA $1ADB,y[$86:1AF7] $86A62F AE 54 0E LDX $0E54 [$86:0E54] $86A632 3C B4 0F BIT $0FB4,x[$86:0FB4] $86A635 30 0B BMI $0B [$A642] $86A637 BD 7A 0F LDA $0F7A,x[$86:0F7A] $86A63A 18 CLC $86A63B 69 F8 FF ADC #$FFF8 $86A63E 99 4B 1A STA $1A4B,y[$86:1A67] $86A641 60 RTS --- 6. --- $86A655 db 6E, A4, 6A, A4, 72, A4, 6E, A4 $86A65D A9 00 00 LDA #$0000 $86A660 99 BB 19 STA $19BB,y[$86:19CB] $86A663 22 11 81 80 JSL $808111[$80:8111] $86A667 AE 54 0E LDX $0E54 [$86:0E54] $86A66A AD E5 05 LDA $05E5 [$86:05E5] $86A66D 29 03 00 AND #$0003 $86A670 18 CLC $86A671 7D 7E 0F ADC $0F7E,x[$86:0F7E] $86A674 69 FB FF ADC #$FFFB $86A677 99 93 1A STA $1A93,y[$86:1AA3] *$86A67A AD E5 05 LDA $05E5 [$86:05E5]* $86A67D 29 1F 00 AND #$001F $86A680 69 30 00 ADC #$0030 $86A683 99 DB 1A STA $1ADB,y[$86:1AEB] $86A686 22 11 81 80 JSL $808111[$80:8111] *$86A68A AD E5 05 LDA $05E5 [$86:05E5]* $86A68D 29 03 00 AND #$0003 $86A690 3C B4 0F BIT $0FB4,x[$86:0FB4] $86A693 50 0E BVC $0E [$A6A3] $86A695 18 CLC $86A696 7D 7A 0F ADC $0F7A,x[$86:0F7A] $86A699 99 4B 1A STA $1A4B,y[$86:1A61] $86A69C A9 00 00 LDA #$0000 $86A69F 99 B7 1A STA $1AB7,y[$86:1ACD] $86A6A2 60 RTS --- 8. --- $86C684 AF 08 80 7E LDA $7E8008[$7E:8008] $86C688 99 4B 1A STA $1A4B,y[$86:1A59] $86C68B AF 06 80 7E LDA $7E8006[$7E:8006] $86C68F 99 27 1A STA $1A27,y[$86:1A35] $86C692 AF 0C 80 7E LDA $7E800C[$7E:800C] $86C696 99 93 1A STA $1A93,y[$86:1AA1] $86C699 AF 0A 80 7E LDA $7E800A[$7E:800A] $86C69D 99 6F 1A STA $1A6F,y[$86:1A7D] $86C6A0 AF 0E 80 7E LDA $7E800E[$7E:800E] $86C6A4 99 B7 1A STA $1AB7,y[$86:1AC5] $86C6A7 AF 10 80 7E LDA $7E8010[$7E:8010] $86C6AB 99 DB 1A STA $1ADB,y[$86:1AE9] $86C6AE BB TYX $86C6AF 20 D6 92 JSR $92D6 [$86:92D6] $86C6B2 BD 4B 1A LDA $1A4B,x[$86:1A59] $86C6B5 8F 08 80 7E STA $7E8008[$7E:8008] $86C6B9 BD 27 1A LDA $1A27,x[$86:1A35] $86C6BC 8F 06 80 7E STA $7E8006[$7E:8006] $86C6C0 BD 93 1A LDA $1A93,x[$86:1AA1] $86C6C3 8F 0C 80 7E STA $7E800C[$7E:800C] $86C6C7 BD 6F 1A LDA $1A6F,x[$86:1A7D] $86C6CA 8F 0A 80 7E STA $7E800A[$7E:800A] $86C6CE 22 11 81 80 JSL $808111[$80:8111] $86C6D2 29 FF 00 AND #$00FF $86C6D5 18 CLC $86C6D6 6F 12 80 7E ADC $7E8012[$7E:8012] $86C6DA 29 FF 00 AND #$00FF $86C6DD 85 12 STA $12 [$00:0012] $86C6DF 22 11 81 80 JSL $808111[$80:8111] $86C6E3 29 00 07 AND #$0700 $86C6E6 DA PHX $86C6E7 22 6C C2 86 JSL $86C26C[$86:C26C] $86C6EB FA PLX $86C6EC 9D B7 1A STA $1AB7,x[$86:1AC5] *$86C6EF AD E5 05 LDA $05E5 [$86:05E5]* $86C6F2 29 00 07 AND #$0700 $86C6F5 DA PHX $86C6F6 22 72 C2 86 JSL $86C272[$86:C272] $86C6FA FA PLX $86C6FB 9D DB 1A STA $1ADB,x[$86:1AE9] $86C6FE 20 D6 92 JSR $92D6 [$86:92D6] $86C701 BD 93 1A LDA $1A93,x[$86:1AA1] $86C704 C9 22 00 CMP #$0022 $86C707 30 29 BMI $29 [$C732] $86C709 C9 CE 00 CMP #$00CE $86C70C 10 24 BPL $24 [$C732] $86C70E BD 4B 1A LDA $1A4B,x[$86:1A59] $86C711 C9 02 00 CMP #$0002 $86C714 30 1C BMI $1C [$C732] $86C716 C9 EE 00 CMP #$00EE $86C719 10 17 BPL $17 [$C732] $86C71B BD FF 1A LDA $1AFF,x[$86:1B0D] $86C71E 1A INC A $86C71F 29 03 00 AND #$0003 $86C722 9D FF 1A STA $1AFF,x[$86:1B0D] $86C725 A9 00 00 LDA #$0000 $86C728 9D 23 1B STA $1B23,x[$86:1B31] $86C72B 9D B7 1A STA $1AB7,x[$86:1AC5] $86C72E 9D DB 1A STA $1ADB,x[$86:1AE9] $86C731 60 RTS --- 9. --- $86D02E db 88 $86D030 db EB, D0, 7D, 9C, 04, 04, 14, 00, 00, 00, 64, D0, 05, 00, 66, 84, B6, D1, FF, 7F, 5F, 84 $86D04A db FF, 7F, 5F, 84 $86D052 db 10, 00, 66, 84, 05, 00, 5F, 84, 5C, D1, FF, 7F, 58, 84 $86D064 db C7, D1, 04, 00, 9C, 8D, 04, 00, A3, 8D, 04, 00, B9, 8D, 04, 00, CF, 8D, 04, 00, E5, 8D, CE, D1, AB, 81, FC, 84 $86D082 db E0, 00, 30, 00, 00, 02 $86D088 AD 54 0E LDA $0E54 [$86:0E54] $86D08B 99 23 1B STA $1B23,y[$86:1B45] $86D08E AA TAX $86D08F BD 7A 0F LDA $0F7A,x[$86:0FBA] $86D092 99 4B 1A STA $1A4B,y[$86:1A6D] $86D095 BD 7E 0F LDA $0F7E,x[$86:0FBE] $86D098 99 93 1A STA $1A93,y[$86:1AB5] *$86D09B AD E5 05 LDA $05E5 [$86:05E5]* $86D09E 29 07 00 AND #$0007 $86D0A1 1A INC A $86D0A2 99 FB 1B STA $1BFB,y[$86:1C1D] $86D0A5 18 CLC $86D0A6 69 04 00 ADC #$0004 $86D0A9 99 FF 1A STA $1AFF,y[$86:1B21] $86D0AC A9 CA D0 LDA #$D0CA $86D0AF 99 03 1A STA $1A03,y[$86:1A25] $86D0B2 60 RTS --- 10. --- $86D15C 20 B3 D0 JSR $D0B3 [$86:D0B3] $86D15F 20 E4 D1 JSR $D1E4 [$86:D1E4] *$86D162 AD E5 05 LDA $05E5 [$86:05E5]* $86D165 29 00 03 AND #$0300 $86D168 18 CLC $86D169 69 00 08 ADC #$0800 $86D16C 89 00 01 BIT #$0100 $86D16F 08 PHP $86D170 49 FF FF EOR #$FFFF $86D173 1A INC A $86D174 9D DB 1A STA $1ADB,x[$86:1AFD] $86D177 DA PHX $86D178 BD 23 1B LDA $1B23,x[$86:1B45] $86D17B AA TAX $86D17C BD 7A 0F LDA $0F7A,x[$86:0FBA] $86D17F FA PLX $86D180 38 SEC $86D181 FD 4B 1A SBC $1A4B,x[$86:1A6D] $86D184 08 PHP $86D185 10 04 BPL $04 [$D18B] $86D187 49 FF FF EOR #$FFFF $86D18A 1A INC A $86D18B CD 84 D0 CMP $D084 [$86:D084] $86D18E 30 11 BMI $11 [$D1A1] $86D190 28 PLP $86D191 10 07 BPL $07 [$D19A] $86D193 28 PLP $86D194 A9 01 00 LDA #$0001 $86D197 08 PHP $86D198 80 08 BRA $08 [$D1A2] $86D19A 28 PLP $86D19B A9 00 00 LDA #$0000 $86D19E 08 PHP $86D19F 80 01 BRA $01 [$D1A2] $86D1A1 28 PLP $86D1A2 AD 86 D0 LDA $D086 [$86:D086] $86D1A5 28 PLP $86D1A6 F0 04 BEQ $04 [$D1AC] $86D1A8 49 FF FF EOR #$FFFF $86D1AB 1A INC A $86D1AC 9D B7 1A STA $1AB7,x[$86:1AD9] $86D1AF A9 EC D0 LDA #$D0EC $86D1B2 9D 03 1A STA $1A03,x[$86:1A25] $86D1B5 60 RTS --- 11. --- *$86D1B6 AD E5 05 LDA $05E5 [$86:05E5]* $86D1B9 29 1F 00 AND #$001F $86D1BC 1A INC A $86D1BD 9D FB 1B STA $1BFB,x[$86:1C1D] $86D1C0 A9 CA D0 LDA #$D0CA $86D1C3 9D 03 1A STA $1A03,x[$86:1A25] $86D1C6 60 RTS --- 12. --- $86E47E db 00, 00, 00, 00, 00, 00, 00, 00 $86E496 db 0F, 00, 1F, 00, F8, FF, F0, FF $86E4A6 AD 93 19 LDA $1993 [$86:1993] $86E4A9 29 FF 00 AND #$00FF $86E4AC 0A ASL A $86E4AD AA TAX $86E4AE BD 2C E4 LDA $E42C,x[$86:E440] $86E4B1 99 47 1B STA $1B47,y[$86:1B69] $86E4B4 AD 94 19 LDA $1994 [$86:1994] $86E4B7 29 FF 00 AND #$00FF $86E4BA 0A ASL A $86E4BB 0A ASL A $86E4BC 0A ASL A $86E4BD AA TAX *$86E4BE AD E5 05 LDA $05E5 [$86:05E5]* $86E4C1 3D 7E E4 AND $E47E,x[$86:E496] $86E4C4 18 CLC $86E4C5 7D 82 E4 ADC $E482,x[$86:E49A] $86E4C8 85 12 STA $12 [$00:0012] $86E4CA AD E6 05 LDA $05E6 [$86:05E6] $86E4CD 3D 80 E4 AND $E480,x[$86:E498] $86E4D0 18 CLC $86E4D1 7D 84 E4 ADC $E484,x[$86:E49C] $86E4D4 85 14 STA $14 [$00:0014] $86E4D6 AE 27 1C LDX $1C27 [$86:1C27] $86E4D9 22 90 82 84 JSL $848290[$84:8290] $86E4DD AD 29 1C LDA $1C29 [$86:1C29] $86E4E0 38 SEC $86E4E1 2A ROL A $86E4E2 0A ASL A $86E4E3 0A ASL A $86E4E4 0A ASL A $86E4E5 18 CLC $86E4E6 65 12 ADC $12 [$00:0012] $86E4E8 99 4B 1A STA $1A4B,y[$86:1A6D] $86E4EB AD 2B 1C LDA $1C2B [$86:1C2B] $86E4EE 38 SEC $86E4EF 2A ROL A $86E4F0 0A ASL A $86E4F1 0A ASL A $86E4F2 0A ASL A $86E4F3 18 CLC $86E4F4 65 14 ADC $14 [$00:0014] $86E4F6 99 93 1A STA $1A93,y[$86:1AB5] $86E4F9 22 11 81 80 JSL $808111[$80:8111] $86E4FD 60 RTS --- 13. --- $86EC95 db 62 $86EC97 db 94, EC, 56, EC, 02, 02, 05, 20 $86ECA3 db 40, 00, 00, 80, 10, EF, 54, 81, D5, 81, 05, 00, 17, ED, 03, 00, 17, ED, 0C, 00, 08, 00, 00, 80, 97, EE, C6, 81, AF, EC, AF, EE $86ECC5 db D5, 81, 10, 00, E3, EC, 03, 00, E3, EC, 0C, 00, E3, EC, 15, 00, 08, 00, 00, 80, 97, EE, C6, 81, C9, EC, AF, EE $86ECE3 DA PHX $86ECE4 5A PHY $86ECE5 22 11 81 80 JSL $808111[$80:8111] $86ECE9 29 3F 00 AND #$003F $86ECEC 38 SEC $86ECED E9 20 00 SBC #$0020 $86ECF0 18 CLC $86ECF1 7D 4B 1A ADC $1A4B,x[$86:1A5B] $86ECF4 85 12 STA $12 [$00:0012] *$86ECF6 AD E5 05 LDA $05E5 [$86:05E5]* $86ECF9 29 00 3F AND #$3F00 $86ECFC EB XBA $86ECFD 38 SEC $86ECFE E9 20 00 SBC #$0020 $86ED01 18 CLC $86ED02 7D 93 1A ADC $1A93,x[$86:1AA3] $86ED05 85 14 STA $14 [$00:0014] $86ED07 B9 00 00 LDA $0000,y[$86:ECCB] $86ED0A 85 16 STA $16 [$00:0016] $86ED0C 64 18 STZ $18 [$00:0018] $86ED0E 22 26 BC B4 JSL $B4BC26[$B4:BC26] $86ED12 7A PLY $86ED13 FA PLX $86ED14 C8 INY $86ED15 C8 INY $86ED16 60 RTS --- 14. --- $86ED17 DA PHX $86ED18 5A PHY $86ED19 22 11 81 80 JSL $808111[$80:8111] $86ED1D 29 1F 00 AND #$001F $86ED20 38 SEC $86ED21 E9 10 00 SBC #$0010 $86ED24 18 CLC $86ED25 7D 4B 1A ADC $1A4B,x[$86:1A6D] $86ED28 85 12 STA $12 [$00:0012] *$86ED2A AD E5 05 LDA $05E5 [$86:05E5]* $86ED2D 29 00 1F AND #$1F00 $86ED30 EB XBA $86ED31 38 SEC $86ED32 E9 10 00 SBC #$0010 $86ED35 18 CLC $86ED36 7D 93 1A ADC $1A93,x[$86:1AB5] $86ED39 85 14 STA $14 [$00:0014] $86ED3B B9 00 00 LDA $0000,y[$86:ECB1] $86ED3E 85 16 STA $16 [$00:0016] $86ED40 64 18 STZ $18 [$00:0018] $86ED42 22 26 BC B4 JSL $B4BC26[$B4:BC26] $86ED46 7A PLY $86ED47 FA PLX $86ED48 C8 INY $86ED49 C8 INY $86ED4A 60 RTS --- 15. --- $88B21D DA PHX $88B21E 5A PHY $88B21F 08 PHP $88B220 C2 30 REP #$30 $88B222 AD 09 06 LDA $0609 [$88:0609] $88B225 30 2B BMI $2B [$B252] $88B227 3A DEC A $88B228 8D 09 06 STA $0609 [$88:0609] $88B22B 10 25 BPL $25 [$B252] $88B22D AE 07 06 LDX $0607 [$88:0607] $88B230 BD 56 B2 LDA $B256,x[$88:B256] $88B233 10 06 BPL $06 [$B23B] $88B235 A2 00 00 LDX #$0000 $88B238 BD 56 B2 LDA $B256,x[$88:B256] $88B23B 22 CB 90 80 JSL $8090CB[$80:90CB] *$88B23F AD E5 05 LDA $05E5 [$88:05E5]* $88B242 29 03 00 AND #$0003 $88B245 7D 58 B2 ADC $B258,x[$88:B258] $88B248 8D 09 06 STA $0609 [$88:0609] $88B24B E8 INX $88B24C E8 INX $88B24D E8 INX $88B24E E8 INX $88B24F 8E 07 06 STX $0607 [$88:0607] $88B252 28 PLP $88B253 7A PLY $88B254 FA PLX $88B255 60 RTS --- 17. --- $88D96C db 55, 86, 88, 6A, 86, 7E, 81, D9, 70, 85, A1, D9, 88, FF, 7F, 6F, D8 $88D981 DA PHX *$88D982 AD E5 05 LDA $05E5 [$88:05E5]* $88D985 4A LSR A $88D986 29 06 00 AND #$0006 $88D989 AA TAX $88D98A BD 92 D9 LDA $D992,x[$88:D994] $88D98D FA PLX $88D98E 9D 38 19 STA $1938,x[$88:193A] $88D991 60 RTS --- 18. --- $8FE525 AD 3F 09 LDA $093F [$8F:093F] $8FE528 F0 FA BEQ $FA [$E524] $8FE52A CE E1 07 DEC $07E1 [$8F:07E1] $8FE52D 10 F5 BPL $F5 [$E524] $8FE52F A9 08 00 LDA #$0008 $8FE532 8D E1 07 STA $07E1 [$8F:07E1] $8FE535 A0 34 97 LDY #$9734 *$8FE538 AD E5 05 LDA $05E5 [$8F:05E5]* $8FE53B 0A ASL A $8FE53C 90 03 BCC $03 [$E541] $8FE53E A0 42 97 LDY #$9742 *$8FE541 AD E5 05 LDA $05E5 [$8F:05E5]* $8FE544 29 0F 00 AND #$000F $8FE547 0A ASL A $8FE548 AA TAX $8FE549 BD 51 E5 LDA $E551,x[$8F:E56B] $8FE54C 22 97 80 86 JSL $868097[$86:8097] $8FE550 60 RTS --- 19. --- $A0B7EE db 00, 00, 48, 06, 8F, 0C, D5, 12, 17, 19, 56, 1F $A0B7FC db C3, 2B, F1, 31, 16, 38, 33, 3E, 47, 44, 4F, 4A $A0B80A db 3E, 56 $A0B80E db F7, 61, BD, 67, 73, 6D, 19, 73, AC, 78, 2E, 7E, 9B, 83, F5, 88, 39, 8E, 67, 93, 7F, 98, 7F, 9D, 66, A2, 35, A7, EA, AB, 85, B0, 04, B5, 67, B9, AE, BD, D7, C1, E3, C5, D0, C9, 9E, CD, 4C, D1, DA, D4, 47, D8, 93, DB, BD, DE, C4, E1, A9, E4, 6A, E7, 08, EA, 82, EC, D7, EE, 08, F1, 13, F3, F9, F4, B9, F6, 52, F8, C6, F9, 13, FB, 3A, FC, 39, FD, 12, FE, C3, FE, 4D, FF, B0, FF, EB, FF, FF, FF, EB, FF, B0, FF, 4D, FF, C3, FE, 12, FE $A0B87C db 3A, FC, 13, FB, C6, F9, 52, F8, B9, F6, F9, F4 $A0B88A db 08, F1 $A0B88E db 82, EC, 08, EA, 6A, E7, A9, E4, C4, E1, BD, DE, 93, DB, 47, D8, DA, D4, 4C, D1, 9E, CD, D0, C9, E3, C5, D7, C1, AE, BD, 67, B9, 04, B5, 85, B0, EA, AB, 35, A7, 66, A2, 7F, 9D, 7F, 98, 67, 93, 39, 8E, F5, 88, 9B, 83, 2E, 7E, AC, 78, 19, 73, 73, 6D, BD, 67, F7, 61, 21, 5C, 3E, 56, 4D, 50, 4F, 4A, 47, 44, 33, 3E, 16, 38, F1, 31, C3, 2B, 8F, 25, 56, 1F, 17, 19, D5, 12, 8F, 0C, 48, 06 $A0B8EE DA PHX $A0B8EF 5A PHY $A0B8F0 08 PHP $A0B8F1 A9 04 00 LDA #$0004 $A0B8F4 8D 0B 06 STA $060B [$A6:060B] $A0B8F7 22 11 81 80 JSL $808111[$80:8111] $A0B8FB 29 1F 00 AND #$001F $A0B8FE 38 SEC $A0B8FF E9 10 00 SBC #$0010 $A0B902 18 CLC $A0B903 6F 34 F4 7E ADC $7EF434[$7E:F434] $A0B907 85 12 STA $12 [$00:0012] *$A0B909 AD E5 05 LDA $05E5 [$A6:05E5]* $A0B90C 29 00 1F AND #$1F00 $A0B90F EB XBA $A0B910 38 SEC $A0B911 E9 10 00 SBC #$0010 $A0B914 18 CLC $A0B915 6F 36 F4 7E ADC $7EF436[$7E:F436] $A0B919 85 14 STA $14 [$00:0014] $A0B91B A9 FF E0 LDA #$E0FF $A0B91E 22 0E 92 A0 JSL $A0920E[$A0:920E] $A0B922 CE 0B 06 DEC $060B [$A6:060B] $A0B925 D0 D0 BNE $D0 [$B8F7] $A0B927 28 PLP $A0B928 7A PLY $A0B929 FA PLX $A0B92A 6B RTL --- 20. --- $A0B92B DA PHX $A0B92C 5A PHY $A0B92D 08 PHP $A0B92E A9 05 00 LDA #$0005 $A0B931 8D 0B 06 STA $060B [$B2:060B] $A0B934 22 11 81 80 JSL $808111[$80:8111] $A0B938 29 1F 00 AND #$001F $A0B93B 38 SEC $A0B93C E9 10 00 SBC #$0010 $A0B93F 18 CLC $A0B940 6F 34 F4 7E ADC $7EF434[$7E:F434] $A0B944 85 12 STA $12 [$00:0012] *$A0B946 AD E5 05 LDA $05E5 [$B2:05E5]* $A0B949 29 00 1F AND #$1F00 $A0B94C EB XBA $A0B94D 38 SEC $A0B94E E9 10 00 SBC #$0010 $A0B951 18 CLC $A0B952 6F 36 F4 7E ADC $7EF436[$7E:F436] $A0B956 85 14 STA $14 [$00:0014] $A0B958 A9 93 F5 LDA #$F593 $A0B95B 22 0E 92 A0 JSL $A0920E[$A0:920E] $A0B95F CE 0B 06 DEC $060B [$B2:060B] $A0B962 D0 D0 BNE $D0 [$B934] $A0B964 28 PLP $A0B965 7A PLY $A0B966 FA PLX $A0B967 6B RTL --- 21. --- $A0B968 DA PHX $A0B969 5A PHY $A0B96A 08 PHP $A0B96B A9 05 00 LDA #$0005 $A0B96E 8D 0B 06 STA $060B [$A3:060B] $A0B971 22 11 81 80 JSL $808111[$80:8111] $A0B975 29 1F 00 AND #$001F $A0B978 38 SEC $A0B979 E9 10 00 SBC #$0010 $A0B97C 18 CLC $A0B97D 6F 34 F4 7E ADC $7EF434[$7E:F434] $A0B981 85 12 STA $12 [$00:0012] *$A0B983 AD E5 05 LDA $05E5 [$A3:05E5]* $A0B986 29 00 1F AND #$1F00 $A0B989 EB XBA $A0B98A 38 SEC $A0B98B E9 10 00 SBC #$0010 $A0B98E 18 CLC $A0B98F 6F 36 F4 7E ADC $7EF436[$7E:F436] $A0B993 85 14 STA $14 [$00:0014] $A0B995 A9 7F DD LDA #$DD7F $A0B998 22 0E 92 A0 JSL $A0920E[$A0:920E] $A0B99C CE 0B 06 DEC $060B [$A3:060B] $A0B99F D0 D0 BNE $D0 [$B971] $A0B9A1 28 PLP $A0B9A2 7A PLY $A0B9A3 FA PLX $A0B9A4 6B RTL --- 36. --- *$A2C30C AD E5 05 LDA $05E5 [$A2:05E5]* $A2C30F 4A LSR A $A2C310 29 02 00 AND #$0002 $A2C313 A8 TAY $A2C314 B9 C1 C1 LDA $C1C1,y[$A2:C1C1] $A2C317 9D A8 0F STA $0FA8,x[$A2:0FA8] $A2C31A AD C5 C1 LDA $C1C5 [$A2:C1C5] $A2C31D 9D AA 0F STA $0FAA,x[$A2:0FAA] $A2C320 AD F6 0A LDA $0AF6 [$A2:0AF6] $A2C323 DD 7A 0F CMP $0F7A,x[$A2:0F7A] $A2C326 10 0A BPL $0A [$C332] $A2C328 BD AA 0F LDA $0FAA,x[$A2:0FAA] $A2C32B 49 FF FF EOR #$FFFF $A2C32E 1A INC A $A2C32F 9D AA 0F STA $0FAA,x[$A2:0FAA] $A2C332 A9 07 C1 LDA #$C107 $A2C335 20 0D C4 JSR $C40D [$A2:C40D] $A2C338 A9 3F C3 LDA #$C33F $A2C33B 9D B2 0F STA $0FB2,x[$A2:0FB2] $A2C33E 6B RTL --- 39. --- $A48752 DA PHX *$A48753 AD E5 05 LDA $05E5 [$A4:05E5]* $A48756 29 FF 0F AND #$0FFF $A48759 C9 00 04 CMP #$0400 $A4875C 10 0C BPL $0C [$876A] $A4875E A9 08 00 LDA #$0008 $A48761 8D AC 0F STA $0FAC [$A4:0FAC] $A48764 9C B2 0F STZ $0FB2 [$A4:0FB2] $A48767 A0 36 BB LDY #$BB36 $A4876A FA PLX $A4876B 6B RTL --- 40. --- $A48FFA 20 04 90 JSR $9004 [$A4:9004] $A48FFD 80 E0 BRA $E0 [$8FDF] $A49004 DA PHX *$A49005 AD E5 05 LDA $05E5 [$A4:05E5]* $A49008 29 1F 00 AND #$001F *$A4900B AE E5 05 LDX $05E5 [$A4:05E5]* $A4900E E0 00 10 CPX #$1000 $A49011 30 04 BMI $04 [$9017] $A49013 49 FF FF EOR #$FFFF $A49016 1A INC A $A49017 22 DA 9A A4 JSL $A49ADA[$A4:9ADA] $A4901B FA PLX $A4901C 60 RTS --- 42. --- $A49A9B A9 E0 FF LDA #$FFE0 $A49A9E 80 3A BRA $3A [$9ADA] $A49AA0 A9 00 00 LDA #$0000 $A49AA3 80 35 BRA $35 [$9ADA] $A49AA5 A9 F0 FF LDA #$FFF0 $A49AA8 80 30 BRA $30 [$9ADA] $A49AAA A9 10 00 LDA #$0010 $A49AAD 80 2B BRA $2B [$9ADA] $A49AAF A9 00 00 LDA #$0000 $A49AB2 80 26 BRA $26 [$9ADA] $A49AB4 A9 08 00 LDA #$0008 $A49AB7 80 21 BRA $21 [$9ADA] $A49AB9 A9 10 00 LDA #$0010 $A49ABC 80 1C BRA $1C [$9ADA] $A49ABE A9 18 00 LDA #$0018 $A49AC1 80 17 BRA $17 [$9ADA] $A49AC3 A9 20 00 LDA #$0020 $A49AC6 80 12 BRA $12 [$9ADA] $A49AC8 A9 28 00 LDA #$0028 $A49ACB 80 0D BRA $0D [$9ADA] $A49ACD A9 30 00 LDA #$0030 $A49AD0 80 08 BRA $08 [$9ADA] $A49AD2 A9 38 00 LDA #$0038 $A49AD5 80 03 BRA $03 [$9ADA] $A49AD7 A9 40 00 LDA #$0040 $A49ADA DA PHX $A49ADB 5A PHY $A49ADC 85 12 STA $12 [$00:0012] *$A49ADE AD E5 05 LDA $05E5 [$A4:05E5]* $A49AE1 29 07 00 AND #$0007 $A49AE4 18 CLC $A49AE5 6D 7A 0F ADC $0F7A [$A4:0F7A] $A49AE8 65 12 ADC $12 [$00:0012] $A49AEA 85 12 STA $12 [$00:0012] $A49AEC AD 7E 0F LDA $0F7E [$A4:0F7E] $A49AEF 18 CLC $A49AF0 6D 84 0F ADC $0F84 [$A4:0F84] $A49AF3 38 SEC $A49AF4 E9 10 00 SBC #$0010 $A49AF7 85 14 STA $14 [$00:0014] $A49AF9 A9 15 00 LDA #$0015 $A49AFC A0 09 E5 LDY #$E509 $A49AFF 22 97 80 86 JSL $868097[$86:8097] $A49B03 7A PLY $A49B04 FA PLX $A49B05 6B RTL --- 48. --- $A592EA 5A PHY $A592EB DA PHX $A592EC AD B6 05 LDA $05B6 [$A5:05B6] $A592EF 29 07 00 AND #$0007 $A592F2 D0 25 BNE $25 [$9319] $A592F4 22 11 81 80 JSL $808111[$80:8111] $A592F8 29 7F 00 AND #$007F $A592FB 18 CLC $A592FC 69 C0 00 ADC #$00C0 $A592FF 85 12 STA $12 [$00:0012] *$A59301 AD E5 05 LDA $05E5 [$A5:05E5]* $A59304 29 00 3F AND #$3F00 $A59307 EB XBA $A59308 18 CLC $A59309 69 90 01 ADC #$0190 $A5930C 85 14 STA $14 [$00:0014] $A5930E A9 15 00 LDA #$0015 $A59311 85 16 STA $16 [$00:0016] $A59313 64 18 STZ $18 [$00:0018] $A59315 22 26 BC B4 JSL $B4BC26[$B4:BC26] $A59319 FA PLX $A5931A 7A PLY $A5931B 60 RTS --- 49. --- $A5978B 22 11 81 80 JSL $808111[$80:8111] *$A5978F AD E5 05 LDA $05E5 [$A5:05E5]* $A59792 29 7F 00 AND #$007F $A59795 38 SEC $A59796 E9 40 00 SBC #$0040 $A59799 85 12 STA $12 [$00:0012] $A5979B AD 7A 0F LDA $0F7A [$A5:0F7A] $A5979E 18 CLC $A5979F 65 12 ADC $12 [$00:0012] $A597A1 85 12 STA $12 [$00:0012] *$A597A3 AD E5 05 LDA $05E5 [$A5:05E5]* $A597A6 29 00 7F AND #$7F00 $A597A9 EB XBA $A597AA 38 SEC $A597AB E9 40 00 SBC #$0040 $A597AE 85 14 STA $14 [$00:0014] $A597B0 AD 7E 0F LDA $0F7E [$A5:0F7E] $A597B3 18 CLC $A597B4 65 14 ADC $14 [$00:0014] $A597B6 85 14 STA $14 [$00:0014] $A597B8 60 RTS --- 50. --- $A5E96E 5A PHY $A5E96F DA PHX $A5E970 22 11 81 80 JSL $808111[$80:8111] *$A5E974 AD E5 05 LDA $05E5 [$A5:05E5]* $A5E977 29 7F 00 AND #$007F $A5E97A 38 SEC $A5E97B E9 40 00 SBC #$0040 $A5E97E 85 12 STA $12 [$00:0012] $A5E980 AD 7A 0F LDA $0F7A [$A5:0F7A] $A5E983 18 CLC $A5E984 65 12 ADC $12 [$00:0012] $A5E986 85 12 STA $12 [$00:0012] *$A5E988 AD E5 05 LDA $05E5 [$A5:05E5]* $A5E98B 29 00 7F AND #$7F00 $A5E98E EB XBA $A5E98F 38 SEC $A5E990 E9 40 00 SBC #$0040 $A5E993 85 14 STA $14 [$00:0014] $A5E995 AD 7E 0F LDA $0F7E [$A5:0F7E] $A5E998 18 CLC $A5E999 65 14 ADC $14 [$00:0014] $A5E99B 85 14 STA $14 [$00:0014] $A5E99D A9 15 00 LDA #$0015 $A5E9A0 A0 09 E5 LDY #$E509 $A5E9A3 22 97 80 86 JSL $868097[$86:8097] $A5E9A7 A9 29 00 LDA #$0029 $A5E9AA 22 CB 90 80 JSL $8090CB[$80:90CB] $A5E9AE FA PLX $A5E9AF 7A PLY $A5E9B0 6B RTL --- 51. --- $A5E9B1 5A PHY $A5E9B2 DA PHX $A5E9B3 22 11 81 80 JSL $808111[$80:8111] *$A5E9B7 AD E5 05 LDA $05E5 [$A5:05E5]* $A5E9BA 29 7F 00 AND #$007F $A5E9BD 38 SEC $A5E9BE E9 40 00 SBC #$0040 $A5E9C1 85 12 STA $12 [$00:0012] $A5E9C3 AD 7A 0F LDA $0F7A [$A5:0F7A] $A5E9C6 18 CLC $A5E9C7 65 12 ADC $12 [$00:0012] $A5E9C9 85 12 STA $12 [$00:0012] *$A5E9CB AD E5 05 LDA $05E5 [$A5:05E5]* $A5E9CE 29 00 3F AND #$3F00 $A5E9D1 EB XBA $A5E9D2 38 SEC $A5E9D3 E9 20 00 SBC #$0020 $A5E9D6 85 14 STA $14 [$00:0014] $A5E9D8 AD 7E 0F LDA $0F7E [$A5:0F7E] $A5E9DB 18 CLC $A5E9DC 65 14 ADC $14 [$00:0014] $A5E9DE 85 14 STA $14 [$00:0014] $A5E9E0 A9 03 00 LDA #$0003 $A5E9E3 85 16 STA $16 [$00:0016] $A5E9E5 64 18 STZ $18 [$00:0018] $A5E9E7 22 26 BC B4 JSL $B4BC26[$B4:BC26] $A5E9EB A9 25 00 LDA #$0025 $A5E9EE 22 CB 90 80 JSL $8090CB[$80:90CB] $A5E9F2 FA PLX $A5E9F3 7A PLY $A5E9F4 6B RTL --- 52. --- $A5E9F5 5A PHY $A5E9F6 DA PHX $A5E9F7 AD B6 05 LDA $05B6 [$A5:05B6] $A5E9FA 29 0F 00 AND #$000F $A5E9FD D0 28 BNE $28 [$EA27] $A5E9FF 22 11 81 80 JSL $808111[$80:8111] *$A5EA03 AD E5 05 LDA $05E5 [$A5:05E5]* $A5EA06 29 3F 00 AND #$003F $A5EA09 18 CLC $A5EA0A 69 60 00 ADC #$0060 $A5EA0D 85 12 STA $12 [$00:0012] *$A5EA0F AD E5 05 LDA $05E5 [$A5:05E5]* $A5EA12 29 00 0F AND #$0F00 $A5EA15 EB XBA $A5EA16 18 CLC $A5EA17 69 E0 01 ADC #$01E0 $A5EA1A 85 14 STA $14 [$00:0014] $A5EA1C A9 15 00 LDA #$0015 $A5EA1F 85 16 STA $16 [$00:0016] $A5EA21 64 18 STZ $18 [$00:0018] $A5EA23 22 26 BC B4 JSL $B4BC26[$B4:BC26] $A5EA27 FA PLX $A5EA28 7A PLY $A5EA29 6B RTL --- 53. --- $A69954 db 01, 00, F9, 81, F8, 0A, 23, 01, 00, F9, 81, F8, 08, 23, 01, 00, F8, 81, F8, 0A, E3, 01, 00, F8, 81, F8, 08, E3, 01, 00, F9, 81, F8, 06, 23, 01, 00, F9, 81, F8, 22, 23, 01, 00, F8, 81, F8, 06, E3, 01, 00, F8, 81, F8, 22, E3, 00, 38, 9D, 55, 16, 18, 0D, 10, 9F, 4B, 37, 3F, D0, 36, 69, 2E, 08, 26, A6, 1D, 25, 11, C5, 08, 03, 00, 4E, 09, 56, 16, 00, 00, 74, 9B, 10, 00, 64, 9C, 0C, 00, B6, 9C, 08, 00, 08, 9D, 0C, 00, 5A, 9D, 26, 9B, ED, 80, AC, 99, 74, 9B, 10, 00, 64, 9C, 26, 9B, 0C, 00, 5A, 9D, 08, 00, 08, 9D, 0C, 00, B6, 9C, ED, 80, C4, 99, 10, 00, AC, 9D, B2, 9B, 08, 00, FE, 9D, C4, 9B, 10, 00, 50, 9E, 08, 00, FE, 9D, ED, 80, AC, 99 $A699FA db 74, 9B, 10, 00, A2, 9E, 0C, 00, F4, 9E, 08, 00, 46, 9F, 0C, 00, 98, 9F, 26, 9B, ED, 80, FA, 99 $A69A48 db 00, FE, 00, FB, 00, FC, 00, FB $A69A58 AE 54 0E LDX $0E54 [$A6:0E54] *$A69A5B AD E5 05 LDA $05E5 [$A6:05E5]* $A69A5E 29 03 00 AND #$0003 $A69A61 18 CLC $A69A62 69 02 00 ADC #$0002 $A69A65 9D AE 0F STA $0FAE,x[$A6:106E] $A69A68 9D B0 0F STA $0FB0,x[$A6:1070] $A69A6B 18 CLC $A69A6C 69 40 00 ADC #$0040 $A69A6F 9F 06 78 7E STA $7E7806,x[$7E:78C6] $A69A73 18 CLC $A69A74 69 20 00 ADC #$0020 $A69A77 9F 08 78 7E STA $7E7808,x[$7E:78C8] $A69A7B 18 CLC $A69A7C 69 D0 FF ADC #$FFD0 $A69A7F 9F 0A 78 7E STA $7E780A,x[$7E:78CA] $A69A83 A9 00 00 LDA #$0000 $A69A86 9F 0E 78 7E STA $7E780E,x[$7E:78CE] $A69A8A BD 86 0F LDA $0F86,x[$A6:1046] $A69A8D 09 00 20 ORA #$2000 $A69A90 9D 86 0F STA $0F86,x[$A6:1046] $A69A93 A9 01 00 LDA #$0001 $A69A96 9D 94 0F STA $0F94,x[$A6:1054] $A69A99 9E 90 0F STZ $0F90,x[$A6:1050] $A69A9C A9 FC FF LDA #$FFFC $A69A9F 9D AA 0F STA $0FAA,x[$A6:106A] $A69AA2 9D AC 0F STA $0FAC,x[$A6:106C] $A69AA5 A0 AE 99 LDY #$99AE $A69AA8 BD 7A 0F LDA $0F7A,x[$A6:103A] $A69AAB 38 SEC $A69AAC ED F6 0A SBC $0AF6 [$A6:0AF6] $A69AAF 10 0C BPL $0C [$9ABD] $A69AB1 A9 04 00 LDA #$0004 $A69AB4 9D AA 0F STA $0FAA,x[$A6:106A] $A69AB7 9D AC 0F STA $0FAC,x[$A6:106C] $A69ABA A0 FC 99 LDY #$99FC $A69ABD 98 TYA $A69ABE 9D 92 0F STA $0F92,x[$A6:1052] $A69AC1 6B RTL --- 54. --- *$A69AF1 AD E5 05 LDA $05E5 [$A6:05E5]* $A69AF4 29 3F 00 AND #$003F $A69AF7 18 CLC $A69AF8 69 10 00 ADC #$0010 $A69AFB 9F 06 78 7E STA $7E7806,x[$7E:78CA] $A69AFF 98 TYA $A69B00 FA PLX $A69B01 9F 0C 78 7E STA $7E780C,x[$7E:78CC] $A69B05 A0 BE 9D LDY #$9DBE $A69B08 BD AC 0F LDA $0FAC,x[$A6:106C] $A69B0B 30 03 BMI $03 [$9B10] $A69B0D A0 CC 9D LDY #$9DCC $A69B10 22 27 80 86 JSL $868027[$86:8027] $A69B14 22 70 AD A0 JSL $A0AD70[$A0:AD70] $A69B18 2F FF FF 00 AND $00FFFF[$00:FFFF] $A69B1C D0 07 BNE $07 [$9B25] $A69B1E A9 3F 00 LDA #$003F $A69B21 22 CB 90 80 JSL $8090CB[$80:90CB] $A69B25 60 RTS --- 55. --- $A69B26 5A PHY $A69B27 AE 54 0E LDX $0E54 [$A6:0E54] $A69B2A BD B0 0F LDA $0FB0,x[$A6:1070] $A69B2D F0 03 BEQ $03 [$9B32] $A69B2F DE B0 0F DEC $0FB0,x[$A6:1070] $A69B32 DE AE 0F DEC $0FAE,x[$A6:106E] $A69B35 D0 0F BNE $0F [$9B46] *$A69B37 AD E5 05 LDA $05E5 [$A6:05E5]* $A69B3A 29 03 00 AND #$0003 $A69B3D 18 CLC $A69B3E 69 07 00 ADC #$0007 $A69B41 9D AE 0F STA $0FAE,x[$A6:106E] $A69B44 80 0D BRA $0D [$9B53] $A69B46 BD AA 0F LDA $0FAA,x[$A6:106A] $A69B49 85 14 STA $14 [$00:0014] $A69B4B 64 12 STZ $12 [$00:0012] $A69B4D 22 AB C6 A0 JSL $A0C6AB[$A0:C6AB] $A69B51 90 0A BCC $0A [$9B5D] $A69B53 BD AA 0F LDA $0FAA,x[$A6:106A] $A69B56 49 FF FF EOR #$FFFF $A69B59 1A INC A $A69B5A 9D AA 0F STA $0FAA,x[$A6:106A] $A69B5D A9 FC FF LDA #$FFFC $A69B60 9D AC 0F STA $0FAC,x[$A6:106C] $A69B63 BD 7A 0F LDA $0F7A,x[$A6:103A] $A69B66 38 SEC $A69B67 ED F6 0A SBC $0AF6 [$A6:0AF6] $A69B6A 10 06 BPL $06 [$9B72] $A69B6C A9 04 00 LDA #$0004 $A69B6F 9D AC 0F STA $0FAC,x[$A6:106C] $A69B72 7A PLY $A69B73 6B RTL --- 56. --- $A69B74 AE 54 0E LDX $0E54 [$A6:0E54] $A69B77 BD B0 0F LDA $0FB0,x[$A6:1070] $A69B7A D0 19 BNE $19 [$9B95] *$A69B7C AD E5 05 LDA $05E5 [$A6:05E5]* $A69B7F 29 03 00 AND #$0003 $A69B82 18 CLC $A69B83 69 03 00 ADC #$0003 $A69B86 9D B0 0F STA $0FB0,x[$A6:1070] $A69B89 A0 2A 9A LDY #$9A2A $A69B8C BD AC 0F LDA $0FAC,x[$A6:106C] $A69B8F 10 14 BPL $14 [$9BA5] $A69B91 A0 DC 99 LDY #$99DC $A69B94 6B RTL --- 57. --- *$A6A2BD AD E5 05 LDA $05E5 [$A6:05E5]* $A6A2C0 C9 00 FF CMP #$FF00 $A6A2C3 90 0D BCC $0D [$A2D2] *$A6A2C5 AD E5 05 LDA $05E5 [$A6:05E5]* $A6A2C8 29 0F 00 AND #$000F $A6A2CB 69 07 00 ADC #$0007 $A6A2CE 8F 1E 20 7E STA $7E201E[$7E:201E] $A6A2D2 60 RTS --- 58. --- $A6B6A7 AD 7E 0F LDA $0F7E [$A6:0F7E] $A6B6AA C9 20 01 CMP #$0120 $A6B6AD 30 1F BMI $1F [$B6CE] $A6B6AF AF 20 78 7E LDA $7E7820[$7E:7820] $A6B6B3 0A ASL A $A6B6B4 A8 TAY $A6B6B5 B9 C8 B6 LDA $B6C8,y[$A6:B6CC] $A6B6B8 85 12 STA $12 [$00:0012] $A6B6BA A9 20 01 LDA #$0120 $A6B6BD 85 14 STA $14 [$00:0014] $A6B6BF A2 00 00 LDX #$0000 $A6B6C2 A0 00 00 LDY #$0000 $A6B6C5 4C 23 D5 JMP $D523 [$A6:D523] $A6B6CC db 60, 00 $A6B6CE 20 55 D9 JSR $D955 [$A6:D955] $A6B6D1 A9 DD B6 LDA #$B6DD $A6B6D4 8D A8 0F STA $0FA8 [$A6:0FA8] $A6B6D7 A9 20 00 LDA #$0020 $A6B6DA 8D B2 0F STA $0FB2 [$A6:0FB2] $A6B6DD AD 7A 0F LDA $0F7A [$A6:0F7A] $A6B6E0 85 12 STA $12 [$00:0012] $A6B6E2 A9 20 01 LDA #$0120 $A6B6E5 85 14 STA $14 [$00:0014] $A6B6E7 A2 00 00 LDX #$0000 $A6B6EA A0 00 00 LDY #$0000 $A6B6ED 20 23 D5 JSR $D523 [$A6:D523] $A6B6F0 CE B2 0F DEC $0FB2 [$A6:0FB2] $A6B6F3 10 18 BPL $18 [$B70D] $A6B6F5 20 33 CB JSR $CB33 [$A6:CB33] $A6B6F8 20 0F B9 JSR $B90F [$A6:B90F] $A6B6FB A9 0E B7 LDA #$B70E $A6B6FE 8D A8 0F STA $0FA8 [$A6:0FA8] *$A6B701 AD E5 05 LDA $05E5 [$A6:05E5]* $A6B704 29 3F 00 AND #$003F $A6B707 69 80 00 ADC #$0080 $A6B70A 8D B2 0F STA $0FB2 [$A6:0FB2] $A6B70D 60 RTS --- 59. --- $A6B859 20 F1 BC JSR $BCF1 [$A6:BCF1] $A6B85C B0 01 BCS $01 [$B85F] $A6B85F A2 04 00 LDX #$0004 $A6B862 A0 04 00 LDY #$0004 $A6B865 86 16 STX $16 [$00:0016] $A6B867 84 18 STY $18 [$00:0018] $A6B869 AF 20 78 7E LDA $7E7820[$7E:7820] $A6B86D 0A ASL A $A6B86E A8 TAY $A6B86F B9 D5 B9 LDA $B9D5,y[$A6:B9D9] $A6B872 18 CLC $A6B873 6D 7A 0F ADC $0F7A [$A6:0F7A] $A6B876 85 12 STA $12 [$00:0012] $A6B878 AF 3A 78 7E LDA $7E783A[$7E:783A] $A6B87C A8 TAY $A6B87D B9 DB B9 LDA $B9DB,y[$A6:B9DB] $A6B880 18 CLC $A6B881 6D 7E 0F ADC $0F7E [$A6:0F7E] $A6B884 85 14 STA $14 [$00:0014] $A6B886 4C 29 DF JMP $DF29 [$A6:DF29] $A6B889 AD AC 0F LDA $0FAC [$A6:0FAC] $A6B88C 30 04 BMI $04 [$B892] $A6B88E 49 FF FF EOR #$FFFF $A6B891 1A INC A $A6B892 C9 00 FE CMP #$FE00 $A6B895 30 03 BMI $03 [$B89A] $A6B89A 8D AC 0F STA $0FAC [$A6:0FAC] $A6B89D 20 4D B8 JSR $B84D [$A6:B84D] $A6B8A0 A9 8F BB LDA #$BB8F $A6B8A3 8D A8 0F STA $0FA8 [$A6:0FA8] $A6B8A6 4C 8F BB JMP $BB8F [$A6:BB8F] $A6B8A9 AD AA 0F LDA $0FAA [$A6:0FAA] $A6B8AC D0 0F BNE $0F [$B8BD] $A6B8BD AD 7A 0F LDA $0F7A [$A6:0F7A] $A6B8C0 38 SEC $A6B8C1 ED F6 0A SBC $0AF6 [$A6:0AF6] $A6B8C4 4D AA 0F EOR $0FAA [$A6:0FAA] $A6B8C7 30 22 BMI $22 [$B8EB] $A6B8C9 AD 7A 0F LDA $0F7A [$A6:0F7A] $A6B8CC CF 04 80 7E CMP $7E8004[$7E:8004] $A6B8D0 30 31 BMI $31 [$B903] $A6B8D2 CF 06 80 7E CMP $7E8006[$7E:8006] $A6B8D6 10 31 BPL $31 [$B909] *$A6B8D8 AD E5 05 LDA $05E5 [$A6:05E5]* $A6B8DB C9 55 05 CMP #$0555 $A6B8DE 90 0A BCC $0A [$B8EA] $A6B8E0 AD AA 0F LDA $0FAA [$A6:0FAA] $A6B8E3 49 FF FF EOR #$FFFF $A6B8E6 1A INC A $A6B8E7 8D AA 0F STA $0FAA [$A6:0FAA] $A6B8EA 60 RTS --- 60. --- $A6B8EB AD 7A 0F LDA $0F7A [$A6:0F7A] $A6B8EE CF 04 80 7E CMP $7E8004[$7E:8004] $A6B8F2 30 0F BMI $0F [$B903] $A6B8F4 CF 06 80 7E CMP $7E8006[$7E:8006] $A6B8F8 10 0F BPL $0F [$B909] *$A6B8FA AD E5 05 LDA $05E5 [$A6:05E5]* $A6B8FD C9 55 05 CMP #$0555 $A6B900 90 DE BCC $DE [$B8E0] $A6B902 60 RTS *$A6B90F AD E5 05 LDA $05E5 [$A6:05E5]* $A6B912 29 03 00 AND #$0003 $A6B915 0A ASL A $A6B916 A8 TAY $A6B917 B9 65 B9 LDA $B965,y[$A6:B96B] $A6B91A 85 12 STA $12 [$00:0012] $A6B91C B9 6D B9 LDA $B96D,y[$A6:B973] $A6B91F 85 14 STA $14 [$00:0014] $A6B921 AF 24 78 7E LDA $7E7824[$7E:7824] $A6B925 18 CLC $A6B926 69 02 00 ADC #$0002 $A6B929 0A ASL A $A6B92A A8 TAY $A6B92B B9 4D B9 LDA $B94D,y[$A6:B951] $A6B92E 8F 0E 20 7E STA $7E200E[$7E:200E] $A6B932 B9 59 B9 LDA $B959,y[$A6:B95D] $A6B935 8F 0C 20 7E STA $7E200C[$7E:200C] $A6B939 B1 14 LDA ($14),y[$A6:B9CD] $A6B93B 8D AC 0F STA $0FAC [$A6:0FAC] $A6B93E B1 12 LDA ($12),y[$A6:B99D] $A6B940 AE AA 0F LDX $0FAA [$A6:0FAA] $A6B943 10 04 BPL $04 [$B949] $A6B945 49 FF FF EOR #$FFFF $A6B948 1A INC A $A6B949 8D AA 0F STA $0FAA [$A6:0FAA] $A6B94C 60 RTS --- 62. --- $A6C66E db E8, FF, E8, FF, EC, FF, 14, 00, 10, 00, E2, FF, 1E, 00, FD, FF, 0E, 00, F3, FF, FE, FF, 12, 00, FE, FF, E0, FF, E1, FF, 08, 00, FC, FF, F6, FF, 13, 00, 13, 00 $A6C696 AE 54 0E LDX $0E54 [$A6:0E54] $A6C699 A9 01 00 LDA #$0001 $A6C69C 9D 94 0F STA $0F94,x[$A6:0FD4] $A6C69F 9E 90 0F STZ $0F90,x[$A6:0FD0] $A6C6A2 9E 98 0F STZ $0F98,x[$A6:0FD8] $A6C6A5 A9 00 0E LDA #$0E00 $A6C6A8 9D 96 0F STA $0F96,x[$A6:0FD6] $A6C6AB BC B4 0F LDY $0FB4,x[$A6:0FF4] $A6C6AE B9 CE C6 LDA $C6CE,y[$A6:C6DA] $A6C6B1 9D B2 0F STA $0FB2,x[$A6:0FF2] $A6C6B4 22 11 81 80 JSL $808111[$80:8111] $A6C6B8 29 30 01 AND #$0130 *$A6C6BB 2C E5 05 BIT $05E5 [$A6:05E5]* $A6C6BE 10 04 BPL $04 [$C6C4] $A6C6C0 49 FF FF EOR #$FFFF $A6C6C3 1A INC A $A6C6C4 9D AA 0F STA $0FAA,x[$A6:0FEA] $A6C6C7 9E AC 0F STZ $0FAC,x[$A6:0FEC] $A6C6CA BB TYX $A6C6CB 7C E6 C6 JMP ($C6E6,x)[$A6:C78E] $A6C6CE db 48, 00, 50, 00, 58, 00, 60, 00, 68, 00, 70, 00, 78, 00, 28, 00, 30, 00, 38, 00, 80, 00, 40, 00, FE $A6C6E8 db 16 $A6C6EA db 2E $A6C6EC db 46 $A6C6EE db 5E $A6C6F0 db 76 $A6C6F2 db 8E $A6C6F4 db DA $A6C6F6 db 0C $A6C6F8 db 3E $A6C6FA db 70 $A6C6FC db A2 $A6C6FE AE 54 0E LDX $0E54 [$A6:0E54] $A6C701 AF 2C 20 7E LDA $7E202C[$7E:202C] $A6C705 9D 7A 0F STA $0F7A,x[$A6:113A] $A6C708 AF 2E 20 7E LDA $7E202E[$7E:202E] $A6C70C 9D 7E 0F STA $0F7E,x[$A6:113E] $A6C70F A9 47 CA LDA #$CA47 $A6C712 9D 92 0F STA $0F92,x[$A6:1152] $A6C715 6B RTL --- 63. --- $A6CC7D AD 04 20 LDA $2004 [$7E:2004] $A6CC80 F0 08 BEQ $08 [$CC8A] $A6CC82 AD 1C 20 LDA $201C [$7E:201C] $A6CC85 2D 1A 20 AND $201A [$7E:201A] $A6CC88 30 27 BMI $27 [$CCB1] $A6CC8A AD 02 20 LDA $2002 [$7E:2002] $A6CC8D F0 2A BEQ $2A [$CCB9] *$A6CC8F AD E5 05 LDA $05E5 [$7E:05E5]* $A6CC92 29 FF 00 AND #$00FF $A6CC95 C9 F0 00 CMP #$00F0 $A6CC98 B0 17 BCS $17 [$CCB1] $A6CC9A AD F6 0A LDA $0AF6 [$7E:0AF6] $A6CC9D 38 SEC $A6CC9E ED 7A 0F SBC $0F7A [$7E:0F7A] $A6CCA1 10 04 BPL $04 [$CCA7] $A6CCA3 49 FF FF EOR #$FFFF $A6CCA6 1A INC A $A6CCA7 C9 80 00 CMP #$0080 $A6CCAA B0 0D BCS $0D [$CCB9] $A6CCAC A9 00 00 LDA #$0000 $A6CCAF 80 04 BRA $04 [$CCB5] $A6CCB1 AD 04 20 LDA $2004 [$7E:2004] $A6CCB4 3A DEC A $A6CCB5 20 9D D1 JSR $D19D [$A6:D19D] $A6CCB8 68 PLA $A6CCB9 9C 04 20 STZ $2004 [$7E:2004] $A6CCBC 60 RTS --- 64. --- $A6CD24 20 FE CB JSR $CBFE [$A6:CBFE] $A6CD27 20 1E CC JSR $CC1E [$A6:CC1E] $A6CD2A 90 33 BCC $33 [$CD5F] *$A6CD2C AD E5 05 LDA $05E5 [$7E:05E5]* $A6CD2F 29 FF 00 AND #$00FF $A6CD32 C9 F0 00 CMP #$00F0 $A6CD35 B0 13 BCS $13 [$CD4A] $A6CD37 AD F6 0A LDA $0AF6 [$7E:0AF6] $A6CD3A 38 SEC $A6CD3B EF 7A 0F 00 SBC $000F7A[$00:0F7A] $A6CD3F 10 04 BPL $04 [$CD45] $A6CD41 49 FF FF EOR #$FFFF $A6CD44 1A INC A $A6CD45 C9 80 00 CMP #$0080 $A6CD48 B0 15 BCS $15 [$CD5F] $A6CD4A AD 1C 20 LDA $201C [$7E:201C] $A6CD4D 2D 1A 20 AND $201A [$7E:201A] $A6CD50 10 0D BPL $0D [$CD5F] $A6CD5F AD 20 20 LDA $2020 [$7E:2020] $A6CD62 0D 34 20 ORA $2034 [$7E:2034] $A6CD65 0D 48 20 ORA $2048 [$7E:2048] $A6CD68 0D 5C 20 ORA $205C [$7E:205C] $A6CD6B 0D 70 20 ORA $2070 [$7E:2070] $A6CD6E 0D 84 20 ORA $2084 [$7E:2084] $A6CD71 0D 98 20 ORA $2098 [$7E:2098] $A6CD74 F0 01 BEQ $01 [$CD77] $A6CD76 60 RTS --- 65. --- $A6F765 AE 54 0E LDX $0E54 [$A6:0E54] $A6F768 7C A8 0F JMP ($0FA8,x)[$A6:F7BD] $A6F76B A0 14 00 LDY #$0014 $A6F76E 80 03 BRA $03 [$F773] $A6F770 A0 1D 00 LDY #$001D $A6F773 AD 3F 09 LDA $093F [$A6:093F] $A6F776 C9 02 00 CMP #$0002 $A6F779 90 29 BCC $29 [$F7A4] $A6F77B AD 40 18 LDA $1840 [$A6:1840] $A6F77E D0 24 BNE $24 [$F7A4] *$A6F780 AD E5 05 LDA $05E5 [$A6:05E5]* $A6F783 29 FF 0F AND #$0FFF $A6F786 C9 80 00 CMP #$0080 $A6F789 90 0B BCC $0B [$F796] $A6F78B A9 02 00 LDA #$0002 $A6F78E 8D 40 18 STA $1840 [$A6:1840] $A6F791 98 TYA $A6F792 8D 3E 18 STA $183E [$A6:183E] $A6F795 6B RTL --- 67. --- $A7BD2D AE 54 0E LDX $0E54 [$A7:0E54] $A7BD30 80 C0 BRA $C0 [$BCF2] $A7BD32 C2 30 REP #$30 $A7BD34 AD 8C 0F LDA $0F8C [$A7:0F8C] $A7BD37 C9 01 00 CMP #$0001 $A7BD3A 30 03 BMI $03 [$BD3F] $A7BD3C 6C 28 11 JMP ($1128)[$A7:B92D] $A7BD49 C2 30 REP #$30 $A7BD4B AD 8C 0F LDA $0F8C [$A7:0F8C] $A7BD4E C9 01 00 CMP #$0001 $A7BD51 30 03 BMI $03 [$BD56] $A7BD53 6C 68 11 JMP ($1168)[$A7:B92D] *$A7BD60 AD E5 05 LDA $05E5 [$A7:05E5]* $A7BD63 29 06 00 AND #$0006 $A7BD66 A8 TAY $A7BD67 AD 30 11 LDA $1130 [$A7:1130] $A7BD6A AE 54 0E LDX $0E54 [$A7:0E54] $A7BD6D E0 80 01 CPX #$0180 $A7BD70 D0 03 BNE $03 [$BD75] $A7BD72 AD 70 11 LDA $1170 [$A7:1170] $A7BD75 C9 00 00 CMP #$0000 $A7BD78 10 05 BPL $05 [$BD7F] $A7BD7A B9 3E BE LDA $BE3E,y[$A7:BE42] $A7BD7D 80 03 BRA $03 [$BD82] $A7BD7F B9 46 BE LDA $BE46,y[$A7:BE4A] $A7BD82 A8 TAY $A7BD83 B9 00 00 LDA $0000,y[$A7:BE76] $A7BD86 9D AA 0F STA $0FAA,x[$A7:112A] $A7BD89 B9 02 00 LDA $0002,y[$A7:BE78] $A7BD8C 9D AC 0F STA $0FAC,x[$A7:112C] $A7BD8F B9 04 00 LDA $0004,y[$A7:BE7A] $A7BD92 9D AE 0F STA $0FAE,x[$A7:112E] $A7BD95 B9 06 00 LDA $0006,y[$A7:BE7C] $A7BD98 9D B0 0F STA $0FB0,x[$A7:1130] $A7BD9B A9 01 00 LDA #$0001 $A7BD9E 9D B4 0F STA $0FB4,x[$A7:1134] $A7BDA1 BD 86 0F LDA $0F86,x[$A7:1106] $A7BDA4 29 FF FE AND #$FEFF $A7BDA7 29 FF FB AND #$FBFF $A7BDAA 9D 86 0F STA $0F86,x[$A7:1106] $A7BDAD A9 01 00 LDA #$0001 $A7BDB0 9D 94 0F STA $0F94,x[$A7:1114] $A7BDB3 A9 0A 8B LDA #$8B0A $A7BDB6 9D 92 0F STA $0F92,x[$A7:1112] $A7BDB9 A9 8E BE LDA #$BE8E $A7BDBC 9D A8 0F STA $0FA8,x[$A7:1128] $A7BDBF AD E5 05 LDA $05E5 [$A7:05E5] $A7BDC2 89 01 00 BIT #$0001 $A7BDC5 D0 23 BNE $23 [$BDEA] $A7BDC7 A9 00 00 LDA #$0000 $A7BDCA 9F 0E 78 7E STA $7E780E,x[$7E:798E] $A7BDCE AD 7A 0F LDA $0F7A [$A7:0F7A] $A7BDD1 38 SEC $A7BDD2 ED 82 0F SBC $0F82 [$A7:0F82] $A7BDD5 38 SEC $A7BDD6 FD 82 0F SBC $0F82,x[$A7:1102] $A7BDD9 29 F0 FF AND #$FFF0 $A7BDDC 9D 7A 0F STA $0F7A,x[$A7:10FA] $A7BDDF AD BE 0F LDA $0FBE [$A7:0FBE] $A7BDE2 18 CLC $A7BDE3 69 80 00 ADC #$0080 $A7BDE6 9D 7E 0F STA $0F7E,x[$A7:10FE] $A7BDE9 6B RTL --- 70. --- $A8B82F AE 54 0E LDX $0E54 [$A8:0E54] $A8B832 22 11 81 80 JSL $808111[$80:8111] *$A8B836 AD E5 05 LDA $05E5 [$A8:05E5]* $A8B839 29 07 00 AND #$0007 $A8B83C 0A ASL A $A8B83D A8 TAY $A8B83E B9 4E B7 LDA $B74E,y[$A8:B75A] $A8B841 9D AC 0F STA $0FAC,x[$A8:10AC] *$A8B844 AD E5 05 LDA $05E5 [$A8:05E5]* $A8B847 29 01 00 AND #$0001 $A8B84A 9F 12 78 7E STA $7E7812,x[$7E:7912] $A8B84E 60 RTS --- 71. --- $A8D0C6 A9 1D CB LDA #$CB1D $A8D0C9 85 32 STA $32 [$00:0032] $A8D0CB A9 D0 D2 LDA #$D2D0 $A8D0CE 85 30 STA $30 [$00:0030] $A8D0D0 80 0A BRA $0A [$D0DC] $A8D0D2 A9 D1 C8 LDA #$C8D1 $A8D0D5 85 32 STA $32 [$00:0032] $A8D0D7 A9 A6 D2 LDA #$D2A6 $A8D0DA 85 30 STA $30 [$00:0030] $A8D0DC BD AA 0F LDA $0FAA,x[$A8:0FAA] $A8D0DF D0 1B BNE $1B [$D0FC] *$A8D0E1 AD E5 05 LDA $05E5 [$A8:05E5]* $A8D0E4 29 1F 00 AND #$001F $A8D0E7 18 CLC $A8D0E8 69 10 00 ADC #$0010 $A8D0EB 9D AA 0F STA $0FAA,x[$A8:0FAA] $A8D0EE DA PHX $A8D0EF A4 30 LDY $30 [$00:0030] $A8D0F1 AE 54 0E LDX $0E54 [$A8:0E54] $A8D0F4 22 27 80 86 JSL $868027[$86:8027] $A8D0F8 FA PLX $A8D0F9 A4 32 LDY $32 [$00:0032] $A8D0FB 6B RTL --- 72. --- $A8D100 A9 09 CB LDA #$CB09 $A8D103 85 32 STA $32 [$00:0032] $A8D105 80 05 BRA $05 [$D10C] $A8D107 A9 BD C8 LDA #$C8BD $A8D10A 85 32 STA $32 [$00:0032] $A8D10C BD AA 0F LDA $0FAA,x[$A8:0FAA] $A8D10F D0 1C BNE $1C [$D12D] *$A8D111 AD E5 05 LDA $05E5 [$A8:05E5]* $A8D114 29 1F 00 AND #$001F $A8D117 18 CLC $A8D118 69 10 00 ADC #$0010 $A8D11B 9D AA 0F STA $0FAA,x[$A8:0FAA] $A8D11E DA PHX $A8D11F A0 B4 D2 LDY #$D2B4 $A8D122 AE 54 0E LDX $0E54 [$A8:0E54] $A8D125 22 27 80 86 JSL $868027[$86:8027] $A8D129 FA PLX $A8D12A A4 32 LDY $32 [$00:0032] $A8D12C 6B RTL --- 73. --- $A8D131 A9 DE D2 LDA #$D2DE $A8D134 85 30 STA $30 [$00:0030] $A8D136 A9 FD CA LDA #$CAFD $A8D139 85 32 STA $32 [$00:0032] $A8D13B 80 0A BRA $0A [$D147] $A8D13D A9 C2 D2 LDA #$D2C2 $A8D140 85 30 STA $30 [$00:0030] $A8D142 A9 B1 C8 LDA #$C8B1 $A8D145 85 32 STA $32 [$00:0032] $A8D147 BD AA 0F LDA $0FAA,x[$A8:0FAA] $A8D14A D0 1B BNE $1B [$D167] *$A8D14C AD E5 05 LDA $05E5 [$A8:05E5]* $A8D14F 29 1F 00 AND #$001F $A8D152 18 CLC $A8D153 69 10 00 ADC #$0010 $A8D156 9D AA 0F STA $0FAA,x[$A8:11AA] $A8D159 DA PHX $A8D15A A4 30 LDY $30 [$00:0030] $A8D15C AE 54 0E LDX $0E54 [$A8:0E54] $A8D15F 22 27 80 86 JSL $868027[$86:8027] $A8D163 A4 32 LDY $32 [$00:0032] $A8D165 FA PLX $A8D166 6B RTL --- 75. --- $A8F58B A9 E3 F5 LDA #$F5E3 $A8F58E 9D A8 0F STA $0FA8,x[$A8:10A8] $A8F591 A9 00 00 LDA #$0000 $A8F594 9F 10 78 7E STA $7E7810,x[$7E:7910] *$A8F598 AD E5 05 LDA $05E5 [$A8:05E5]* $A8F59B 29 01 00 AND #$0001 $A8F59E 18 CLC $A8F59F 69 F8 FF ADC #$FFF8 $A8F5A2 9F 12 78 7E STA $7E7812,x[$7E:7912] $A8F5A6 BD 7A 0F LDA $0F7A,x[$A8:107A] $A8F5A9 CD F6 0A CMP $0AF6 [$A8:0AF6] $A8F5AC 10 1B BPL $1B [$F5C9] $A8F5AE A9 00 00 LDA #$0000 $A8F5B1 9F 0C 78 7E STA $7E780C,x[$7E:798C] $A8F5B5 A9 02 00 LDA #$0002 $A8F5B8 9F 0E 78 7E STA $7E780E,x[$7E:798E] $A8F5BC A9 A6 EA LDA #$EAA6 $A8F5BF 9D 92 0F STA $0F92,x[$A8:1112] $A8F5C2 A9 01 00 LDA #$0001 $A8F5C5 9D 94 0F STA $0F94,x[$A8:1114] $A8F5C8 6B RTL --- 76. --- $A988E9 A9 08 00 LDA #$0008 $A988EC 8F 30 80 7E STA $7E8030[$7E:8030] $A988F0 AF 32 80 7E LDA $7E8032[$7E:8032] $A988F4 3A DEC A $A988F5 10 03 BPL $03 [$88FA] $A988F7 A9 07 00 LDA #$0007 $A988FA 8F 32 80 7E STA $7E8032[$7E:8032] $A988FE 0A ASL A $A988FF 0A ASL A $A98900 AA TAX $A98901 BD 29 89 LDA $8929,x[$A9:8945] $A98904 85 12 STA $12 [$00:0012] $A98906 BD 2B 89 LDA $892B,x[$A9:8947] $A98909 85 14 STA $14 [$00:0014] $A9890B A0 03 00 LDY #$0003 *$A9890E AD E5 05 LDA $05E5 [$A9:05E5]* $A98911 C9 00 40 CMP #$4000 $A98914 B0 03 BCS $03 [$8919] $A98916 A0 0C 00 LDY #$000C $A98919 98 TYA $A9891A A0 09 E5 LDY #$E509 $A9891D 22 97 80 86 JSL $868097[$86:8097] $A98921 A9 24 00 LDA #$0024 $A98924 22 B7 90 80 JSL $8090B7[$80:90B7] $A98928 60 RTS --- 77. --- $A98F46 CE F2 0F DEC $0FF2 [$A9:0FF2] $A98F49 10 06 BPL $06 [$8F51] $A98F4B A9 07 00 LDA #$0007 $A98F4E 8D F2 0F STA $0FF2 [$A9:0FF2] $A98F51 AD F2 0F LDA $0FF2 [$A9:0FF2] $A98F54 0A ASL A $A98F55 AA TAX $A98F56 BD 7F 8F LDA $8F7F,x[$A9:8F8D] $A98F59 85 12 STA $12 [$00:0012] $A98F5B A9 D4 00 LDA #$00D4 $A98F5E 85 14 STA $14 [$00:0014] *$A98F60 AD E5 05 LDA $05E5 [$A9:05E5]* $A98F63 29 00 01 AND #$0100 $A98F66 EB XBA $A98F67 AA TAX $A98F68 BD 7D 8F LDA $8F7D,x[$A9:8F7D] $A98F6B 29 FF 00 AND #$00FF $A98F6E A0 09 E5 LDY #$E509 $A98F71 22 97 80 86 JSL $868097[$86:8097] $A98F75 A9 29 00 LDA #$0029 $A98F78 22 B7 90 80 JSL $8090B7[$80:90B7] $A98F7C 60 RTS --- 78. --- $A9930C AF 5C 80 7E LDA $7E805C[$7E:805C] $A99310 85 12 STA $12 [$00:0012] $A99312 AF 5E 80 7E LDA $7E805E[$7E:805E] $A99316 85 14 STA $14 [$00:0014] $A99318 20 CB 93 JSR $93CB [$A9:93CB] $A9931B AF 56 80 7E LDA $7E8056[$7E:8056] $A9931F 85 12 STA $12 [$00:0012] $A99321 AF 58 80 7E LDA $7E8058[$7E:8058] $A99325 85 14 STA $14 [$00:0014] $A99327 20 CB 93 JSR $93CB [$A9:93CB] $A9932A AF 50 80 7E LDA $7E8050[$7E:8050] $A9932E 85 12 STA $12 [$00:0012] $A99330 AF 52 80 7E LDA $7E8052[$7E:8052] $A99334 85 14 STA $14 [$00:0014] $A99336 20 CB 93 JSR $93CB [$A9:93CB] $A99339 AF 4A 80 7E LDA $7E804A[$7E:804A] $A9933D 85 12 STA $12 [$00:0012] $A9933F AF 4C 80 7E LDA $7E804C[$7E:804C] $A99343 85 14 STA $14 [$00:0014] $A99345 20 CB 93 JSR $93CB [$A9:93CB] $A99348 AF 44 80 7E LDA $7E8044[$7E:8044] $A9934C 85 12 STA $12 [$00:0012] $A9934E AF 46 80 7E LDA $7E8046[$7E:8046] $A99352 85 14 STA $14 [$00:0014] $A99354 4C CB 93 JMP $93CB [$A9:93CB] $A99357 AF 68 78 7E LDA $7E7868[$7E:7868] $A9935B F0 12 BEQ $12 [$936F] $A9935D AF 6A 78 7E LDA $7E786A[$7E:786A] $A99361 D0 0C BNE $0C [$936F] *$A99363 AD E5 05 LDA $05E5 [$A9:05E5]* $A99366 30 07 BMI $07 [$936F] $A99368 A0 3D CB LDY #$CB3D $A9936B 22 97 80 86 JSL $868097[$86:8097] $A9936F 20 AF 92 JSR $92AF [$A9:92AF] $A99372 AF 1A 78 7E LDA $7E781A[$7E:781A] $A99376 AA TAX $A99377 AD DC 0F LDA $0FDC [$A9:0FDC] $A9937A 4A LSR A $A9937B 90 03 BCC $03 [$9380] $A9937D A2 00 00 LDX #$0000 $A99380 86 16 STX $16 [$00:0016] $A99382 AF 40 78 7E LDA $7E7840[$7E:7840] $A99386 F0 07 BEQ $07 [$938F] $A99388 3A DEC A $A99389 8F 40 78 7E STA $7E7840[$7E:7840] $A9938D 80 08 BRA $08 [$9397] $A9938F AD DC 0F LDA $0FDC [$A9:0FDC] $A99392 D0 03 BNE $03 [$9397] $A99394 AD E2 0F LDA $0FE2 [$A9:0FE2] $A99397 29 06 00 AND #$0006 $A9939A AA TAX $A9939B BD BB 93 LDA $93BB,x[$A9:93BB] $A9939E 18 CLC $A9939F 6D BA 0F ADC $0FBA [$A9:0FBA] $A993A2 85 12 STA $12 [$00:0012] $A993A4 18 CLC $A993A5 69 20 00 ADC #$0020 $A993A8 38 SEC $A993A9 ED 11 09 SBC $0911 [$A9:0911] $A993AC 30 0C BMI $0C [$93BA] $A993AE BD C3 93 LDA $93C3,x[$A9:93C5] $A993B1 18 CLC $A993B2 6D BE 0F ADC $0FBE [$A9:0FBE] $A993B5 85 14 STA $14 [$00:0014] $A993B7 4C EE 93 JMP $93EE [$A9:93EE] $A993BA 60 RTS --- 79. --- $A99B7F db 77, 9B, 02, 00, F8, A5, 02, 00, 2C, A6, 3C, 9B, 02, 00, 2C, A6, 6D, 9B, 28, 9B, 7E, 00, 3C, 9B, 10, 00, 60, A6, 3C, 9B, 10, 00, 60, A6, 3C, 9B, 20, 00, 60, A6, 04, 00, 2C, A6, 01, 00, F8, A5, 0F, 9B, AB, 9B, 77, 9B, 02, 00, 17, A7, 02, 00, 50, A7, 3C, 9B, 02, 00, 50, A7, 6D, 9B, 28, 9B, 7E, 00, 3C, 9B, 10, 00, 89, A7, 3C, 9B, 10, 00, 89, A7, 3C, 9B, 20, 00, 89, A7, 04, 00, 50, A7, 01, 00, 17, A7, 0F, 9B, DF, 9B, 77, 9B, 02, 00, 17, A7, 02, 00, 50, A7, 02, 00, 50, A7, 6D, 9B, 28, 9B, 7E, 00, 10, 00, 89, A7, 10, 00, 89, A7 $A99C13 db 00, 00, 20, A3, 2F, 81 $A99C21 db 04, 00, 86, A5, 0F, 9B, 21, 9C, 08, 00, 17, A7, 04, 00, D9, A6, 04, 00, 9B, A6, 0F, 9B, 31, 9C, 77, 9B, 04, 00, 17, A7, 04, 00, 50, A7, 28, 9B, 7E, 00, 02, 00, 89, A7, 3C, 9B, 02, 00, 89, A7, 3C, 9B, 02, 00, 89, A7, 3C, 9B, 02, 00, 89, A7, 3C, 9B, 02, 00, 89, A7, 65, 9C $A99C65 A2 5F 9C LDX #$9C5F *$A99C68 AD E5 05 LDA $05E5 [$A9:05E5]* $A99C6B 29 FF 0F AND #$0FFF $A99C6E C9 E0 0F CMP #$0FE0 $A99C71 90 03 BCC $03 [$9C76] $A99C73 A2 47 9C LDX #$9C47 $A99C76 60 RTS --- 80. --- $A99C77 db 01, 00, F8, A5, 0F, 9B, 77, 9C $A99C87 db 04, 00, 86, A5, 04, 00, BF, A5, 08, 00, F8, A5, 04, 00, BF, A5, 04, 00, 86, A5, 04, 00, BF, A5, 08, 00, F8, A5, AD, 9C, 04, 00, BF, A5, 0F, 9B, 87, 9C *$A99CAD AD E5 05 LDA $05E5 [$A9:05E5]* $A99CB0 C9 00 F0 CMP #$F000 $A99CB3 B0 03 BCS $03 [$9CB8] $A99CB5 A2 9F 9C LDX #$9C9F $A99CB8 60 RTS --- 81. --- $A99CB9 db 04, 00, 9B, A6, 04, 00, D9, A6, 08, 00, 17, A7, 04, 00, D9, A6, 04, 00, 9B, A6, 04, 00, D9, A6, 08, 00, 17, A7, 08, 00, D9, A6, 0D, 9D, 04, 00, 9B, A6, 0F, 9B, B9, 9C *$A99D0D AD E5 05 LDA $05E5 [$A9:05E5]* $A99D10 29 FF 0F AND #$0FFF $A99D13 C9 40 0F CMP #$0F40 $A99D16 80 04 BRA $04 [$9D1C] $A99D1C C9 C0 0E CMP #$0EC0 $A99D1F B0 03 BCS $03 [$9D24] $A99D21 A2 D1 9C LDX #$9CD1 $A99D24 60 RTS --- 82. --- $A9B223 DA PHX *$A9B224 AD E5 05 LDA $05E5 [$A9:05E5]* $A9B227 29 1F 00 AND #$001F $A9B22A 18 CLC $A9B22B 6D BA 0F ADC $0FBA [$A9:0FBA] $A9B22E 18 CLC $A9B22F 69 F0 FF ADC #$FFF0 $A9B232 85 12 STA $12 [$00:0012] $A9B234 AD BE 0F LDA $0FBE [$A9:0FBE] $A9B237 18 CLC $A9B238 69 10 00 ADC #$0010 $A9B23B 85 14 STA $14 [$00:0014] $A9B23D A9 0A 00 LDA #$000A $A9B240 A0 09 E5 LDY #$E509 $A9B243 22 97 80 86 JSL $868097[$86:8097] $A9B247 AD 44 0E LDA $0E44 [$A9:0E44] $A9B24A 29 07 00 AND #$0007 $A9B24D D0 07 BNE $07 [$B256] $A9B24F A9 10 00 LDA #$0010 $A9B252 22 B7 90 80 JSL $8090B7[$80:90B7] $A9B256 FA PLX $A9B257 60 RTS --- 83. --- $A9B61A AD CC 0F LDA $0FCC [$A9:0FCC] $A9B61D C9 94 11 CMP #$1194 $A9B620 30 12 BMI $12 [$B634] *$A9B622 AD E5 05 LDA $05E5 [$A9:05E5]* $A9B625 C9 00 10 CMP #$1000 $A9B628 90 03 BCC $03 [$B62D] $A9B62A 4C B8 C6 JMP $C6B8 [$A9:C6B8] $A9B62D A9 4B B6 LDA #$B64B $A9B630 8D A8 0F STA $0FA8 [$A9:0FA8] $A9B633 60 RTS --- 84. --- *$A9B634 AD E5 05 LDA $05E5 [$A9:05E5]* $A9B637 C9 00 20 CMP #$2000 $A9B63A B0 03 BCS $03 [$B63F] $A9B63C 4C B8 C6 JMP $C6B8 [$A9:C6B8] $A9B63F C9 00 A0 CMP #$A000 $A9B642 B0 E9 BCS $E9 [$B62D] $A9B644 A9 7D B8 LDA #$B87D $A9B647 8D A8 0F STA $0FA8 [$A9:0FA8] $A9B64A 60 RTS --- 85. --- $A9B64B AF 30 78 7E LDA $7E7830[$7E:7830] $A9B64F 0A ASL A $A9B650 AA TAX $A9B651 7C 54 B6 JMP ($B654,x)[$A9:B65A] $A9B654 db 5A $A9B656 db 64 $A9B658 db 73 $A9B65A A9 40 00 LDA #$0040 $A9B65D 8D B4 0F STA $0FB4 [$A9:0FB4] $A9B660 AF 30 78 7E LDA $7E7830[$7E:7830] $A9B664 1A INC A $A9B665 8F 30 78 7E STA $7E7830[$7E:7830] $A9B669 20 E2 B6 JSR $B6E2 [$A9:B6E2] $A9B66C A2 DC B6 LDX #$B6DC $A9B66F AD BE 0F LDA $0FBE [$A9:0FBE] $A9B672 18 CLC $A9B673 69 04 00 ADC #$0004 $A9B676 38 SEC $A9B677 ED FA 0A SBC $0AFA [$A9:0AFA] $A9B67A 10 04 BPL $04 [$B680] $A9B67C 49 FF FF EOR #$FFFF $A9B67F 1A INC A $A9B680 C9 20 00 CMP #$0020 $A9B683 B0 03 BCS $03 [$B688] $A9B688 E2 20 SEP #$20 $A9B68A A0 00 00 LDY #$0000 *$A9B68D AD E5 05 LDA $05E5 [$A9:05E5]* $A9B690 DD 00 00 CMP $0000,x[$A9:B6DC] $A9B693 90 10 BCC $10 [$B6A5] $A9B695 C8 INY $A9B696 C8 INY $A9B697 DD 01 00 CMP $0001,x[$A9:B6DD] $A9B69A 90 09 BCC $09 [$B6A5] $A9B6A5 BB TYX $A9B6A6 C2 20 REP #$20 $A9B6A8 BD D4 B6 LDA $B6D4,x[$A9:B6D4] $A9B6AB C9 CC 9E CMP #$9ECC $A9B6AE F0 09 BEQ $09 [$B6B9] $A9B6B0 C9 34 9F CMP #$9F34 $A9B6B3 F0 16 BEQ $16 [$B6CB] $A9B6B5 20 47 C4 JSR $C447 [$A9:C447] $A9B6B8 60 RTS --- 86. --- $A9B6D4 db 87, 9C, 3D, 9D $A9B6DC db 40, 80 $A9B6E2 AD 1F 0A LDA $0A1F [$A9:0A1F] $A9B6E5 29 FF 00 AND #$00FF $A9B6E8 0A ASL A $A9B6E9 AA TAX $A9B6EA BD 2C B7 LDA $B72C,x[$A9:B72C] $A9B6ED D0 1D BNE $1D [$B70C] *$A9B6EF AD E5 05 LDA $05E5 [$A9:05E5]* $A9B6F2 29 FF 00 AND #$00FF $A9B6F5 C9 80 00 CMP #$0080 $A9B6F8 30 08 BMI $08 [$B702] $A9B702 68 PLA $A9B703 A9 0E B8 LDA #$B80E $A9B706 8D A8 0F STA $0FA8 [$A9:0FA8] $A9B709 4C 0E B8 JMP $B80E [$A9:B80E] *$A9B70C AD E5 05 LDA $05E5 [$A9:05E5]* $A9B70F 29 FF 00 AND #$00FF $A9B712 C9 80 00 CMP #$0080 $A9B715 10 01 BPL $01 [$B718] $A9B717 60 RTS --- 87. --- *$A9B781 AD E5 05 LDA $05E5 [$A9:05E5]* $A9B784 C9 80 FF CMP #$FF80 $A9B787 B0 2E BCS $2E [$B7B7] $A9B789 A2 40 00 LDX #$0040 $A9B78C C9 00 60 CMP #$6000 $A9B78F B0 03 BCS $03 [$B794] $A9B791 A2 60 00 LDX #$0060 $A9B794 8A TXA $A9B795 CD 7A 0F CMP $0F7A [$A9:0F7A] $A9B798 10 1D BPL $1D [$B7B7] $A9B7AB 60 RTS --- 88. --- $A9BD45 A9 50 00 LDA #$0050 $A9BD48 22 5E A4 A0 JSL $A0A45E[$A0:A45E] $A9BD4C 0A ASL A $A9BD4D 0A ASL A $A9BD4E 69 14 00 ADC #$0014 $A9BD51 CD C2 09 CMP $09C2 [$A9:09C2] $A9BD54 10 3B BPL $3B [$BD91] *$A9BD56 AD E5 05 LDA $05E5 [$A9:05E5]* $A9BD59 29 FF 0F AND #$0FFF $A9BD5C C9 A0 0F CMP #$0FA0 $A9BD5F 90 25 BCC $25 [$BD86] $A9BD61 A9 A0 00 LDA #$00A0 $A9BD64 22 5E A4 A0 JSL $A0A45E[$A0:A45E] $A9BD68 18 CLC $A9BD69 69 14 00 ADC #$0014 $A9BD6C CD C2 09 CMP $09C2 [$A9:09C2] $A9BD6F 10 0E BPL $0E [$BD7F] $A9BD71 A0 CC 9E LDY #$9ECC *$A9BD74 AD E5 05 LDA $05E5 [$A9:05E5]* $A9BD77 29 FF 0F AND #$0FFF $A9BD7A C9 F0 0F CMP #$0FF0 $A9BD7D B0 03 BCS $03 [$BD82] $A9BD7F A0 7F 9D LDY #$9D7F $A9BD82 98 TYA $A9BD83 4C 47 C4 JMP $C447 [$A9:C447] $A9BD86 AD A4 0F LDA $0FA4 [$A9:0FA4] $A9BD89 29 1F 00 AND #$001F $A9BD8C D0 09 BNE $09 [$BD97] $A9BD8E 4C A7 C1 JMP $C1A7 [$A9:C1A7] $A9BD91 A9 98 BD LDA #$BD98 $A9BD94 8D A8 0F STA $0FA8 [$A9:0FA8] $A9BD97 60 RTS --- 89. --- $A9C14D A9 5C C1 LDA #$C15C $A9C150 8D A8 0F STA $0FA8 [$A9:0FA8] $A9C153 A0 0A 00 LDY #$000A $A9C156 A9 50 00 LDA #$0050 $A9C159 20 01 C6 JSR $C601 [$A9:C601] $A9C15C 20 A7 C1 JSR $C1A7 [$A9:C1A7] *$A9C15F AD E5 05 LDA $05E5 [$A9:05E5]* $A9C162 30 01 BMI $01 [$C165] $A9C164 60 RTS --- 90. --- $A9C1A7 AF 04 78 7E LDA $7E7804[$7E:7804] $A9C1AB F0 13 BEQ $13 [$C1C0] $A9C1AD C9 06 00 CMP #$0006 $A9C1B0 D0 1C BNE $1C [$C1CE] *$A9C1B2 AD E5 05 LDA $05E5 [$A9:05E5]* $A9C1B5 29 FF 00 AND #$00FF $A9C1B8 C9 C0 00 CMP #$00C0 $A9C1BB 90 11 BCC $11 [$C1CE] $A9C1BD 4C 70 C6 JMP $C670 [$A9:C670] *$A9C1C0 AD E5 05 LDA $05E5 [$A9:05E5]* $A9C1C3 29 FF 00 AND #$00FF $A9C1C6 C9 C0 00 CMP #$00C0 $A9C1C9 90 03 BCC $03 [$C1CE] $A9C1CB 4C A3 C6 JMP $C6A3 [$A9:C6A3] $A9C1CE 60 RTS --- 91. --- $A9C215 20 27 C3 JSR $C327 [$A9:C327] $A9C218 20 5A C2 JSR $C25A [$A9:C25A] $A9C21B AF 04 78 7E LDA $7E7804[$7E:7804] $A9C21F D0 F3 BNE $F3 [$C214] $A9C221 AF 0C 78 7E LDA $7E780C[$7E:780C] $A9C225 D0 ED BNE $ED [$C214] *$A9C227 AD E5 05 LDA $05E5 [$A9:05E5]* $A9C22A 10 E8 BPL $E8 [$C214] $A9C22C A0 00 9F LDY #$9F00 *$A9C22F AD E5 05 LDA $05E5 [$A9:05E5]* $A9C232 29 FF 00 AND #$00FF $A9C235 C9 80 00 CMP #$0080 $A9C238 90 03 BCC $03 [$C23D] $A9C23A A0 BB 9D LDY #$9DBB $A9C23D 98 TYA $A9C23E 20 47 C4 JSR $C447 [$A9:C447] $A9C241 A9 4E C2 LDA #$C24E $A9C244 8D A8 0F STA $0FA8 [$A9:0FA8] $A9C247 A9 40 00 LDA #$0040 $A9C24A 8D B2 0F STA $0FB2 [$A9:0FB2] $A9C24D 60 RTS --- 92. --- $A9C261 AF 74 78 7E LDA $7E7874[$7E:7874] $A9C265 85 12 STA $12 [$00:0012] $A9C267 6C 12 00 JMP ($0012)[$A9:C26A] $A9C26A AF 0E 78 7E LDA $7E780E[$7E:780E] $A9C26E F0 31 BEQ $31 [$C2A1] $A9C270 18 CLC $A9C271 69 20 00 ADC #$0020 $A9C274 8F 0E 78 7E STA $7E780E[$7E:780E] $A9C278 C9 00 01 CMP #$0100 $A9C27B 90 23 BCC $23 [$C2A0] $A9C27D AD 7A 0F LDA $0F7A [$A9:0F7A] $A9C280 1A INC A $A9C281 8F 76 78 7E STA $7E7876[$7E:7876] *$A9C285 AD E5 05 LDA $05E5 [$A9:05E5]* $A9C288 29 02 00 AND #$0002 $A9C28B 18 CLC $A9C28C 69 04 00 ADC #$0004 $A9C28F A8 TAY $A9C290 AF 76 78 7E LDA $7E7876[$7E:7876] $A9C294 20 01 C6 JSR $C601 [$A9:C601] $A9C297 90 07 BCC $07 [$C2A0] $A9C2A0 60 RTS --- 93. --- $A9C6B8 AF 04 78 7E LDA $7E7804[$7E:7804] $A9C6BC F0 01 BEQ $01 [$C6BF] $A9C6BF AF 0E 78 7E LDA $7E780E[$7E:780E] $A9C6C3 F0 22 BEQ $22 [$C6E7] $A9C6C5 18 CLC $A9C6C6 69 06 00 ADC #$0006 $A9C6C9 8F 0E 78 7E STA $7E780E[$7E:780E] $A9C6CD C9 00 01 CMP #$0100 $A9C6D0 90 2A BCC $2A [$C6FC] $A9C6D2 A9 80 00 LDA #$0080 $A9C6D5 8F 0E 78 7E STA $7E780E[$7E:780E] $A9C6D9 AD 7A 0F LDA $0F7A [$A9:0F7A] $A9C6DC C9 80 00 CMP #$0080 $A9C6DF 10 2E BPL $2E [$C70F] $A9C6E1 A9 A4 97 LDA #$97A4 $A9C6E4 4C 2D C4 JMP $C42D [$A9:C42D] $A9C6E7 A9 01 00 LDA #$0001 $A9C6EA 8F 0E 78 7E STA $7E780E[$7E:780E] $A9C6EE AD 7A 0F LDA $0F7A [$A9:0F7A] $A9C6F1 C9 30 00 CMP #$0030 $A9C6F4 30 0E BMI $0E [$C704] $A9C6F6 A9 C6 98 LDA #$98C6 $A9C6F9 4C 2D C4 JMP $C42D [$A9:C42D] $A9C6FC AD 7A 0F LDA $0F7A [$A9:0F7A] $A9C6FF C9 30 00 CMP #$0030 $A9C702 10 0B BPL $0B [$C70F] *$A9C704 AD E5 05 LDA $05E5 [$A9:05E5]* $A9C707 29 FF 0F AND #$0FFF $A9C70A C9 C0 0F CMP #$0FC0 $A9C70D 10 C3 BPL $C3 [$C6D2] $A9C70F 60 RTS --- 94. --- $A9C9C3 A9 00 00 LDA #$0000 $A9C9C6 9F 08 78 7E STA $7E7808,x[$7E:7888] $A9C9CA 1A INC A $A9C9CB 9F 12 78 7E STA $7E7812,x[$7E:7892] *$A9C9CF AD E5 05 LDA $05E5 [$A9:05E5]* $A9C9D2 29 FF 0F AND #$0FFF $A9C9D5 C9 A0 0F CMP #$0FA0 $A9C9D8 90 07 BCC $07 [$C9E1] $A9C9DA A9 52 00 LDA #$0052 $A9C9DD 22 CB 90 80 JSL $8090CB[$80:90CB] $A9C9E1 BF 1C 78 7E LDA $7E781C,x[$7E:789C] $A9C9E5 A8 TAY $A9C9E6 B9 00 00 LDA $0000,y[$A9:CA24] $A9C9E9 85 12 STA $12 [$00:0012] $A9C9EB B9 02 00 LDA $0002,y[$A9:CA26] $A9C9EE 85 14 STA $14 [$00:0014] $A9C9F0 B9 06 00 LDA $0006,y[$A9:CA2A] $A9C9F3 85 16 STA $16 [$00:0016] $A9C9F5 B9 04 00 LDA $0004,y[$A9:CA28] $A9C9F8 5A PHY $A9C9F9 A8 TAY $A9C9FA F4 FF C9 PEA $C9FF $A9C9FD 6C 16 00 JMP ($0016)[$A9:F466] $A9CA00 7A PLY $A9CA01 A9 04 00 LDA #$0004 $A9CA04 85 16 STA $16 [$00:0016] $A9CA06 85 18 STA $18 [$00:0018] $A9CA08 22 06 EF A9 JSL $A9EF06[$A9:EF06] $A9CA0C B0 11 BCS $11 [$CA1F] $A9CA0E B9 08 00 LDA $0008,y[$A9:CA2C] $A9CA11 30 0D BMI $0D [$CA20] $A9CA13 BF 1C 78 7E LDA $7E781C,x[$7E:789C] $A9CA17 18 CLC $A9CA18 69 08 00 ADC #$0008 $A9CA1B 9F 1C 78 7E STA $7E781C,x[$7E:789C] $A9CA1F 60 RTS --- 95. --- $A9D549 db C0, 00, 00, 7E, 60, 20, 90, 70, C0, 00, 00, 7E, A0, 21, 90, 71, 00, 01, 00, 7E, C0, 22, 80, 72, 00, 01, 00, 7E, 00, 24, 80, 73, 00, 01, 00, 7E, 40, 25, 80, 74, 00, 01, 00, 7E, 80, 26, 80, 75, 20, 01, 00, 7E, 20, 96, 00, 71, 00, 00, 00, 01, 00, 7E, C0, 27, 80, 76, 00, 01, 00, 7E, 00, 29, 80, 77, 00, 01, 00, 7E, 40, 2A, 80, 78, 20, 01, 00, 7E, 60, 2B, 70, 79, 40, 01, 00, 7E, 80, 2C, 60, 7A, 40, 01, 00, 7E, C0, 2D, 60, 7B, 00, 01, 00, 7E, 00, 95, 00, 70, 00, 00 $A9D5BD DA PHX *$A9D5BE AD E5 05 LDA $05E5 [$A9:05E5]* $A9D5C1 29 1F 00 AND #$001F $A9D5C4 18 CLC $A9D5C5 69 10 01 ADC #$0110 $A9D5C8 85 12 STA $12 [$00:0012] $A9D5CA A9 BC 00 LDA #$00BC $A9D5CD 85 14 STA $14 [$00:0014] $A9D5CF A9 0A 00 LDA #$000A $A9D5D2 A0 09 E5 LDY #$E509 $A9D5D5 22 97 80 86 JSL $868097[$86:8097] $A9D5D9 AD 44 0E LDA $0E44 [$A9:0E44] $A9D5DC 29 07 00 AND #$0007 $A9D5DF D0 07 BNE $07 [$D5E8] $A9D5E1 A9 10 00 LDA #$0010 $A9D5E4 22 CB 90 80 JSL $8090CB[$80:90CB] $A9D5E8 FA PLX $A9D5E9 60 RTS --- 96. --- $A9DBE0 8D 02 88 STA $8802 [$7E:8802] $A9DBE3 A8 TAY $A9DBE4 29 F8 FF AND #$FFF8 $A9DBE7 4A LSR A $A9DBE8 4A LSR A $A9DBE9 AA TAX $A9DBEA 98 TYA $A9DBEB 29 07 00 AND #$0007 $A9DBEE C9 06 00 CMP #$0006 $A9DBF1 B0 09 BCS $09 [$DBFC] $A9DBF3 9B TXY $A9DBF4 0A ASL A $A9DBF5 77 14 ADC [$14],y[$A9:E23C] $A9DBF7 AA TAX $A9DBF8 A8 TAY $A9DBF9 6C 12 00 JMP ($0012)[$A9:E38B] $A9DBFC 9B TXY $A9DBFD 0A ASL A $A9DBFE 77 14 ADC [$14],y[$A9:E23C] $A9DC00 AA TAX $A9DC01 6D 10 88 ADC $8810 [$7E:8810] $A9DC04 A8 TAY $A9DC05 6C 12 00 JMP ($0012)[$A9:E272] $A9DC08 DA PHX *$A9DC09 AD E5 05 LDA $05E5 [$A9:05E5]* $A9DC0C 29 1A 00 AND #$001A $A9DC0F AE 54 0E LDX $0E54 [$A9:0E54] $A9DC12 18 CLC $A9DC13 7D 7A 0F ADC $0F7A,x[$A9:107A] $A9DC16 18 CLC $A9DC17 69 F2 FF ADC #$FFF2 $A9DC1A 85 12 STA $12 [$00:0012] $A9DC1C BD 7E 0F LDA $0F7E,x[$A9:107E] $A9DC1F 18 CLC $A9DC20 69 10 00 ADC #$0010 $A9DC23 85 14 STA $14 [$00:0014] $A9DC25 A9 0A 00 LDA #$000A $A9DC28 A0 09 E5 LDY #$E509 $A9DC2B 22 97 80 86 JSL $868097[$86:8097] $A9DC2F AD 44 0E LDA $0E44 [$A9:0E44] $A9DC32 29 07 00 AND #$0007 $A9DC35 D0 07 BNE $07 [$DC3E] $A9DC37 A9 10 00 LDA #$0010 $A9DC3A 22 B7 90 80 JSL $8090B7[$80:90B7] $A9DC3E FA PLX $A9DC3F 60 RTS --- 97. --- $A9F180 BD 7A 0F LDA $0F7A,x[$A9:0F7A] $A9F183 38 SEC $A9F184 ED F6 0A SBC $0AF6 [$A9:0AF6] $A9F187 10 04 BPL $04 [$F18D] $A9F18D C9 08 00 CMP #$0008 $A9F190 B0 09 BCS $09 [$F19B] $A9F19B BF 04 78 7E LDA $7E7804,x[$7E:7804] $A9F19F F0 09 BEQ $09 [$F1AA] $A9F1AA 9F 04 78 7E STA $7E7804,x[$7E:7804] $A9F1AE C9 00 01 CMP #$0100 $A9F1B1 B0 3D BCS $3D [$F1F0] $A9F1B3 AD F6 0A LDA $0AF6 [$A9:0AF6] $A9F1B6 C9 00 02 CMP #$0200 $A9F1B9 30 35 BMI $35 [$F1F0] $A9F1BB BF 02 78 7E LDA $7E7802,x[$7E:7802] $A9F1BF F0 0A BEQ $0A [$F1CB] $A9F1CB A0 50 00 LDY #$0050 *$A9F1CE AD E5 05 LDA $05E5 [$A9:05E5]* $A9F1D1 29 FF 0F AND #$0FFF $A9F1D4 C9 E0 0F CMP #$0FE0 $A9F1D7 90 07 BCC $07 [$F1E0] $A9F1E0 84 14 STY $14 [$00:0014] $A9F1E2 AD F6 0A LDA $0AF6 [$A9:0AF6] $A9F1E5 85 12 STA $12 [$00:0012] $A9F1E7 AE 54 0E LDX $0E54 [$A9:0E54] $A9F1EA A0 0A 00 LDY #$000A $A9F1ED 4C 51 F4 JMP $F451 [$A9:F451] $A9F1F0 AE 54 0E LDX $0E54 [$A9:0E54] $A9F1F3 A9 FA F1 LDA #$F1FA $A9F1F6 9D A8 0F STA $0FA8,x[$A9:0FA8] $A9F1F9 60 RTS --- 98. --- $A9F3D4 BD 7A 0F LDA $0F7A,x[$A9:0F7A] $A9F3D7 38 SEC $A9F3D8 ED F6 0A SBC $0AF6 [$A9:0AF6] $A9F3DB 10 04 BPL $04 [$F3E1] $A9F3DD 49 FF FF EOR #$FFFF $A9F3E0 1A INC A $A9F3E1 C9 02 00 CMP #$0002 $A9F3E4 B0 09 BCS $09 [$F3EF] $A9F3E6 BF 04 78 7E LDA $7E7804,x[$7E:7804] $A9F3EA 69 02 00 ADC #$0002 $A9F3ED 80 0F BRA $0F [$F3FE] $A9F3EF BF 04 78 7E LDA $7E7804,x[$7E:7804] $A9F3F3 F0 09 BEQ $09 [$F3FE] $A9F3F5 38 SEC $A9F3F6 E9 01 00 SBC #$0001 $A9F3F9 10 03 BPL $03 [$F3FE] $A9F3FE 9F 04 78 7E STA $7E7804,x[$7E:7804] $A9F402 BF 02 78 7E LDA $7E7802,x[$7E:7802] $A9F406 F0 0F BEQ $0F [$F417] $A9F408 3A DEC A $A9F409 9F 02 78 7E STA $7E7802,x[$7E:7802] $A9F40D AD FA 0A LDA $0AFA [$A9:0AFA] $A9F410 18 CLC $A9F411 69 EE FF ADC #$FFEE $A9F414 A8 TAY $A9F415 80 15 BRA $15 [$F42C] $A9F417 A0 50 00 LDY #$0050 *$A9F41A AD E5 05 LDA $05E5 [$A9:05E5]* $A9F41D 29 FF 0F AND #$0FFF $A9F420 C9 E0 0F CMP #$0FE0 $A9F423 90 07 BCC $07 [$F42C] $A9F425 A9 20 00 LDA #$0020 $A9F428 9F 02 78 7E STA $7E7802,x[$7E:7802] $A9F42C 84 14 STY $14 [$00:0014] $A9F42E AD F6 0A LDA $0AF6 [$A9:0AF6] $A9F431 85 12 STA $12 [$00:0012] $A9F433 AE 54 0E LDX $0E54 [$A9:0E54] $A9F436 A0 08 00 LDY #$0008 $A9F439 20 51 F4 JSR $F451 [$A9:F451] $A9F43C BF 04 78 7E LDA $7E7804,x[$7E:7804] $A9F440 C9 00 04 CMP #$0400 $A9F443 B0 0A BCS $0A [$F44F] $A9F445 AD F6 0A LDA $0AF6 [$A9:0AF6] $A9F448 C9 80 00 CMP #$0080 $A9F44B 30 02 BMI $02 [$F44F] $A9F44F 38 SEC $A9F450 60 RTS --- 99. --- *$A9F994 AD E5 05 LDA $05E5 [$A9:05E5]* $A9F997 10 0A BPL $0A [$F9A3] $A9F999 A9 52 00 LDA #$0052 $A9F99C 22 CB 90 80 JSL $8090CB[$80:90CB] $A9F9A0 C8 INY $A9F9A1 C8 INY $A9F9A2 6B RTL ---
Some further routines that involve $05E5 that aren't covered in PJboy's disassembly: (The pc address $110AA7 corresponds to the address $A28AA7.)
101. --- $110AA7 (something to do with firing projectiles?; a counter between shots?) AE 54 0E LDX $0E54 ;Enemy Index 22 11 81 80 JSL $808111 ; guh? AD E5 05 LDA $05E5 ;Load a random number 18 CLC 7D A4 0F ADC $0FA4, X ;Add it to this and X 29 FF 00 AND #$00FF ;AND it with 00FF C9 02 00 CMP #$0002 ;Compare it to 0002 10 09 BPL ;Branch to CLC AND RTS A9 75 8A LDA #$8A75 ; 9D B2 0F STA $0FB2 ; 38 SEC 80 01 BRA ;Branch to RTS 18 CLC 60 RTS --- 102. --- $A2:8AA7>11:0AA7 Projectile Firing AI $A2:8AA7 AE 54 0E LDX $0E54 ;Enemy Index $A2:8AAA 22 11 81 80 JSL $808111 ;JSL to Random Number Generator $A2:8AAE AD E5 05 LDA $05E5 $A2:8AB1 18 CLC $A2:8AB2 7D A4 0F ADC $0FA4, X $A2:8AB5 29 FF 00 AND #$00FF $A2:8AB8 C9 02 00 CMP #$0002 $A2:8ABB 10 09 BPL ;CLC if pos, Fire Projectile and SEC if neg, then RTS $A2:8ABD A9 75 8A LDA #$8A75 ;Load "Fire Projectile" value $A2:8AC0 9D B2 0F STA $0FB2, X ;and store it to current action $A2:8AC3 38 SEC $A2:8AC4 80 01 BRA ;Branch to RTS $A2:8AC6 18 CLC $A2:8AC7 60 RTS --- 103. --- $A7BA2E AF 40 79 7E LDA $7E7940[$7E:7940] ;\ $A7BA32 3A DEC A ;} Decrement Kraid foot next function $A7BA33 8F 40 79 7E STA $7E7940[$7E:7940] ;/ $A7BA37 D0 43 BNE $43 [$BA7C] ; If Kraid foot next function != 0: return $A7BA39 A2 00 00 LDX #$0000 ;\ ;| $A7BA3C AD 7A 0F LDA $0F7A [$7E:0F7A] ;| $A7BA3F DD 7D BA CMP $BA7D,x[$A7:BA7D] ;| $A7BA42 F0 0C BEQ $0C [$BA50] ;| $A7BA44 E8 INX ;} X = index of Kraid X position in [$BA7D + X] or 18h (18h should fail horribly though) :/ $A7BA45 E8 INX ;| $A7BA46 E8 INX ;| $A7BA47 E8 INX ;| $A7BA48 E0 18 00 CPX #$0018 ;| $A7BA4B 30 EF BMI $EF [$BA3C] ;/ $A7BA50 AD E5 05 LDA $05E5 [$7E:05E5] ;\ $A7BA53 29 1C 00 AND #$001C ;| $A7BA56 C9 10 00 CMP #$0010 ;} A = randomly 10h, 14h, 18h or 1Ch $A7BA59 30 03 BMI $03 [$BA5E] ;| $A7BA5B A9 10 00 LDA #$0010 ;/ $A7BA5E 18 CLC ;\ $A7BA5F 7D 7F BA ADC $BA7F,x[$A7:BA83] ;} X = [$BA7D + X+2] + A $A7BA62 AA TAX ;/ $A7BA63 BD 02 00 LDA $0002,x[$A7:BABB] ;\ $A7BA66 A8 TAY ;} Y = [X+2] $A7BA67 BD 00 00 LDA $0000,x[$A7:BAB9] ;\ $A7BA6A CD 7A 0F CMP $0F7A [$7E:0F7A] ;} If [X] < Kraid X position: $A7BA6D 10 07 BPL $07 [$BA76] ;/ $A7BA6F BD 00 00 LDA $0000,x[$A7:BAF9] $A7BA72 20 29 BB JSR $BB29 [$A7:BB29] ; Execute subroutine $BB29 (done) $A7BA75 6B RTL --- 104. --- $A7BA76 BD 00 00 LDA $0000,x[$A7:BAB9] ;\ Else ([X] >= Kraid X position): $A7BA79 20 0D BB JSR $BB0D [$A7:BB0D] ; Execute subroutine $BB0D (done) $A7BA7C 6B RTL $A7BBEA 20 32 AF JSR $AF32 [$A7:AF32] ; Process Kraid instruction ($0FAA) $A7BBED C9 FF FF CMP #$FFFF ;\ $A7BBF0 F0 31 BEQ $31 [$BC23] ;} If not returned A = FFFFh: $A7BBF2 AD AA 0F LDA $0FAA [$7E:0FAA] ;\ $A7BBF5 38 SEC ;| $A7BBF6 E9 08 00 SBC #$0008 ;| $A7BBF9 AA TAX ;} If [[$0FAA]-6] == $A0C8: $A7BBFA BD 02 00 LDA $0002,x[$A7:96D4] ;| $A7BBFD C9 C8 A0 CMP #$A0C8 ;| $A7BC00 D0 20 BNE $20 [$BC22] ;/ $A7BC02 AD AC 0F LDA $0FAC [$7E:0FAC] ;\ $A7BC05 29 0F 00 AND #$000F ;} If [$0FAC] is multiple of 16: $A7BC08 D0 18 BNE $18 [$BC22] ;/ $A7BC0A A0 45 9C LDY #$9C45 ;\ $A7BC0D AD E5 05 LDA $05E5 [$7E:05E5] ;| $A7BC10 29 0E 00 AND #$000E ;| $A7BC13 AA TAX ;} Spawn ER projectile $9C45 with random parameter FB40h/FB80h/FC00h/FC40h $A7BC14 BD 65 BC LDA $BC65,x[$A7:BC65] ;| $A7BC17 22 27 80 86 JSL $868027[$86:8027] ;/ $A7BC1B A9 1E 00 LDA #$001E ;\ $A7BC1E 22 4D 91 80 JSL $80914D[$80:914D] ;} Sound library 3: 1Eh $A7BC22 6B RTL --- 105. Ridley AI --- B5C4: Consider Tailbouncing { LDA #$000B STA $7E201E ;Movement threshold LDA #$0180 STA $7E2012 ;Tail extension rate LDA #$B5E5 STA $0FA8 ;Next main AI script LDA $05E5 ;Random number AND #$001F CLC ADC #$0020 ;20 - 3F STA $0FB2 ;Variable use timer B5E5: Considering tailbouncing LDA $7E7820 ;Facing direction. 0 = left, 1 = forward, 2 = right ASL A TAY LDA $B60D, Y ;00C0, 0080, or 0040 STA $12 JSR $B641 ;Fly towards $12 (X position) / Samus's Y position. If Samus is not spin jumping, SEC before RTS. Else CLC and randomly fireball if allowed. { LDA $0AFA ;Samus's Y position CMP #$0160 BMI BRANCH_ALPHA LDA #$0160 BRANCH_ALPHA ;Maximum cap is 160 STA $14 LDX #$0000 JSR $B42E ;Y = 4, 8, A, or C, depending on general speed byte { LDA $7E7824 ;General speed byte ASL A TAY LDA $B439, Y ;0004, 0008, 000A, 000C TAY RTS } JSR $D523 ;Accelerates Ridley towards the desired X/Y ($12/$14). No deceleration boost ($1A), Y is index value to find acceleration divisor ($18), X is enemy's index LDA #$0001 STA $7E2004 ;Tail fling trigger LDA $0A1F ;Samus's movement type AND #$00FF CMP #$0003 ;Spin jump BNE BRANCH_BETA LDA $05E5 ;Random number AND #$00FF CMP #$0080 BCC BRANCH_GAMMA ;50% chance of not fireballing LDA $7E781E ;Current sound playing? BNE BRANCH_GAMMA LDA $7E7820 ;Facing direction DEC A BEQ BRANCH_GAMMA ;Branch if facing forward LDA #$E73A ;Fireballing AI JSR $D467 ;STA to GraphicAI instruction (0F92), delay (0F94) = 1, STZ $0F90 BRANCH_GAMMA CLC RTS BRANCH_BETA SEC RTS } --- 106. Ridley AI --- JSR $B90F ;Set speeds for tailbouncing { LDA $05E5 ;Random number AND #$0003 ASL A TAY LDA $B965, Y ;B975, B981, B98D, B999. Options for absolute X speed from tail bounces STA $12 LDA $B96D, Y ;B9A5, B9B1, B9BD, B9C9. Options for Y speed from tail bounces STA $14 LDA $7E7824 ;General speed byte (max is 3) CLC ADC #$0002 ;*cough*incinc*cough* ASL A TAY LDA $B94D, Y ;20, 30, 40, 50 STA $7E200E LDA $B959, Y ;40, 80, 400, 500 STA $7E200C ;For below: Each pair of parenthesis are the 4 speed choices for a single one of the above randomly chosen pointers. LDA ($14), Y ;(FCE0, FC20, FA80, F980), (FC80, FBC0, FA60, F960), (FC60, FB80, FA40, F940), (FC40, FB60, FA20, F920) STA $0FAC ;Ridley's Y speed LDA ($12), Y ;(A0, A8, B0, B8), (C0, C8, D0, D8), (E0, E8, F0, F8), (100, 108, 110, 118) LDX $0FAA ;Ridley's X speed BPL BRANCH_ALPHA EOR #$FFFF INC A BRANCH_ALPHA ;Keep sign from old X speed, magnitude from lookup STA $0FAA RTS } LDA #$B70E STA $0FA8 ;Next AI script LDA $05E5 ;Random number AND #$003F ADC #$0080 STA $0FB2 ;AI script timer. In this specific case, the timer is decremented every frame Ridley is moving up from tailbouncing. BRANCH_ALPHA RTS } --- 107. Ridley AI --- BCC BRANCH_GAMMA ;Branch if no collisions with ground LDA $7E20A4 ;Tail tip X position STA $12 LDA $7E20A6 ;Tail tip Y position CLC ADC #$000C STA $14 LDA #$0009 LDY #$E509 JSL $868097 ;Create sprite: smoke where tail tip hit the ground LDA #$0076 JSL $8090CB ;Play sound LDA #$000D STA $183E ;Room shake type LDA #$0004 STA $1840 ;Room shake duration JSR $B8A9 ; { LDA $0FAA ;Ridley X speed BNE BRANCH_ALPHA ;Branch if moving LDA #$00C0 BIT $0F79 ;Low byte of Ridley's X position BPL BRANCH_BETA ;Branch if Ridley is on the left half of the room EOR #$FFFF INC A BRANCH_BETA ;Set Ridley to moving towards the center STA $0FAA ;Set Ridley's speed to 0.C pixels per frame BRANCH_ALPHA LDA $0F7A ;Ridley's X position SEC SBC $0AF6 ;Samus's X position EOR $0FAA ;Ridley's X speed BMI BRANCH_GAMMA ;Branch if Ridley is moving towards Samus LDA $0F7A ;Ridley's X position CMP $7E8004 ;Leftmost allowed X position BMI BRANCH_DELTA CMP $7E8006 ;Rightmost allowed X position BPL BRANCH_EPSILON LDA $05E5 ;Random number CMP #$0555 ;... 1 / 30 chance? BCC BRANCH_ZETA BRANCH_THETA LDA $0FAA EOR #$FFFF INC A STA $0FAA ;Reverse Ridley's X speed BRANCH_ZETA RTS ;Summary: If Ridley is within the room boundaries and moving away from Samus, 2F/30 times reverse directions BRANCH_GAMMA LDA $0F7A ;Ridley's X position CMP $7E8004 ;Leftmost allowed X position BMI BRANCH_DELTA CMP $7E8006 ;Rightmost allowed X position BPL BRANCH_EPSILON LDA $05E5 CMP #$0555 ;1/30 chance BCC BRANCH_THETA ;Switch directions (If Ridley is within the room boundaries and moving towards Samus, 1/30 times reverse directions RTS --- 108. Ridley AI --- $132288 ALTERNATE ENTRY POINT ;Ceres Ridley's Main AI LDA #$7FFF STA $0F8C ;Ridley's health PEA #$A293 ;Right before the LDA $093F JMP ($0FA8) ;Basically JSR ($0FA8) instead, run main AI script LDA $093F ;Unknown, initialized to 0 BNE BRANCH_ZETA LDA $7E7804 ;Check if Ridley is active? BEQ BRANCH_THETA JSR $D4DA ;Make wings/tail flash when hit JSR $D86B ;Handles movement and main body wall collisions JSR $D97D ;Handle wing flapping JSR $A2BD ;1/100 chance of setting 7E:201E to 7-16 (all hex numbers) { LDA $05E5 ;Random number CMP #$FF00 BCC BRANCH_MU LDA $05E5 AND #$000F ADC #$0007 STA $7E201E ;Tail movement threshold BRANCH_MU RTS } --- 109. Ridley AI --- BCC BRANCH_ALPHA ;Skip LDA $05E5 ;Random number AND #$00FF CMP #$00F0 ;1/10 chance of skipping distance check BCS BRANCH_BETA LDA $0AF6 ;Samus X SEC SBC $000F7A ;Ridley X. o_O BPL BRANCH_GAMMA EOR #$FFFF INC A BRANCH_GAMMA ;Absolute X distance CMP #$0080 ;Half a screen BCS BRANCH_ALPHA BRANCH_BETA ;All tail parts are rotating, + 1/10 chance or Ridley is within 1/2 a screen of Samus. LDA $201C ;Optional maximum AND $201A ;Optional minimum BPL BRANCH_ALPHA LDA #$3F00 STA $201A LDA #$0008 STA $2014 ;Tail parts' angular speed RTS --- 110. Ridley AI --- CC39: Fling tail at Samus: Setup max angles (CBFE), then if tail is 'prepped' (all tail parts rotating, target angle not set yet, $2004 (trigger?) is set), target an angle. Target angle is first projectile near tail tip, in a 8x8 tile square centered on tail tip, or Samus. Max rotational speed, 8. If no tail parts are currently moving, start the first one moving. { JSR $CBFE ;Set min and max tail angles based on direction JSR $CC1E ;SEC if all tail parts are rotating, else CLC BCC BRANCH_ALPHA JSR $CC7D ; { LDA $2004 ;Tail fling trigger BEQ BRANCH_ALPHA LDA $201C AND $201A BMI BRANCH_BETA ;Branch if optional limits are unused BRANCH_ALPHA LDA $2002 ;Main battle AI flag (0 = inactive, 1 = active, FFFF = dead) BEQ BRANCH_GAMMA LDA $05E5 ;RNG AND #$00FF CMP #$00F0 BCS BRANCH_BETA ;Branch 1/10 times LDA $0AF6 ;Samus X position SEC SBC $0F7A ;Ridley X position BPL BRANCH_DELTA EOR #$FFFF INC A BRANCH_DELTA ;Absolute distance CMP #$0080 ;1/2 a screen BCS BRANCH_GAMMA LDA #$0000 BRA BRANCH_EPSILON BRANCH_BETA ;If Norfair, only here if 2004 is set and angle targets are currently unused LDA $2004 DEC A BRANCH_EPSILON JSR $D19D ;Target an angle (towards a missile or Samus) for tail. Note: Actual angle is actually twice the angle chosen, since each tail segment doubles it. Also, tail circles 2*A amount of times first { AND #$00FF XBA STA $200A ;Revolutions to make LDA $7820 ;Direction facing DEC A BEQ BRANCH_ALPHA ;Branch if facing forward LDA $7802 ;Main battle AI BEQ BRANCH_ALPHA ;Branch if inactive JSR $D242 ;Target a missile/super missile if available { LDA $20A4 ;Tail tip X position STA $12 LDA $20A6 ;Tail tip Y position STA $14 LDA #$0040 ;Tail tip detection area STA $16 ;X size STA $18 ;Y size LDA $0CCE ;Samus's projectile counter BNE BRANCH_ALPHA ;Branch if there are projectiles CLC RTS --- 111. Ridley AI --- CDAA: Extend tail. Happens only while tail bouncing, moving downwards, and no tail parts currently rotating { JSR $CBFE ;Set min and max tail angles based on direction JSR $CC1E ;SEC if all tail parts are rotating, else CLC BCC BRANCH_ALPHA ;Always branches? { ;All this code NEVER HAPPENS! Just go to Branch_Alpha LDA $05E5 ;Random number AND #$00FF CMP #$00F0 ;1/10 chance of branching BCS BRANCH_BETA LDA $0AF6 ;Samus's X position SEC SBC $000F7A ;Ridley's X position BPL BRANCH_GAMMA EOR #$FFFF INC A BRANCH_GAMMA ;Absolute distance CMP #$0080 ;1/2 a screen BCS BRANCH_ALPHA BRANCH_BETA LDA $201C AND $201A BPL BRANCH_ALPHA ;Branch if both target angles are used LDA #$3F00 STA $201A ;Set lower (clockwise) target angle LDA #$0008 STA $2014 RTS } ---