C2/0000: 4C 0C 00 JMP $000C C2/0003: 4C 1B 11 JMP $111B C2/0006: 4C 77 0E JMP $0E77 (load equipment data for character in A) C2/0009: 4C 30 47 JMP $4730 C2/000C: 08 PHP C2/000D: E2 30 SEP #$30 C2/000F: A9 7E LDA #$7E C2/0011: 48 PHA C2/0012: AB PLB C2/0013: 20 1E 26 JSR $261E C2/0016: 20 ED 23 JSR $23ED (Initialize many things at battle start) C2/0019: E6 BE INC $BE (increment RNG table index. start of MAIN BATTLE LOOP.) C2/001B: AD 02 34 LDA $3402 (Get the number of turns due to Quick) C2/001E: D0 03 BNE $0023 (Branch if not zero; either we are in a regular (i.e. non-Quick) turn, or else we are in the process of executing Quick turns. Only if the final Quick turn just passed will we do the next line. Either way, we still need to decrement the number of Quick turns.) C2/0020: CE 02 34 DEC $3402 (Decrement the number of turns due to Quick) C2/0023: A9 01 LDA #$01 C2/0025: 20 11 64 JSR $6411 C2/0028: 20 95 20 JSR $2095 (Recalculate applicable characters' properties from their current equipment and relics) C2/002B: AD 58 3A LDA $3A58 (was anybody's main menu flagged to be redrawn right away?) C2/002E: F0 03 BEQ $0033 (branch if not) C2/0030: 20 CC 00 JSR $00CC (redraw the applicable menus) C2/0033: AD 0A 34 LDA $340A (get entry point to Special Action Queue. high-priority stuff, including auto-spellcasts from equipment, and timed statuses expiring.) C2/0036: C9 FF CMP #$FF C2/0038: F0 03 BEQ $003D (branch if it's null, as queue is empty) C2/003A: 4C 63 21 JMP $2163 (Process one record from Special Action linked list queue) C2/003D: A9 04 LDA #$04 C2/003F: 1C 46 3A TRB $3A46 (clear flag) C2/0042: F0 05 BEQ $0049 (branch if we're not about to have Gau return at the end of a Veldt battle) C2/0044: 20 91 0A JSR $0A91 (for all living, present, non-Jumping characters: remove entity from Wait Queue, remove all records from their conventional linked list queue, and default some poses) C2/0047: 80 D0 BRA $0019 (branch to top of main battle loop) C2/0049: AE 07 34 LDX $3407 (did we leave off processing an entity's Counterattack and Periodic Damage/Healing linked list queue?) C2/004C: 10 11 BPL $005F (if so, go resume processing it) C2/004E: AE 68 3A LDX $3A68 (get position of next Counterattack and Periodic Damage/Healing [from Seizure/Regen/etc.] Queue slot to read.) C2/0051: EC 69 3A CPX $3A69 (does it match position of the next available [unused] queue slot? iow, have we read through the end of queue?) C2/0054: F0 0C BEQ $0062 (if so, branch) C2/0056: EE 68 3A INC $3A68 (increment next Counterattack / Periodic Damage Queue position) C2/0059: BD 20 39 LDA $3920,X (see who's in line at current position) C2/005C: 30 F0 BMI $004E (if it's null entry, skip it and check next one) C2/005E: AA TAX C2/005F: 4C 7B 4B JMP $4B7B (process one or two records from entity's Counterattack and Periodic Damage/Healing linked list queue) C2/0062: AD 3A 3A LDA $3A3A (bitfield of dead-ish or escaped monsters) C2/0065: 2D 2F 2F AND $2F2F (bitfield of remaining enemies) C2/0068: F0 05 BEQ $006F C2/006A: 1C 2F 2F TRB $2F2F (if any entity in both, rectify by clearing from latter...) C2/006D: 80 AA BRA $0019 (...and go to start of main battle loop) C2/006F: A9 20 LDA #$20 C2/0071: 14 B0 TRB $B0 (clear flag) C2/0073: F0 08 BEQ $007D (branch if no entity has executed conventional turn since this point was last reached) C2/0075: 20 73 5C JSR $5C73 (Update Can't Escape, Can't Run, Run Difficulty, and onscreen list of enemy names, based on currently present enemies) C2/0078: A9 06 LDA #$06 C2/007A: 20 11 64 JSR $6411 C2/007D: A9 04 LDA #$04 C2/007F: 14 B0 TRB $B0 (indicate that we've reached this point since C2/5BF3 last executed [and considered queueing Flee command]) C2/0081: 20 ED 47 JSR $47ED C2/0084: A9 FF LDA #$FF C2/0086: A2 03 LDX #$03 C2/0088: 9D FC 33 STA $33FC,X (batch of Counterattacks and Periodic Damage/Healing is over, so null two bitfields: 16-bit $33FC (Entity has done a "Run Monster Script" [Command 1Fh] in this batch) 16-bit $33FE (Entity was targeted in the attack that triggered its counter, and by somebody/something other than itself) ) C2/008B: CA DEX C2/008C: 10 FA BPL $0088 C2/008E: A9 01 LDA #$01 C2/0090: 14 B1 TRB $B1 (indicate it's a conventional attack) C2/0092: AE 64 3A LDX $3A64 (get position of next Wait Queue slot to read. yes, we even wait in order to wait; they're very polite over in Japan.) C2/0095: EC 65 3A CPX $3A65 (does it match position of the next available [unused] queue slot? iow, have we read through the end of queue?) C2/0098: F0 0C BEQ $00A6 (if so, branch) C2/009A: EE 64 3A INC $3A64 (increment next Wait Queue position) C2/009D: BD 20 37 LDA $3720,X (see who's in line at current position) C2/00A0: 30 F0 BMI $0092 (if it's null entry, skip it and check next one) C2/00A2: AA TAX C2/00A3: 4C 88 21 JMP $2188 (Do early processing of one record from entity's conventional linked list queue, establish "time to wait", and visually enter ready stance if character) C2/00A6: AE 06 34 LDX $3406 (did C2/00F9 leave off in later processing of an entity's conventional linked list queue?) C2/00A9: 10 17 BPL $00C2 (if so, go resume processing it) C2/00AB: AE 66 3A LDX $3A66 (get position of next Action Queue slot to read) C2/00AE: EC 67 3A CPX $3A67 (does it match position of the next available [unused] queue slot? iow, have we read through the end of queue?) C2/00B1: D0 06 BNE $00B9 (if not, branch) C2/00B3: 9C 95 3A STZ $3A95 (allow C2/47FB to check for combat end) C2/00B6: 4C 19 00 JMP $0019 (branch to start of main battle loop) C2/00B9: EE 66 3A INC $3A66 (increment next Action Queue position) C2/00BC: BD 20 38 LDA $3820,X (see who's in line at current position) C2/00BF: 30 EA BMI $00AB (if it's null entry, which can happen from Palidor and who knows what else, skip it and check next one) C2/00C1: AA TAX C2/00C2: 4C F9 00 JMP $00F9 (Do later processing of one or more records from entity's conventional linked list queue) C2/00C5: A9 09 LDA #$09 C2/00C7: 20 11 64 JSR $6411 C2/00CA: 28 PLP C2/00CB: 6B RTL (Redraw main menus of characters who requested it in C2/527D) (Will keep grayed versus white commands up-to-date.) C2/00CC: A2 06 LDX #$06 C2/00CE: BD 18 30 LDA $3018,X C2/00D1: 1C 58 3A TRB $3A58 (clear flag to redraw this character's menu [note that switching between characters with X and Y will still redraw]) C2/00D4: F0 09 BEQ $00DF (branch if it hadn't been set) C2/00D6: 86 10 STX $10 C2/00D8: 46 10 LSR $10 C2/00DA: A9 0B LDA #$0B C2/00DC: 20 11 64 JSR $6411 (this must be responsible for the menu redrawing) C2/00DF: CA DEX C2/00E0: CA DEX C2/00E1: 10 EB BPL $00CE (loop for all 4 party members) C2/00E3: 60 RTS C2/00E4: 0C 2C 3F TSB $3F2C (set "Jumping" flag for whomever is held in A) C2/00E7: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/00E9: BD A0 3A LDA $3AA0,X C2/00EC: 09 08 ORA #$08 C2/00EE: 29 DF AND #$DF C2/00F0: 9D A0 3A STA $3AA0,X ($3AA0: turn on bit 3 and turn off bit 5) C2/00F3: 9E B5 3A STZ $3AB5,X (zero top byte of Wait Timer) C2/00F6: 4C 66 4E JMP $4E66 (put entity in wait queue) (Do later processing of one or more records from entity's conventional linked list queue) C2/00F9: 38 SEC C2/00FA: 6E 06 34 ROR $3406 (make $3406 negative. this defaults to not leaving off processing any entity.) C2/00FD: F4 18 00 PEA $0018 (will return to C2/0019) C2/0100: A9 12 LDA #$12 C2/0102: 85 B5 STA $B5 C2/0104: 8D 7C 3A STA $3A7C C2/0107: BD CC 32 LDA $32CC,X (get entry point to entity's conventional linked list queue) C2/010A: 30 77 BMI $0183 (branch if null. that can happen if a monster script ran and didn't perform anything; e.g. Command F0h chose an FEh. alternatively, a monster script ran when this linked list queue was otherwise empty, so command it queued added records to both this list and the $3820 "who" queue. then this list is emptied right before executing the command, without adjusting $3A66 to delete the $3820 queue record.) (in any case, with this test as a safeguard and C2/00B9 getting rid of the stranded $3820 record, we're good.) C2/010C: 0A ASL C2/010D: A8 TAY (adjust pointer for 16-bit fields) C2/010E: B9 20 34 LDA $3420,Y (get command from conventional linked list queue) C2/0111: C9 12 CMP #$12 C2/0113: D0 03 BNE $0118 (Branch if not Mimic) C2/0115: 20 D9 01 JSR $01D9 (Copy contents of Mimic variables over [and possibly after] queued command, attack, and targets data) C2/0118: 38 SEC C2/0119: 20 76 02 JSR $0276 (Load command, attack, targets, and MP cost from queued data. Some commands become Fight if tried by an Imp.) C2/011C: C9 1F CMP #$1F (is the command "Run Monster Script"?) C2/011E: D0 1E BNE $013E (branch if not) C2/0120: 20 01 03 JSR $0301 (Remove current first record from entity's conventional linked list queue, and update their entry point accordingly) C2/0123: AD 97 3A LDA $3A97 C2/0126: D0 0C BNE $0134 (branch if in the Colosseum) C2/0128: BD 95 33 LDA $3395,X C2/012B: 10 07 BPL $0134 (branch if the monster is Charmed) C2/012D: BD E5 3E LDA $3EE5,X C2/0130: 89 30 BIT #$30 C2/0132: F0 05 BEQ $0139 (Branch if not Berserk or Muddled) C2/0134: 20 34 06 JSR $0634 (Picks random command for monsters) C2/0137: 80 C7 BRA $0100 (go load next record in entity's conventional linked list queue) C2/0139: 20 DC 02 JSR $02DC (Run Monster Script, main portion) C2/013C: 80 C2 BRA $0100 (go load next record in said queue) C2/013E: C9 16 CMP #$16 (is the command Jump?) C2/0140: D0 0C BNE $014E (branch if not) C2/0142: C2 20 REP #$20 (Set 16-bit Accumulator) C2/0144: BD 18 30 LDA $3018,X C2/0147: 1C 2C 3F TRB $3F2C (clear the entity's "Jumping" flag) C2/014A: F0 98 BEQ $00E4 (if it hadn't been set, we're currently initiating a jump rather than landing from one, so go set the flag and do some other preparation.) C2/014C: E2 20 SEP #$20 C2/014E: BD CC 32 LDA $32CC,X (get entry point to queue) C2/0151: A8 TAY C2/0152: B9 84 31 LDA $3184,Y (get the pointer/ID of record stored at that entry point) C2/0155: DD CC 32 CMP $32CC,X (do the contents of that field match the position of the record? that is, it's a standalone record or the last record in the linked list.) C2/0158: D0 13 BNE $016D (branch if that's not the case. the main goal seems to be skipping code for non-final Gem Box attacks.) C2/015A: A9 80 LDA #$80 C2/015C: 14 B1 TRB $B1 (an entity's turn is completing, and if "Attack First" had been set, it *should* be a monster [or returning Gau] who's acting. so clear Yielding to Monster(s) with "Attack First".) C2/015E: A9 FF LDA #$FF C2/0160: EC 04 34 CPX $3404 (Is this target under the influence of Quick?) C2/0163: D0 08 BNE $016D (Branch if not) C2/0165: CE 02 34 DEC $3402 (Decrement the number of turns due to Quick) C2/0168: D0 03 BNE $016D (Branch if this was not the last Quick turn) C2/016A: 8D 04 34 STA $3404 (If it was, store an #$FF (empty) in Quick's target byte) C2/016D: EB XBA C2/016E: BD A0 3A LDA $3AA0,X C2/0171: 89 50 BIT #$50 C2/0173: F0 05 BEQ $017A (branch if bits 4 and 6 both unset) C2/0175: A9 80 LDA #$80 C2/0177: 4C AB 5B JMP $5BAB (set bit 7 of $3AA1,X) C2/017A: A9 FF LDA #$FF C2/017C: 99 84 31 STA $3184,Y (null current first record in entity's conventional linked list queue) C2/017F: EB XBA C2/0180: 9D CC 32 STA $32CC,X (either make entry point index next record, or null it) C2/0183: BD A0 3A LDA $3AA0,X C2/0186: 29 D7 AND #$D7 C2/0188: 09 40 ORA #$40 C2/018A: 9D A0 3A STA $3AA0,X (turn off bits 3 and 5. turn on bit 6.) C2/018D: 4A LSR C2/018E: 90 16 BCC $01A6 (branch if entity not present in battle) C2/0190: BD 04 32 LDA $3204,X C2/0193: 09 04 ORA #$04 C2/0195: 9D 04 32 STA $3204,X C2/0198: BD 05 32 LDA $3205,X C2/019B: 09 80 ORA #$80 C2/019D: 9D 05 32 STA $3205,X (indicate entity has taken a conventional turn [including landing one] since boarding Palidor) C2/01A0: 20 D3 13 JSR $13D3 (Character/Monster Takes One Turn) C2/01A3: 20 1E 02 JSR $021E (Save this command's info in Mimic variables so Gogo will be able to Mimic it if he/she tries.) C2/01A6: A9 A0 LDA #$A0 C2/01A8: 04 B0 TSB $B0 (indicate entity has executed conventional turn since C2/0073 was last reached, and indicate we're in middle of processing a conventional linked list queue) C2/01AA: A9 10 LDA #$10 C2/01AC: 1C 46 3A TRB $3A46 (clear "Palidor was summoned this turn" flag) C2/01AF: D0 06 BNE $01B7 (branch if it had been set) C2/01B1: BD CC 32 LDA $32CC,X (get entry point to entity's conventional linked list queue) C2/01B4: 1A INC C2/01B5: D0 1E BNE $01D5 (branch if it's valid) C2/01B7: BD A0 3A LDA $3AA0,X C2/01BA: 89 08 BIT #$08 C2/01BC: D0 08 BNE $01C6 C2/01BE: FE 19 32 INC $3219,X C2/01C1: D0 03 BNE $01C6 C2/01C3: DE 19 32 DEC $3219,X (increment top byte of ATB counter if not 255) C2/01C6: A9 FF LDA #$FF C2/01C8: 9D 2C 32 STA $322C,X C2/01CB: 9E B5 3A STZ $3AB5,X (zero top byte of Wait Timer) C2/01CE: A9 80 LDA #$80 C2/01D0: 14 B0 TRB $B0 (we're not in middle of processing a conventional linked list queue) C2/01D2: 4C 67 02 JMP $0267 C2/01D5: 8E 06 34 STX $3406 (leave off processing entity in X) C2/01D8: 60 RTS (Replace queued command, attack, and targets with contents of Mimic variables. And if mimicking X-Magic, add queue entry for second spell.) C2/01D9: AD 28 3F LDA $3F28 (16h if last character command was Jump, 12h if it's a different command) C2/01DC: C9 16 CMP #$16 C2/01DE: D0 11 BNE $01F1 (branch if not Jump) C2/01E0: C2 20 REP #$20 C2/01E2: AD 28 3F LDA $3F28 (Last command and attack [Jump and 00h]) C2/01E5: 99 20 34 STA $3420,Y (update command and attack in entity's conventional linked list queue) C2/01E8: AD 2A 3F LDA $3F2A (Last targets) C2/01EB: 99 20 35 STA $3520,Y (update targets in entity's conventional linked list queue) C2/01EE: E2 20 SEP #$20 C2/01F0: 60 RTS C2/01F1: C2 20 REP #$20 C2/01F3: AD 20 3F LDA $3F20 (Last command and attack) C2/01F6: 99 20 34 STA $3420,Y (update command and attack in entity's conventional linked list queue) C2/01F9: AD 22 3F LDA $3F22 (Last targets) C2/01FC: 99 20 35 STA $3520,Y (update targets in entity's conventional linked list queue) C2/01FF: E2 20 SEP #$20 C2/0201: AD 24 3F LDA $3F24 (Last command and attack (second attack w/ Gem Box)) C2/0204: C9 12 CMP #$12 C2/0206: F0 D0 BEQ $01D8 (exit if there was none) C2/0208: C2 20 REP #$20 C2/020A: AD 24 3F LDA $3F24 (Last command and attack (second attack w/ Gem Box)) C2/020D: 8D 7A 3A STA $3A7A C2/0210: AD 26 3F LDA $3F26 (Last targets (second attack w/ Gem Box)) C2/0213: 85 B8 STA $B8 C2/0215: E2 20 SEP #$20 C2/0217: A9 40 LDA #$40 C2/0219: 04 B1 TSB $B1 (stops Function C2/4F08 from deducting MP cost for second Gem Box spell. no precaution needed for first, as the function is run with a command of 12h [Mimic] then.) C2/021B: 4C CB 4E JMP $4ECB (queue the second X-Magic spell, in entity's conventional queue) (Save this command's info in Mimic variables so Gogo will be able to Mimic it if he/she tries.) C2/021E: DA PHX C2/021F: 08 PHP C2/0220: E0 08 CPX #$08 C2/0222: B0 40 BCS $0264 (exit if it's a monster taking this turn) C2/0224: AD 7C 3A LDA $3A7C (get original command of just-executed turn) C2/0227: C9 1E CMP #$1E C2/0229: B0 39 BCS $0264 (exit if not a normal character command. iow, if it was enemy Roulette, "Run Monster Script", periodic damage/healing, etc.) C2/022B: 0A ASL C2/022C: AA TAX C2/022D: BF 00 FE CF LDA $CFFE00,X (get command data) C2/0231: 89 02 BIT #$02 C2/0233: F0 2F BEQ $0264 (exit if this command can't be Mimicked. such commands are Morph, Revert, Control, Leap, Row, Defense, Jump, and Possess. But Jump can be mimicked!, you say. true, but unlike other commands, which become mimicable after they're executed, this one becomes fair game after the character enters their ready stance [i.e. when they leap]. that way, Gogo doesn't have to wait til a Jumper lands to copy them. this special case is handled in C2/2188, so we don't want Jump among the Mimicable commands in $CFFE00) C2/0235: A9 12 LDA #$12 C2/0237: 8D 28 3F STA $3F28 (indicate to Mimic that the command is something other than Jump?) C2/023A: AD 7C 3A LDA $3A7C (get original command of just-executed turn) C2/023D: C9 17 CMP #$17 C2/023F: F0 15 BEQ $0256 (branch if command was X-Magic. it seems the first turn of a Gem Box sequence has Magic in the command ID, and the second turn has X-Magic.) C2/0241: A9 12 LDA #$12 C2/0243: 8D 24 3F STA $3F24 (Last command and attack (second attack w/ Gem Box) (for use by Mimic). in other words, default to indicating there was no 2nd Gem Box attack.) C2/0246: C2 20 REP #$20 C2/0248: AD 7C 3A LDA $3A7C (get original command of just-executed turn) C2/024B: 8D 20 3F STA $3F20 (Last command and attack (for use by Mimic)) C2/024E: AD 30 3A LDA $3A30 (get backup targets from just-executed turn) C2/0251: 8D 22 3F STA $3F22 (Last targets (for use by Mimic)) C2/0254: 80 0E BRA $0264 C2/0256: C2 20 REP #$20 C2/0258: AD 7C 3A LDA $3A7C (get original command of just-executed turn) C2/025B: 8D 24 3F STA $3F24 (Last command and attack (second attack w/ Gem Box) (for use by Mimic)) C2/025E: AD 30 3A LDA $3A30 (get backup targets from just-executed turn) C2/0261: 8D 26 3F STA $3F26 (Last targets (second attack w/ Gem Box) (for use by Mimic)) C2/0264: 28 PLP C2/0265: FA PLX C2/0266: 60 RTS C2/0267: A9 0D LDA #$0D C2/0269: 8D 6E 2D STA $2D6E (first byte of first entry of ($76) buffer) C2/026C: A9 FF LDA #$FF C2/026E: 8D 72 2D STA $2D72 (first byte of second entry of ($76) buffer) C2/0271: A9 04 LDA #$04 C2/0273: 4C 11 64 JMP $6411 (Execute animation queue) (Load command, attack, targets, and MP cost from queued data. If attacker Imped and command not supported while Imped, turn into Fight.) C2/0276: 08 PHP C2/0277: C2 20 REP #$20 (Set 16-bit Accumulator) C2/0279: B9 20 35 LDA $3520,Y (get targets from a linked list queue [one of three queue types, depending on caller]) C2/027C: 85 B8 STA $B8 (save as targets) C2/027E: B9 20 34 LDA $3420,Y (get command and attack from same linked list queue) C2/0281: 8D 7C 3A STA $3A7C (save as original command) C2/0284: 85 B5 STA $B5 (save as command) C2/0286: 28 PLP C2/0287: 48 PHA C2/0288: 90 10 BCC $029A (branch if not a conventional turn) C2/028A: C9 1D CMP #$1D C2/028C: B0 0C BCS $029A (Branch if command is MagiTek or a non-character command?) C2/028E: BD 18 30 LDA $3018,X C2/0291: 1C 4A 3A TRB $3A4A (clear "Entity's Zombie or Muddled changed since last command or ready stance entering") C2/0294: F0 04 BEQ $029A (branch if it was already clear) C2/0296: 64 B8 STZ $B8 C2/0298: 64 B9 STZ $B9 (clear attack's targets) C2/029A: B9 20 36 LDA $3620,Y (get MP cost from a linked list queue [one of three queue types, depending on caller]) C2/029D: 8D 4C 3A STA $3A4C (save actual MP cost to caster) C2/02A0: BD E4 3E LDA $3EE4,X C2/02A3: 89 20 BIT #$20 (Check for Imp Status) C2/02A5: F0 33 BEQ $02DA (Branch if not imp) C2/02A7: A5 B5 LDA $B5 (get command) C2/02A9: C9 1E CMP #$1E C2/02AB: B0 2D BCS $02DA (branch if not character command) C2/02AD: DA PHX C2/02AE: 0A ASL C2/02AF: AA TAX C2/02B0: BF 00 FE CF LDA $CFFE00,X (get command data) (Bit 2 set for Fight, Item, Magic, Revert, Mimic, Row, Def., Jump, X-Magic, Health, Shock) (0F, 07, 07, 00, 04, 0B, 0B, 03 03, 03, 03, 03, 03, 03, 01, 03 0B, 00, 05, 03, 04, 04, 05, 07 03, 03, 06, 06, 01, 0A, 00, 00 ) C2/02B4: FA PLX C2/02B5: 89 04 BIT #$04 C2/02B7: D0 21 BNE $02DA (branch if command is supported while Imped) C2/02B9: 9C 4C 3A STZ $3A4C (zero actual MP cost to caster) C2/02BC: DA PHX C2/02BD: 7B TDC (clear 16-bit A) C2/02BE: E0 08 CPX #$08 (set Carry if monster attacker) C2/02C0: 2A ROL C2/02C1: AA TAX (move Carry into X) C2/02C2: B5 B8 LDA $B8,X (get targets from $B8 or $B9) C2/02C4: 3D 40 3A AND $3A40,X (characters acting as enemies. i believe $3A41 will always be zero.) C2/02C7: 95 B8 STA $B8,X (remove all targets who weren't members of opposition) C2/02C9: C2 20 REP #$20 C2/02CB: 9C 7C 3A STZ $3A7C C2/02CE: 64 B5 STZ $B5 (zero out command, making it Fight) C2/02D0: A5 B8 LDA $B8 (get all targets of attack) C2/02D2: 20 2A 52 JSR $522A (pick one at random) C2/02D5: 85 B8 STA $B8 C2/02D7: E2 20 SEP #$20 C2/02D9: FA PLX C2/02DA: 68 PLA C2/02DB: 60 RTS (Run Monster Script [Command 1Fh], main portion, and handle bookmarking) C2/02DC: C2 20 REP #$20 C2/02DE: 9C 98 3A STZ $3A98 (don't prohibit any script commands for upcoming call) C2/02E1: BD 54 32 LDA $3254,X (offset of monster's main script) C2/02E4: 85 F0 STA $F0 (upcoming $1A2F call will start at this position) C2/02E6: BD 0C 3D LDA $3D0C,X (main script position after last executed FD command. iow, where we left off. applicable when $3240,X =/= FFh.) C2/02E9: 85 F2 STA $F2 C2/02EB: BD 40 32 LDA $3240,X (index of sub-block in main script where we left off if we exited script due to FD command, null FFh otherwise.) C2/02EE: 85 F4 STA $F4 C2/02F0: 18 CLC C2/02F1: 20 2F 1A JSR $1A2F (Process monster's main script, backing up targets first) C2/02F4: A5 F2 LDA $F2 C2/02F6: 9D 0C 3D STA $3D0C,X (save main script position after last executed FD command. iow, where we're leaving off.) C2/02F9: E2 20 SEP #$20 C2/02FB: A5 F5 LDA $F5 C2/02FD: 9D 40 32 STA $3240,X (if we exited script due to FD command, save sub-block index of main script where we left off. if we exited due to executing FE command or executing/reaching FF command, save null FFh.) C2/0300: 60 RTS (Remove current first record from entity's conventional linked list queue, and update their entry point accordingly) (operates on different list if called from C2/4C54) C2/0301: BD CC 32 LDA $32CC,X (get entry point to entity's [conventional or other] linked list queue) C2/0304: 30 15 BMI $031B (exit if null [list is empty]) C2/0306: 5A PHY C2/0307: A8 TAY C2/0308: B9 84 31 LDA $3184,Y (read pointer/ID of current first record in entity's [conventional or other] linked list queue) C2/030B: DD CC 32 CMP $32CC,X (if field's contents match record's position, it's a standalone record, or the last in the list) C2/030E: D0 02 BNE $0312 (branch if not, as there are more records left) C2/0310: A9 FF LDA #$FF C2/0312: 9D CC 32 STA $32CC,X (either make entry point index next record, or null it) C2/0315: A9 FF LDA #$FF C2/0317: 99 84 31 STA $3184,Y (null current first record in entity's [conventional or other] linked list queue) C2/031A: 7A PLY C2/031B: 60 RTS C2/031C: 64 B8 STZ $B8 C2/031E: 64 B9 STZ $B9 C2/0320: FE 2C 32 INC $322C,X C2/0323: F0 03 BEQ $0328 C2/0325: DE 2C 32 DEC $322C,X (if Time to Wait is FFh, set it to 0) C2/0328: 20 41 0A JSR $0A41 (clear Defending flag) C2/032B: BD 4C 3E LDA $3E4C,X C2/032E: 29 FA AND #$FA C2/0330: 9D 4C 3E STA $3E4C,X (Clear Retort and Runic) C2/0333: E0 08 CPX #$08 C2/0335: 90 0D BCC $0344 (branch if character) C2/0337: BD CC 32 LDA $32CC,X (get entry point to entity's conventional linked list queue) C2/033A: 10 1B BPL $0357 (branch if valid) C2/033C: A9 1F LDA #$1F C2/033E: 8D 7A 3A STA $3A7A (set command to "Run Monster Script") C2/0341: 4C CB 4E JMP $4ECB (queue it, in entity's conventional queue) C2/0344: BD 18 30 LDA $3018,X C2/0347: 1C 4A 3A TRB $3A4A (clear "Entity's Zombie or Muddled changed since last command or ready stance entering") C2/034A: BD 55 32 LDA $3255,X (top byte of offset of main script) C2/034D: 30 03 BMI $0352 (branch if character has no main script) C2/034F: 4C DC 02 JMP $02DC (Run Monster Script, main portion) C2/0352: BD CC 32 LDA $32CC,X (get entry point to entity's conventional linked list queue) C2/0355: 30 24 BMI $037B (branch if null) C2/0357: 48 PHA C2/0358: 0A ASL C2/0359: A8 TAY (adjust index for 16-bit fields) C2/035A: C2 20 REP #$20 C2/035C: B9 20 35 LDA $3520,Y (get targets from entity's conventional linked list queue) C2/035F: 85 B8 STA $B8 (save as targets) C2/0361: B9 20 34 LDA $3420,Y (get command and attack from entity's conventional linked list queue) C2/0364: 20 E4 03 JSR $03E4 (Determine command's "time to wait", recalculate targets if there aren't any) C2/0367: A5 B8 LDA $B8 (get targets, possibly modified if there weren't any before function call) C2/0369: 99 20 35 STA $3520,Y (save in entity's conventional linked list queue) C2/036C: E2 20 SEP #$20 C2/036E: 68 PLA C2/036F: A8 TAY (adjust index for 8-bit field) C2/0370: D9 84 31 CMP $3184,Y (does pointer/ID of this record in conventional linked list queue match its position?) C2/0373: F0 05 BEQ $037A (if so, it's a standalone record or the last record in the list, so exit) C2/0375: B9 84 31 LDA $3184,Y (otherwise, it should point to another record, so...) C2/0378: 80 DD BRA $0357 (...loop and check that one.) C2/037A: 60 RTS C2/037B: BD F8 3E LDA $3EF8,X C2/037E: 4A LSR C2/037F: B0 56 BCS $03D7 (Branch if Dance status) C2/0381: BD F9 3E LDA $3EF9,X C2/0384: 4A LSR C2/0385: B0 47 BCS $03CE (Branch if Rage status) C2/0387: BD E4 3E LDA $3EE4,X C2/038A: 89 08 BIT #$08 C2/038C: D0 38 BNE $03C6 (Branch if M-Tek status) C2/038E: 20 20 04 JSR $0420 (pick action to take if character Berserked, Zombied, Muddled, Charmed, or in the Colosseum) C2/0391: C9 17 CMP #$17 C2/0393: D0 1B BNE $03B0 (Branch if chosen command not X-Magic) C2/0395: 48 PHA (save command on stack) C2/0396: EB XBA C2/0397: 48 PHA C2/0398: 48 PHA (save attack/spell on stack twice) C2/0399: 9B TXY C2/039A: 20 1A 05 JSR $051A (Pick another spell) C2/039D: 83 01 STA $01,S (replace latter stack copy with that spell) C2/039F: 68 PLA C2/03A0: EB XBA C2/03A1: A9 02 LDA #$02 (ID of Magic command) C2/03A3: 20 E4 03 JSR $03E4 (Determine command's "time to wait", recalculate targets if there aren't any) C2/03A6: 20 CB 4E JSR $4ECB (queue that spell under Magic command, in entity's conventional queue) C2/03A9: 64 B8 STZ $B8 C2/03AB: 64 B9 STZ $B9 (clear any targets set by above C2/03E4 call, so next one can choose its own) C2/03AD: 68 PLA (retrieve initial attack/spell from stack) C2/03AE: EB XBA C2/03AF: 68 PLA (retrieve initial command from stack) C2/03B0: 20 B9 03 JSR $03B9 (Swap Roulette to Enemy Roulette) C2/03B3: 20 E4 03 JSR $03E4 (Determine command's "time to wait", recalculate targets if there aren't any) C2/03B6: 4C CB 4E JMP $4ECB (queue earlier-chosen spell under X-Magic command, in entity's conventional queue) (Swap Roulette to Enemy Roulette) C2/03B9: 08 PHP C2/03BA: C2 20 REP #$20 C2/03BC: C9 0C 8C CMP #$8C0C (is the command Lore and the attack Roulette?) C2/03BF: D0 03 BNE $03C4 (branch if not) C2/03C1: A9 1E 8C LDA #$8C1E (set command to Enemy Roulette, keep attack as Roulette) C2/03C4: 28 PLP C2/03C5: 60 RTS C2/03C6: 20 84 05 JSR $0584 (randomly pick a Magitek attack) C2/03C9: EB XBA C2/03CA: A9 1D LDA #$1D (Magitek command ID) C2/03CC: 80 10 BRA $03DE C2/03CE: 9B TXY C2/03CF: 20 D1 05 JSR $05D1 (Picks a Rage [when Muddled/Berserked/etc], and picks the Rage move) C2/03D2: EB XBA C2/03D3: A9 10 LDA #$10 (Rage command ID) C2/03D5: 80 07 BRA $03DE C2/03D7: 9B TXY C2/03D8: 20 9C 05 JSR $059C (picks a Dance and a dance move) C2/03DB: EB XBA C2/03DC: A9 13 LDA #$13 (Dance command ID) C2/03DE: 20 E4 03 JSR $03E4 (Determine command's "time to wait", recalculate targets if there aren't any) C2/03E1: 4C CB 4E JMP $4ECB (queue chosen Dance move, in entity's conventional queue) (Determine command's "time to wait" [e.g. for character's ready stance], recalculate targets if there aren't any) C2/03E4: 08 PHP C2/03E5: E2 30 SEP #$30 (Set 8-bit A, X, & Y) C2/03E7: 8D 7A 3A STA $3A7A (save command in temporary variable) C2/03EA: EB XBA C2/03EB: 8D 7B 3A STA $3A7B (save attack in temporary variable) C2/03EE: EB XBA C2/03EF: C9 1E CMP #$1E C2/03F1: B0 2B BCS $041E (branch if command is 1Eh or above.. i.e. it's enemy Roulette or "Run Monster Script") C2/03F3: 48 PHA C2/03F4: DA PHX C2/03F5: AA TAX C2/03F6: BF 7B 06 C2 LDA $C2067B,X (get command's "time to wait") C2/03FA: FA PLX C2/03FB: 18 CLC C2/03FC: 7D 2C 32 ADC $322C,X (add it to character's existing "time to wait") C2/03FF: B0 03 BCS $0404 C2/0401: 1A INC C2/0402: D0 02 BNE $0406 C2/0404: A9 FF LDA #$FF C2/0406: 3A DEC (if sum overflowed or equalled FFh, set it to FEh. otherwise, keep it.) C2/0407: 9D 2C 32 STA $322C,X (update time to wait) C2/040A: 68 PLA C2/040B: 20 D3 26 JSR $26D3 (Load data for command and attack/sub-command, held in A.bottom and A.top) C2/040E: A9 04 LDA #$04 C2/0410: 14 BA TRB $BA (Clear "Don't retarget if target invalid") C2/0412: C2 20 REP #$20 C2/0414: A5 B8 LDA $B8 C2/0416: D0 06 BNE $041E (branch if there are already targets) C2/0418: 9C 4E 3A STZ $3A4E (clear backup already-hit targets) C2/041B: 20 7E 58 JSR $587E (targeting function) C2/041E: 28 PLP C2/041F: 60 RTS (Pick action to take if character Berserked, Zombied, Muddled, Charmed, or in the Colosseum) C2/0420: 8A TXA C2/0421: EB XBA C2/0422: A9 06 LDA #$06 C2/0424: 20 81 47 JSR $4781 (X * 6) C2/0427: A8 TAY C2/0428: 64 FE STZ $FE (save Fight as Command 5) C2/042A: 64 FF STZ $FF C2/042C: B9 2E 20 LDA $202E,Y (get Command 1) C2/042F: 85 F6 STA $F6 C2/0431: B9 31 20 LDA $2031,Y (get Command 2) C2/0434: 85 F8 STA $F8 C2/0436: B9 34 20 LDA $2034,Y (get Command 3) C2/0439: 85 FA STA $FA C2/043B: B9 37 20 LDA $2037,Y (get Command 4) C2/043E: 85 FC STA $FC C2/0440: A9 05 LDA #$05 (indicate 5 valid commands to choose from... this number may drop.) C2/0442: 85 F5 STA $F5 C2/0444: BD E5 3E LDA $3EE5,X (Status byte 2) C2/0447: 0A ASL C2/0448: 0A ASL C2/0449: 85 F4 STA $F4 (Bit 7 = Muddled, Bit 6 = Berserk, etc) C2/044B: 0A ASL C2/044C: 10 04 BPL $0452 (Branch if no Berserk status) C2/044E: 64 F4 STZ $F4 (Clear $F4, then skip Charm and Colosseum checks if Berserked) C2/0450: 80 0C BRA $045E C2/0452: BD 95 33 LDA $3395,X (Which target Charmed you, FFh if none did) C2/0455: 49 80 EOR #$80 (Bit 7 will now be set if there IS a Charmer) C2/0457: 04 F4 TSB $F4 C2/0459: AD 97 3A LDA $3A97 (FFh if Colosseum battle, 00h otherwise) C2/045C: 04 F4 TSB $F4 (so set Bit 7 [and others] if in Colosseum) (Note that Berserk status will override Muddle/Charm/Colosseum for purposes of determining whether we choose from the C2/04D0 or the C2/04D4 command list. In contrast, Zombie will not; Charm/Colosseum/Muddle override it.) C2/045E: 9B TXY (Y now points to the attacker who is taking this turn. will be used by the $04E2 and $04EC functions, since X gets overwritten.) C2/045F: DA PHX C2/0460: A2 06 LDX #$06 (start checking 4th command slot) C2/0462: DA PHX (save slot position) C2/0463: B5 F6 LDA $F6,X C2/0465: 48 PHA (save command) C2/0466: 30 1A BMI $0482 (branch if slot empty) C2/0468: 18 CLC (clear Carry) C2/0469: 20 17 52 JSR $5217 (X = A DIV 8, A = 2 ^ (A MOD 8) ) C2/046C: 3F D0 04 C2 AND $C204D0,X (is command allowed when Muddled/Charmed/Colosseum?) C2/0470: F0 10 BEQ $0482 (branch if not) C2/0472: A5 F4 LDA $F4 C2/0474: 30 12 BMI $0488 (Branch if Muddled/Charmed/Colosseum but not Berserked) C2/0476: A3 01 LDA $01,S (get command) C2/0478: 18 CLC C2/0479: 20 17 52 JSR $5217 (X = A DIV 8, A = 2 ^ (A MOD 8) ) C2/047C: 3F D4 04 C2 AND $C204D4,X (is command allowed when Berserked/Zombied?) C2/0480: D0 06 BNE $0488 (branch if so) C2/0482: A9 FF LDA #$FF C2/0484: 83 01 STA $01,S (replace command on stack with Empty entry) C2/0486: C6 F5 DEC $F5 (decrement number of valid commands) C2/0488: 7B TDC (clear 16-bit A) C2/0489: A3 01 LDA $01,S (get current command) (NOTE: Like the code above with $C204D0 and $C204D4, this next section makes use of pairs of tables. However, UNLIKE that code, this doesn't seem to treat one table differently than the other. I believe the pairs of tables are just to allow two commands to be compared per loop iteration, halving the number of iterations and speeding things up a little. Were you only to compare one command per iteration -- simply using offsets $C204D8,X and ($04E2,X) -- this loop would occupy less space.. hmmm...) (Loop below sees if our current command is one that requires special code to work with Muddle/Charm/Colosseum/Berserk/Zombie. If it is, a special function is called for the command.) C2/048B: A2 08 LDX #$08 C2/048D: DF D8 04 C2 CMP $C204D8,X (does our current command match one from table?) C2/0491: D0 06 BNE $0499 (if not, compare it to a second command in this loop iteration) C2/0493: FC E2 04 JSR ($04E2,X) (if it does, call the special code used by that command) C2/0496: EB XBA (put attack/spell # in top of A) C2/0497: 80 10 BRA $04A9 (exit loop, as we found our command) C2/0499: DF D9 04 C2 CMP $C204D9,X (does our current command match one from table?) C2/049D: D0 06 BNE $04A5 (if not, our current command didn't match either compared one. so move to new pair of commands in table, and repeat loop) C2/049F: FC EC 04 JSR ($04EC,X) (if it did match, call the special code used by that command) C2/04A2: EB XBA (put attack/spell # in top of A) C2/04A3: 80 04 BRA $04A9 (exit loop, as we found our command) C2/04A5: CA DEX C2/04A6: CA DEX C2/04A7: 10 E4 BPL $048D (Loop to compare current command to all 10 commands that utilize special code. If this loop doesn't exit before X becomes negative, that means our current command has no special function, and the Attack # in the top half of A will be zero.) C2/04A9: 68 PLA (get command # from stack) C2/04AA: FA PLX (get command slot from stack) C2/04AB: 95 F6 STA $F6,X (save command # in current command slot) C2/04AD: EB XBA C2/04AE: 95 F7 STA $F7,X (save attack/spell # corresponding to that attack) C2/04B0: CA DEX C2/04B1: CA DEX C2/04B2: 10 AE BPL $0462 (loop for first 4 command slots) (Fight has been put in the 5th command slot. Any valid commands, with their accompanying attack/spell numbers, have been established for slots 1 thru 4. Now we shall randomly pick from those commands. Each slot should have equal probability of being chosen.) C2/04B4: A5 F5 LDA $F5 (# of valid command slots) C2/04B6: 20 65 4B JSR $4B65 (RNG: 0 to A - 1 . we're randomly picking a command) C2/04B9: A8 TAY C2/04BA: A2 08 LDX #$08 (start pointing to Command slot 5) C2/04BC: B5 F6 LDA $F6,X C2/04BE: 30 03 BMI $04C3 (if that command slot is Empty, move to next one) C2/04C0: 88 DEY (only decrement when on a valid command slot) C2/04C1: 30 07 BMI $04CA (If Y is negative, we've found our Nth valid command [starting with the last valid command and counting backward], where N is the number returned from the RNG plus 1. This is what we wanted, so branch.) C2/04C3: CA DEX C2/04C4: CA DEX C2/04C5: 10 F5 BPL $04BC (loop for all 5 command slots) C2/04C7: 7B TDC (clear 16-bit A) C2/04C8: 80 04 BRA $04CE (clean up stack and exit function. A is zero, indicating Fight, which must be a fallback in case all 5 Command slots somehow came up useless. not sure how that'd happen, as Slot #5 should always hold Fight, anyway...) C2/04CA: EB XBA C2/04CB: B5 F7 LDA $F7,X C2/04CD: EB XBA (bottom of A = command # from $F6,X top of A = attack/spell # from $F7,X) C2/04CE: FA PLX C2/04CF: 60 RTS (Data - commands allowed when Muddled/Charmed/Colosseum brawling) C2/04D0: ED (Fight, Magic, Morph, Steal, Capture, SwdTech) C2/04D1: 3E (Tools, Blitz, Runic, Lore, Sketch) C2/04D2: DD (Rage, Mimic, Dance, Row, Jump, X-Magic) C2/04D3: 2D (GP Rain, Health, Shock, MagiTek) (in other words: Item, Revert, Throw, Control, Slot, Leap, Def., Summon, and Possess are excluded) (Data - commands allowed when Berserked/Zombied) C2/04D4: 41 (Fight, Capture) C2/04D5: 00 (none) C2/04D6: 41 (Rage, Jump) C2/04D7: 20 (MagiTek) (Commands that need special functions when character acts automatically) C2/04D8: 02 (Magic) C2/04D9: 17 (X-Magic) C2/04DA: 07 (SwdTech) C2/04DB: 0A (Blitz) C2/04DC: 10 (Rage) C2/04DD: 13 (Dance) C2/04DE: 0C (Lore) C2/04DF: 03 (Morph) C2/04E0: 1D (MagiTek) C2/04E1: 09 (Tools) (Code pointers) C2/04E2: 1A 05 (Magic) C2/04E4: 60 05 (SwdTech) C2/04E6: D1 05 (Rage) C2/04E8: F6 04 (Lore) C2/04EA: 84 05 (MagiTek) C2/04EC: 1A 05 (X-Magic) C2/04EE: 75 05 (Blitz) C2/04F0: 9C 05 (Dance) C2/04F2: 57 05 (Morph) C2/04F4: 8D 05 (Tools) (Lore) C2/04F6: B9 E5 3E LDA $3EE5,Y (Status Byte 2) C2/04F9: 89 08 BIT #$08 C2/04FB: D0 52 BNE $054F (Branch if Mute) C2/04FD: AD 87 3A LDA $3A87 (Number of Lores possessed) C2/0500: F0 4D BEQ $054F (if there's zero, don't use Lore command) C2/0502: 48 PHA C2/0503: C2 21 REP #$21 (Set 16-bit A, Clear Carry) C2/0505: B9 2C 30 LDA $302C,Y (starting address of Magic menu [actually address of Esper menu]) C2/0508: 69 D8 00 ADC #$00D8 (add 54 spells * 4 to get to next menu, which is Lore [loop at C2/0534 won't use the 0 index, which is why it won't wrongly select the last Magic spell]) C2/050B: 85 EE STA $EE C2/050D: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/050F: 68 PLA C2/0510: EB XBA (put # of Lores possessed in top of A) C2/0511: A9 60 LDA #$60 (there are 24 Lores, and each menu slot must occupy 4 bytes, so set loop limit to 96) C2/0513: 20 34 05 JSR $0534 (randomly pick a valid Lore menu slot) C2/0516: 18 CLC C2/0517: 69 8B ADC #$8B (first Lore is #139, Condemned) C2/0519: 60 RTS (Magic and X-Magic) C2/051A: B9 E5 3E LDA $3EE5,Y (Status Byte 2) C2/051D: 89 08 BIT #$08 C2/051F: D0 2E BNE $054F (Branch if Mute) C2/0521: B9 F8 3C LDA $3CF8,Y (Number of spells possessed by this character) C2/0524: F0 29 BEQ $054F (if there's zero, don't use Magic/X-Magic command) C2/0526: 48 PHA C2/0527: C2 20 REP #$20 (Set 16-bit Accumulator) C2/0529: B9 2C 30 LDA $302C,Y (starting address of Magic menu [actually address of Esper menu, but loop at C2/0534 won't use the 0 index]) C2/052C: 85 EE STA $EE C2/052E: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/0530: 68 PLA C2/0531: EB XBA (put # of spells possessed in top of A) C2/0532: A9 D8 LDA #$D8 (there are 54 spells, and each menu slot must occupy 4 bytes, so set loop limit to 216) C2/0534: DA PHX C2/0535: 5A PHY C2/0536: A8 TAY C2/0537: EB XBA (retrieve number of spells/Lores possessed) C2/0538: 20 65 4B JSR $4B65 (RNG: 0 to A - 1 . we're randomly picking a spell/lore) C2/053B: AA TAX C2/053C: B1 EE LDA ($EE),Y (get what's in this Magic/Lore menu slot) C2/053E: C9 FF CMP #$FF (is it null?) C2/0540: F0 03 BEQ $0545 (if so, skip to next slot) C2/0542: CA DEX C2/0543: 30 07 BMI $054C (If X becomes negative, that means we've found the Nth valid slot [starting with the last valid slot and counting backward], where N is the X returned from our RNG plus 1. This is what we wanted, so branch.) C2/0545: 88 DEY C2/0546: 88 DEY C2/0547: 88 DEY C2/0548: 88 DEY C2/0549: D0 F1 BNE $053C (loop and check next slot) C2/054B: 7B TDC (if we didn't get any matches, just use Fire [or Condemned for Lore, since 139 gets added]) C2/054C: 7A PLY C2/054D: FA PLX C2/054E: 60 RTS (Randomly chosen command failed, for whatever reason) C2/054F: C6 F5 DEC $F5 (decrement # of valid command slots) C2/0551: A9 FF LDA #$FF C2/0553: 83 03 STA $03,S (store Empty in current command slot, indicating that it cannot be chosen) C2/0555: 7B TDC (clear 16-bit A. note that only the bottom 8 bits, which indicate the attack/spell #, matter. the command # is loaded by the stack retrieval at C2/04A9, and will obviously be FFh in this case.) C2/0556: 60 RTS (Morph) C2/0557: A9 0F LDA #$0F C2/0559: CD F6 1C CMP $1CF6 (Morph supply) C2/055C: 7B TDC (clear 16-bit A) C2/055D: B0 F0 BCS $054F (if Morph supply isn't at least 16, don't allow Morph command) C2/055F: 60 RTS (SwdTech) C2/0560: B9 A4 3B LDA $3BA4,Y (Special properties for right-hand weapon slot) C2/0563: 19 A5 3B ORA $3BA5,Y ('' for left-hand) C2/0566: 89 02 BIT #$02 (is Swdtech allowed by at least one hand?) C2/0568: F0 E5 BEQ $054F (if not, don't use Swdtech as command) C2/056A: AD 20 20 LDA $2020 (index of highest known Swdtech) C2/056D: 1A INC (# of known Swdtechs) C2/056E: 20 65 4B JSR $4B65 (random #: 0 to A-1. Pick a known Swdtech.) C2/0571: 18 CLC C2/0572: 69 55 ADC #$55 (first Swdtech is #85, Dispatch) C2/0574: 60 RTS (Blitz) C2/0575: 7B TDC C2/0576: AD 28 1D LDA $1D28 (Known Blitzes) C2/0579: 20 2A 52 JSR $522A (Pick a random bit that is set) C2/057C: 20 F0 51 JSR $51F0 (Get which bit is picked) C2/057F: 8A TXA C2/0580: 18 CLC C2/0581: 69 5D ADC #$5D (first Blitz is #93, Pummel) C2/0583: 60 RTS (MagiTek) C2/0584: A9 03 LDA #$03 C2/0586: 20 65 4B JSR $4B65 (0 to 2 -- only pick between first 3 MagiTek moves, since anybody besides Terra can only use Fire Beam + Bolt Beam + Ice Beam + Heal Force, but there's Bio Blast in between those last two. just picking from the first three simplifies code, although decent planning would have had Heal Force before Bio Blast.. or add a few instructions here and include Heal Force anyway.) C2/0589: 18 CLC C2/058A: 69 83 ADC #$83 (first MagiTek move is #131, Fire Beam) C2/058C: 60 RTS (Tools) C2/058D: 7B TDC C2/058E: AD 9B 3A LDA $3A9B (Which tools are owned) C2/0591: 20 2A 52 JSR $522A (Pick a random tool that is owned) C2/0594: 20 F0 51 JSR $51F0 (Get which bit is set, thus returning a 0-7 Tool index) C2/0597: 8A TXA C2/0598: 18 CLC C2/0599: 69 A3 ADC #$A3 (item number of first tool, NoiseBlaster, is 163) C2/059B: 60 RTS (Picks dance, and dance move) C2/059C: DA PHX C2/059D: B9 E1 32 LDA $32E1,Y (get the dance number) C2/05A0: C9 FF CMP #$FF (is it null?) C2/05A2: D0 0E BNE $05B2 (if it's valid, a Dance has already been chosen, so just proceed to choose a step) C2/05A4: 7B TDC (clear 16-bit A) C2/05A5: AD 4C 1D LDA $1D4C (bitfield of known Dances) C2/05A8: 20 2A 52 JSR $522A (Pick a random bit that is set) C2/05AB: 20 F0 51 JSR $51F0 (X = Get which bit is picked) C2/05AE: 8A TXA C2/05AF: 99 E1 32 STA $32E1,Y (save our Dance #) C2/05B2: 0A ASL C2/05B3: 0A ASL (* 4) C2/05B4: 85 EE STA $EE (Each Dance has 4 steps, and occupies 4 bytes in the Dance Step --> Attack Number table at $CFFE80) C2/05B6: 20 5A 4B JSR $4B5A (RNG: 0 to 255) C2/05B9: A2 02 LDX #$02 C2/05BB: DF CE 05 C2 CMP $C205CE,X (see data below for chances of each step) C2/05BF: B0 02 BCS $05C3 C2/05C1: E6 EE INC $EE (move to next step for this Dance) C2/05C3: CA DEX C2/05C4: 10 F5 BPL $05BB (loop until we reach step determined by random #) C2/05C6: A6 EE LDX $EE (= (Dance * 4) + step) C2/05C8: BF 80 FE CF LDA $CFFE80,X (get attack # for the Dance step used) C2/05CC: FA PLX C2/05CD: 60 RTS (Data - for chances of each dance step) (Probabilities: Dance Step 0 = 7/16, Step 1 = 6/16, Step 2 = 2/16, Step 3 = 1/16) C2/05CE: 10 30 90 (Picks a Rage [when Muddled/Berserked/etc], and picks the Rage move) C2/05D1: DA PHX C2/05D2: 08 PHP C2/05D3: 7B TDC C2/05D4: 99 A9 33 STA $33A9,Y C2/05D7: B9 A8 33 LDA $33A8,Y (which monster it is) C2/05DA: C9 FF CMP #$FF C2/05DC: D0 22 BNE $0600 (branch if a non-null monster was passed) C2/05DE: 1A INC C2/05DF: 99 A8 33 STA $33A8,Y (store enemy #0, Guard) C2/05E2: AD 9A 3A LDA $3A9A (# of rages possessed) C2/05E5: 20 65 4B JSR $4B65 C2/05E8: 1A INC (random #: 1 to $3A9A) C2/05E9: 85 EE STA $EE C2/05EB: A2 00 LDX #$00 C2/05ED: BD 7E 25 LDA $257E,X (Rage menu. was filled in C2/580C routine.) C2/05F0: C9 FF CMP #$FF C2/05F2: F0 0C BEQ $0600 (branch if that menu slot was null, which means enemy #0 should be defaulted to) C2/05F4: C6 EE DEC $EE (decrement our random index) C2/05F6: F0 05 BEQ $05FD (if it's zero, branch, and use the menu item last read) C2/05F8: E8 INX C2/05F9: D0 F2 BNE $05ED (loop again to check next menu entry) C2/05FB: 80 03 BRA $0600 (if we've looped a full 256 times and somehow there's been no match with the random index, branch and just use enemy #0) (i'm not sure what the purpose of the above loop is.. it selects Enemy #0 if any menu slots up to and including the randomly chosen one hold FFh. maybe it's a check to see if the list got "broken," as a normally generated one should never have any nulls in the middle.) C2/05FD: 99 A8 33 STA $33A8,Y (store enemy number) C2/0600: 20 53 4B JSR $4B53 (random: 0 or 1 in Carry flag) C2/0603: C2 30 REP #$30 C2/0605: 2A ROL C2/0606: AA TAX (X: 0 or 1) C2/0607: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/0609: BF 00 46 CF LDA $CF4600,X (load Rage move) C2/060D: 28 PLP C2/060E: FA PLX C2/060F: 60 RTS (Load monster Battle and Special graphics, its special attack, and elemental/status/special properties) C2/0610: 08 PHP C2/0611: B9 A8 33 LDA $33A8,Y (Which monster it is) C2/0614: AA TAX C2/0615: EB XBA C2/0616: BF C0 37 CF LDA $CF37C0,X (get enemy Special move graphic) C2/061A: 99 81 3C STA $3C81,Y C2/061D: A9 20 LDA #$20 C2/061F: 20 81 47 JSR $4781 (get monster # * 32 to access the monster data block) C2/0622: C2 10 REP #$10 C2/0624: AA TAX C2/0625: BF 1A 00 CF LDA $CF001A,X (monster's regular weapon graphic) C2/0629: 99 A8 3C STA $3CA8,Y C2/062C: 99 A9 3C STA $3CA9,Y C2/062F: 20 C1 2D JSR $2DC1 (load monster's special attack, elemental properties, statuses, status immunities, special properties like Human/Undead/Dies at MP=0 , etc) C2/0632: 28 PLP C2/0633: 60 RTS Picks command for Muddled/Charmed/Berserk/Colosseum monsters C2/0634: DA PHX C2/0635: C2 30 REP #$30 (Set 16-bit A, X, & Y) C2/0637: BD F9 1F LDA $1FF9,X (Which monster it is) C2/063A: 0A ASL C2/063B: 0A ASL C2/063C: AA TAX (multiply monster # by 4 to index its Control/Muddled/Charm/Colosseum attack table) C2/063D: BF 00 3D CF LDA $CF3D00,X (Muddled commands 1 and 2) C2/0641: 85 F0 STA $F0 C2/0643: BF 02 3D CF LDA $CF3D02,X (Muddled commands 3 and 4) C2/0647: 85 F2 STA $F2 C2/0649: E2 30 SEP #$30 (Set 8-bit A, X, & Y) C2/064B: 64 EE STZ $EE C2/064D: 20 5A 4B JSR $4B5A (random: 0 to 255) C2/0650: 29 03 AND #$03 (0 to 3 - point to a random attack slot) C2/0652: AA TAX C2/0653: B5 F0 LDA $F0,X C2/0655: C9 FF CMP #$FF C2/0657: D0 0B BNE $0664 (branch if valid attack in slot) C2/0659: CA DEX C2/065A: 10 F7 BPL $0653 (loop through remainder of attack slots) C2/065C: E6 EE INC $EE (if we couldn't find any valid attacks, increment counter) C2/065E: F0 04 BEQ $0664 (give up if we've incremented it 256 times? i can't see why more than 1 time would be necessary.. if we give up, it appears FFh is retained as the attack #, which should make the monster do nothing..) (it would've been far faster to change C2/064B to "LDA #$FF / STA $EE" and this BEQ to a BNE.) C2/0660: A2 03 LDX #$03 (if randomly chosen attack slot and all the ones below it were Empty, go do the loop again, this time starting with the highest numbered slot. this way, we'll check EVERY slot before throwing in the towel.) C2/0662: 80 EF BRA $0653 C2/0664: FA PLX C2/0665: 48 PHA C2/0666: BD E5 3E LDA $3EE5,X C2/0669: 89 10 BIT #$10 C2/066B: F0 04 BEQ $0671 (Branch if not Berserk) C2/066D: A9 EE LDA #$EE C2/066F: 83 01 STA $01,S (Set attack to Battle) C2/0671: 68 PLA C2/0672: 20 BF 1D JSR $1DBF (choose a command based on attack #) C2/0675: 20 E4 03 JSR $03E4 (Determine command's "time to wait", recalculate targets if there aren't any) C2/0678: 4C CB 4E JMP $4ECB (queue chosen command and attack, in entity's conventional queue) (Data - Time to wait after entering a command until character actually performs it (iow, how long they spend in their ready stance). This value * 256 is compared to their $3AB4 counter. I'm really not sure how this applies to enemies.) C2/067B: 10 (Fight) C2/067C: 10 (Item) C2/067D: 20 (Magic) C2/067E: 00 (Morph) C2/067F: 00 (Revert) C2/0680: 10 (Steal) C2/0681: 10 (Capture) C2/0682: 10 (SwdTech) C2/0683: 10 (Throw) C2/0684: 10 (Tools) C2/0685: 10 (Blitz) C2/0686: 10 (Runic) C2/0687: 20 (Lore) C2/0688: 10 (Sketch) C2/0689: 10 (Control) C2/068A: 10 (Slot) C2/068B: 10 (Rage) C2/068C: 10 (Leap) C2/068D: 10 (Mimic) C2/068E: 10 (Dance) C2/068F: 10 (Row) C2/0690: 10 (Def.) C2/0691: E0 (Jump) C2/0692: 20 (X-Magic) C2/0693: 10 (GP Rain) C2/0694: 10 (Summon) C2/0695: 20 (Health) C2/0696: 20 (Shock) C2/0697: 10 (Possess) C2/0698: 10 (MagiTek) C2/0699: 00 C2/069A: 00 (Do various responses to three mortal statuses) C2/069B: A2 12 LDX #$12 C2/069D: BD A0 3A LDA $3AA0,X C2/06A0: 4A LSR C2/06A1: 90 5D BCC $0700 (if this entity not present, branch to next one) C2/06A3: C2 20 REP #$20 C2/06A5: BD 18 30 LDA $3018,X C2/06A8: 2C 4E 2F BIT $2F4E (is this entity marked to enter battlefield?) C2/06AB: E2 20 SEP #$20 C2/06AD: D0 51 BNE $0700 (branch to next one if so) C2/06AF: 20 AD 07 JSR $07AD (Mark Control links to be deactivated if entity possesses certain statuses) C2/06B2: BD E4 3E LDA $3EE4,X C2/06B5: 89 82 BIT #$82 (Check for Dead or Zombie Status) C2/06B7: F0 06 BEQ $06BF (branch if none set) C2/06B9: 9E F4 3B STZ $3BF4,X C2/06BC: 9E F5 3B STZ $3BF5,X (Set HP to 0) C2/06BF: BD E4 3E LDA $3EE4,X C2/06C2: 89 C2 BIT #$C2 (Check for Dead, Zombie, or Petrify status) C2/06C4: F0 09 BEQ $06CF (branch if none set) C2/06C6: BD 19 30 LDA $3019,X C2/06C9: 0C 3A 3A TSB $3A3A (add to bitfield of dead-ish or escaped monsters) C2/06CC: 20 C8 07 JSR $07C8 (Clear Zinger, Love Token, and Charm bonds, and clear applicable Quick variables) C2/06CF: BD E4 3E LDA $3EE4,X C2/06D2: 10 2C BPL $0700 (Branch if alive) C2/06D4: E0 08 CPX #$08 C2/06D6: B0 0C BCS $06E4 (branch if monster) C2/06D8: BD D8 3E LDA $3ED8,X (Which character) C2/06DB: C9 0E CMP #$0E C2/06DD: D0 05 BNE $06E4 (Branch if not Banon) C2/06DF: A9 06 LDA #$06 C2/06E1: 8D 6E 3A STA $3A6E (Banon fell... "End of combat" method #6) C2/06E4: 20 10 07 JSR $0710 (If Wound status set on mid-Jump entity, replace it with Air Anchor effect so they can land first) C2/06E7: BD E4 3E LDA $3EE4,X C2/06EA: 89 02 BIT #$02 C2/06EC: F0 03 BEQ $06F1 (branch if no Zombie Status) C2/06EE: 20 28 07 JSR $0728 (clear Wound status, and some other bit) C2/06F1: BD E4 3E LDA $3EE4,X C2/06F4: 10 0A BPL $0700 (Branch if alive) C2/06F6: BD F9 3E LDA $3EF9,X C2/06F9: 89 04 BIT #$04 C2/06FB: F0 03 BEQ $0700 (branch if no Life 3 status) C2/06FD: 20 99 07 JSR $0799 (prepare Life 3 revival) C2/0700: CA DEX C2/0701: CA DEX C2/0702: 10 99 BPL $069D (iterate for all 10 entities) C2/0704: A2 12 LDX #$12 C2/0706: 20 39 07 JSR $0739 (clean up Control if flagged) C2/0709: CA DEX C2/070A: CA DEX C2/070B: 10 F9 BPL $0706 (loop for every entity onscreen) C2/070D: 4C 26 5D JMP $5D26 (Copy Current and Max HP and MP, and statuses to displayable variables) (If Wound status set on mid-Jump entity, replace it with Air Anchor effect so they can land first) C2/0710: C2 20 REP #$20 C2/0712: BD 18 30 LDA $3018,X C2/0715: 2C 2C 3F BIT $3F2C (are they in the middle of a Jump?) C2/0718: E2 20 SEP #$20 C2/071A: F0 0B BEQ $0727 (Exit function if not) C2/071C: 20 28 07 JSR $0728 (clear Wound for now, so they don't actually croak in mid-air) C2/071F: BD 05 32 LDA $3205,X C2/0722: 29 FB AND #$FB C2/0724: 9D 05 32 STA $3205,X (Set Air Anchor effect) C2/0727: 60 RTS C2/0728: BD E4 3E LDA $3EE4,X C2/072B: 29 7F AND #$7F (Clear death status) C2/072D: 9D E4 3E STA $3EE4,X C2/0730: BD 04 32 LDA $3204,X C2/0733: 29 BF AND #$BF (clear bit 6) C2/0735: 9D 04 32 STA $3204,X C2/0738: 60 RTS (Remove Control's influence from this entity and its Controller/Controllee if Control was flagged to be deactivated due to: - C2/07AD found certain statuses on entity [doesn't matter whether it's the Controller or it's the Controllee]) - this entity is a Controllee and C2/0C2D detected them sustaining physical damage [healing or 0 damage will count, but a non-damaging attack -- i.e. one with no damage numerals -- will not] ) C2/0739: BD B9 32 LDA $32B9,X (who's Controlling this entity?) C2/073C: C9 FF CMP #$FF C2/073E: F0 08 BEQ $0748 (branch if nobody controls them) C2/0740: 10 06 BPL $0748 (branch if somebody controls them, and Control wasn't flagged to be deactivated) C2/0742: 29 7F AND #$7F C2/0744: A8 TAY (put Controller in Y [Controllee is in X]) C2/0745: 20 5B 07 JSR $075B (clear Control info for the Controller and Controllee [this entity]) C2/0748: BD B8 32 LDA $32B8,X (now see who this entity Controls) C2/074B: C9 FF CMP #$FF C2/074D: F0 0B BEQ $075A (branch if they control nobody) C2/074F: 10 09 BPL $075A (branch if they control somebody, and Control wasn't flagged to be deactivated) C2/0751: 29 7F AND #$7F C2/0753: DA PHX C2/0754: 9B TXY (put Controller in Y) C2/0755: AA TAX (put Controllee in X) C2/0756: 20 5B 07 JSR $075B (clear Control info for the Controller [this entity] and Controllee) C2/0759: FA PLX C2/075A: 60 RTS (Clear Control-related data for a Controller, addressed by Y, and a Controllee, addressed by X) C2/075B: B9 4D 3E LDA $3E4D,Y C2/075E: 29 FE AND #$FE C2/0760: 99 4D 3E STA $3E4D,Y C2/0763: B9 F9 3E LDA $3EF9,Y C2/0766: 29 EF AND #$EF C2/0768: 99 F9 3E STA $3EF9,Y (clear "Chant" status from Controller) C2/076B: A9 FF LDA #$FF C2/076D: 9D B9 32 STA $32B9,X (set to nobody controlling Controllee) C2/0770: 99 B8 32 STA $32B8,Y (set to Controller controlling nobody) C2/0773: BD 19 30 LDA $3019,X C2/0776: 1C 54 2F TRB $2F54 (cancel visual flipping of Controllee) C2/0779: DA PHX C2/077A: 20 83 07 JSR $0783 C2/077D: BB TYX C2/077E: 20 83 07 JSR $0783 C2/0781: FA PLX C2/0782: 60 RTS C2/0783: A9 40 LDA #$40 C2/0785: 20 AB 5B JSR $5BAB (set bit 6 of $3AA1,X) C2/0788: BD 04 32 LDA $3204,X C2/078B: 09 40 ORA #$40 C2/078D: 9D 04 32 STA $3204,X (set bit 6) C2/0790: A9 7F LDA #$7F C2/0792: 3D A0 3A AND $3AA0,X C2/0795: 9D A0 3A STA $3AA0,X (clear bit 7) C2/0798: 60 RTS (Prepare Life 3 revival) C2/0799: 29 FB AND #$FB C2/079B: 9D F9 3E STA $3EF9,X (clear Life 3 status) C2/079E: BD 19 30 LDA $3019,X C2/07A1: 1C 2F 2F TRB $2F2F (remove from bitfield of remaining enemies?) C2/07A4: A9 30 LDA #$30 (Life spell ID) C2/07A6: 85 B8 STA $B8 C2/07A8: A9 26 LDA #$26 (command #$26) C2/07AA: 4C 91 4E JMP $4E91 (queue it, in global Special Action queue) (Mark Control links to be deactivated if entity possesses certain statuses) C2/07AD: F4 C2 B0 PEA $B0C2 (Sleep, Muddled, Berserk, Death, Petrify, Zombie) C2/07B0: F4 11 03 PEA $0311 (Rage, Freeze, Dance, Stop) C2/07B3: 9B TXY C2/07B4: 20 64 58 JSR $5864 C2/07B7: B0 0E BCS $07C7 (Exit function if none of those statuses set) C2/07B9: 1E B8 32 ASL $32B8,X C2/07BC: 38 SEC C2/07BD: 7E B8 32 ROR $32B8,X (flag "Who you control" link to be deactivated) C2/07C0: 1E B9 32 ASL $32B9,X C2/07C3: 38 SEC C2/07C4: 7E B9 32 ROR $32B9,X (flag "Who controls you" link to be deactivated) C2/07C7: 60 RTS (Clear Zinger, Love Token, and Charm bonds, and clear applicable Quick variables) C2/07C8: EC F9 33 CPX $33F9 C2/07CB: D0 28 BNE $07F5 (branch if you're not being Zingered) C2/07CD: DA PHX C2/07CE: AE F8 33 LDX $33F8 (who's doing the Zingering) C2/07D1: BD 19 30 LDA $3019,X C2/07D4: 85 B9 STA $B9 C2/07D6: A9 04 LDA #$04 C2/07D8: 85 B8 STA $B8 C2/07DA: A2 00 LDX #$00 C2/07DC: A9 24 LDA #$24 C2/07DE: 20 91 4E JSR $4E91 (queue Command F5 04, with an animation of 00, in global Special Action queue) C2/07E1: A9 02 LDA #$02 C2/07E3: 85 B8 STA $B8 C2/07E5: A2 08 LDX #$08 C2/07E7: A9 24 LDA #$24 C2/07E9: 20 91 4E JSR $4E91 (queue Command F5 02, with an animation of 08, in global Special Action queue) C2/07EC: A9 FF LDA #$FF C2/07EE: 8D F8 33 STA $33F8 (nobody's Zingering) C2/07F1: 8D F9 33 STA $33F9 (nobody's being Zingered) C2/07F4: FA PLX C2/07F5: BD 6C 33 LDA $336C,X C2/07F8: 30 04 BMI $07FE (branch if you have no Love Token slave) C2/07FA: A8 TAY C2/07FB: 20 2D 08 JSR $082D (Clear Love Token links between you and slave) C2/07FE: BD 6D 33 LDA $336D,X C2/0801: 30 07 BMI $080A (branch if you're nobody's Love Token slave) C2/0803: DA PHX C2/0804: 9B TXY C2/0805: AA TAX C2/0806: 20 2D 08 JSR $082D (Clear Love Token links between you and master) C2/0809: FA PLX C2/080A: BD 94 33 LDA $3394,X C2/080D: 30 04 BMI $0813 (branch if you're not Charming anybody) C2/080F: A8 TAY C2/0810: 20 36 08 JSR $0836 (Clear Charm links between you and your Charmee) C2/0813: BD 95 33 LDA $3395,X C2/0816: 30 07 BMI $081F (branch if you're not Charmed by anybody) C2/0818: DA PHX C2/0819: 9B TXY C2/081A: AA TAX C2/081B: 20 36 08 JSR $0836 (Clear Charm links between you and Charmer) C2/081E: FA PLX C2/081F: EC 04 34 CPX $3404 (Compare to Quick's target byte) C2/0822: D0 08 BNE $082C (Exit If this actor does not get extra turn due to Quick) C2/0824: A9 FF LDA #$FF C2/0826: 8D 04 34 STA $3404 (Store #$FF (empty) to Quick's target byte) C2/0829: 8D 02 34 STA $3402 (Store #$FF (for none) to the number of turns due to Quick) C2/082C: 60 RTS Clear Love Token effects C2/082D: A9 FF LDA #$FF C2/082F: 9D 6C 33 STA $336C,X (Love Token master now has no slave) C2/0832: 99 6D 33 STA $336D,Y (and Love Token slave now has no master) C2/0835: 60 RTS Clear Charm effects C2/0836: A9 FF LDA #$FF C2/0838: 9D 94 33 STA $3394,X (Charmer is now Charming nobody) C2/083B: 99 95 33 STA $3395,Y (and Charmee is now being Charmed by nobody) C2/083E: 60 RTS (Update a variety of things when the battle starts, when the enemy formation is switched, and at the end of each turn [after the turn's animation plays out]) C2/083F: A2 12 LDX #$12 C2/0841: BD A0 3A LDA $3AA0,X C2/0844: 4A LSR C2/0845: 90 77 BCC $08BE (if this entity not present, branch to next one) C2/0847: 1E E0 32 ASL $32E0,X C2/084A: 5E E0 32 LSR $32E0,X (clear Bit 7 of $32E0. this prevents C2/4C5B from triggering a counterattack for a once-attacked entity turn after turn, while still preserving the attacker in Bits 0-6.) C2/084D: BD E4 3E LDA $3EE4,X C2/0850: 30 07 BMI $0859 (Branch if dead) C2/0852: BD A1 3A LDA $3AA1,X C2/0855: 89 40 BIT #$40 C2/0857: F0 03 BEQ $085C (Branch if bit 6 of $3AA1,X is not set) C2/0859: 20 77 09 JSR $0977 C2/085C: BD 04 32 LDA $3204,X C2/085F: F0 4A BEQ $08AB C2/0861: 4A LSR C2/0862: 90 03 BCC $0867 (branch if bit 0 of $3204,X isn't set, meaning entity wasn't target of a Palidor summon this turn) C2/0864: 20 4A 0B JSR $0B4A (if it was, do some more Palidor setup) C2/0867: 1E 04 32 ASL $3204,X C2/086A: 90 03 BCC $086F (Branch if bit 7 of $3204,X is not set. It is set for an entity when their Imp status is toggled, the attack/spell costs them MP to cast, or the attack itself affects their MP because they're a target [or the caster, if it's a draining attack]) C2/086C: 20 63 57 JSR $5763 (Update availability of entries on Esper, Magic, and Lore menus) C2/086F: 1E 04 32 ASL $3204,X C2/0872: 90 08 BCC $087C (Branch if bit 6 of $3204,X is not set) C2/0874: 20 0F 0A JSR $0A0F (Remove entity from Wait Queue, remove all records from their conventional linked list queue, and default some poses if character) C2/0877: A9 80 LDA #$80 C2/0879: 20 AB 5B JSR $5BAB (set bit 7 of $3AA1,X) C2/087C: 1E 04 32 ASL $3204,X C2/087F: 90 03 BCC $0884 (Branch if bit 5 of $3204,X is not set. It is set for an entity upon Condemned status being set.) C2/0881: 20 B4 09 JSR $09B4 (Assign a starting value to Condemned counter) C2/0884: 1E 04 32 ASL $3204,X C2/0887: 90 03 BCC $088C (Branch if bit 4 of $3204,X is not set. It is set for an entity when Condemned expires or is otherwise cleared.) C2/0889: 20 CE 09 JSR $09CE (Zero the Condemned counter) C2/088C: 1E 04 32 ASL $3204,X C2/088F: 90 07 BCC $0898 (Branch if bit 3 of $3204,X is not set. It is set for an entity when Mute or Imp status is toggled.) C2/0891: E0 08 CPX #$08 C2/0893: B0 03 BCS $0898 (Branch if not a character) C2/0895: 20 7D 52 JSR $527D (Update availability of commands on character's main menu) C2/0898: 1E 04 32 ASL $3204,X C2/089B: 90 03 BCC $08A0 (Branch if bit 2 of $3204,X is not set. It is set for an entity when Haste or Slow is toggled, and a couple other cases I'm not sure of.) C2/089D: 20 D2 09 JSR $09D2 (Recalculate the amount by which to increase the ATB gauge. Affects various other timers, too.) C2/08A0: 1E 04 32 ASL $3204,X C2/08A3: 90 03 BCC $08A8 (Branch if bit 1 of $3204,X is not set. It is set for an entity when Morph status is toggled.) C2/08A5: 20 A8 0A JSR $0AA8 (switch command on main menu between Morph and Revert, and adjust Morph-related variables like timers) C2/08A8: 1E 04 32 ASL $3204,X (clear former Bit 0, just like we've already cleared all the other bits with our shifting.) C2/08AB: 20 1F 09 JSR $091F C2/08AE: 20 C6 08 JSR $08C6 C2/08B1: BD A0 3A LDA $3AA0,X C2/08B4: 89 50 BIT #$50 C2/08B6: F0 03 BEQ $08BB C2/08B8: 20 41 0A JSR $0A41 (clear Defending flag) C2/08BB: 20 4A 0A JSR $0A4A (Prepare equipment spell activations on low HP) C2/08BE: CA DEX C2/08BF: CA DEX C2/08C0: 30 03 BMI $08C5 C2/08C2: 4C 41 08 JMP $0841 (iterate for all 10 entities) C2/08C5: 60 RTS (Establish $3AA0 Bits 4 and 6 based on having ailments, being Seized or Controlled, or another entity being Quicked. Allow "second chance" at action or wait queueing if C2/00F9 tried to execute a conventional turn with either of these bits set.) C2/08C6: A9 50 LDA #$50 C2/08C8: 20 B4 11 JSR $11B4 (set Bits 4 and 6 of $3AA0,X) C2/08CB: AD 04 34 LDA $3404 C2/08CE: 30 05 BMI $08D5 (branch if no targets under the influence of Quick) C2/08D0: EC 04 34 CPX $3404 (Is this target the one under Quick's influence?) C2/08D3: D0 F0 BNE $08C5 (Exit if not) C2/08D5: BD E4 3E LDA $3EE4,X C2/08D8: 89 C0 BIT #$C0 C2/08DA: D0 E9 BNE $08C5 (Exit if dead or Petrify) C2/08DC: BD F8 3E LDA $3EF8,X C2/08DF: 89 10 BIT #$10 C2/08E1: D0 E2 BNE $08C5 (Exit if stop) C2/08E3: A9 EF LDA #$EF C2/08E5: 20 92 07 JSR $0792 (clear Bit 4 of $3AA0,X. if it's still set, it means that: Entity is Wounded, Petrified, or Stopped, or somebody else is under the influence of Quick.) C2/08E8: BD B9 32 LDA $32B9,X C2/08EB: 10 D8 BPL $08C5 (Exit if you are controlled) C2/08ED: BD E5 3E LDA $3EE5,X C2/08F0: 30 D3 BMI $08C5 (Exit if asleep) C2/08F2: BD F9 3E LDA $3EF9,X C2/08F5: 89 02 BIT #$02 C2/08F7: D0 CC BNE $08C5 (Exit if Freeze) C2/08F9: BD 59 33 LDA $3359,X C2/08FC: 10 C7 BPL $08C5 (Exit if seized) C2/08FE: A9 BF LDA #$BF C2/0900: 20 92 07 JSR $0792 (clear Bit 6 of $3AA0,X) C2/0903: BD A1 3A LDA $3AA1,X (if bit 7 of $3AA1 is set, C2/00F9 declined to execute a conventional turn for this entity due to Bit 6 and/or 4 of $3AA0 being set, and requested a "second chance".) C2/0906: 10 BD BPL $08C5 (Exit if it's not set) C2/0908: 29 7F AND #$7F (Clear it) C2/090A: 9D A1 3A STA $3AA1,X C2/090D: BD CC 32 LDA $32CC,X (get entry point to entity's conventional linked list queue) C2/0910: 1A INC C2/0911: F0 B2 BEQ $08C5 (Exit if null, as list is empty) C2/0913: BD A1 3A LDA $3AA1,X C2/0916: 4A LSR C2/0917: 90 03 BCC $091C (Branch if bit 0 of $3AA1 is not set) C2/0919: 4C 77 4E JMP $4E77 (put entity in action queue) C2/091C: 4C 66 4E JMP $4E66 (put entity in wait queue) C2/091F: E0 08 CPX #$08 C2/0921: B0 A2 BCS $08C5 (exit if monster) C2/0923: BD D8 3E LDA $3ED8,X (Which character it is) C2/0926: C9 0D CMP #$0D C2/0928: F0 9B BEQ $08C5 (Exit if Umaro) C2/092A: BD 55 32 LDA $3255,X (top byte of offset of main script) C2/092D: 10 96 BPL $08C5 (exit if character has a main script) C2/092F: AD 97 3A LDA $3A97 C2/0932: D0 91 BNE $08C5 (exit if in the Colosseum) C2/0934: A9 02 LDA #$02 C2/0936: 85 EE STA $EE (Bit 1 of $3AA0,X will be set by upcoming function call.) C2/0938: EC 04 34 CPX $3404 (Is this target under the influence of Quick?) C2/093B: D0 04 BNE $0941 (branch if not) C2/093D: A9 88 LDA #$88 C2/093F: 04 EE TSB $EE (mark bits 3 and 7 of $3AA0,X to be set by function call. relates to not resetting ATB gauge after turn taken. also done by Morph/Revert function at C2/0AA8.) C2/0941: A5 EE LDA $EE C2/0943: 20 B4 11 JSR $11B4 (set chosen bits in $3AA0,X) C2/0946: BD 18 30 LDA $3018,X C2/0949: 2C 4C 2F BIT $2F4C (is entity marked to leave battlefield?) C2/094C: D0 38 BNE $0986 (branch if so) C2/094E: BD 59 33 LDA $3359,X C2/0951: 3D 95 33 AND $3395,X C2/0954: 10 30 BPL $0986 (branch if Seized or Charmed) C2/0956: F4 C2 B0 PEA $B0C2 (Sleep, Muddled, Berserk, Death, Petrify, Zombie) C2/0959: F4 01 21 PEA $2101 (Dance, Hide, Rage) C2/095C: 9B TXY C2/095D: 20 64 58 JSR $5864 C2/0960: 90 24 BCC $0986 (Branch if any set) C2/0962: BD A0 3A LDA $3AA0,X C2/0965: 10 66 BPL $09CD C2/0967: BD CC 32 LDA $32CC,X (get entry point to entity's conventional linked list queue) C2/096A: 10 61 BPL $09CD (exit if non-null, i.e. list has a record) C2/096C: BD A0 3A LDA $3AA0,X C2/096F: 09 08 ORA #$08 C2/0971: 9D A0 3A STA $3AA0,X (turn on bit 3) C2/0974: 4C EF 11 JMP $11EF C2/0977: C2 20 REP #$20 C2/0979: A9 D3 BF LDA #$BFD3 C2/097C: 20 92 07 JSR $0792 (clear Bits 2, 3, and 5 of $3AA0,X. clear Bit 6 of $3AA1,X.) C2/097F: E2 20 SEP #$20 C2/0981: A9 01 LDA #$01 C2/0983: 9D 19 32 STA $3219,X C2/0986: A9 F9 LDA #$F9 (C2/091F can enter here) C2/0988: EB XBA C2/0989: BD F9 3E LDA $3EF9,X C2/098C: 89 20 BIT #$20 C2/098E: D0 13 BNE $09A3 (Branch if Hide status) C2/0990: BD 18 30 LDA $3018,X C2/0993: 2C 4C 2F BIT $2F4C (is entity marked to leave battlefield?) C2/0996: D0 0B BNE $09A3 (branch if so) C2/0998: BD A0 3A LDA $3AA0,X C2/099B: 10 06 BPL $09A3 (Branch if bit 7 of $3AA0 is not set) C2/099D: A9 79 LDA #$79 C2/099F: EB XBA C2/09A0: 20 66 4E JSR $4E66 (put entity in wait queue) C2/09A3: EB XBA C2/09A4: 20 92 07 JSR $0792 (clear Bits 1, 2, and possibly 7 of $3AA0,X) C2/09A7: E0 08 CPX #$08 C2/09A9: B0 22 BCS $09CD (Exit function if monster) C2/09AB: 8A TXA C2/09AC: 4A LSR C2/09AD: 85 10 STA $10 C2/09AF: A9 03 LDA #$03 C2/09B1: 4C 11 64 JMP $6411 (Assign a starting value to Condemned counter) (Counter = 81 - (Attacker Level + [0..(Attacker Level - 1)]), with a minimum of 20 . For purposes of a starting status, Attacker Level is treated as 20.) C2/09B4: AD AF 11 LDA $11AF (Attacker Level) C2/09B7: 20 65 4B JSR $4B65 (random: 0 to Level - 1) C2/09BA: 18 CLC C2/09BB: 6D AF 11 ADC $11AF (Add to level) C2/09BE: 85 EE STA $EE C2/09C0: 38 SEC C2/09C1: A9 3C LDA #$3C C2/09C3: E5 EE SBC $EE (Subtract from 60) C2/09C5: B0 01 BCS $09C8 C2/09C7: 7B TDC (Set to 0 if less than 0) C2/09C8: 69 14 ADC #$14 (Add 21. if it was less than 0, add 20 instead, giving it a starting value of 20.) C2/09CA: 9D 05 3B STA $3B05,X (set Condemned counter) (note that this counter is "one off" from the actual numerals you'll see onscreen: 00 value = numerals disabled 01 value = numerals at "00" 02 value = numerals at "01" 03 value = numerals at "02" , etc.) C2/09CD: 60 RTS (Zero and Disable Condemned counter) C2/09CE: 9E 05 3B STZ $3B05,X (Condemned counter = 0, disabled) C2/09D1: 60 RTS Battle Time Counter function (Recalculate the ATB multiplier, which affects: the Condemned counter, invisible timers for auto-expiring statuses, and the frequency of damage/healing from statuses like Regen and Poison. Also recalculate the amount by which to increase the ATB gauge, and the related amount for the "wait timer" [which determines how long a character is in their ready stance].) C2/09D2: 08 PHP C2/09D3: A0 20 LDY #$20 (ATB multiplier = 32 if slowed) C2/09D5: BD F8 3E LDA $3EF8,X C2/09D8: 89 04 BIT #$04 C2/09DA: D0 08 BNE $09E4 (Branch if Slow) C2/09DC: A0 40 LDY #$40 (ATB multiplier = 64 normally) C2/09DE: 89 08 BIT #$08 C2/09E0: F0 02 BEQ $09E4 (Branch if not Haste) C2/09E2: A0 54 LDY #$54 (ATB multiplier = 84 if hasted) C2/09E4: 98 TYA C2/09E5: 9D DD 3A STA $3ADD,X (save the ATB multiplier) C2/09E8: 98 TYA (this instruction seems frivolous) C2/09E9: 48 PHA C2/09EA: 18 CLC C2/09EB: 4A LSR C2/09EC: 63 01 ADC $01,S C2/09EE: 83 01 STA $01,S (ATB multiplier *= 1.5) C2/09F0: BD 19 3B LDA $3B19,X (Speed) C2/09F3: 69 14 ADC #$14 C2/09F5: EB XBA (Speed + 20 in top byte of Accumulator) C2/09F6: E0 08 CPX #$08 C2/09F8: 90 06 BCC $0A00 (branch if not an enemy) C2/09FA: AD 90 3A LDA $3A90 (= 255 - (Battle Speed setting * 24) ) (remember that what you see on the Config menu is Battle Speed + 1) C2/09FD: 20 81 47 JSR $4781 (A = (speed + 20) * $3A90 ) C2/0A00: 68 PLA (bottom byte of A is now Slow/Normal/Haste Constant) C2/0A01: 20 81 47 JSR $4781 (Let C be the Slow/Normal/Haste constant, equal to 48, 96, or 126, respectively. for characters: A = (Speed + 20) * C for enemies: A = ( ((Speed + 20) * $3A90) DIV 256) * C ) C2/0A04: C2 20 REP #$20 C2/0A06: 4A LSR C2/0A07: 4A LSR C2/0A08: 4A LSR C2/0A09: 4A LSR (A = A / 16) C2/0A0A: 9D C8 3A STA $3AC8,X (Save as amount by which to increase ATB timer.) C2/0A0D: 28 PLP C2/0A0E: 60 RTS (Remove entity from Wait Queue, remove all records from their conventional linked list queue, do ????, and default some poses if character) C2/0A0F: 20 01 03 JSR $0301 (Remove current first record from entity's conventional linked list queue, and update their entry point accordingly) C2/0A12: BD CC 32 LDA $32CC,X C2/0A15: 10 F8 BPL $0A0F (repeat as long as their queue has a valid entry point [i.e. it's not empty]) C2/0A17: AC 64 3A LDY $3A64 (get position of next Wait Queue slot to read) C2/0A1A: 8A TXA C2/0A1B: D9 20 37 CMP $3720,Y (does queue entry match our current entity?) C2/0A1E: D0 05 BNE $0A25 (if not, branch and move to next entry) C2/0A20: A9 FF LDA #$FF C2/0A22: 99 20 37 STA $3720,Y (if there was a match, null out this Wait Queue entry) C2/0A25: C8 INY (move to next entry) C2/0A26: CC 65 3A CPY $3A65 C2/0A29: 90 EF BCC $0A1A (keep looping until position matches next available queue slot -- i.e., we've checked through the end of the queue) C2/0A2B: BD 19 32 LDA $3219,X C2/0A2E: D0 08 BNE $0A38 (branch if top byte of ATB counter is not 0) C2/0A30: DE 19 32 DEC $3219,X (make it 255) C2/0A33: A9 D3 LDA #$D3 C2/0A35: 20 92 07 JSR $0792 (clear Bits 2, 3, and 5 of $3AA0,X) C2/0A38: E0 08 CPX #$08 C2/0A3A: B0 0D BCS $0A49 (exit if monster) C2/0A3C: A9 2C LDA #$2C C2/0A3E: 4C 91 4E JMP $4E91 (queue command to buffer Battle Dynamics Command 0Eh, graphics related [defaulting character poses?], in global Special Action queue. see Function C2/51A8 for more info.) (Clear Defending flag) C2/0A41: A9 FD LDA #$FD C2/0A43: 3D A1 3A AND $3AA1,X C2/0A46: 9D A1 3A STA $3AA1,X (clear Defending flag. or other bit(s) if entered via C2/0A43.) C2/0A49: 60 RTS (Prepare equipment spell activations on low HP) C2/0A4A: BD A0 3A LDA $3AA0,X C2/0A4D: 89 10 BIT #$10 (is entity Wounded, Petrified, or Stopped, or is somebody else under the influence of Quick?) C2/0A4F: D0 3F BNE $0A90 (Exit function if any are true) C2/0A51: A9 02 LDA #$02 C2/0A53: 3C E5 3E BIT $3EE5,X C2/0A56: F0 38 BEQ $0A90 (Branch if not Near Fatal) C2/0A58: 3C 05 32 BIT $3205,X (is bit 1 set?) C2/0A5B: F0 33 BEQ $0A90 (exit if not, meaning we've already activated a spell on low HP this battle) C2/0A5D: 5D 05 32 EOR $3205,X C2/0A60: 9D 05 32 STA $3205,X (toggle off bit 1) C2/0A63: BD 59 3C LDA $3C59,X C2/0A66: 4A LSR C2/0A67: 90 0B BCC $0A74 (Branch if not Shell when low HP) C2/0A69: 48 PHA C2/0A6A: A9 25 LDA #$25 C2/0A6C: 85 B8 STA $B8 (Shell spell ID) C2/0A6E: A9 26 LDA #$26 C2/0A70: 20 91 4E JSR $4E91 (queue Command #$26, in global Special Action queue) C2/0A73: 68 PLA C2/0A74: 4A LSR C2/0A75: 90 0B BCC $0A82 (branch if not Safe when low HP) C2/0A77: 48 PHA C2/0A78: A9 1C LDA #$1C C2/0A7A: 85 B8 STA $B8 (Safe spell ID) C2/0A7C: A9 26 LDA #$26 C2/0A7E: 20 91 4E JSR $4E91 (queue Command #$26, in global Special Action queue) C2/0A81: 68 PLA C2/0A82: 4A LSR C2/0A83: 90 0B BCC $0A90 (branch if not Reflect when low HP [no item in game has this feature, but it's possible]) C2/0A85: 48 PHA C2/0A86: A9 24 LDA #$24 C2/0A88: 85 B8 STA $B8 (Rflect spell ID) C2/0A8A: A9 26 LDA #$26 C2/0A8C: 20 91 4E JSR $4E91 (queue Command #$26, in global Special Action queue) C2/0A8F: 68 PLA C2/0A90: 60 RTS C2/0A91: A2 06 LDX #$06 C2/0A93: BD 18 30 LDA $3018,X C2/0A96: 2C 74 3A BIT $3A74 (is this character among alive and present ones?) C2/0A99: F0 08 BEQ $0AA3 (skip to next one if not) C2/0A9B: 2C 2C 3F BIT $3F2C (are they a Jumper?) C2/0A9E: D0 03 BNE $0AA3 (skip to next one if so) C2/0AA0: 20 0F 0A JSR $0A0F (Remove entity from Wait Queue, remove all records from their conventional linked list queue, and default some poses if character) C2/0AA3: CA DEX C2/0AA4: CA DEX C2/0AA5: 10 EC BPL $0A93 (loop for all 4 characters) C2/0AA7: 60 RTS (Switch command on main menu between Morph and Revert, and adjust Morph-related variables like timers) C2/0AA8: A5 B1 LDA $B1 C2/0AAA: 4A LSR (is it an unconventional turn? in this context, that's auto-Revert.) C2/0AAB: B0 0A BCS $0AB7 (branch if so) C2/0AAD: BD 19 32 LDA $3219,X (Load top byte of this target's ATB counter) C2/0AB0: D0 05 BNE $0AB7 (branch if not zero) C2/0AB2: A9 88 LDA #$88 C2/0AB4: 20 B4 11 JSR $11B4 (set bits 3 and 7 of $3AA0,X. relates to not resetting ATB gauge after turn taken.) C2/0AB7: DA PHX C2/0AB8: BD F9 3E LDA $3EF9,X C2/0ABB: 49 08 EOR #$08 (get opposite of Morph status) C2/0ABD: 4A LSR C2/0ABE: 4A LSR C2/0ABF: 4A LSR C2/0AC0: 4A LSR C2/0AC1: 08 PHP (save Carry flag, which is opposite of "currently Morphed") C2/0AC2: 7B TDC C2/0AC3: 69 03 ADC #$03 C2/0AC5: 85 EE STA $EE ($EE = 3 or 4, depending on carry flag) C2/0AC7: 8A TXA C2/0AC8: EB XBA C2/0AC9: A9 06 LDA #$06 C2/0ACB: 20 81 47 JSR $4781 C2/0ACE: AA TAX (X = X * 6) C2/0ACF: A0 04 LDY #$04 C2/0AD1: BD 2E 20 LDA $202E,X (get contents of menu slot) C2/0AD4: C5 EE CMP $EE C2/0AD6: D0 05 BNE $0ADD (if Morphed and menu item isn't Morph(3), branch -OR- if not Morphed and menu item isn't Revert(4), branch) C2/0AD8: 49 07 EOR #$07 C2/0ADA: 9D 2E 20 STA $202E,X (toggle menu item between Morph(3) and Revert(4) ) C2/0ADD: E8 INX C2/0ADE: E8 INX C2/0ADF: E8 INX C2/0AE0: 88 DEY C2/0AE1: D0 EE BNE $0AD1 (loop for all 4 menu items) C2/0AE3: 28 PLP C2/0AE4: FA PLX C2/0AE5: 90 1A BCC $0B01 (Branch if currently Morphed) C2/0AE7: 08 PHP C2/0AE8: 20 36 0B JSR $0B36 (Establish new value for Morph supply based on its previous value and the current Morph timer) C2/0AEB: A9 FF LDA #$FF C2/0AED: 8D E2 3E STA $3EE2 (Store null as Morphed character) C2/0AF0: 9E 04 3B STZ $3B04,X (Set the Morph gauge for this entity to 0) C2/0AF3: E0 08 CPX #$08 (Compare target number to 8) C2/0AF5: B0 03 BCS $0AFA (Branch if it's greater (not a character)) C2/0AF7: 20 7D 52 JSR $527D (Update availability of commands on character's main menu - grey out or enable) C2/0AFA: C2 20 REP #$20 C2/0AFC: 9C 30 3F STZ $3F30 (morph timer = 0) C2/0AFF: 28 PLP C2/0B00: 60 RTS (If no one is already Morphed: designate character in X as Morphed, start Morph timer at 65535, and establish amount to decrement morph time counter based on Morph supply) C2/0B01: DA PHX C2/0B02: 08 PHP C2/0B03: AD E2 3E LDA $3EE2 (Which target is Morphed) C2/0B06: 10 2B BPL $0B33 (Exit function if someone is already Morphed) C2/0B08: AD BB 3E LDA $3EBB C2/0B0B: 4A LSR C2/0B0C: 4A LSR C2/0B0D: 6A ROR C2/0B0E: B0 23 BCS $0B33 (Exit function if bit 2 of $3EBB is set.. Set for just Phunbaba battle #4 [i.e. Terra's second Phunbaba encounter]) C2/0B10: 0A ASL (Put Bit 1 into Carry) C2/0B11: 8E E2 3E STX $3EE2 (store target in X as Morphed character) C2/0B14: 7B TDC C2/0B15: C2 20 REP #$20 (Set 16-bit Accumulator) C2/0B17: 3A DEC C2/0B18: 8D 30 3F STA $3F30 (Morph timer = 65535) C2/0B1B: AE F6 1C LDX $1CF6 (Morph supply) C2/0B1E: 20 92 47 JSR $4792 (65535 / Morph supply) C2/0B21: 90 01 BCC $0B24 (Branch if bit 1 of $3EBB not set. This bit is set in Terra's 2nd Phunbaba battle [i.e. Phunbaba #4], and lasts afterward. So Terra gains some resolve here. ^__^) C2/0B23: 4A LSR C2/0B24: 4A LSR C2/0B25: 4A LSR C2/0B26: 4A LSR (A = (65535 / Morph supply) / 8 [pre-Phunbaba] A = (65535 / Morph supply) / 16 [post-Phunbaba] ) C2/0B27: C9 00 08 CMP #$0800 C2/0B2A: 90 03 BCC $0B2F C2/0B2C: A9 FF 07 LDA #$07FF (this will cap amount to decrement morph time counter at 2048) C2/0B2F: 1A INC C2/0B30: 8D 32 3F STA $3F32 (Amount to decrement morph time counter) C2/0B33: 28 PLP C2/0B34: FA PLX C2/0B35: 60 RTS (Establish new value for Morph supply based on its previous value and the current Morph timer) C2/0B36: AD E2 3E LDA $3EE2 (Which target is Morphed) C2/0B39: 30 0E BMI $0B49 (Exit if no one is Morphed) C2/0B3B: AD F6 1C LDA $1CF6 C2/0B3E: EB XBA C2/0B3F: AD 31 3F LDA $3F31 C2/0B42: 20 81 47 JSR $4781 (16-bit A = morph supply * (morph timer DIV 256) ) C2/0B45: EB XBA C2/0B46: 8D F6 1C STA $1CF6 (morph supply = (morph supply * (morph timer DIV 256)) DIV 256 ) C2/0B49: 60 RTS (Called after turn when Palidor used) C2/0B4A: C2 20 REP #$20 (Set 16-bit Accumulator) C2/0B4C: BD 18 30 LDA $3018,X C2/0B4F: 0C 2C 3F TSB $3F2C (flag entity as Jumping) C2/0B52: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/0B54: BD A0 3A LDA $3AA0,X C2/0B57: 29 9B AND #$9B C2/0B59: 09 08 ORA #$08 C2/0B5B: 9D A0 3A STA $3AA0,X (clear bits 6, 5, and 2; set bit 3) C2/0B5E: AC 66 3A LDY $3A66 (get current action queue position) C2/0B61: 8A TXA C2/0B62: D9 20 38 CMP $3820,Y (does queue entry match our current entity?) C2/0B65: D0 05 BNE $0B6C (if not, branch and move to next entry) C2/0B67: A9 FF LDA #$FF C2/0B69: 99 20 38 STA $3820,Y (if there was a match, null out this action queue entry) C2/0B6C: C8 INY (move to next entry) C2/0B6D: CC 67 3A CPY $3A67 C2/0B70: 90 EF BCC $0B61 (keep looping until position matches next available queue slot -- i.e., we've checked through the end of the queue) C2/0B72: BD 05 32 LDA $3205,X C2/0B75: 29 7F AND #$7F C2/0B77: 9D 05 32 STA $3205,X (indicate entity has not taken a conventional turn [including landing one] since boarding Palidor) C2/0B7A: 9E B5 3A STZ $3AB5,X (zero top byte of Wait Timer) C2/0B7D: A9 E0 LDA #$E0 C2/0B7F: 9D 2C 32 STA $322C,X (save delay between inputting command and performing it. iow, how long you spend in the "ready stance." E0h is the same delay as the Jump command, and its ready stance constitutes the character being airborne.) C2/0B82: 60 RTS Modify Damage, Heal Undead, and Elemental modification C2/0B83: 08 PHP C2/0B84: E2 20 SEP #$20 C2/0B86: AD A6 11 LDA $11A6 (Battle Power) C2/0B89: D0 03 BNE $0B8E (Branch if not 0) C2/0B8B: 4C 2B 0C JMP $0C2B (Exit function if 0) C2/0B8E: AD A4 11 LDA $11A4 (Special Byte 2) C2/0B91: 30 05 BMI $0B98 (Branch if power = factor of HP) C2/0B93: 20 9E 0C JSR $0C9E (Damage modification) C2/0B96: 80 03 BRA $0B9B C2/0B98: 20 87 0D JSR $0D87 (Figure HP-based or MP-based damage) C2/0B9B: 64 F2 STZ $F2 C2/0B9D: B9 E4 3E LDA $3EE4,Y (Status byte 1 of target) C2/0BA0: 0A ASL C2/0BA1: 30 57 BMI $0BFA (Branch if target is Petrify, damage = 0) C2/0BA3: AD A4 11 LDA $11A4 C2/0BA6: 85 F2 STA $F2 (Store special byte 2 in $F2. what we're looking at is Bit 0, the Heal flag.) C2/0BA8: AD A2 11 LDA $11A2 C2/0BAB: 89 08 BIT #$08 C2/0BAD: F0 24 BEQ $0BD3 (Branch if not Invert Damage on Undead) C2/0BAF: B9 95 3C LDA $3C95,Y C2/0BB2: 10 0B BPL $0BBF (Branch if not undead) C2/0BB4: AD AA 11 LDA $11AA C2/0BB7: 89 82 BIT #$82 (Check if dead or zombie attack) C2/0BB9: D0 70 BNE $0C2B (Exit if ^) C2/0BBB: 64 F2 STZ $F2 (Clear heal flag) C2/0BBD: 80 07 BRA $0BC6 C2/0BBF: B9 E4 3E LDA $3EE4,Y C2/0BC2: 89 02 BIT #$02 (Check for Zombie status) C2/0BC4: F0 0D BEQ $0BD3 (Branch if not zombie) C2/0BC6: AD A4 11 LDA $11A4 C2/0BC9: 89 02 BIT #$02 C2/0BCB: F0 06 BEQ $0BD3 (Branch if not redirection) C2/0BCD: A5 F2 LDA $F2 C2/0BCF: 49 01 EOR #$01 C2/0BD1: 85 F2 STA $F2 (Toggle heal flag) C2/0BD3: AD A1 11 LDA $11A1 C2/0BD6: F0 46 BEQ $0C1E (Branch if non-elemental) C2/0BD8: AD C8 3E LDA $3EC8 (Forcefield nullified elements) C2/0BDB: 49 FF EOR #$FF C2/0BDD: 2D A1 11 AND $11A1 C2/0BE0: F0 18 BEQ $0BFA (Set damage to 0 if element nullified) C2/0BE2: B9 CC 3B LDA $3BCC,Y (Absorbed elements) C2/0BE5: 2C A1 11 BIT $11A1 C2/0BE8: F0 08 BEQ $0BF2 (branch if none are used in attack) C2/0BEA: A5 F2 LDA $F2 C2/0BEC: 49 01 EOR #$01 C2/0BEE: 85 F2 STA $F2 (toggle healing flag) C2/0BF0: 80 2C BRA $0C1E C2/0BF2: B9 CD 3B LDA $3BCD,Y (Nullified elements) C2/0BF5: 2C A1 11 BIT $11A1 C2/0BF8: F0 06 BEQ $0C00 (branch if none are used in attack) C2/0BFA: 64 F0 STZ $F0 C2/0BFC: 64 F1 STZ $F1 (Set damage to 0) C2/0BFE: 80 1E BRA $0C1E C2/0C00: B9 E1 3B LDA $3BE1,Y (Elements cut in half) C2/0C03: 2C A1 11 BIT $11A1 C2/0C06: F0 06 BEQ $0C0E (branch if none are used in attack) C2/0C08: 46 F1 LSR $F1 C2/0C0A: 66 F0 ROR $F0 (Cut damage in half) C2/0C0C: 80 10 BRA $0C1E C2/0C0E: B9 E0 3B LDA $3BE0,Y (Weak elements) C2/0C11: 2C A1 11 BIT $11A1 C2/0C14: F0 08 BEQ $0C1E (branch if none are used in attack) C2/0C16: A5 F1 LDA $F1 C2/0C18: 30 04 BMI $0C1E (Don't double damage if over 32768) C2/0C1A: 06 F0 ASL $F0 C2/0C1C: 26 F1 ROL $F1 (Double damage) C2/0C1E: AD A9 11 LDA $11A9 (get attack special effect) C2/0C21: C9 04 CMP #$04 C2/0C23: D0 03 BNE $0C28 (Branch if not Atma Weapon) C2/0C25: 20 39 0E JSR $0E39 (Atma Weapon damage modification) C2/0C28: 20 2D 0C JSR $0C2D (see description 3 lines below) C2/0C2B: 28 PLP C2/0C2C: 60 RTS (For physical attacks, handle random Zombie-inflicted ailments, and set up removal of Sleep, Muddled, and Control. Handle drainage. Enforce 9999 damage cap.) C2/0C2D: AD A2 11 LDA $11A2 C2/0C30: 4A LSR C2/0C31: 90 2A BCC $0C5D (Branch if not physical damage) C2/0C33: AD 82 3A LDA $3A82 C2/0C36: 2D 83 3A AND $3A83 C2/0C39: 10 22 BPL $0C5D (Branch if blocked by Golem or dog) C2/0C3B: BD E4 3E LDA $3EE4,X C2/0C3E: 89 02 BIT #$02 (Check for Zombie Status on attacker) C2/0C40: F0 03 BEQ $0C45 (Branch if not zombie) C2/0C42: 20 21 0E JSR $0E21 (Poison / Dark status for zombies) C2/0C45: AD AB 11 LDA $11AB (Status set by attack 2) C2/0C48: 49 A0 EOR #$A0 (Sleep & Muddled) C2/0C4A: 29 A0 AND #$A0 C2/0C4C: 39 E5 3E AND $3EE5,Y (Status byte 2) C2/0C4F: 19 FD 3D ORA $3DFD,Y C2/0C52: 99 FD 3D STA $3DFD,Y (mark Sleep & Muddled to be cleared from target, provided it already has the statuses, and the attack itself isn't trying to inflict or remove them) C2/0C55: B9 B9 32 LDA $32B9,Y C2/0C58: 09 80 ORA #$80 C2/0C5A: 99 B9 32 STA $32B9,Y (Flag target to be released from Control at end of turn) C2/0C5D: AD A4 11 LDA $11A4 C2/0C60: 89 02 BIT #$02 C2/0C62: F0 11 BEQ $0C75 (Branch if not redirection) C2/0C64: 20 ED 0D JSR $0DED (Cap damage/healing based on max HP/MP of drainer, and remaining HP/MP of drainee) C2/0C67: DA PHX (save attacker index) C2/0C68: 5A PHY (save target index) C2/0C69: 5A PHY C2/0C6A: 9B TXY (put old attacker index into target index) C2/0C6B: FA PLX (put old target index into attacker index) C2/0C6C: 20 2F 36 JSR $362F (save target as attacker's attacker in a counterattack variable [provided attacker doesn't yet have another attacker]. reciprocity and all, man. however, the Carry Flag state passed to this function seems to be quite arbitrary, particularly if this is a physical attack [usually being set, but sometimes not if attacker is a Zombie]. it'll never be set for magical attacks, which seems suspect as well.) C2/0C6F: 38 SEC (enforce 9999 cap for redirection for attacker) C2/0C70: 20 76 0C JSR $0C76 C2/0C73: 7A PLY (restore target index) C2/0C74: FA PLX (restore attacker index) C2/0C75: 18 CLC (now enforce 9999 cap for target) C2/0C76: 5A PHY C2/0C77: 08 PHP C2/0C78: 2A ROL C2/0C79: 45 F2 EOR $F2 (get Carry XOR attack's heal bit) C2/0C7B: 4A LSR C2/0C7C: 90 04 BCC $0C82 (branch if: - we're checking attacker and attack "reverse" drains [e.g. because target is undead or absorbs element] - we're checking target and attack damages [includes draining]) C2/0C7E: 98 TYA C2/0C7F: 69 13 ADC #$13 C2/0C81: A8 TAY (point to Healing instead of Damage) C2/0C82: C2 20 REP #$20 C2/0C84: B9 D0 33 LDA $33D0,Y (Damage Taken / Healing Done) C2/0C87: 1A INC C2/0C88: F0 01 BEQ $0C8B (if no [i.e. FFFFh] damage, treat as zero) C2/0C8A: 3A DEC (otherwise, keep as-is) C2/0C8B: 18 CLC C2/0C8C: 65 F0 ADC $F0 (add Damage/Healing so far to $F0, which is the lowest of: - attack damage - HP of target [or attacker if reverse drain] ) - Max HP - HP of attacker [or target if reverse drain] ) C2/0C8E: B0 05 BCS $0C95 (if total Damage/Healing to this target overflowed, branch and set it to 9999) C2/0C90: C9 10 27 CMP #$2710 (If over 9999) C2/0C93: 90 03 BCC $0C98 C2/0C95: A9 0F 27 LDA #$270F (Truncate Damage to 9999) C2/0C98: 99 D0 33 STA $33D0,Y (Damage Taken / Healing Done) C2/0C9A: 28 PLP C2/0C9C: 7A PLY C2/0C9D: 60 RTS Damage modification (Randomness, Row, Self Damage, and more) C2/0C9E: 08 PHP C2/0C9F: C2 20 REP #$20 C2/0CA1: AD B0 11 LDA $11B0 (Maximum Damage) C2/0CA4: 85 F0 STA $F0 C2/0CA6: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/0CA8: AD 14 34 LDA $3414 C2/0CAB: D0 03 BNE $0CB0 C2/0CAD: 4C 3B 0D JMP $0D3B (Exit if Skip damage modification) C2/0CB0: 20 5A 4B JSR $4B5A (Random number 0 to 255) C2/0CB3: 09 E0 ORA #$E0 (Set bits 7,6,5; bits 0,1,2,3,4 are random) C2/0CB5: 85 E8 STA $E8 (Random number [224..255]) C2/0CB7: 20 3D 0D JSR $0D3D (Damage randomness) C2/0CBA: 18 CLC C2/0CBB: AD A3 11 LDA $11A3 C2/0CBE: 30 04 BMI $0CC4 (Branch if Concern MP) C2/0CC0: AD A2 11 LDA $11A2 C2/0CC3: 4A LSR (isolate magical vs. physical property) C2/0CC4: AD A2 11 LDA $11A2 C2/0CC7: 89 20 BIT #$20 C2/0CC9: D0 57 BNE $0D22 (Branch if ignores defense) C2/0CCB: 08 PHP (save Carry flag, which equals (physical attack) AND NOT(Concern MP) ) C2/0CCC: B9 B9 3B LDA $3BB9,Y (Magic Defense) C2/0CCF: 90 03 BCC $0CD4 (Branch if concern MP or Magical damage) C2/0CD1: B9 B8 3B LDA $3BB8,Y (Defense) C2/0CD4: 1A INC C2/0CD5: F0 10 BEQ $0CE7 (Branch if = 255) C2/0CD7: EB XBA C2/0CD8: AD 82 3A LDA $3A82 C2/0CDB: 2D 83 3A AND $3A83 C2/0CDE: 30 03 BMI $0CE3 (If Blocked by Golem or Dog, defense = 192) C2/0CE0: A9 C1 LDA #$C1 C2/0CE2: EB XBA C2/0CE3: EB XBA C2/0CE4: 3A DEC C2/0CE5: 49 FF EOR #$FF C2/0CE7: 85 E8 STA $E8 (= 255 - Defense) C2/0CE9: 20 3D 0D JSR $0D3D (Multiply damage by (255 - Defense) / 256 , then add 1) C2/0CEC: A3 01 LDA $01,S C2/0CEE: 4A LSR C2/0CEF: B9 F8 3E LDA $3EF8,Y (Status byte 3) C2/0CF2: B0 01 BCS $0CF5 (Branch if physical attack without Concerns MP) C2/0CF4: 0A ASL C2/0CF5: 0A ASL C2/0CF6: 10 07 BPL $0CFF (Branch if no Safe / Shell on target) C2/0CF8: A9 AA LDA #$AA C2/0CFA: 85 E8 STA $E8 C2/0CFC: 20 3D 0D JSR $0D3D (Multiply damage by 170 / 256 , then add 1) C2/0CFF: 28 PLP C2/0D00: 90 15 BCC $0D17 (Skip row check if magical attack or Concern MP) C2/0D02: B9 A1 3A LDA $3AA1,Y C2/0D05: 89 02 BIT #$02 C2/0D07: F0 04 BEQ $0D0D (Branch if target not defending) C2/0D09: 46 F1 LSR $F1 C2/0D0B: 66 F0 ROR $F0 (Cut damage in half) C2/0D0D: 89 20 BIT #$20 (Check row) C2/0D0F: F0 11 BEQ $0D22 (Branch if target in front row) C2/0D11: 46 F1 LSR $F1 C2/0D13: 66 F0 ROR $F0 (Cut damage in half) C2/0D15: 80 0B BRA $0D22 (Skip morph if physical attack) C2/0D17: B9 F9 3E LDA $3EF9,Y C2/0D1A: 89 08 BIT #$08 C2/0D1C: F0 04 BEQ $0D22 (Branch if target not morphed) C2/0D1E: 46 F1 LSR $F1 C2/0D20: 66 F0 ROR $F0 (Cut damage in half) C2/0D22: C2 20 REP #$20 (Set 16-bit Accumulator) C2/0D24: AD A4 11 LDA $11A4 C2/0D27: 4A LSR C2/0D28: B0 0A BCS $0D34 (Branch if heal; heal skips self damage theory) C2/0D2A: C0 08 CPY #$08 C2/0D2C: B0 06 BCS $0D34 (Branch if target is a monster) C2/0D2E: E0 08 CPX #$08 C2/0D30: B0 02 BCS $0D34 (Branch if attacker is monster) C2/0D32: 46 F0 LSR $F0 (Cut damage in half if party attacks party) C2/0D34: A5 F0 LDA $F0 C2/0D36: 20 0B 37 JSR $370B (Increment damage using $BC) C2/0D39: 85 F0 STA $F0 C2/0D3B: 28 PLP C2/0D3C: 60 RTS Multiplies damage by $E8 / 256 and adds 1 (Used by damage randomness, etc.) C2/0D3D: 08 PHP C2/0D3E: C2 20 REP #$20 (Set 16-bit Accumulator) C2/0D40: A5 F0 LDA $F0 (Load damage) C2/0D42: 20 B7 47 JSR $47B7 (Multiply by randomness byte) C2/0D45: 1A INC (Add 1 to damage) C2/0D46: 85 F0 STA $F0 C2/0D48: 28 PLP C2/0D49: 60 RTS Atlas Armlet / Earring Function C2/0D4A: 08 PHP C2/0D4B: AD A4 11 LDA $11A4 (Special Byte 2) C2/0D4E: 4A LSR C2/0D4F: B0 34 BCS $0D85 (Exits function if attack heals) C2/0D51: AD A3 11 LDA $11A3 C2/0D54: 30 04 BMI $0D5A (Branch if concern MP) C2/0D56: AD A2 11 LDA $11A2 (Special Byte 1) C2/0D59: 4A LSR (Check for physical / magic) C2/0D5A: C2 20 REP #$20 (Set 16-bit Accumulator) C2/0D5C: AD B0 11 LDA $11B0 (Max Damage) C2/0D5F: 85 EE STA $EE (Stores damage at $EE) C2/0D61: BD 44 3C LDA $3C44,X (Relic effects) C2/0D64: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/0D66: B0 06 BCS $0D6E (Branch if physical damage unless concerns mp) C2/0D68: 89 02 BIT #$02 C2/0D6A: D0 09 BNE $0D75 (Branch double earrings - add 50% damage) C2/0D6C: EB XBA C2/0D6D: 4A LSR C2/0D6E: 4A LSR C2/0D6F: 90 14 BCC $0D85 (Exits function if not Atlas Armlet / Earring) C2/0D71: 46 EF LSR $EF (Halves damage) C2/0D73: 66 EE ROR $EE C2/0D75: C2 20 REP #$20 (Set 16-bit Accumulator) C2/0D77: A5 EE LDA $EE C2/0D79: 4A LSR (Halves damage) C2/0D7A: 18 CLC C2/0D7B: 6D B0 11 ADC $11B0 (Adds to damage) C2/0D7E: 90 02 BCC $0D82 C2/0D80: 7B TDC C2/0D81: 3A DEC C2/0D82: 8D B0 11 STA $11B0 (Stores result back in damage) C2/0D85: 28 PLP C2/0D86: 60 RTS Figure damage if based on HP or MP C2/0D87: DA PHX C2/0D88: 5A PHY C2/0D89: 08 PHP C2/0D8A: C2 20 REP #$20 (Set 16-bit Accumulator) C2/0D8C: B9 D0 33 LDA $33D0,Y (Damage already Taken. normally none [FFFFh], but exists for Launcher and fictional reflected spells.) C2/0D8F: 1A INC C2/0D90: F0 01 BEQ $0D93 (If damage taken is none, treat as 0) C2/0D92: 3A DEC C2/0D93: 85 EE STA $EE (save it in temp variable) C2/0D95: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/0D97: 20 DD 0D JSR $0DDD (Use MP if concerns MP) C2/0D9A: AD A6 11 LDA $11A6 (Spell Power) C2/0D9D: 85 E8 STA $E8 C2/0D9F: A5 B5 LDA $B5 C2/0DA1: C9 01 CMP #$01 C2/0DA3: F0 06 BEQ $0DAB (if command = item, then always use Max HP or MP) C2/0DA5: AD A2 11 LDA $11A2 C2/0DA8: 4A LSR C2/0DA9: 4A LSR C2/0DAA: 4A LSR C2/0DAB: C2 20 REP #$20 (Set 16-bit Accumulator) C2/0DAD: B0 0B BCS $0DBA (If hit only the (dead XOR undead), then use Max HP or MP) C2/0DAF: 38 SEC (Else use current HP or MP) C2/0DB0: B9 F4 3B LDA $3BF4,Y (Current HP or MP) C2/0DB3: E5 EE SBC $EE (Subtract damage already taken this strike. relevant for Launcher and fictional reflected spells.) C2/0DB5: B0 06 BCS $0DBD C2/0DB7: 7B TDC (if that more than depletes HP or MP, then use 0) C2/0DB8: 80 03 BRA $0DBD C2/0DBA: B9 1C 3C LDA $3C1C,Y (Max HP or MP) C2/0DBD: 20 CB 0D JSR $0DCB (A = (Spell Power * HP or MP) / 16) C2/0DC0: 48 PHA C2/0DC1: 68 PLA (set Zero and Negative flags based on A) (ASL/ROR would be a little faster...) C2/0DC2: D0 01 BNE $0DC5 C2/0DC4: 1A INC (if damage is 0, set to 1) C2/0DC5: 85 F0 STA $F0 C2/0DC7: 28 PLP C2/0DC8: 7A PLY C2/0DC9: FA PLX C2/0DCA: 60 RTS Spell Power * HP / 16 (if entered at C2/0DD1, does a more general division of a 32-bit value [though most callers assume it's 24-bit] by 2^(A+1).) C2/0DCB: 20 B7 47 JSR $47B7 (24-bit $E8 = 8-bit $E8 * 16-bit A) C2/0DCE: A9 03 00 LDA #$0003 (will be 4 iterations to loop) C2/0DD1: DA PHX (but some callers enter here) C2/0DD2: AA TAX C2/0DD3: A5 E8 LDA $E8 (A = bottom two bytes of Spell Power * HP) C2/0DD5: 46 EA LSR $EA (Cut top two bytes in half) C2/0DD7: 6A ROR (do same for bottom two) C2/0DD8: CA DEX C2/0DD9: 10 FA BPL $0DD5 (Do it N+1 iterations, where N is the value of X after C2/0DD2) C2/0DDB: FA PLX C2/0DDC: 60 RTS Make damage affect MP if concerns MP C2/0DDD: AD A3 11 LDA $11A3 C2/0DE0: 10 0A BPL $0DEC (Branch if not Concern MP) C2/0DE2: 98 TYA C2/0DE3: 18 CLC C2/0DE4: 69 14 ADC #$14 C2/0DE6: A8 TAY C2/0DE7: 8A TXA C2/0DE8: 18 CLC C2/0DE9: 69 14 ADC #$14 C2/0DEB: AA TAX C2/0DEC: 60 RTS Set $F0 to lowest of ($F0, HP/MP of drainee, Max HP/MP - HP/MP of drainer) If bit 0 of $F2 is set, switch so attacker is drainee and target is drainer If bit 7 of $B2 is not set, compare only $F0 and HP/MP of drainee C2/0DED: DA PHX C2/0DEE: 5A PHY C2/0DEF: 08 PHP C2/0DF0: 20 DD 0D JSR $0DDD (Set to use MP if Concern MP) C2/0DF3: AD 14 34 LDA $3414 C2/0DF6: 10 25 BPL $0E1D (Exit if Skip damage modification) C2/0DF8: C2 20 REP #$20 C2/0DFA: A5 F2 LDA $F2 C2/0DFC: 4A LSR C2/0DFD: 90 03 BCC $0E02 (branch if not healing target) C2/0DFF: DA PHX C2/0E00: BB TYX C2/0E01: 7A PLY (Switch target and attacker) C2/0E02: B9 F4 3B LDA $3BF4,Y (Current HP or MP of drainee) C2/0E05: C5 F0 CMP $F0 C2/0E07: B0 02 BCS $0E0B (branch if HP or MP >= $F0) C2/0E09: 85 F0 STA $F0 C2/0E0B: A5 B1 LDA $B1 C2/0E0D: 10 0E BPL $0E1D (Branch if top bit of $B2 is clear; it's cleared by the Drain while Seized used by Tentacles) C2/0E0F: 9B TXY (Put drainer in Y. Why bother? Just use X below instead.) C2/0E10: 38 SEC C2/0E11: B9 1C 3C LDA $3C1C,Y (Max HP or MP of drainer) C2/0E14: F9 F4 3B SBC $3BF4,Y (Current HP or MP of drainer) C2/0E17: C5 F0 CMP $F0 C2/0E19: B0 02 BCS $0E1D (branch if difference >= $F0) C2/0E1B: 85 F0 STA $F0 C2/0E1D: 28 PLP C2/0E1E: 7A PLY C2/0E1F: FA PLX C2/0E20: 60 RTS Called if Zombie 1 in 16 chance inflict Dark -OR- 1 in 16 chance inflict Poison C2/0E21: 20 5A 4B JSR $4B5A (Random number 0 to 255) C2/0E24: C9 10 CMP #$10 C2/0E26: B0 04 BCS $0E2C C2/0E28: A9 04 LDA #$04 (will mark Poison status to be set) C2/0E2A: 80 06 BRA $0E32 C2/0E2C: C9 20 CMP #$20 C2/0E2E: B0 F0 BCS $0E20 (Exit function) C2/0E30: A9 01 LDA #$01 (will mark Dark status to be set) C2/0E32: 19 D4 3D ORA $3DD4,Y (Status to set byte 1) C2/0E35: 99 D4 3D STA $3DD4,Y C2/0E38: 60 RTS Atma Weapon damage modification C2/0E39: 08 PHP C2/0E3A: DA PHX C2/0E3B: 5A PHY C2/0E3C: 9B TXY (Y points to attacker) C2/0E3D: B9 F5 3B LDA $3BF5,Y (HP / 256) C2/0E40: 1A INC C2/0E41: EB XBA C2/0E42: B9 18 3B LDA $3B18,Y (Level) C2/0E45: 20 81 47 JSR $4781 (Level * ((HP / 256) + 1)) C2/0E48: BE 1D 3C LDX $3C1D,Y (Max HP / 256) C2/0E4B: E8 INX C2/0E4C: 20 92 47 JSR $4792 ((Level * ((HP / 256) + 1)) / ((Max HP / 256) + 1)) C2/0E4F: 85 E8 STA $E8 (save modifier quotient) C2/0E51: C2 20 REP #$20 C2/0E53: A5 F0 LDA $F0 (load damage so far) C2/0E55: 20 B7 47 JSR $47B7 (24-bit $E8 = modifier in 8-bit $E8 * 16-bit damage) C2/0E58: A9 05 00 LDA #$0005 C2/0E5B: 20 D1 0D JSR $0DD1 (Divide 24-bit Damage in $E8 by 64. [note that calculation operates on 4 bytes]) C2/0E5E: 1A INC (+1) C2/0E5F: 85 F0 STA $F0 (save final damage) (note that we're assuming damage fit into 16 bits, which is true outside of hacks that give Atma Weapon 2-hand or elemental properties.) C2/0E61: C9 F5 01 CMP #$01F5 C2/0E64: 90 0D BCC $0E73 (branch if < 501) C2/0E66: A2 5B LDX #$5B (put index for alternate, bigger weapon graphic, into X) C2/0E68: C9 E9 03 CMP #$03E9 C2/0E6B: 90 01 BCC $0E6E (branch if < 1001) C2/0E6D: E8 INX (make graphic bigger yet) C2/0E6E: 86 B7 STX $B7 (save graphic index) C2/0E70: 20 BB 35 JSR $35BB (Update a previous entry in ($76) animation buffer with data in $B4 - $B7) (Changes Atma Weapon length) C2/0E73: 7A PLY C2/0E74: FA PLX C2/0E75: 28 PLP C2/0E76: 60 RTS Equipment Check Function (Called from other bank) C2/0E77: DA PHX C2/0E78: 5A PHY C2/0E79: 8B PHB C2/0E7A: 08 PHP C2/0E7B: E2 30 SEP #$30 (Set 8-bit Accumulator, X and Y) C2/0E7D: 48 PHA C2/0E7E: 29 0F AND #$0F C2/0E80: A9 7E LDA #$7E C2/0E82: 48 PHA C2/0E83: AB PLB (set Data Bank register to 7E) C2/0E84: 68 PLA C2/0E85: A2 3E LDX #$3E C2/0E87: 9E A0 11 STZ $11A0,X C2/0E8A: CA DEX C2/0E8B: 10 FA BPL $0E87 (zero out $11A0 - $11DE) C2/0E8D: 1A INC C2/0E8E: EB XBA C2/0E8F: A9 25 LDA #$25 (37 bytes of info per character, see Tashibana's ff6zst.txt for details. this block is documented as starting at $1600, but the INC above means X is boosted by 37 -- perhaps to avoid a negative X later -- so the base addy is 15DB) C2/0E91: 20 81 47 JSR $4781 C2/0E94: C2 10 REP #$10 (Set 16-bit X and Y) C2/0E96: AA TAX C2/0E97: BD DB 15 LDA $15DB,X (character ID, aka "Actor") (alias of $1600,char_normalized_X) C2/0E9A: EB XBA C2/0E9B: A9 16 LDA #$16 (22 startup bytes per character) C2/0E9D: 20 81 47 JSR $4781 C2/0EA0: DA PHX C2/0EA1: AA TAX (X indexes character startup block) C2/0EA2: BF AA 7C ED LDA $ED7CAA,X (get character Battle Power) C2/0EA6: 8D AC 11 STA $11AC C2/0EA9: 8D AD 11 STA $11AD (store it in both hands) C2/0EAC: C2 20 REP #$20 (Set 16-bit Accumulator) C2/0EAE: BF AB 7C ED LDA $ED7CAB,X (character Defense and Magic Defense) C2/0EB2: 8D BA 11 STA $11BA C2/0EB5: BF AD 7C ED LDA $ED7CAD,X (character Evade and MBlock) C2/0EB9: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/0EBB: 8D A8 11 STA $11A8 (save Evade here) C2/0EBE: EB XBA C2/0EBF: 8D AA 11 STA $11AA (save MBlock here) C2/0EC2: BF B5 7C ED LDA $ED7CB5,X (character start level info) C2/0EC6: 29 03 AND #$03 C2/0EC8: 49 03 EOR #$03 C2/0ECA: 1A INC C2/0ECB: 1A INC C2/0ECC: 8D DC 11 STA $11DC (invert and add 2. this gives you 5 - (bottom two bits of Level byte) , the amount to add to the character's "Run Success" variable.) C2/0ECF: FA PLX (X indexes into character info block again) C2/0ED0: A0 06 00 LDY #$0006 (point to Vigor item in character info) C2/0ED3: BD F5 15 LDA $15F5,X (load current base stat. these Esper-boostable four are in a different block than startup Defense, Magic Defense, Evade, and MBlock.) (alias of $161A,char_normalized_X [spanning up to $161D,char_normalized_X]) C2/0ED6: 99 A0 11 STA $11A0,Y ($11A6 = Vigor, 11A4 = Speed, 11A2 = Stamina, 11A0 = Mag Pwr) C2/0ED9: E8 INX C2/0EDA: 88 DEY C2/0EDB: 88 DEY C2/0EDC: 10 F5 BPL $0ED3 (iterate 4 times) C2/0EDE: BD EB 15 LDA $15EB,X (get character Status 1) C2/0EE1: 85 FE STA $FE (save it; it'll be used for tests with Imp equip) C2/0EE3: A0 05 00 LDY #$0005 (point to last relic slot) C2/0EE6: BD FB 15 LDA $15FB,X (get item ID of current slot's equipment/relic) (alias of $1624,char_normalized_X [spanning down to $161F,char_normalized_X]) C2/0EE8: 99 C6 11 STA $11C6,Y (save the item #) C2/0EEC: 20 9A 0F JSR $0F9A (load item data for a slot) C2/0EEF: CA DEX C2/0EF0: 88 DEY C2/0EF1: 10 F3 BPL $0EE6 (loop for all 6 equipment+relic slots) C2/0EF3: BD ED 15 LDA $15ED,X (get top byte of Maximum MP) (alias of $1610,char_normalized_X) C2/0EF6: 29 3F AND #$3F (zero out top 2 bits, so MP can't exceed 16383) C2/0EF8: 85 FF STA $FF (store top byte of Max MP.) (Note: X would be -2 here for Character 0 had the extra 37 not been added earlier. i don't think indexed addressing modes are signed or allow "wrapping", so that was a good precaution.) C2/0EFA: A9 40 LDA #$40 (first boost we will check is MP + 50%, then lower %) C2/0EFC: 20 7D 0F JSR $0F7D (jump off to handle % MP boosts from equipment) C2/0EFF: 05 FF ORA $FF C2/0F01: 9D ED 15 STA $15ED,X (store boost in highest 2 bits of MP) C2/0F04: BD E9 15 LDA $15E9,X (get top byte of Maximum HP) (alias of $160C,char_normalized_X) C2/0F07: 29 3F AND #$3F (zero out top 2 bits, so HP can't exceed 16383) C2/0F09: 85 FF STA $FF (store top byte of Max HP) C2/0F0B: A9 08 LDA #$08 C2/0F0D: 20 7D 0F JSR $0F7D (go check HP + 50% boost, then lower %) C2/0F10: 05 FF ORA $FF C2/0F12: 9D E9 15 STA $15E9,X (store boost in highest 2 bits of HP) C2/0F15: A2 0A 00 LDX #$000A C2/0F18: BD A1 11 LDA $11A1,X (did MBlock/Evade/Vigor/Speed/Stamina/MagPwr exceed 255 with equipment boosts?) C2/0F1B: F0 09 BEQ $0F26 (if not, look at the next stat) C2/0F1D: 0A ASL (if the topmost bit of the stat is set, it's negative thanks to horrid equipment. so bring it up to Zero) C2/0F1E: 7B TDC C2/0F1F: B0 02 BCS $0F23 (if the topmost bit wasn't set, the stat is just big) C2/0F21: A9 FF LDA #$FF (.. in which case we bring it down to 255) C2/0F23: 9D A0 11 STA $11A0,X C2/0F26: CA DEX C2/0F27: CA DEX C2/0F28: 10 EE BPL $0F18 (loop for all aforementioned stats) C2/0F2A: AE CE 11 LDX $11CE (call a function pointer depending on what is in each hand) C2/0F2D: FC 47 0F JSR ($0F47,X) C2/0F30: AD D7 11 LDA $11D7 C2/0F33: 10 0D BPL $0F42 (if Boost Vigor bit isn't set, exit function) C2/0F35: C2 20 REP #$20 (Set 16-bit Accumulator) C2/0F37: AD A6 11 LDA $11A6 C2/0F3A: 4A LSR C2/0F3B: 18 CLC C2/0F3C: 6D A6 11 ADC $11A6 C2/0F3F: 8D A6 11 STA $11A6 (if Boost Vigor was set, add 50% to Vigor) C2/0F42: 28 PLP C2/0F43: AB PLB C2/0F44: 7A PLY C2/0F45: FA PLX C2/0F46: 6B RTL (Code Pointers) C2/0F47: 67 0F (Do nothing) (shouldn't be called, as i can't get shields in both hands) C2/0F49: 61 0F (2nd hand is occupied by weapon, 1st hand holds nonweapon) (so 2nd hand will strike. i.e. it retains some Battle Power) C2/0F4B: 68 0F (1st hand is occupied by weapon, 2nd hand holds nonweapon) (so 1st hand will strike) C2/0F4D: 6F 0F (1st and 2nd hand are both occupied by weapon) C2/0F4F: 61 0F (2nd hand is empty, 1st hand holds nonweapon) (so 2nd hand will strike) C2/0F51: 67 0F (Do nothing) (filler.. shouldn't be called, contradictory 2nd hand) C2/0F53: 6B 0F (2nd hand is empty, 1st is occupied by weapon) (so 1st hand will strike, Gauntlet-ized if applicable) C2/0F55: 67 0F (Do nothing) (filler.. shouldn't be called, contradictory 2nd hand) C2/0F57: 68 0F (1st hand is empty, 2nd hand holds nonweapon) (so 1st hand will strike) C2/0F59: 64 0F (1st hand is empty, 2nd hand occupied by weapon) (so 2nd hand will strike, Gauntlet-ized if applicable) C2/0F5B: 67 0F (Do nothing) (filler.. shouldn't be called, contradictory 1st hand) C2/0F5D: 67 0F (Do nothing) (filler.. shouldn't be called, contradictory 1st hand) C2/0F5F: 68 0F (1st and 2nd hand both empty) (so might as well strike with 1st hand) (view C2/10B2 to see how the bits for each hand were set) C2/0F61: 20 74 0F JSR $0F74 C2/0F64: 9C AC 11 STZ $11AC (clear Battle Power for 1st hand) C2/0F67: 60 RTS C2/0F68: 20 74 0F JSR $0F74 C2/0F6B: 9C AD 11 STZ $11AD (clear Battle Power for 2nd hand) C2/0F6E: 60 RTS (NOTE: C2/0F6F is only called if you have weapons in both hands, which means that's the ONLY situation where the Genji Glove effect is cleared. So you'll do full damage with each strike if you have two weapons, but have it reduced by 1/4 if you have zero or one weapon. This is widely acknowledged as ass-backwards; common sense tells you that 1 weapon should hardly be more cumbersome than 2... Nor should a magic glove make gripping one a tall feat. I suspect Square was thrown by their own byte $11CF, as "set effect to be cleared" sounds like an oxymoron. They were probably trying to *enable* the genji effect below (after all, TSB usually _does_ _enable_ things). At least that's what my forthcoming patch will assume... ^__^ ) C2/0F6F: A9 10 LDA #$10 (Genji Glove Effect) C2/0F71: 0C CF 11 TSB $11CF (Sets Genji Glove effect to be cleared) C2/0F74: A9 40 LDA #$40 C2/0F76: 1C DA 11 TRB $11DA (turn off Gauntlet effect for 1st hand) C2/0F79: 1C DB 11 TRB $11DB (turn off Gauntlet effect for 2nd hand) C2/0F7C: 60 RTS (11D5 = 01: Raise Attack Damage 10: Raise HP by 12.5% 02: Raise Magic Damage 20: Raise MP by 25% 04: Raise HP by 25% 40: Raise MP by 50% 08: Raise HP by 50% 80: Raise MP by 12.5% . from yousei's doc) C2/0F7D: 2C D5 11 BIT $11D5 C2/0F80: F0 03 BEQ $0F85 C2/0F82: A9 80 LDA #$80 (if bit is set, store 50% boost) C2/0F84: 60 RTS C2/0F85: 4A LSR C2/0F86: 2C D5 11 BIT $11D5 C2/0F89: F0 03 BEQ $0F8E C2/0F8B: A9 40 LDA #$40 (if bit is set, store 25% boost) C2/0F8D: 60 RTS C2/0F8E: 0A ASL C2/0F8F: 0A ASL C2/0F90: 2C D5 11 BIT $11D5 C2/0F93: F0 03 BEQ $0F98 C2/0F95: A9 C0 LDA #$C0 (if bit is set, store 12.5% boost) C2/0F97: 60 RTS C2/0F98: 7B TDC (if none of the bits were set, store 0% boost) C2/0F99: 60 RTS Loads item data into memory C2/0F9A: DA PHX C2/0F9B: 5A PHY (Y = equip/relic slot, 0 to 5?) C2/0F9C: EB XBA C2/0F9D: A9 1E LDA #$1E C2/0F9F: 20 81 47 JSR $4781 (multiply index by size of item data block) (JSR $2B63?) C2/0FA2: AA TAX C2/0FA3: BF 05 50 D8 LDA $D85005,X (field effects) C2/0FA7: 0C DF 11 TSB $11DF C2/0FAA: C2 20 REP #$20 (Set 16-bit accumulator) C2/0FAC: BF 06 50 D8 LDA $D85006,X C2/0FB0: 0C D2 11 TSB $11D2 (status bytes 1 and 2 protection) C2/0FB3: BF 08 50 D8 LDA $D85008,X C2/0FB7: 0C D4 11 TSB $11D4 (11D4 = equipment status byte 3, 11D5 = raise attack damage, raise magic damage, and HP and MP % boosts) C2/0FBA: BF 0A 50 D8 LDA $D8500A,X (battle effects 1 and "status effects 2". latter is nothing to do with status ailments. 11D6: 01: Increase Preemptive Atk chance 10: Sketch -> Control 02: Prevent Back/Pincer attacks 20: Slot -> GP Rain (this won't work for battles where back/pincer are forced) 04: Fight -> Jump 40: Steal -> Capture 08: Magic -> X-Magic 80: Jump continuously 11D7: 01: Increase Steal Rate 10: 100% Hit Rate 02: -- 20: Halve MP Consumption 04: Increase Sketch Rate 40: Reduce MP Consumption to 1 08: Increase Control Rate 80: Raise Vigor . yousei's doc) C2/0FBE: 0C D6 11 TSB $11D6 C2/0FC1: BF 0C 50 D8 LDA $D8500C,X (battle effects 2 and 3) C2/0FC5: 0C D8 11 TSB $11D8 (11D8: 01: Fight -> X-Fight 10: Can equip a weapon in each hand 02: Randomly Counter Attacks 20: Wearer can equip heavy armor 04: Increases chance of evading attack 40: Wearer protects those with low HP 08: Attack with two hands 80: 11D9: 01: Casts Shell when HP is low 10: Doubles Gold received 02: Casts Safe when HP is low 20: 04: Casts Rflect when HP is low 40: 08: Doubles Experience received 80: Makes body cold C2/0FC8: BF 10 50 D8 LDA $D85010,X (Vigor+ / Speed+ / Stamina+ / MagPwr+ , by ascending address) C2/0FCC: A0 06 00 LDY #$0006 C2/0FCF: 48 PHA C2/0FD0: 29 0F 00 AND #$000F (isolate bottom nibble) C2/0FD3: 89 08 00 BIT #$0008 (if top bit of stat boost is set, adjustment will be negative) C2/0FD6: F0 04 BEQ $0FDC (if not, branch) C2/0FD8: 49 F7 FF EOR #$FFF7 (create a signed 16-bit negative value) C2/0FDB: 1A INC (A = 65536 - bottom 3 bits. iow, negation of 3-bit value.) C2/0FDC: 18 CLC C2/0FDD: 79 A0 11 ADC $11A0,Y C2/0FE0: 99 A0 11 STA $11A0,Y (make adjustment to stat, ranging from -7 to +7) ($11A6 = Vigor, 11A4 = Speed, 11A2 = Stamina, 11A0 = Mag Pwr) C2/0FE3: 68 PLA C2/0FE4: 4A LSR C2/0FE5: 4A LSR C2/0FE6: 4A LSR C2/0FE7: 4A LSR (get next highest nibble) C2/0FE8: 88 DEY C2/0FE9: 88 DEY C2/0FEA: 10 E3 BPL $0FCF (loop for all 4 stats) C2/0FEC: BF 1A 50 D8 LDA $D8501A,X (Evade/MBlock byte in bottom of A) C2/0FF0: DA PHX C2/0FF1: 48 PHA C2/0FF2: 29 0F 00 AND #$000F (isolate evade) C2/0FF5: 0A ASL C2/0FF6: AA TAX (evade nibble * 2, turn into pointer) C2/0FF7: BF 05 11 C2 LDA $C21105,X (get actual evade boost/reduction of item) C2/0FFB: 18 CLC C2/0FFC: 6D A8 11 ADC $11A8 C2/0FFF: 8D A8 11 STA $11A8 (add it to other evade boosts) C2/1002: 68 PLA C2/1003: 29 F0 00 AND #$00F0 (isolate mblock) C2/1006: 4A LSR C2/1007: 4A LSR C2/1008: 4A LSR C2/1009: AA TAX (mblock nibble * 2, turn into pointer) C2/100A: BF 05 11 C2 LDA $C21105,X (get actual mblock boost/reduction of item) C2/100E: 18 CLC C2/100F: 6D AA 11 ADC $11AA C2/1012: 8D AA 11 STA $11AA (add it to other mblock boosts) C2/1015: FA PLX C2/1016: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/1018: BF 14 50 D8 LDA $D85014,X (get weapon battle power / armor defense power) C2/101C: EB XBA C2/101D: BF 02 50 D8 LDA $D85002,X (get top byte of equippable chars) C2/1021: 0A ASL C2/1022: 0A ASL (carry = Specs active when Imp?) C2/1023: A5 FE LDA $FE (Character Status Byte 1) C2/1025: B0 02 BCS $1029 (branch if imp-activated) C2/1027: 49 20 EOR #$20 (flip Imp status) C2/1029: 89 20 BIT #$20 (character has Imp status?) C2/102B: D0 03 BNE $1030 C2/102D: A9 01 LDA #$01 (if you're an Imp and specs aren't Imp-activated, defense/battle power = 1. or if you're not an Imp and the specs are Imp-activated, battle/defense power = 1) C2/102F: EB XBA C2/1030: EB XBA (if imp-activation and imp status match, put the original Battle/Defense Power back in bottom of A) (note that Item #255 has a Battle Power of 10, so bare hands will actually be stronger than Imp Halberd on a non-Imp) C2/1031: 85 FD STA $FD C2/1033: BF 00 50 D8 LDA $D85000,X (item type) C2/1037: 29 07 AND #$07 (isolate classification) C2/1039: 3A DEC C2/103A: F0 76 BEQ $10B2 (if it's a weapon, branch and load its data) C2/103C: BF 19 50 D8 LDA $D85019,X C2/1040: 0C BC 11 TSB $11BC (equipment status byte 2) C2/1043: BF 0F 50 D8 LDA $D8500F,X (50% resist elements) C2/1047: EB XBA C2/1048: BF 18 50 D8 LDA $D85018,X (weak to elements) C2/104C: C2 20 REP #$20 (Set 16-bit Accumulator) C2/104E: 0C B8 11 TSB $11B8 (bottom = weak elements, top = 50% resist elements) C2/1051: BF 16 50 D8 LDA $D85016,X C2/1055: 0C B6 11 TSB $11B6 (bottom = absorbed elements, top = nullified elements) C2/1058: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/105A: 18 CLC C2/105B: A5 FD LDA $FD (get equipment Defense Power) C2/105D: 6D BA 11 ADC $11BA (add it into Defense so far) C2/1060: 90 02 BCC $1064 C2/1062: A9 FF LDA #$FF C2/1064: 8D BA 11 STA $11BA (if defense exceeds 255, make it 255) C2/1067: 18 CLC C2/1068: BF 15 50 D8 LDA $D85015,X (get equipment Magic Defense) C2/106C: 6D BB 11 ADC $11BB (add it into MagDef so far) C2/106F: 90 02 BCC $1073 C2/1071: A9 FF LDA #$FF C2/1073: 8D BB 11 STA $11BB (if magic defense exceeds 255, make it 255) C2/1076: 7A PLY C2/1077: A9 02 LDA #$02 C2/1079: 1C D5 11 TRB $11D5 (clear "raise magic damage" bit in Item Bonuses -- raise fight, raise magic, HP + %, MP + %) C2/107C: F0 08 BEQ $1086 C2/107E: 0C D7 11 TSB $11D7 (if Earring effect is set in current equipment slot, set it in Item Special 2: boost steal, single Earring, boost sketch, boost control, sniper sight, gold hairpin, economizer, vigor + 50%) C2/1081: F0 03 BEQ $1086 C2/1083: 0C D5 11 TSB $11D5 (if Earring effect had also been set by other equipment slots, set it again in item bonuses, where it will actually represent _double_ Earring, even though the initial data byte would have it set even for a lone Earring) (if all this crazy bit swapping seems convoluted, keep in mind that $11D5 isn't RELOADED for each equipment slot; it's ADDED to via the TSB at C2/0FB7. thus, we must clear the Earring bit in $11D5 for each of the 6 equip slots if we wish to see whether the CURRENT slot gives us the Earring effect.) C2/1086: 7B TDC C2/1087: BF 1B 50 D8 LDA $D8501B,X (item byte 1B, special action) C2/108B: 99 BE 11 STA $11BE,Y C2/108E: 89 0C BIT #$0C (shield animation for blocked physical/magic attacks or weapon parry) C2/1090: F0 1E BEQ $10B0 (if none of above, branch) C2/1092: 48 PHA (save old Byte 1B) C2/1093: 29 03 AND #$03 (isolate bottom 2 bits. for a given item: Bits 0-1: Animation unlocked by Bit 2 and/or 3 00b = small weapon (knife) parry animation 01b = big weapon (sword) parry 10b = shield block; present on all except Cursed Shld. 11b = red wave of Zephyr Cape Bit 2: 1 = enable physical block: knife parry, sword parry, shield, or cape Bit 3: 1 = enable magical block: shield only) C2/1095: AA TAX (put Accumulator in X. Following loop gives us 2^X .) C2/1096: 7B TDC (clear A) C2/1097: 38 SEC (set Carry Flag. so it's like A = 0.5 .) C2/1098: 2A ROL (rotate flag into lowest bit of A. A = 1 on first pass, and A * 2 on subsequent ones.) C2/1099: CA DEX (decrement X, which started at 0-3) C2/109A: 10 FC BPL $1098 (iterate the initial X value plus 1 times) C2/109C: EB XBA C2/109D: 68 PLA (retrieve item byte 1Bh, special action) C2/109E: 89 04 BIT #$04 C2/10A0: F0 05 BEQ $10A7 (branch if physical block animation not set) C2/10A2: EB XBA C2/10A3: 0C D0 11 TSB $11D0 (if one of above was set, store our 2^X value) C2/10A6: EB XBA C2/10A7: 89 08 BIT #$08 C2/10A9: F0 05 BEQ $10B0 (if no magic attack block [for shield], exit) C2/10AB: EB XBA C2/10AC: 0C D1 11 TSB $11D1 (if there was, store our 2^X value) C2/10AF: EB XBA C2/10B0: FA PLX C2/10B1: 60 RTS (Load weapon properties from an arm slot) C2/10B2: 7B TDC C2/10B3: 1A INC C2/10B4: A8 TAY (Y = 1) C2/10B5: 1A INC (Accumulator = 2) C2/10B6: 85 FF STA $FF C2/10B8: A3 01 LDA $01,S (equipment/relic slot - 0 to 5) C2/10BA: C9 02 CMP #$02 C2/10BC: B0 B8 BCS $1076 (if it's not slot 0 or 1, one of the arms, return to caller) C2/10BE: 3A DEC C2/10BF: F0 03 BEQ $10C4 (if it was slot 1, branch) C2/10C1: 88 DEY (point to slot 0) C2/10C2: 06 FF ASL $FF ($FF = 4) C2/10C4: B9 C6 11 LDA $11C6,Y (get item # from the slot) C2/10C7: 1A INC C2/10C8: D0 04 BNE $10CE (if the item is not Empty #255, branch) C2/10CA: 06 FF ASL $FF C2/10CC: 06 FF ASL $FF C2/10CE: A5 FF LDA $FF ($FF = 2 if this is 2nd hand and it's occupied by weapon, 4 if this is 1st hand and it's occupied by weapon, 8 if this is 2nd hand and it's empty, 16 if this is 1st hand and it's empty. And $FF is never set if the hand holds a nonweapon) C2/10D0: 0C CE 11 TSB $11CE (turn on the current $FF bit in $11CE, which will hold info about both hands) C2/10D3: BF 16 50 D8 LDA $D85016,X C2/10D7: 99 B2 11 STA $11B2,Y C2/10DA: BF 0F 50 D8 LDA $D8500F,X (elemental properties) C2/10DE: 99 B0 11 STA $11B0,Y C2/10E1: A5 FD LDA $FD (get equipment Battle Power) C2/10E3: 79 AC 11 ADC $11AC,Y (add it to Battle Power so far) C2/10E6: 90 02 BCC $10EA C2/10E8: A9 FF LDA #$FF C2/10EA: 99 AC 11 STA $11AC,Y (if the Battle Power exceeded 255, make it 255) C2/10ED: BF 15 50 D8 LDA $D85015,X (hit rate) C2/10F1: 99 AE 11 STA $11AE,Y C2/10F4: BF 12 50 D8 LDA $D85012,X (random weapon spellcast) C2/10F8: 99 B4 11 STA $11B4,Y C2/10FB: BF 13 50 D8 LDA $D85013,X (weapon properties) C2/10FF: 99 DA 11 STA $11DA,Y (11DA= 01: 10: -- 02: SwdTech 20: Same damage from back row 04: -- 40: 2-Hand 08: -- 80: Runic) C2/1102: 4C 76 10 JMP $1076 (Data - Evade and Mblock Boosts/Reductions) C2/1105: 00 00 (0) C2/1107: 0A 00 (+10) C2/1109: 14 00 (+20) C2/110B: 1E 00 (+30) C2/110D: 28 00 (+40) C2/110F: 32 00 (+50) C2/1111: F6 FF (-10) C2/1113: EC FF (-20) C2/1115: E2 FF (-30) C2/1117: D8 FF (-40) C2/1119: CE FF (-50) (Called every frame) C2/111B: 08 PHP C2/111C: E2 30 SEP #$30 (Set 8-bit A, X, & Y) C2/111E: 20 1F 4D JSR $4D1F (Handle player-confirmed commands) C2/1121: AD 41 2F LDA $2F41 (are we in a menu?) C2/1124: 2D 8F 3A AND $3A8F (is Config set to Wait battle?) C2/1127: D0 62 BNE $118B (Exit function if both) C2/1129: AD 6C 3A LDA $3A6C (get backup frame counter) C2/112C: A2 02 LDX #$02 C2/112E: C5 0E CMP $0E (compare to current frame counter) C2/1130: F0 5E BEQ $1190 (Exit function if $3A6C = $000E. Doing this check twice serves to exit if the function was already called the current frame [which i don't think ever happens] or if it was called last frame.) C2/1132: 1A INC C2/1133: CA DEX C2/1134: D0 F8 BNE $112E (Check and exit if $3A6C + 1 = $000E) C2/1136: EE 3E 3A INC $3A3E (Increment battle time counter) C2/1139: D0 03 BNE $113E C2/113B: EE 3F 3A INC $3A3F (Increment battle time counter) C2/113E: 20 83 5A JSR $5A83 (Handles various time-based events for entities. Advances their timers, does periodic damage/healing from Poison/Regen/etc., checks for running, and more.) C2/1141: A2 12 LDX #$12 C2/1143: EC E2 3E CPX $3EE2 (Is this target Morphed?) C2/1146: D0 03 BNE $114B (Branch if not) C2/1148: 20 11 12 JSR $1211 (Do morph timer decrement) C2/114B: BD A0 3A LDA $3AA0,X C2/114E: 4A LSR C2/114F: 90 33 BCC $1184 (If entity not present in battle, branch to next one) C2/1151: EC F8 33 CPX $33F8 (Has this target used Zinger?) C2/1154: F0 2E BEQ $1184 (If it has, branch to next target) C2/1156: 89 3A BIT #$3A C2/1158: D0 2A BNE $1184 (If any of bits 6, 5, 4, or 2 are set in $3AA0,X , branch to next target) C2/115A: 89 04 BIT #$04 C2/115C: F0 1E BEQ $117C (If bit 3 isn't set in $3AA0,X , branch to load this target's ATB) C2/115E: AD 45 2F LDA $2F45 (party trying to run: 0 = no, 1 = yes) C2/1161: F0 16 BEQ $1179 (If no one is trying to run, branch to Advance Wait Timer function) C2/1163: BD E4 3E LDA $3EE4,X C2/1166: 89 02 BIT #$02 (Check for Zombie Status) C2/1168: D0 0F BNE $1179 (If zombie, branch to Advance Wait Timer function) C2/116A: BD 18 30 LDA $3018,X C2/116D: F0 0A BEQ $1179 (If monster, branch to Advance Wait Timer function) C2/116F: 2C 2C 3F BIT $3F2C C2/1172: D0 05 BNE $1179 (If jumping, branch to Advance Wait Timer function) C2/1174: 2C 40 3A BIT $3A40 C2/1177: F0 03 BEQ $117C (If not character acting as an enemy, skip Advance Wait Timer function) C2/1179: 20 93 11 JSR $1193 (Advance Wait Timer function) C2/117C: BD 19 32 LDA $3219,X (Load top byte of this target's ATB counter) C2/117F: F0 03 BEQ $1184 (If it's 0, branch to next target) C2/1181: 20 BB 11 JSR $11BB (Advance ATB Timer) C2/1184: CA DEX C2/1185: CA DEX C2/1186: 10 BB BPL $1143 (Loop if targets remaining) C2/1188: 20 54 5C JSR $5C54 (Copy ATB timer, Morph gauge, and Condemned counter to displayable variables) C2/118B: A5 0E LDA $0E C2/118D: 8D 6C 3A STA $3A6C (copy current frame counter to backup frame counter) C2/1190: 7B TDC C2/1191: 28 PLP C2/1192: 6B RTL (Advance Wait Timer. This is what controls how long a character spends in his or her "ready stance" before executing a move.) C2/1193: C2 20 REP #$20 (16-bit accumulator) C2/1195: BD C8 3A LDA $3AC8,X (amount to increase ATB timer by) C2/1198: 4A LSR (div by 2) C2/1199: 18 CLC C2/119A: 7D B4 3A ADC $3AB4,X C2/119D: 9D B4 3A STA $3AB4,X (add to Wait Timer) C2/11A0: E2 20 SEP #$20 (8-bit accumulator) C2/11A2: B0 06 BCS $11AA (if that timer overflowed, branch) C2/11A4: EB XBA (get top byte of the timer) C2/11A5: DD 2C 32 CMP $322C,X (compare to time to wait after inputting a command) C2/11A8: 90 10 BCC $11BA (if it's less, we're not ready yet) C2/11AA: A9 FF LDA #$FF C2/11AC: 9D 2C 32 STA $322C,X C2/11AF: 20 77 4E JSR $4E77 (put entity in action queue) C2/11B2: A9 20 LDA #$20 C2/11B4: 1D A0 3A ORA $3AA0,X (many other functions can enter here to set other bits) C2/11B7: 9D A0 3A STA $3AA0,X (set bit 5) C2/11BA: 60 RTS (Advance ATB Timer. If full, put entity in wait queue, or enable main menu [??], provided "Attack First" is not [still] in effect, and entity is not onboard Palidor.) C2/11BB: C2 21 REP #$21 (set 16-bit Accumulator, and clear Carry) C2/11BD: BD 18 32 LDA $3218,X (current ATB timer count) C2/11C0: 7D C8 3A ADC $3AC8,X (amount to increase timer by) C2/11C3: 9D 18 32 STA $3218,X (save updated timer) C2/11C6: E2 20 SEP #$20 C2/11C8: 90 F0 BCC $11BA (if timer didn't pass 0, exit) C2/11CA: E0 08 CPX #$08 C2/11CC: B0 03 BCS $11D1 (branch if a monster) C2/11CE: 20 E2 5B JSR $5BE2 (Process "ready to run" characters, queue Flee command as needed. doing here in addition to periodic checks, because a full ATB is a prerequisite for Flee working.) C2/11D1: 9E 19 32 STZ $3219,X (zero top byte of ATB Timer) C2/11D4: 9E B5 3A STZ $3AB5,X (zero top byte of Wait Timer) C2/11D7: A9 FF LDA #$FF C2/11D9: 9D 2C 32 STA $322C,X C2/11DC: A9 08 LDA #$08 C2/11DE: 3C A0 3A BIT $3AA0,X C2/11E1: D0 07 BNE $11EA C2/11E3: 20 B4 11 JSR $11B4 (set Bit 3 of $3AA0,X) C2/11E6: 89 02 BIT #$02 C2/11E8: F0 24 BEQ $120E (branch if Bit 1 had been set) C2/11EA: A9 80 LDA #$80 C2/11EC: 20 B4 11 JSR $11B4 (set Bit 7 of $3AA0,X) C2/11EF: E0 08 CPX #$08 C2/11F1: B0 1B BCS $120E (branch if a monster) C2/11F3: BD 05 32 LDA $3205,X C2/11F6: 10 C2 BPL $11BA (Exit function if entity has not taken a conventional turn [including landing one] since boarding Palidor) C2/11F8: A5 B1 LDA $B1 C2/11FA: 30 BE BMI $11BA (Exit function if Yielding to Monster(s) with "Attack First") C2/11FC: A9 04 LDA #$04 C2/11FE: 20 B4 11 JSR $11B4 (set Bit 2 of $3AA0,X) C2/1201: BD 4D 3E LDA $3E4D,X (Bit 0 is set on entity who's Controlling another. this is an addition in FF3us to prevent a bug caused by Ripplering off the "Spell Chant" status.) C2/1204: 4A LSR C2/1205: 8A TXA C2/1206: 6A ROR C2/1207: 85 10 STA $10 C2/1209: A9 02 LDA #$02 C2/120B: 4C 11 64 JMP $6411 C2/120E: 4C 66 4E JMP $4E66 (put entity in wait queue) (Decrease Morph timer. If it's run out, zero related Morph variables, and queue the Revert command.) C2/1211: C2 20 REP #$20 (Set 16-bit Accumulator) C2/1213: 38 SEC C2/1214: AD 30 3F LDA $3F30 (Load the morph timer) C2/1217: ED 32 3F SBC $3F32 (Subtract morph decrement amount) C2/121A: 8D 30 3F STA $3F30 (Save the new morph timer) C2/121D: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/121F: B0 13 BCS $1234 (Branch if it's greater than zero) C2/1221: 9C 31 3F STZ $3F31 (zero top byte of Morph timer. i assume we're neglecting to zero $3F30 just to avoid adding a "REP" instruction.) C2/1224: 20 36 0B JSR $0B36 (adjust Morph supply [in this case, zero it] to match our new Morph timer) C2/1227: A9 FF LDA #$FF C2/1229: 8D E2 3E STA $3EE2 (Store #$FF to Morphed targets byte [no longer have a Morphed target]) C2/122C: A9 04 LDA #$04 C2/122E: 8D 7A 3A STA $3A7A (Store Revert as command) C2/1231: 20 B2 4E JSR $4EB2 (queue it, in entity's counterattack and periodic damage/healing queue) C2/1234: AD 31 3F LDA $3F31 (Load the remaining amount of morph time DIV 256, if any) C2/1237: 9D 04 3B STA $3B04,X (Store it to the character's Morph gauge) (Why do we bother zeroing all these timers and variables here when the forthcoming Revert can handle it? Presumably to avoid gauge screwiness and a bunch of pointless calls to this function should Terra's Morph timer run down in the middle of an attack animation...) C2/123A: 60 RTS True Knight and Love Token C2/123B: DA PHX C2/123C: 08 PHP C2/123D: A5 B2 LDA $B2 C2/123F: 89 02 00 BIT #$0002 (Is "No critical and Ignore True Knight" set?) C2/1242: D0 61 BNE $12A5 (Exit if so) C2/1244: A5 B8 LDA $B8 (intended target(s). to my knowledge, there's only one intended target set if we call this function..) C2/1246: F0 5D BEQ $12A5 (Exit if none) C2/1248: A0 FF LDY #$FF C2/124A: 84 F4 STY $F4 (default to no bodyguards.) C2/124C: 20 F9 51 JSR $51F9 (Y = index of our highest intended target. 0, 2, 4, or 6 for characters. 8, 10, 12, 14, 16, or 18 for monsters.) C2/124F: 84 F8 STY $F8 (save target index) C2/1251: 64 F2 STZ $F2 (Highest Bodyguard HP So Far = 0. this makes the first eligible bodyguard we check get accepted. later ones may replace him/her if they have more HP.) C2/1253: DA PHX C2/1254: BE 6C 33 LDX $336C,Y (Love Token - which target takes damage for you) C2/1257: 30 06 BMI $125F (Branch if none do) C2/1259: 20 C0 12 JSR $12C0 (consider this target as a bodyguard) C2/125C: 20 A8 12 JSR $12A8 (if it was valid, make it intercept the attack) C2/125F: FA PLX C2/1260: B9 E4 3E LDA $3EE4,Y C2/1263: 89 00 02 BIT #$0200 C2/1266: F0 3D BEQ $12A5 (Branch if target not Near Fatal) C2/1268: 89 10 00 BIT #$0010 C2/126B: D0 38 BNE $12A5 (Branch if Clear) C2/126D: B9 58 33 LDA $3358,Y ($3359 = who is Seizing you) C2/1270: 10 33 BPL $12A5 (Branch if target is seized) C2/1272: A9 0F 00 LDA #$000F (Load all characters as potential bodyguards) C2/1275: C0 08 CPY #$08 C2/1277: 90 03 BCC $127C (Branch if target is character) C2/1279: A9 00 3F LDA #$3F00 (Load all monsters as potential bodyguards instead) C2/127C: 85 F0 STA $F0 (Save potential bodyguards) C2/127E: B9 18 30 LDA $3018,Y (bit representing target) (was typoed as "LDA $3018,X") C2/1281: 1D 18 30 ORA $3018,X (bit representing attacker) C2/1284: 14 F0 TRB $F0 (Clear attacker and target from potential bodyguards) C2/1286: A2 12 LDX #$12 C2/1288: BD 58 3C LDA $3C58,X C2/128B: 89 40 00 BIT #$0040 C2/128E: F0 0A BEQ $129A (Branch if no True Knight effect) C2/1290: BD 18 30 LDA $3018,X C2/1293: 24 F0 BIT $F0 C2/1295: F0 03 BEQ $129A (Branch if this candidate isn't on the same team as the target) C2/1297: 20 C0 12 JSR $12C0 (consider them as candidate bodyguard. if they're valid and their HP is >= past valid candidates, they become the new frontrunner.) C2/129A: CA DEX C2/129B: CA DEX C2/129C: 10 EA BPL $1288 (Do for all characters and monsters) C2/129E: A5 F2 LDA $F2 C2/12A0: F0 03 BEQ $12A5 (Exit if no bodyguard found [or if the selfless soul has 0 HP, which shouldn't be possible outside of bugs].) C2/12A2: 20 A8 12 JSR $12A8 (make chosen bodyguard -- provided there was one -- intercept attack. if somebody's already been slated to intercept it [i.e. due to Love Token], the True Knight will sensibly defer to them.) C2/12A5: 28 PLP C2/12A6: FA PLX C2/12A7: 60 RTS (Make chosen bodyguard intercept attack, provided one hasn't been marked to do so already.) C2/12A8: A6 F4 LDX $F4 C2/12AA: 30 13 BMI $12BF (exit if no bodyguard found) C2/12AC: C4 F8 CPY $F8 C2/12AE: D0 0F BNE $12BF (exit if $F8 no longer points to the original target, which means we've already assigned a bodyguard with this function.) C2/12B0: 86 F8 STX $F8 (save bodyguard's index) C2/12B2: 84 A8 STY $A8 (save intended target's index) C2/12B4: 46 A8 LSR $A8 (.. but for the latter, use 0,1,2,etc rather than 0,2,4,etc) C2/12B6: 08 PHP C2/12B7: C2 20 REP #$20 (set 16-bit A) C2/12B9: BD 18 30 LDA $3018,X C2/12BC: 85 B8 STA $B8 (save bodyguard as the new target of attack) C2/12BE: 28 PLP C2/12BF: 60 RTS (Consider candidate bodyguard for True Knight or Love Token) C2/12C0: 08 PHP C2/12C1: C2 20 REP #$20 (Set 16-bit Accumulator) C2/12C3: BD A0 3A LDA $3AA0,X C2/12C6: 4A LSR C2/12C7: 90 2A BCC $12F3 (Exit function if entity not present in battle?) C2/12C9: BD B8 32 LDA $32B8,X ($32B9 = who is Controlling you) C2/12CC: 10 25 BPL $12F3 (Exit if you're controlled) C2/12CE: BD 58 33 LDA $3358,X ($3359 = who is Seizing you) C2/12D1: 10 20 BPL $12F3 (Exit if you're Seized) C2/12D3: BD E4 3E LDA $3EE4,X C2/12D6: 89 D2 A0 BIT #$A0D2 (Death, Petrify, Clear, Zombie, Sleep, Muddled) C2/12D9: D0 18 BNE $12F3 (Exit if any set) C2/12DB: BD F8 3E LDA $3EF8,X C2/12DE: 89 10 32 BIT #$3210 (Stop, Freeze, Spell Chant, Hide) C2/12E1: D0 10 BNE $12F3 (Exit if any set) C2/12E3: BD 18 30 LDA $3018,X C2/12E6: 04 A6 TSB $A6 (make this potential guard jump in front of the target, can accompany others) C2/12E8: BD F4 3B LDA $3BF4,X (HP of this potential bodyguard) C2/12EB: C5 F2 CMP $F2 C2/12ED: 90 04 BCC $12F3 (branch if it's not >= the highest HP of the other bodyguards considered so far for this attack.) C2/12EF: 85 F2 STA $F2 (if it is, save this entity's HP as the highest HP so far.) C2/12F1: 86 F4 STX $F4 (and this entity becomes the new bodyguard.) C2/12F3: 28 PLP C2/12F4: 60 RTS (Do HP or MP Damage/Healing to an entity) C2/12F5: DA PHX C2/12F6: 08 PHP C2/12F7: A2 02 LDX #$02 C2/12F9: AD A2 11 LDA $11A2 C2/12FC: 30 02 BMI $1300 (Branch if concerns MP) C2/12FE: A2 00 LDX #$00 C2/1300: FC 1F 13 JSR ($131F,X) (Deal damage and/or healing) C2/1303: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/1305: 90 15 BCC $131C (Branch if no damage done to target, or if healing done on same strike matched or exceeded damage) C2/1307: A3 02 LDA $02,S (get attacker) C2/1309: AA TAX (save in X) C2/130A: 86 EE STX $EE (and in a RAM variable, too) C2/130C: 20 2F 36 JSR $362F (Mark entity X as the last attacker of entity Y, unless Y already has an attacker this turn. Set flag indicating that entity Y was attacked this turn, and this might be the lone context where doing so isn't arbitrary.) C2/130F: C4 EE CPY $EE (does target == attacker?) C2/1311: F0 09 BEQ $131C (branch if so) C2/1313: 99 7C 32 STA $327C,Y (save attacker [original, not any reflector] in byte that's used by FC 05 script command) C2/1316: B9 18 30 LDA $3018,Y C2/1319: 1C 19 34 TRB $3419 (indicate target as being damaged [by an attacker other than themselves] this turn. will be used by Black Belt function.) C2/131C: 28 PLP C2/131D: FA PLX C2/131E: 60 RTS Code pointers C2/131F: 23 13 (HP damage) C2/1321: 50 13 (MP damage) Deal HP Damage/Healing (Returns in Carry: Set if damage done to target, and damage exceeds any healing done on same strike. Clear if damage not done to target, or if healing done on same strike matches or exceeds it.) C2/1323: 20 A7 13 JSR $13A7 (Returns Damage Healed - Damage Taken) C2/1326: F0 13 BEQ $133B (Exit function if 0 damage [damage = healing]) C2/1328: 90 13 BCC $133D (If Damage > Healing, deal HP damage) C2/132A: 18 CLC (Otherwise, deal HP healing) C2/132B: 79 F4 3B ADC $3BF4,Y (Add to HP) C2/132E: B0 05 BCS $1335 C2/1330: D9 1C 3C CMP $3C1C,Y C2/1333: 90 03 BCC $1338 C2/1335: B9 1C 3C LDA $3C1C,Y (If over Max HP, set to Max HP) C2/1338: 99 F4 3B STA $3BF4,Y C2/133B: 18 CLC C2/133C: 60 RTS C2/133D: 49 FF FF EOR #$FFFF C2/1340: 85 EE STA $EE (65535 - [Healing - Damage]. This gives us the Net Damage minus 1, and that 1 is cancelled out by the SBC below, which is done with Carry clear.) C2/1342: B9 F4 3B LDA $3BF4,Y C2/1345: E5 EE SBC $EE (Subtract damage from HP) C2/1347: 99 F4 3B STA $3BF4,Y C2/134A: F0 44 BEQ $1390 (branch if 0 HP) C2/134C: B0 EE BCS $133C (Exit If > 0 HP) C2/134E: 80 40 BRA $1390 (If < 0 HP) Deal MP Damage/Healing (Returns in Carry: Set if damage done to target, and damage exceeds any healing done on same strike. Clear if damage not done to target, or if healing done on same strike matches or exceeds it.) C2/1350: 20 A7 13 JSR $13A7 (Returns Damage Healed - Damage Taken) C2/1353: F0 E6 BEQ $133B (Exit function if 0 damage [damage = healing]) C2/1355: 90 14 BCC $136B (If Damage > Healing, deal MP damage) C2/1357: 18 CLC (Otherwise, deal MP healing) C2/1358: 79 08 3C ADC $3C08,Y (Add A to MP) C2/135B: B0 05 BCS $1362 C2/135D: D9 30 3C CMP $3C30,Y C2/1360: 90 03 BCC $1365 C2/1362: B9 30 3C LDA $3C30,Y (If result over Max MP, set Current MP to Max MP) C2/1365: 99 08 3C STA $3C08,Y C2/1368: 18 CLC C2/1369: 80 1F BRA $138A C2/136B: 49 FF FF EOR #$FFFF C2/136E: 85 EE STA $EE (65535 - [Healing - Damage]. This gives us the Net Damage minus 1, and that 1 is cancelled out by the SBC below, which is done with Carry clear.) C2/1370: B9 08 3C LDA $3C08,Y C2/1373: E5 EE SBC $EE C2/1375: 99 08 3C STA $3C08,Y (Subtract from MP) C2/1378: F0 02 BEQ $137C (branch if MP = 0) C2/137A: B0 0E BCS $138A (branch if MP > 0) C2/137C: 7B TDC (If it's less than 0,) C2/137D: 99 08 3C STA $3C08,Y (Store 0 in MP) C2/1380: B9 95 3C LDA $3C95,Y C2/1383: 4A LSR C2/1384: 90 03 BCC $1389 (Branch if not Die at 0 MP) C2/1386: 20 90 13 JSR $1390 (Call lethal damage function if Dies at 0 MP) C2/1389: 38 SEC C2/138A: A9 80 00 LDA #$0080 C2/138D: 4C 4C 46 JMP $464C If character/monster takes lethal damage C2/1390: 38 SEC C2/1391: 7B TDC (Clear accumulator) C2/1392: AA TAX C2/1393: 8E 89 3A STX $3A89 (turn off random weapon spellcast) C2/1396: 99 F4 3B STA $3BF4,Y (Set HP to 0) C2/1399: B9 E4 3E LDA $3EE4,Y C2/139C: 89 02 00 BIT #$0002 C2/139F: D0 9B BNE $133C (Exit function if Zombie) C2/13A1: A9 80 00 LDA #$0080 C2/13A4: 4C 32 0E JMP $0E32 (Sets $3DD4 for death status) Returns Damage Healed - Damage Taken C2/13A7: B9 D0 33 LDA $33D0,Y (Damage Taken) C2/13AA: 1A INC C2/13AB: F0 0F BEQ $13BC (If no damage, branch and save damage as 0) C2/13AD: B9 18 30 LDA $3018,Y C2/13B0: 2C 3C 3A BIT $3A3C C2/13B3: F0 04 BEQ $13B9 (Branch if not invincible) C2/13B5: 7B TDC C2/13B6: 99 D0 33 STA $33D0,Y (Set damage to 0) C2/13B9: B9 D0 33 LDA $33D0,Y C2/13BC: 85 EE STA $EE C2/13BE: AD 81 3A LDA $3A81 C2/13C1: 2D 82 3A AND $3A82 C2/13C4: 30 02 BMI $13C8 (Branch if no Golem or dog block) C2/13C6: 64 EE STZ $EE (Set damage to 0) C2/13C8: B9 E4 33 LDA $33E4,Y (Damage Healed) C2/13CB: 1A INC C2/13CC: F0 01 BEQ $13CF (If no healing, branch and treat healing as 0) C2/13CE: 3A DEC (get healing amount again) C2/13CF: 38 SEC C2/13D0: E5 EE SBC $EE (Subtract damage) C2/13D2: 60 RTS Character/Monster Takes One Turn C2/13D3: DA PHX C2/13D4: 08 PHP C2/13D5: 20 39 26 JSR $2639 (Clear animation buffer pointers, extra strike quantity, and various backup targets) C2/13D8: A9 10 LDA #$10 C2/13DA: 04 B0 TSB $B0 (related to characters stepping forward and getting circular or triangular pattern around them when casting Magic or Lores.) C2/13DC: A9 06 LDA #$06 C2/13DE: 85 B4 STA $B4 (C2/35D4 will write "Show command animation" command to ($76) animation buffer) C2/13E0: 64 BD STZ $BD (zero turn-wide Damage Incrementor) C2/13E2: 9C 89 3A STZ $3A89 (disable weapon addition magic) C2/13E5: 9C C9 3E STZ $3EC9 (Set # of targets to zero) C2/13E8: 9C 8E 3A STZ $3A8E (disable Continuous Jump) C2/13EB: 9B TXY C2/13EC: A9 FF LDA #$FF C2/13EE: 85 B2 STA $B2 C2/13F0: 85 B3 STA $B3 C2/13F2: A2 0F LDX #$0F C2/13F4: 9D 10 34 STA $3410,X ($3410 - $341F = FFh) C2/13F7: CA DEX C2/13F8: 10 FA BPL $13F4 C2/13FA: A5 B5 LDA $B5 (Load command) C2/13FC: 0A ASL C2/13FD: AA TAX C2/13FE: FC C7 19 JSR ($19C7,X) (Execute command) C2/1401: A9 FF LDA #$FF C2/1403: 8D 17 34 STA $3417 (indicate null Sketcher/Sketchee. not sure why this is needed, given the C2/13F4 loop.) C2/1406: 20 9B 62 JSR $629B (Copy A to $3A28, and copy $3A28-$3A2B variables into ($76) buffer. this puts an "End script" command to the buffer, so C1/9512 knows when to stop looping.) C2/1409: 20 9B 06 JSR $069B (Do various responses to three mortal statuses) C2/140C: 20 5B 4C JSR $4C5B (prepare any applicable counterattacks) C2/140F: 20 29 14 JSR $1429 (Remove dead-ish or escaped enemies from list of remaining enemies, if Piranha or other conditions met) C2/1412: A9 04 LDA #$04 C2/1414: 20 11 64 JSR $6411 (Execute animation queue) C2/1417: 20 B9 4A JSR $4AB9 (Update lists and counts of present and/or living characters and monsters) C2/141A: 20 7A 14 JSR $147A (Place marked entities in $2F4E on battlefield) C2/141D: 20 3F 08 JSR $083F C2/1420: 20 4F 14 JSR $144F (Remove marked entities in $2F4C from battlefield) C2/1423: 20 C7 62 JSR $62C7 (Add Stolen or Metamorphed item to a temporary $602D-$6031 [plus offset] buffer. Also, add back an item used via Equipment Magic if the item isn't destroyed upon use [no equipment in the game works that way, but it's fully possible].) (then _that_ buffer gets added to Item menu by having the triangle cursor switch onto a new character, or if that somehow doesn't happen, then at end of battle.) C2/1426: 28 PLP C2/1427: FA PLX C2/1428: 60 RTS (Remove dead-ish or escaped enemies from list of remaining enemies, provided that: they have no counterattack or periodic damage/healing queued, they are Hidden, or they are Piranha) C2/1429: A2 0A LDX #$0A C2/142B: BD 21 30 LDA $3021,X C2/142E: 2C 3A 3A BIT $3A3A (is it in list of dead-ish or escaped enemies?) C2/1431: F0 17 BEQ $144A (branch to next monster if not) C2/1433: EB XBA C2/1434: BD 01 3F LDA $3F01,X (normally accessed as $3EF9,X) C2/1437: 89 20 BIT #$20 C2/1439: D0 0B BNE $1446 (branch if Hide status) C2/143B: BD 54 3E LDA $3E54,X (normally accessed as $3E4C,X) C2/143E: 30 06 BMI $1446 (branch if some custom flag is set, which only Piranha has. the other effect of this status byte-derived property is to give removable Float, which i always thought pointless, given Piranha also has permanent Float.) C2/1440: BD D5 32 LDA $32D5,X (normally accessed as $32CD,X. get entry point into this entity's counterattack or periodic damage/healing linked list queue.) C2/1443: 1A INC C2/1444: D0 04 BNE $144A (branch if value wasn't a null FFh. i.e. branch if entity has a counterattack or periodic damage/healing queued.) C2/1446: EB XBA C2/1447: 1C 2F 2F TRB $2F2F (remove from bitfield of remaining enemies?) C2/144A: CA DEX C2/144B: CA DEX C2/144C: 10 DD BPL $142B (iterate for all 6 monsters) C2/144E: 60 RTS (Remove marked entities in $2F4C from battlefield) C2/144F: 08 PHP C2/1450: C2 20 REP #$20 (Set 16-bit Accumulator) C2/1452: A2 12 LDX #$12 C2/1454: BD 18 30 LDA $3018,X C2/1457: 1C 4C 2F TRB $2F4C (clear flag marking entity to be removed from battlefield) C2/145A: F0 18 BEQ $1474 (branch if it hadn't been set) C2/145C: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/145E: EB XBA C2/145F: 1C 2F 2F TRB $2F2F (if enemy, clear it from bitfield of remaining enemies?) C2/1462: A9 FE LDA #$FE C2/1464: 20 92 07 JSR $0792 (clear Bit 0 of $3AA0,X , indicating that entity is absent) C2/1467: BD F9 3E LDA $3EF9,X C2/146A: 09 20 ORA #$20 C2/146C: 9D F9 3E STA $3EF9,X (Set Hide status) C2/146F: 20 C8 07 JSR $07C8 (Clear Zinger, Love Token, and Charm bonds, and clear applicable Quick variables) C2/1472: C2 20 REP #$20 C2/1474: CA DEX C2/1475: CA DEX C2/1476: 10 DC BPL $1454 (iterate for all 10 entities) C2/1478: 28 PLP C2/1479: 60 RTS (Place marked entities in $2F4E on battlefield, and remove any terminal ailments or Imp status they may have) C2/147A: 08 PHP C2/147B: C2 20 REP #$20 (Set 16-bit Accumulator) C2/147D: A2 12 LDX #$12 C2/147F: BD 18 30 LDA $3018,X C2/1482: 1C 4E 2F TRB $2F4E (clear flag) C2/1485: F0 20 BEQ $14A7 (branch if entity hadn't been marked to enter battlefield) C2/1487: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/1489: EB XBA C2/148A: 0C 2F 2F TSB $2F2F (if enemy, mark it in bitfield of remaining enemies?) C2/148D: A9 01 LDA #$01 C2/148F: 20 B4 11 JSR $11B4 (set Bit 0 of $3AA0,X , which indicates that entity is present) C2/1492: BD E4 3E LDA $3EE4,X C2/1495: 29 1D AND #$1D C2/1497: 9D E4 3E STA $3EE4,X (Clear Zombie, Imp, Petrify, Death) C2/149A: BD F9 3E LDA $3EF9,X C2/149D: 29 DF AND #$DF C2/149F: 9D F9 3E STA $3EF9,X (Clear Hide) C2/14A2: 20 A0 2D JSR $2DA0 (Handle "Attack First" property for monster. And make Carry Flag match the property's state [it will be clear for characters].) C2/14A5: C2 20 REP #$20 C2/14A7: CA DEX C2/14A8: CA DEX C2/14A9: 10 D4 BPL $147F (iterate for all 10 entities) C2/14AB: 28 PLP C2/14AC: 60 RTS Check if hitting target(s) in back C2/14AD: AD A2 11 LDA $11A2 C2/14B0: 4A LSR C2/14B1: 90 5E BCC $1511 (Exit function if magical damage) C2/14B3: E0 08 CPX #$08 C2/14B5: B0 2E BCS $14E5 (Branch if monster attacker) C2/14B7: AD 1F 20 LDA $201F (get encounter type: 0 = front, 1 = back, 2 = pincer, 3 = side) C2/14BA: C9 03 CMP #$03 C2/14BC: D0 53 BNE $1511 (Exit function if not Side attack) C2/14BE: BD 18 30 LDA $3018,X (Holds $01 for character 1, $02 for character 2, $04 for character 3, $08 for character 4) C2/14C1: 2D 50 2F AND $2F50 (bitfield of which way all the characters face) C2/14C4: 85 EE STA $EE (will be default of 0 if character attacker faces left, nonzero if they face right) C2/14C6: A0 0A LDY #$0A C2/14C8: A5 EE LDA $EE C2/14CA: EB XBA (save attacking character's direction variable) C2/14CB: B9 21 30 LDA $3021,Y (Holds $01 for monster 1, $02 for monster 2, $04 for monster 3, etc. Note we'd normally access this as $3019; $3021 is an adjustment for the loop iterator.) C2/14CE: 2C 51 2F BIT $2F51 (bitfield of which way all the monsters face) C2/14D1: F0 05 BEQ $14D8 (branch if this monster faces left) C2/14D3: EB XBA C2/14D4: 5D 18 30 EOR $3018,X (A = reverse of attacking character's direction) C2/14D7: EB XBA C2/14D8: EB XBA C2/14D9: D0 04 BNE $14DF (branch if the character and monster are facing each other) C2/14DB: EB XBA (get $3021,Y) C2/14DC: 0C 55 3A TSB $3A55 (so we'll turn on this monster's bit if the attacking character is facing their back) C2/14DF: 88 DEY C2/14E0: 88 DEY C2/14E1: 10 E5 BPL $14C8 (loop for all 6 monsters) C2/14E3: 80 2C BRA $1511 (Exit Function) C2/14E5: AD 1F 20 LDA $201F (get encounter type: 0 = front, 1 = back, 2 = pincer, 3 = side) C2/14E8: C9 02 CMP #$02 C2/14EA: D0 25 BNE $1511 (exit function if not Pincer attack) C2/14EC: BD 19 30 LDA $3019,X (Holds $01 for monster 1, $02 for monster 2, $04 for monster 3, etc.) C2/14EF: 2D 51 2F AND $2F51 (bitfield of which way all the monsters face) C2/14F2: 85 EE STA $EE (will be 0 if monster attacker faces left, nonzero default if they face right) C2/14F4: A0 06 LDY #$06 C2/14F6: A5 EE LDA $EE C2/14F8: EB XBA (save attacking monster's direction variable) C2/14F9: B9 18 30 LDA $3018,Y (Holds $01 for character 1, $02 for character 2, $04 for character 3, $08 for character 4) C2/14FC: 2C 50 2F BIT $2F50 (bitfield of which way all the characters face) C2/14FF: F0 05 BEQ $1506 (branch if this character faces left) C2/1501: EB XBA C2/1502: 5D 19 30 EOR $3019,X (A = reverse of attacking monster's direction) C2/1505: EB XBA C2/1506: EB XBA C2/1507: D0 04 BNE $150D (branch if the monster and character are facing each other) C2/1509: EB XBA (get $3018,Y) C2/150A: 0C 54 3A TSB $3A54 (so we'll turn on this character's bit if the attacking monster is facing their back) C2/150D: 88 DEY C2/150E: 88 DEY C2/150F: 10 E5 BPL $14F6 (loop for all 4 characters) C2/1511: 60 RTS Increment damage if weapon is spear: Set $BD, turn-wide Damage Incrementor, to 2 if Item ID in A is between #$1D and #$24 (inclusive) C2/1512: C9 1D CMP #$1D C2/1514: 90 08 BCC $151E (Exit if ID < 29d) C2/1516: C9 25 CMP #$25 C2/1518: B0 04 BCS $151E (Exit if ID >= 37d) C2/151A: A9 02 LDA #$02 C2/151C: 85 BD STA $BD (set turn-wide Damage Incrementor to 2) C2/151E: 60 RTS Sketch C2/151F: BB TYX C2/1520: 20 8A 29 JSR $298A (Load command data, and clear special effect, magic power, etc.) C2/1523: A9 FF LDA #$FF C2/1525: 85 B7 STA $B7 (start with null graphic index, in case it misses) C2/1527: A9 AA LDA #$AA C2/1529: 8D A9 11 STA $11A9 (Store Sketch in special effect) C2/152C: 20 7B 31 JSR $317B (entity executes one hit) C2/152F: AC 17 34 LDY $3417 (get the Sketchee) C2/1532: 30 EA BMI $151E (Exit if it's null) C2/1534: 8E 17 34 STX $3417 (save the attacker as the SketcheR) C2/1537: B9 81 3C LDA $3C81,Y (get target [enemy] Special attack graphic) C2/153A: 9D 81 3C STA $3C81,X (copy to attacker) C2/153D: B9 2D 32 LDA $322D,Y (get target Special attack) C2/1540: 9D 2D 32 STA $322D,X (copy to attacker) C2/1543: 9C 15 34 STZ $3415 (will force randomization and skip backing up of targets) C2/1546: AD 00 34 LDA $3400 C2/1549: 85 B6 STA $B6 (copy "spell # of second attack" into normal spell variable) C2/154B: A9 FF LDA #$FF C2/154D: 8D 00 34 STA $3400 (clear "spell # of second attack") C2/1550: A9 01 LDA #$01 C2/1552: 04 B2 TSB $B2 (will allow name of attack to be displayed atop screen for its first strike) C2/1554: A5 B6 LDA $B6 C2/1556: 20 BF 1D JSR $1DBF (choose a command based on spell #) C2/1559: 85 B5 STA $B5 C2/155B: 0A ASL C2/155C: AA TAX C2/155D: 7C C7 19 JMP ($19C7,X) (execute that command) Rage C2/1560: B9 A8 33 LDA $33A8,Y (get monster #) C2/1563: 1A INC C2/1564: D0 13 BNE $1579 (branch if it's already defined) C2/1566: AE 93 3A LDX $3A93 (if it's undefined [like with Mimic], get the index of another Rager, so we can copy their monster #) C2/1569: E0 14 CPX #$14 C2/156B: 90 02 BCC $156F (if the Rager index corresponds to a character [0, 2, 4, 6] or an enemy [8, 10, 12, 14, 16, 18], consider it valid and branch.) C2/156D: A2 00 LDX #$00 (if not, default to looking at character #1) C2/156F: BD A8 33 LDA $33A8,X (get that other Rager's monster) C2/1572: 99 A8 33 STA $33A8,Y (save it as our current Rager's monster) C2/1575: 7B TDC C2/1576: 99 A9 33 STA $33A9,Y C2/1579: 8C 93 3A STY $3A93 (save the index of our current Rager) C2/157C: B9 F9 3E LDA $3EF9,Y C2/157F: 09 01 ORA #$01 C2/1581: 99 F9 3E STA $3EF9,Y (Set Rage status) C2/1584: 20 10 06 JSR $0610 (Load monster Battle and Special graphics, its special attack, elemental properties, status immunities, startup statuses [to be set later], and special properties) C2/1587: BB TYX C2/1588: 20 50 26 JSR $2650 (deal with Instant Death protection, and Poison elemental nullification giving immunity to Poison status) C2/158B: 20 54 15 JSR $1554 (Commands code. note that the attack's "Update Status" function will also be used to give the monster's statuses to the Rager.) C2/158E: 4C 75 26 JMP $2675 (make some monster statuses permanent by setting immunity to them. also handle immunity to "mutually exclusive" statuses.) Steal C2/1591: BB TYX C2/1592: 20 8A 29 JSR $298A (Load command data, and clear special effect, magic power, etc.) C2/1595: A9 A4 LDA #$A4 C2/1597: 8D A9 11 STA $11A9 (Store steal in special effect) C2/159A: 4C 7B 31 JMP $317B (entity executes one hit) Blitz C2/159D: A5 B6 LDA $B6 C2/159F: 10 0F BPL $15B0 (branch if the spell # indicates a Blitz) C2/15A1: A9 01 LDA #$01 C2/15A3: 14 B3 TRB $B3 (this will clear targets for a failed Blitz input) C2/15A5: A9 43 LDA #$43 C2/15A7: 8D 01 34 STA $3401 (Set to display Text $43 - "Incorrect Blitz input!") C2/15AA: A9 5D LDA #$5D C2/15AC: 85 B6 STA $B6 (store Pummel's spell number) C2/15AE: 80 05 BRA $15B5 C2/15B0: A9 08 LDA #$08 C2/15B2: 8D 12 34 STA $3412 (will display a Blitz name atop screen) C2/15B5: A5 B6 LDA $B6 C2/15B7: 48 PHA C2/15B8: 38 SEC C2/15B9: E9 5D SBC #$5D (subtract Pummel's spell index from our spell #) C2/15BB: 85 B6 STA $B6 (save our 0 thru 7 "Blitz index", likely used for animation) C2/15BD: 68 PLA (but use our original spell # for loading spell data) C2/15BE: BB TYX C2/15BF: 20 C1 19 JSR $19C1 (Load data for command and attack/sub-command, held in $B5 and A) C2/15C2: 20 51 29 JSR $2951 (Load Magic Power / Vigor and Level) C2/15C5: 4C 7B 31 JMP $317B (entity executes one hit) (Fight - check for Desperation Attack first) C2/15C8: C0 08 CPY #$08 C2/15CA: B0 44 BCS $1610 (No DA if monster) C2/15CC: AD 3F 3A LDA $3A3F C2/15CF: C9 03 CMP #$03 C2/15D1: 90 3D BCC $1610 (No DA if time counter is 767 or less) C2/15D3: B9 E5 3E LDA $3EE5,Y C2/15D6: 89 02 BIT #$02 C2/15D8: F0 36 BEQ $1610 (No DA If not Near Fatal) C2/15DA: 89 24 BIT #$24 C2/15DC: D0 32 BNE $1610 (No DA If Muddled or Image) C2/15DE: B9 E4 3E LDA $3EE4,Y C2/15E1: 89 12 BIT #$12 C2/15E3: D0 2B BNE $1610 (No DA If Clear or Zombie) C2/15E5: A5 B9 LDA $B9 C2/15E7: F0 27 BEQ $1610 (No DA if no monsters targeted) C2/15E9: 20 5A 4B JSR $4B5A (Random number 0 to 255) C2/15EC: 29 0F AND #$0F (0 to 15) C2/15EE: D0 20 BNE $1610 (1 in 16 chance for DA) C2/15F0: B9 18 30 LDA $3018,Y C2/15F3: 0C 2F 3F TSB $3F2F (mark as ineligible to use a desperation attack again) C2/15F6: D0 18 BNE $1610 (No DA if this character already used it this combat) C2/15F8: B9 D8 3E LDA $3ED8,Y (Which character it is) C2/15FB: C9 0C CMP #$0C C2/15FD: F0 05 BEQ $1604 (branch if Gogo) C2/15FF: C9 0B CMP #$0B C2/1601: B0 0D BCS $1610 (branch if Character 11 or above: Gau, Umaro, or special character. none of these characters have DAs) C2/1603: 1A INC C2/1604: 3A DEC (if it was Gogo, we decrement the DA by 1 to account for Gau -- who's before Gogo -- not having one) C2/1605: 09 F0 ORA #$F0 C2/1607: 85 B6 STA $B6 (add F0h to modified character #, then save as attack #) C2/1609: A9 10 LDA #$10 C2/160B: 14 B0 TRB $B0 (??? See functions C2/13D3 and C2/57C2 for usual purpose; dunno whether it does anything here.) C2/160D: 4C 14 17 JMP $1714 C2/1610: C0 08 CPY #$08 (Capture enters here) C2/1612: B0 07 BCS $161B (branch if monster) C2/1614: B9 D8 3E LDA $3ED8,Y (Which character it is) C2/1617: C9 0D CMP #$0D C2/1619: F0 20 BEQ $163B (branch if Umaro) C2/161B: BB TYX C2/161C: BD 58 3C LDA $3C58,X C2/161F: 4A LSR C2/1620: A9 01 LDA #$01 C2/1622: 90 02 BCC $1626 (branch if no offering) C2/1624: A9 07 LDA #$07 C2/1626: 8D 70 3A STA $3A70 (# of attacks) C2/1629: 20 4D 5A JSR $5A4D (Remove dead and hidden targets) C2/162C: 20 65 38 JSR $3865 (depending on $3415, copy targets into backup targets and add to "already hit targets" list, or copy backup targets into targets.) C2/162F: A9 02 LDA #$02 C2/1631: 14 B2 TRB $B2 (clear no critical & ignore true knight) C2/1633: A5 B5 LDA $B5 C2/1635: 8D 13 34 STA $3413 (save backup command [Fight or Capture]. used for multi-strike turns where a spell is cast by a weapon, thus overwriting the command #.) C2/1638: 4C 7B 31 JMP $317B (entity executes one hit (loops for multiple-strike attack)) Determine which type of attack Umaro uses C2/163B: 64 FE STZ $FE (start off allowing neither Storm nor Throw attack) C2/163D: A9 C6 LDA #$C6 C2/163F: D9 D0 3C CMP $3CD0,Y C2/1642: F0 05 BEQ $1649 (Branch if Rage Ring equipped in relic slot 1) C2/1644: D9 D1 3C CMP $3CD1,Y (Check Slot 2) C2/1647: D0 0D BNE $1656 (Branch if Rage Ring not equipped) C2/1649: 7B TDC C2/164A: B9 18 30 LDA $3018,Y C2/164D: 4D 74 3A EOR $3A74 C2/1650: F0 04 BEQ $1656 (Branch if Umaro is the only present character alive) C2/1652: A9 04 LDA #$04 C2/1654: 04 FE TSB $FE (allow for Throw character attack) C2/1656: A9 C5 LDA #$C5 C2/1658: D9 D0 3C CMP $3CD0,Y C2/165B: F0 05 BEQ $1662 (Branch if Blizzard Orb equipped in relic slot 1) C2/165D: D9 D1 3C CMP $3CD1,Y (Check Slot 2) C2/1660: D0 04 BNE $1666 (Branch if Blizzard Orb not equipped) C2/1662: A9 08 LDA #$08 C2/1664: 04 FE TSB $FE (allow for Storm attack) C2/1666: A5 FE LDA $FE C2/1668: AA TAX (form a pointer based on availability of Storm and/or Throw. it will pick 1 of Umaro's 4 probability sets, each of which holds the chances for his 4 attacks.) C2/1669: 09 30 ORA #$30 (always allow Normal attack and Charge) C2/166B: 0A ASL C2/166C: 0A ASL C2/166D: 20 47 52 JSR $5247 (X = Pick attack type to use. Will return 0 for Throw character, 1 for Storm, 2 for Charge, 3 for Normal attack.) C2/1670: 8A TXA C2/1671: 0A ASL C2/1672: AA TAX C2/1673: 7C 76 16 JMP ($1676,X) Code pointers C2/1676: 92 16 (Throw character) C2/1678: 0D 17 (Storm) C2/167A: 7E 16 (Charge) C2/167C: 1B 16 (Normal attack) Umaro's Charge attack C2/167E: BB TYX C2/167F: 20 C7 17 JSR $17C7 (attack Battle Power = sum of battle power of Umaro's hands. initialize various other stuff.) C2/1682: A9 20 LDA #$20 C2/1684: 0C A2 11 TSB $11A2 (Set ignore defense) C2/1687: A9 02 LDA #$02 C2/1689: 14 B2 TRB $B2 (Clear no critical and ignore True Knight) C2/168B: A9 23 LDA #$23 C2/168D: 85 B5 STA $B5 (Set command for animation purposes to #$23) C2/168F: 4C 7B 31 JMP $317B (entity executes one hit) Umaro's Throw character attack C2/1692: BB TYX C2/1693: 20 C7 17 JSR $17C7 (attack Battle Power = sum of battle power of Umaro's hands. initialize various other stuff.) C2/1696: BD 18 30 LDA $3018,X C2/1699: 4D 74 3A EOR $3A74 (Remove Umaro from possible characters to throw) C2/169C: A2 06 LDX #$06 (Start pointing at 4th character slot) C2/169E: 3C 18 30 BIT $3018,X (Check each character) C2/16A1: F0 1C BEQ $16BF (Branch to check next character if this one is not present or not alive, or if we've already decided on a character due to them having Muddled or Sleep.) C2/16A3: EB XBA C2/16A4: BD F9 3E LDA $3EF9,X C2/16A7: 89 20 BIT #$20 C2/16A9: F0 07 BEQ $16B2 (Branch if not Hide) C2/16AB: EB XBA C2/16AC: 5D 18 30 EOR $3018,X (Remove this character from list of characters to throw) C2/16AF: EB XBA C2/16B0: 80 0C BRA $16BE (Check next character) C2/16B2: BD E5 3E LDA $3EE5,X C2/16B5: 89 A0 BIT #$A0 C2/16B7: F0 05 BEQ $16BE (Branch if no Muddled or Sleep) C2/16B9: EB XBA C2/16BA: BD 18 30 LDA $3018,X (Set to automatically throw this character) C2/16BD: EB XBA C2/16BE: EB XBA C2/16BF: CA DEX C2/16C0: CA DEX C2/16C1: 10 DB BPL $169E (iterate for all 4 characters) C2/16C3: 48 PHA C2/16C4: 7B TDC C2/16C5: 68 PLA (clear top half of A) C2/16C6: F0 B6 BEQ $167E (Do Umaro's charge attack if no characters can be thrown) C2/16C8: 20 2A 52 JSR $522A (Pick a random character to throw) C2/16CB: 20 F9 51 JSR $51F9 (Set Y to character thrown) C2/16CE: BB TYX (put throwee in X, so they'll essentially be treated as the "attacker" from here on out) C2/16CF: BD D8 3E LDA $3ED8,X (Which character is thrown) C2/16D2: C9 0A CMP #$0A C2/16D4: D0 04 BNE $16DA (Branch if not Mog) C2/16D6: A9 02 LDA #$02 C2/16D8: 14 B3 TRB $B3 (Set always critical.. too bad we don't clear "Ignore damage increment on Ignore Defense", meaning this does nothing. :'( similarly, the normal 1-in-32 critical will be for nought. i'm not sure what stops the game from flashing the screen, though..) C2/16DA: BD 68 3B LDA $3B68,X C2/16DD: 7D 69 3B ADC $3B69,X (add Battle power of thrown character's left hand to their right hand) (there should really be a CLC before this, as there's no reason to give Mog, Gau, and Gogo a 1-point advantage over other characters. but it does reduce Mog's snubbing somewhat. :P ) C2/16E0: 90 02 BCC $16E4 C2/16E2: A9 FE LDA #$FE (if that overflowed, treat throwee's overall Battle Power as 255 [Carry is set]) (can replace last 2 instructions with "BCS $16E9") C2/16E4: 6D A6 11 ADC $11A6 (Add to battle power of attack) C2/16E7: 90 02 BCC $16EB C2/16E9: A9 FF LDA #$FF (if that overflowed, set overall Battle Power to 255) C2/16EB: 8D A6 11 STA $11A6 (Store in new battle power for attack) C2/16EE: A9 24 LDA #$24 C2/16F0: 85 B5 STA $B5 (Set command for animation purposes to #$24) C2/16F2: A9 20 LDA #$20 C2/16F4: 0C A2 11 TSB $11A2 (Set ignore defense) C2/16F7: A9 02 LDA #$02 C2/16F9: 14 B2 TRB $B2 (Clear no critical and ignore True Knight) C2/16FB: A9 01 LDA #$01 C2/16FD: 04 BA TSB $BA (Exclude Attacker [i.e. the throwee] from Targets) C2/16FF: BD E5 3E LDA $3EE5,X C2/1702: 29 A0 AND #$A0 C2/1704: 1D FD 3D ORA $3DFD,X C2/1707: 9D FD 3D STA $3DFD,X (Set to clear Sleep and Muddled on thrown character, provided the character already possesses them) C2/170A: 4C 7B 31 JMP $317B (entity executes one hit) Storm C2/170D: 9C 15 34 STZ $3415 (will force to randomly retarget) C2/1710: A9 54 LDA #$54 (Storm) C2/1712: 85 B6 STA $B6 (Set spell/animation) C2/1714: A9 02 LDA #$02 (Magic) C2/1716: 85 B5 STA $B5 (Set command) C2/1718: 80 45 BRA $175F Shock C2/171A: A9 82 LDA #$82 ("Megahit" spell, which is what has Shock's data) C2/171C: 80 02 BRA $1720 (go set that as spell/animation) Health C2/171E: A9 2E LDA #$2E (Cure 2) C2/1720: 85 B6 STA $B6 (Set spell/animation) C2/1722: A9 05 LDA #$05 C2/1724: 80 3F BRA $1765 Slot C2/1726: A9 10 LDA #$10 C2/1728: 14 B0 TRB $B0 (??? See functions C2/13D3 and C2/57C2 for usual purpose; dunno whether it does anything here.) C2/172A: A5 B6 LDA $B6 C2/172C: C9 94 CMP #$94 C2/172E: D0 04 BNE $1734 (branch if not L.5 Doom [i.e. one of the Joker Dooms]) C2/1730: A9 07 LDA #$07 C2/1732: 80 31 BRA $1765 C2/1734: C9 51 CMP #$51 C2/1736: 90 2B BCC $1763 (branch if spell # is below Fire Skean. iow, branch if Slot's summoning an Esper.) C2/1738: C9 FE CMP #$FE C2/173A: D0 05 BNE $1741 (Branch if not Lagomorph) C2/173C: A9 07 LDA #$07 C2/173E: 8D 01 34 STA $3401 (Set to display text 7) C2/1741: C0 08 CPY #$08 (Magic command enters here) C2/1743: B0 1A BCS $175F (Branch if attacker is monster) C2/1745: B9 D8 3E LDA $3ED8,Y C2/1748: C9 00 CMP #$00 C2/174A: D0 13 BNE $175F (Branch if not Terra) C2/174C: A9 02 LDA #$02 C2/174E: 1C BC 3E TRB $3EBC (Clear bit for that classic Terra/Locke/Edgar "M..M..Magic" skit, as it only happens once.) (Keep in mind the game will also clear this when exiting Figaro Cave to the South Figaro plains.) C2/1751: F0 0C BEQ $175F (If it wasn't set, skip the special spellcast and the ensuing convo) C2/1753: A2 06 LDX #$06 (Attack) C2/1755: A9 23 LDA #$23 (Command is Battle Event, and Attack in X indicates it's number 6, Terra/Locke/Edgar "M..M..Magic") C2/1757: 20 91 4E JSR $4E91 (queue it, in global Special Action queue) C2/175A: A9 20 LDA #$20 C2/175C: 0C A4 11 TSB $11A4 (Set can't be dodged) C2/175F: A9 00 LDA #$00 (Lore / Enemy attack / Magitek commands enter here) C2/1761: 80 02 BRA $1765 C2/1763: A9 02 LDA #$02 (Summon enters here) C2/1765: 8D 12 34 STA $3412 (depending on how we reached here, will display various things atop the screen: an Esper Summon; a Magic spell, Lore, enemy attack/spell, Magitek attack, Dance move, a Slot move [aside from Lagomorph and Joker Doom], or "Storm"; "Health" or "Shock"; or "Joker Doom") C2/1768: BB TYX C2/1769: A5 B6 LDA $B6 C2/176B: 20 C1 19 JSR $19C1 (Load data for command and attack/sub-command, held in $B5 and A) C2/176E: 20 51 29 JSR $2951 (Load Magic Power / Vigor and Level) C2/1771: A5 B5 LDA $B5 C2/1773: C9 0F CMP #$0F C2/1775: D0 03 BNE $177A (branch if command is not Slot) C2/1777: 9C A5 11 STZ $11A5 (Set MP cost to 0) C2/177A: 4C 7B 31 JMP $317B (entity executes one hit) Dance C2/177D: B9 F8 3E LDA $3EF8,Y C2/1780: 09 01 ORA #$01 C2/1782: 99 F8 3E STA $3EF8,Y (Set Dance status) C2/1785: A9 FF LDA #$FF C2/1787: 85 B7 STA $B7 (default animation to not affecting background) C2/1789: B9 E1 32 LDA $32E1,Y (Which dance is selected for this character) C2/178C: 10 06 BPL $1794 (branch if already defined) C2/178E: AD 6F 3A LDA $3A6F (if not, read a "global" dance variable set by last character to choose Dance) C2/1791: 99 E1 32 STA $32E1,Y (and save it as this character's dance) C2/1794: AE E2 11 LDX $11E2 C2/1797: DF 5B 8E ED CMP $ED8E5B,X (Check if current background is associated with this dance) C2/179B: F0 A4 BEQ $1741 (Branch if it is) C2/179D: 20 53 4B JSR $4B53 (random, 0 or 1 in Carry) C2/17A0: 90 0D BCC $17AF (50% chance of branch and stumble) C2/17A2: AA TAX C2/17A3: BF AB F9 D1 LDA $D1F9AB,X (get default background for this Dance) C2/17A7: 85 B7 STA $B7 (set it in animation) C2/17A9: 8D E2 11 STA $11E2 (and change current background to it) C2/17AC: 4C 41 17 JMP $1741 (BRA $1741?) Stumble when trying to dance C2/17AF: B9 F8 3E LDA $3EF8,Y C2/17B2: 29 FE AND #$FE C2/17B4: 99 F8 3E STA $3EF8,Y (Clear Dance status) C2/17B7: BB TYX C2/17B8: A9 06 LDA #$06 C2/17BA: 8D 01 34 STA $3401 (Set to display stumble message) C2/17BD: A9 20 LDA #$20 C2/17BF: 85 B5 STA $B5 (set command for animation purposes to Stumble?) C2/17C1: 20 8D 29 JSR $298D (Load placeholder command data, and clear special effect, magic power, etc.) C2/17C4: 4C 67 31 JMP $3167 (Entity executes one largely unblockable hit on self) (Attack Battle Power = sum of battle power of Umaro's hands. initialize various other stuff.) C2/17C7: 20 8A 29 JSR $298A (Load command data, and clear special effect, magic power, etc.) C2/17CA: 18 CLC C2/17CB: BD 68 3B LDA $3B68,X (Battle Power for 1st hand) C2/17CE: 7D 69 3B ADC $3B69,X (add Battle Power for 2nd hand) C2/17D1: 90 02 BCC $17D5 C2/17D3: A9 FF LDA #$FF (if sum overflowed, treat combined Battle Power as 255) C2/17D5: 8D A6 11 STA $11A6 (Battle Power or Spell Power) C2/17D8: BD 18 3B LDA $3B18,X (attacker Level) C2/17DB: 8D AF 11 STA $11AF (attack's Level) C2/17DE: BD 2C 3B LDA $3B2C,X (attacker Vigor * 2) C2/17E1: 8D AE 11 STA $11AE (attack's Vigor * 2 or Magic Power) C2/17E4: 60 RTS Possess C2/17E5: BB TYX C2/17E6: 20 C1 19 JSR $19C1 (Load data for command held in $B5, and data of "Battle" spell) C2/17E9: A9 20 LDA #$20 C2/17EB: 0C A4 11 TSB $11A4 (Set can't be dodged) C2/17EE: A9 A0 LDA #$A0 C2/17F0: 8D A9 11 STA $11A9 (Stores Possess in special effect) C2/17F3: 4C 7B 31 JMP $317B (entity executes one hit) Jump C2/17F6: BB TYX C2/17F7: 20 C1 19 JSR $19C1 (Load data for command held in $B5, and data of "Battle" spell) C2/17FA: BD 69 3B LDA $3B69,X (Battle Power - left hand) C2/17FD: F0 09 BEQ $1808 (if no battle power, call subfunction with carry unset to indicate right hand) C2/17FF: 38 SEC (set carry to indicate left hand) C2/1800: BD 68 3B LDA $3B68,X (Battle Power - right hand) C2/1803: F0 03 BEQ $1808 (if no bat pwr, call subfunction with carry set) C2/1805: 20 53 4B JSR $4B53 (0 or 1 RNG - if both hands have weapon, carry flag will select hand used) C2/1808: 20 9F 29 JSR $299F (Load weapon data into attack data. Plus Sniper Sight, Offering and more.) C2/180B: A9 20 LDA #$20 C2/180D: 8D A4 11 STA $11A4 (Set can't be dodged only) C2/1810: 04 B3 TSB $B3 (Set ignore attacker row) C2/1812: E6 BD INC $BD (Increment damage. since $BD is zeroed right before this in function C2/13D3, it should be 1 now.) C2/1814: BD A8 3C LDA $3CA8,X (Weapon in right hand) C2/1817: 20 12 15 JSR $1512 (Set $BD, turn-wide damage incrementor, to 2 if spear) C2/181A: BD A9 3C LDA $3CA9,X (Weapon in left hand) C2/181D: 20 12 15 JSR $1512 (Set $BD, turn-wide damage incrementor, to 2 if spear) C2/1820: BD 44 3C LDA $3C44,X C2/1823: 10 17 BPL $183C (Branch if not jump continously [Dragon Horn]) C2/1825: CE 8E 3A DEC $3A8E (make a variable FFh to indicate the attack is a continuous jump) C2/1828: 20 5A 4B JSR $4B5A (random: 0 to 255) C2/182B: EE 70 3A INC $3A70 (Add 1 attack) C2/182E: C9 40 CMP #$40 C2/1830: B0 0A BCS $183C (75% chance branch) C2/1832: EE 70 3A INC $3A70 (Add 1 attack) C2/1835: C9 10 CMP #$10 C2/1837: B0 03 BCS $183C (75% chance branch - so there's a 1/16 overall chance of 4 attacks) C2/1839: EE 70 3A INC $3A70 (Add 1 attack) C2/183C: BD F9 3E LDA $3EF9,X C2/183F: 29 DF AND #$DF C2/1841: 9D F9 3E STA $3EF9,X (Clear Hide status) C2/1844: 4C 7B 31 JMP $317B (entity executes one hit (loops for multiple-strike attack)) Swdtech C2/1847: BB TYX C2/1848: A5 B6 LDA $B6 (Battle animation) C2/184A: 48 PHA C2/184B: 38 SEC C2/184C: E9 55 SBC #$55 C2/184E: 85 B6 STA $B6 (save unique index of the SwdTech. 0 = Dispatch, 1 = Retort, etc.) C2/1850: 68 PLA C2/1851: 20 C1 19 JSR $19C1 (Load data for command and attack/sub-command, held in $B5 and A) C2/1854: 20 51 29 JSR $2951 (Load Magic Power / Vigor and Level) C2/1857: A5 B6 LDA $B6 C2/1859: C9 01 CMP #$01 C2/185B: D0 20 BNE $187D (branch if not Retort) C2/185D: BD 4C 3E LDA $3E4C,X C2/1860: 49 01 EOR #$01 C2/1862: 9D 4C 3E STA $3E4C,X (Toggle Retort condition) C2/1865: 4A LSR C2/1866: 90 11 BCC $1879 (branch if we're doing the actual retaliation as opposed to the preparation) C2/1868: 66 B6 ROR $B6 ($B6 is now 80h) C2/186A: 9C A6 11 STZ $11A6 (Sets power to 0) C2/186D: A9 20 LDA #$20 C2/186F: 0C A4 11 TSB $11A4 (Set can't be dodged) C2/1872: A9 01 LDA #$01 C2/1874: 1C A2 11 TRB $11A2 (Sets to magical damage) C2/1877: 80 09 BRA $1882 C2/1879: A9 10 LDA #$10 C2/187B: 14 B0 TRB $B0 (??? See functions C2/13D3 and C2/57C2 for usual purpose; dunno whether it does anything here.) C2/187D: A9 04 LDA #$04 C2/187F: 8D 12 34 STA $3412 (will display a SwdTech name atop screen) C2/1882: 4C 7B 31 JMP $317B (entity executes one hit (loops for multiple-strike attack)) Tools C2/1885: A5 B6 LDA $B6 C2/1887: E9 A2 SBC #$A2 (carry was clear, so subtract 163) C2/1889: 85 B6 STA $B6 (save unique Tool index. 0 = NoiseBlaster, 1 = Bio Blaster, etc.) C2/188B: 80 11 BRA $189E Throw C2/188D: A9 02 LDA #$02 C2/188F: 85 BD STA $BD (Increment damage by 100%) C2/1891: A9 10 LDA #$10 C2/1893: 14 B3 TRB $B3 (Clear Ignore Damage Increment on Ignore Defense) C2/1895: 80 07 BRA $189E Item C2/1897: 9C 14 34 STZ $3414 (Set ignore damage modification) C2/189A: A9 80 LDA #$80 C2/189C: 14 B3 TRB $B3 (Set Ignore Clear) C2/189E: BB TYX C2/189F: A9 01 LDA #$01 C2/18A1: 8D 12 34 STA $3412 (will display an Item name atop screen) C2/18A4: AD 7D 3A LDA $3A7D C2/18A7: 20 C1 19 JSR $19C1 (Load data for command and attack/sub-command, held in $B5 and A) C2/18AA: A9 10 LDA #$10 C2/18AC: 14 B1 TRB $B1 (clear "don't deplete from Item inventory" flag) C2/18AE: D0 05 BNE $18B5 (branch if it was set) C2/18B0: A9 FF LDA #$FF C2/18B2: 9D F4 32 STA $32F4,X (null item index to add to inventory. this means the item will stay deducted from your inventory.) C2/18B5: BD 18 30 LDA $3018,X C2/18B8: 0C 8C 3A TSB $3A8C (flag character to have any applicable item in $32F4,X added back to inventory when turn is over.) C2/18BB: A5 B5 LDA $B5 (Command #) C2/18BD: 90 24 BCC $18E3 (Carry is set (by the $19C1 call) for: - Skeans/Tools that don't use a spell - normal Item usage which means it isn't set for: - Equipment Magic or Skeans/Tools that do use a spell ) C2/18BF: C9 02 CMP #$02 (Carry will now be set if Command >=2, so for Throw and Tools, but not plain Item) C2/18C1: AD 11 34 LDA $3411 (get item #) C2/18C4: 20 37 2A JSR $2A37 (item usage setup) C2/18C7: AD AA 11 LDA $11AA C2/18CA: 89 C2 BIT #$C2 (Check if Dead, Petrify or Zombie attack) C2/18CC: D0 12 BNE $18E0 (if so, branch) C2/18CE: C2 20 REP #$20 (Set 16-bit Accumulator) C2/18D0: AD 74 3A LDA $3A74 (alive and present characters [non-enemy] and monsters) C2/18D3: 0D 42 3A ORA $3A42 (list of present and living characters acting as enemies?) C2/18D6: 25 B8 AND $B8 (clear targets that are in none of above categories) C2/18D8: 85 B8 STA $B8 C2/18DA: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/18DC: A9 04 LDA #$04 C2/18DE: 14 B3 TRB $B3 (prevents "Retarget if target invalid" at C2/31C5) C2/18E0: 4C 7B 31 JMP $317B (entity executes one hit) C2/18E3: C9 01 CMP #$01 (is command Item?) C2/18E5: D0 07 BNE $18EE C2/18E7: E6 B5 INC $B5 (if so, bump it up to Magic, as we've reached this point thanks to Equipment Magic) C2/18E9: AD 10 34 LDA $3410 (get spell #) C2/18EC: 85 B6 STA $B6 C2/18EE: 64 BD STZ $BD (if we reached here for Throw, it's for a Skean casting magic, so zero out the Damage Increment given by the Throw command.) C2/18F0: 20 51 29 JSR $2951 (Load Magic Power / Vigor and Level) C2/18F3: A9 02 LDA #$02 C2/18F5: 0C A3 11 TSB $11A3 (Set Not reflectable) C2/18F8: A9 20 LDA #$20 C2/18FA: 0C A4 11 TSB $11A4 (Set unblockable) C2/18FD: A9 08 LDA #$08 C2/18FF: 14 BA TRB $BA (Clear "can target dead/hidden targets") C2/1901: 9C A5 11 STZ $11A5 (Set MP cost to 0) C2/1904: 4C 7B 31 JMP $317B (entity executes one hit) GP Rain C2/1907: BB TYX C2/1908: 20 8A 29 JSR $298A (Load command data, and clear special effect, magic power, etc.) C2/190B: EE A6 11 INC $11A6 (Set spell power to 1) C2/190E: A9 60 LDA #$60 C2/1910: 0C A2 11 TSB $11A2 (Set ignore defense, no split damage) C2/1913: 9C 14 34 STZ $3414 (Skip damage modification) C2/1916: E0 08 CPX #$08 C2/1918: 90 05 BCC $191F (branch if character) C2/191A: A9 05 LDA #$05 C2/191C: 8D 12 34 STA $3412 (will display "GP Rain" atop screen. differentiated from "Health" and "Shock" by $B5 holding command 18h in this case.) C2/191F: A9 A2 LDA #$A2 C2/1921: 8D A9 11 STA $11A9 (Store GP Rain in special effect) C2/1924: 4C 7B 31 JMP $317B (entity executes one hit) (Revert) C2/1927: B9 F9 3E LDA $3EF9,Y C2/192A: 89 08 BIT #$08 C2/192C: D0 09 BNE $1937 (Branch if Morphed) C2/192E: 98 TYA C2/192F: 4A LSR C2/1930: EB XBA C2/1931: A9 0E LDA #$0E C2/1933: 4C BF 62 JMP $62BF (Morph) C2/1936: 38 SEC (tell upcoming shared code it's Morph, not Revert) C2/1937: 08 PHP C2/1938: BB TYX C2/1939: 20 8A 29 JSR $298A (Load command data, and clear special effect, magic power, etc.) C2/193C: 28 PLP C2/193D: A9 08 LDA #$08 C2/193F: 8D AD 11 STA $11AD (mark attack to affect Morph status) C2/1942: 90 01 BCC $1945 (branch if we're running Revert) C2/1944: 7B TDC C2/1945: 4A LSR C2/1946: 0C A4 11 TSB $11A4 (if Carry was clear, turn on Lift Status property. otherwise, the attack will just default to setting the status.) C2/1949: 4C 67 31 JMP $3167 (Entity executes one largely unblockable hit on self) Row C2/194C: BB TYX C2/194D: BD A1 3A LDA $3AA1,X C2/1950: 49 20 EOR #$20 C2/1952: 9D A1 3A STA $3AA1,X (Toggle Row) C2/1955: 20 8A 29 JSR $298A (Load command data, and clear special effect, magic power, etc.) C2/1958: 4C 67 31 JMP $3167 (Entity executes one largely unblockable hit on self) Runic C2/195B: BB TYX C2/195C: BD 4C 3E LDA $3E4C,X C2/195F: 09 04 ORA #$04 C2/1961: 9D 4C 3E STA $3E4C,X (Set runic) C2/1964: 20 8A 29 JSR $298A (Load command data, and clear special effect, magic power, etc.) C2/1967: 4C 67 31 JMP $3167 (Entity executes one largely unblockable hit on self) Defend C2/196A: BB TYX C2/196B: A9 02 LDA #$02 C2/196D: 20 AB 5B JSR $5BAB (set Defending flag) C2/1970: 20 8A 29 JSR $298A (Load command data, and clear special effect, magic power, etc.) C2/1973: 4C 67 31 JMP $3167 (Entity executes one largely unblockable hit on self) Control C2/1976: B9 F9 3E LDA $3EF9,Y C2/1979: 89 10 BIT #$10 C2/197B: F0 0A BEQ $1987 (Branch if no spell/chant status) C2/197D: 20 2E 19 JSR $192E C2/1980: B9 B8 32 LDA $32B8,Y (Get whom this entity controls) C2/1983: A8 TAY C2/1984: 4C 54 15 JMP $1554 (Commands code) C2/1987: BB TYX C2/1988: 20 8A 29 JSR $298A (Load command data, and clear special effect, magic power, etc.) C2/198B: A9 A6 LDA #$A6 C2/198D: 8D A9 11 STA $11A9 (Store control in special effect) C2/1990: A9 01 LDA #$01 C2/1992: 1C A2 11 TRB $11A2 (Sets to magical damage) C2/1995: A9 20 LDA #$20 C2/1997: 0C A4 11 TSB $11A4 (Sets unblockable) C2/199A: 4C 7B 31 JMP $317B (entity executes one hit) Leap C2/199D: BB TYX C2/199E: 20 8A 29 JSR $298A (Load command data, and clear special effect, magic power, etc.) C2/19A1: A9 A8 LDA #$A8 C2/19A3: 8D A9 11 STA $11A9 (Store Leap in special effect) C2/19A6: A9 01 LDA #$01 C2/19A8: 1C A2 11 TRB $11A2 (Sets to magical damage) C2/19AB: A9 40 LDA #$40 C2/19AD: 85 BB STA $BB (Sets to Cursor start on enemy only) C2/19AF: 4C 7B 31 JMP $317B (entity executes one hit) (Enemy Roulette) C2/19B2: A9 0C LDA #$0C C2/19B4: 85 B5 STA $B5 (Sets command to Lore) C2/19B6: 20 5F 17 JSR $175F C2/19B9: A9 21 LDA #$21 C2/19BB: EB XBA C2/19BC: A9 06 LDA #$06 C2/19BE: 4C BF 62 JMP $62BF (Load data for command and attack/sub-command, passed in $B5 and A, respectively) C2/19C1: EB XBA C2/19C2: A5 B5 LDA $B5 C2/19C4: 4C D3 26 JMP $26D3 (Load command and attack/sub-command data, takes parameters in A.bottom and A.top) Code pointers for commands; special commands start at C2/1A03 C2/19C7: C8 15 (Fight) C2/19C9: 97 18 (Item) C2/19CB: 41 17 (Magic) C2/19CD: 36 19 (Morph) C2/19CF: 27 19 (Revert) C2/19D1: 91 15 (Steal) (05) C2/19D3: 10 16 (Capture) C2/19D5: 47 18 (Swdtech) C2/19D7: 8D 18 (Throw) C2/19D9: 85 18 (Tools) C2/19DB: 9D 15 (Blitz) (0A) C2/19DD: 5B 19 (Runic) C2/19DF: 5F 17 (Lore) C2/19E1: 1F 15 (Sketch) C2/19E3: 76 19 (Control) C2/19E5: 26 17 (Slot) C2/19E7: 60 15 (Rage) (10) C2/19E9: 9D 19 (Leap) C2/19EB: 1E 15 (Mimic) C2/19ED: 7D 17 (Dance) C2/19EF: 4C 19 (Row) C2/19F1: 6A 19 (Def.) (15) C2/19F3: F6 17 (Jump) C2/19F5: 41 17 (X-Magic) C2/19F7: 07 19 (GP Rain) C2/19F9: 63 17 (Summon) C2/19FB: 1E 17 (Health) (1A) C2/19FD: 1A 17 (Shock) C2/19FF: E5 17 (Possess) C2/1A01: 5F 17 (Magitek) C2/1A03: B2 19 (1E) (Enemy Roulette) C2/1A05: 1E 15 (1F) (Jumps to RTS) C2/1A07: 72 50 (20) (#$F2 Command script) C2/1A09: D1 50 (21) (#$F3 Command script) C2/1A0B: 0B 50 (22) (Poison, Regen, and Seizure/Phantasm damage or healing) C2/1A0D: 57 4F (23) (#$F7 Command script) C2/1A0F: 97 4F (24) (#$F5 Command script) C2/1A11: CD 50 (25) C2/1A13: 5F 4F (26) (Doom cast when Condemned countdown reaches 0; Safe, Shell, or Reflect* cast when character enters Near Fatal (* no items actually do this, but it's supported); or revival due to Life 3.) C2/1A15: DD 50 (27) (Display Scan info) C2/1A17: 1E 15 (28) (Jumps to RTS) C2/1A19: 61 51 (29) (Remove Stop, Reflect, Freeze, or Sleep when time is up) C2/1A1B: DE 20 (2A) (Run) C2/1A1D: 2D 64 (2B) (#$FA Command script) C2/1A1F: A8 51 (2C) C2/1A21: B2 51 (2D) (Drain from being seized) C2/1A23: FA 1D (2E) (#$F8 Command script) C2/1A25: 1A 1E (2F) (#$F9 Command script) C2/1A27: 5E 1E (30) (#$FB Command script) C2/1A29: 1E 15 (31) (Jumps to RTS) C2/1A2B: 1E 15 (32) (Jumps to RTS) C2/1A2D: 1E 15 (33) (Jumps to RTS) (Process a monster's main or counterattack script, backing up targets first) C2/1A2F: DA PHX C2/1A30: 08 PHP C2/1A31: A5 B8 LDA $B8 (get targets) C2/1A33: 85 FC STA $FC (save as working copy) C2/1A35: 85 FE STA $FE (and as backup copy) C2/1A37: E2 20 SEP #$20 C2/1A39: 64 F5 STZ $F5 (start at sub-block index 0 in this main script or counterattack script) C2/1A3B: 86 F6 STX $F6 (save target # of entity running script) C2/1A3D: 20 AF 1A JSR $1AAF (go parse the script and do commands) C2/1A40: 28 PLP C2/1A41: FA PLX C2/1A42: 60 RTS Read command script, up through an FEh or FFh command, advancing position in X C2/1A43: 7B TDC C2/1A44: BF 00 87 CF LDA $CF8700,X (read first byte of command) C2/1A48: E8 INX C2/1A49: C9 FE CMP #$FE C2/1A4B: B0 F5 BCS $1A42 (Exit if #$FE or #$FF - Done with commands) C2/1A4D: E9 EF SBC #$EF (subtract F0h) C2/1A4F: 90 F3 BCC $1A44 (Branch if not a control command) C2/1A51: DA PHX C2/1A52: AA TAX C2/1A53: BF AF 1D C2 LDA $C21DAF,X (# of bytes in the control command) C2/1A57: FA PLX C2/1A58: CA DEX C2/1A59: E8 INX C2/1A5A: 3A DEC C2/1A5B: D0 FC BNE $1A59 (loop through the whole command to reach the next one) C2/1A5D: 80 E5 BRA $1A44 (go read the first byte of next command) Read 4 bytes from command script (without advancing script position) C2/1A5F: 08 PHP C2/1A60: C2 20 REP #$20 C2/1A62: A6 F0 LDX $F0 (get current script position) C2/1A64: BF 02 87 CF LDA $CF8702,X C2/1A68: 8D 2E 3A STA $3A2E C2/1A6B: BF 00 87 CF LDA $CF8700,X (Command scripts) C2/1A6F: 8D 2C 3A STA $3A2C C2/1A72: 28 PLP C2/1A73: 60 RTS Command Script #$FD C2/1A74: C2 20 REP #$20 (Set 16-bit Accumulator) C2/1A76: A5 F0 LDA $F0 C2/1A78: 85 F2 STA $F2 (save current script address as left-off-at address) C2/1A7A: 60 RTS Command Script #$FE and #$FF C2/1A7B: A9 FF LDA #$FF C2/1A7D: 85 F5 STA $F5 (null sub-block index, so caller of $1A2F doesn't think we left off anywhere) C2/1A7F: 60 RTS (Pick which attack of three to use; FEh will do nothing and exit caller) C2/1A80: A9 03 LDA #$03 C2/1A82: 20 65 4B JSR $4B65 (random #: 0 to 2) C2/1A85: AA TAX C2/1A86: BD 2D 3A LDA $3A2D,X (Byte 1 to 3 of 4-byte command) C2/1A89: C9 FE CMP #$FE C2/1A8B: D0 B5 BNE $1A42 (Exit if not FEh) C2/1A8D: 68 PLA C2/1A8E: 68 PLA (remove caller address from stack) C2/1A8F: 80 23 BRA $1AB4 (resume parsing script) Command Script #$FC (Also handles bulk of the script-parsing logic, with additional entry points at C2/1AAF and C2/1AB4.) C2/1A91: AD 2D 3A LDA $3A2D (Byte 1 of command) C2/1A94: 0A ASL C2/1A95: AA TAX C2/1A96: FC 55 1D JSR ($1D55,X) (Do an FC subcommand, which is an If Statement of various conditions) C2/1A99: B0 19 BCS $1AB4 (branch if it passed as True) C2/1A9B: C2 30 REP #$30 (Set 16-bit A, X, & Y) C2/1A9D: A5 FE LDA $FE C2/1A9F: 85 FC STA $FC (copy backup targets to working targets) C2/1AA1: E2 20 SEP #$20 (Set 8-bit A) C2/1AA3: A6 F0 LDX $F0 (get script position to start reading from) C2/1AA5: 20 43 1A JSR $1A43 (Read command script, up through an FEh or FFh command, advancing position in X) C2/1AA8: 1A INC C2/1AA9: F0 D0 BEQ $1A7B (branch if FFh command was last thing read) C2/1AAB: 86 F0 STX $F0 (save script position of next command) C2/1AAD: E6 F5 INC $F5 (increment current sub-block index) C2/1AAF: AD 98 3A LDA $3A98 C2/1AB2: 85 F8 STA $F8 (save whether caller [C2/02DC or C2/4BF4] is preventing most types of script commands: 00h = no, FFh = yes. a couple commands can override this.) C2/1AB4: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/1AB6: C2 10 REP #$10 (Set 16-bit X & Y) C2/1AB8: 20 5F 1A JSR $1A5F (Read 4 bytes from command script, w/o advance) C2/1ABB: C9 FC CMP #$FC (compare the first one to FCh) C2/1ABD: B0 11 BCS $1AD0 (Branch if command is FCh or higher) C2/1ABF: A5 F5 LDA $F5 (current sub-block index, where a sub-block is a portion of script ending with an FEh or FFh.) C2/1AC1: C5 F4 CMP $F4 (compare to the sub-block we left off at due to an FD command. there are separate "bookmarks" for the main and counterattack scripts.) C2/1AC3: D0 0B BNE $1AD0 (branch if they don't match) C2/1AC5: A9 FF LDA #$FF C2/1AC7: 85 F4 STA $F4 (null left-off-at sub-block index, as we're already resuming in the one we sought) C2/1AC9: A6 F2 LDX $F2 (get script position after last executed FDh command. there are separate "bookmarks" for the main and counterattack scripts.) C2/1ACB: 86 F0 STX $F0 (make that our current script position) C2/1ACD: 20 5F 1A JSR $1A5F (Read 4 bytes from command script, w/o advance) C2/1AD0: 7B TDC (A = 0) C2/1AD1: 38 SEC C2/1AD2: 9B TXY (Y = script position) C2/1AD3: AD 2C 3A LDA $3A2C (Command to execute) C2/1AD6: E9 F0 SBC #$F0 C2/1AD8: B0 02 BCS $1ADC (Branch if control command) C2/1ADA: A9 0F LDA #$0F (if not control command, it'll be 1 byte long) C2/1ADC: AA TAX C2/1ADD: BF AF 1D C2 LDA $C21DAF,X (# of bytes in the command) C2/1AE1: AA TAX C2/1AE2: C8 INY C2/1AE3: CA DEX C2/1AE4: D0 FC BNE $1AE2 (loop, advancing Y by size of command) C2/1AE6: 84 F0 STY $F0 (save updated script position) C2/1AE8: E2 10 SEP #$10 (Set 8-bit X, & Y) C2/1AEA: A5 F8 LDA $F8 C2/1AEC: F0 07 BEQ $1AF5 (if caller didn't disable most counter types, or if we executed a FC 1C or a successful FC 12 in this sub-block on this script "visit", branch) C2/1AEE: AD 2C 3A LDA $3A2C (Command to execute) C2/1AF1: C9 FC CMP #$FC C2/1AF3: 90 A6 BCC $1A9B (branch if command is FBh or lower) C2/1AF5: A4 F6 LDY $F6 (get target # of entity running script) C2/1AF7: AD 2C 3A LDA $3A2C (Command to execute) C2/1AFA: C9 F0 CMP #$F0 C2/1AFC: 90 27 BCC $1B25 (Branch if not control command; it's just an attack/spell) C2/1AFE: 29 0F AND #$0F (get command # - F0h) C2/1B00: 0A ASL C2/1B01: AA TAX C2/1B02: 7C 8F 1D JMP ($1D8F,X) (execute the command) Command Script #$F6 C2/1B05: A9 01 LDA #$01 C2/1B07: EB XBA C2/1B08: AD 2D 3A LDA $3A2D (Item or Throw) C2/1B0B: F0 03 BEQ $1B10 (Branch if item) C2/1B0D: A9 08 LDA #$08 C2/1B0F: EB XBA C2/1B10: AD 2E 3A LDA $3A2E (Item to use or throw) C2/1B13: 8D 2D 3A STA $3A2D C2/1B16: 20 80 1A JSR $1A80 (Pick which attack of three to use; FEh will do nothing and exit this function) C2/1B19: EB XBA C2/1B1A: 80 0C BRA $1B28 Command Script #$F4 C2/1B1C: 7B TDC C2/1B1D: 20 80 1A JSR $1A80 (Pick which attack of three to use; FEh will do nothing and exit this function) C2/1B20: 80 06 BRA $1B28 Command Script #$F0 C2/1B22: 20 80 1A JSR $1A80 (Pick which attack of three to use; FEh will do nothing and exit this function) C2/1B25: 20 BF 1D JSR $1DBF (choose a command based on attack #) C2/1B28: BB TYX C2/1B29: C2 20 REP #$20 C2/1B2B: 48 PHA C2/1B2C: A5 FC LDA $FC C2/1B2E: 85 B8 STA $B8 C2/1B30: BD E4 3E LDA $3EE4,X C2/1B33: 89 00 20 BIT #$2000 C2/1B36: F0 02 BEQ $1B3A (Branch if not Muddled) C2/1B38: 64 B8 STZ $B8 (clear targets, so they can be chosen randomly) C2/1B3A: 68 PLA C2/1B3B: 20 B9 03 JSR $03B9 (Swap Roulette to Enemy Roulette) C2/1B3E: 20 E4 03 JSR $03E4 (Determine command's "time to wait", recalculate targets if there aren't any) C2/1B41: 20 AD 4E JSR $4EAD (queue command and attack. script section we're running [indicated by Bit 0 of $B1] determines which of entity's queues used.) C2/1B44: 4C B4 1A JMP $1AB4 (resume parsing script) Command Script #$F1 C2/1B47: AD 2D 3A LDA $3A2D (Script byte 1) C2/1B4A: 18 CLC C2/1B4B: 20 25 1F JSR $1F25 C2/1B4E: C2 20 REP #$20 C2/1B50: A5 B8 LDA $B8 C2/1B52: 85 FC STA $FC C2/1B54: 4C B4 1A JMP $1AB4 (resume parsing script) Command Script #$F5 C2/1B57: AD 2F 3A LDA $3A2F C2/1B5A: D0 06 BNE $1B62 (branch if command already has targets) C2/1B5C: B9 19 30 LDA $3019,Y C2/1B5F: 8D 2F 3A STA $3A2F (if it doesn't, save the monster who issued command as the target) C2/1B62: A9 24 LDA #$24 C2/1B64: 80 12 BRA $1B78 Command Script #$F3 C2/1B66: A9 21 LDA #$21 C2/1B68: 80 0E BRA $1B78 Command Script #$FB C2/1B6A: A9 30 LDA #$30 C2/1B6C: 80 0A BRA $1B78 Command Script #$F2 C2/1B6E: A9 20 LDA #$20 C2/1B70: 80 06 BRA $1B78 Command Script #$F8 C2/1B72: A9 2E LDA #$2E C2/1B74: 80 02 BRA $1B78 Command Script #$F9 C2/1B76: A9 2F LDA #$2F C2/1B78: EB XBA C2/1B79: AD 2D 3A LDA $3A2D C2/1B7C: EB XBA C2/1B7D: C2 20 REP #$20 (Set 16-bit Accumulator) C2/1B7F: 8D 7A 3A STA $3A7A C2/1B82: AD 2E 3A LDA $3A2E C2/1B85: 85 B8 STA $B8 C2/1B87: BB TYX C2/1B88: 20 AD 4E JSR $4EAD C2/1B8B: 4C B4 1A JMP $1AB4 (resume parsing script) Command Script #$F7 C2/1B8E: BB TYX C2/1B8F: A9 23 LDA #$23 C2/1B91: 8D 7A 3A STA $3A7A (command is Battle Event) C2/1B94: AD 2D 3A LDA $3A2D (script byte 1) C2/1B97: 8D 7B 3A STA $3A7B (attack is index of Battle Event) C2/1B9A: 20 AD 4E JSR $4EAD (queue it. script section we're running [indicated by Bit 0 of $B1] determines which of entity's queues used.) C2/1B9D: 4C B4 1A JMP $1AB4 (resume parsing script) Command Script #$FA C2/1BA0: BB TYX C2/1BA1: AD 2D 3A LDA $3A2D C2/1BA4: EB XBA C2/1BA5: A9 2B LDA #$2B C2/1BA7: C2 20 REP #$20 C2/1BA9: 8D 7A 3A STA $3A7A C2/1BAC: AD 2E 3A LDA $3A2E C2/1BAF: 85 B8 STA $B8 C2/1BB1: 20 AD 4E JSR $4EAD C2/1BB4: 4C B4 1A JMP $1AB4 (resume parsing script) Command 06 for FC C2/1BB7: 20 34 1D JSR $1D34 (Set who to check for using command 17) C2/1BBA: 90 0B BCC $1BC7 (Exit if no counter for command 17) C2/1BBC: 7B TDC C2/1BBD: AD 2F 3A LDA $3A2F C2/1BC0: EB XBA C2/1BC1: C2 20 REP #$20 C2/1BC3: 4A LSR C2/1BC4: D9 F4 3B CMP $3BF4,Y (Compare HP vs. second byte * 128) C2/1BC7: 60 RTS Command 07 for FC C2/1BC8: 20 34 1D JSR $1D34 (Do command 17 for FC) C2/1BCB: 90 09 BCC $1BD6 (Exit if no counter for command 17) C2/1BCD: 7B TDC C2/1BCE: AD 2F 3A LDA $3A2F (Second byte for FC) C2/1BD1: C2 20 REP #$20 C2/1BD3: D9 08 3C CMP $3C08,Y (Compare MP vs. second byte) C2/1BD6: 60 RTS Command 08 for FC C2/1BD7: 20 34 1D JSR $1D34 (Do command 17 for FC) C2/1BDA: 90 49 BCC $1C25 (Exit if no counter for command 17) C2/1BDC: AD 2F 3A LDA $3A2F (Second byte for FC) C2/1BDF: C9 10 CMP #$10 C2/1BE1: 90 0B BCC $1BEE (Branch if less than 10) C2/1BE3: C2 20 REP #$20 C2/1BE5: AD 74 3A LDA $3A74 (list of present and living characters and enemies) C2/1BE8: 25 FC AND $FC C2/1BEA: 85 FC STA $FC C2/1BEC: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/1BEE: A9 10 LDA #$10 C2/1BF0: 1C 2F 3A TRB $3A2F (Second byte for FC) C2/1BF3: C2 20 REP #$20 (Set 16-bit Accumulator) C2/1BF5: D0 05 BNE $1BFC (If FC over 10) C2/1BF7: A9 E4 3E LDA #$3EE4 C2/1BFA: 80 03 BRA $1BFF C2/1BFC: A9 F8 3E LDA #$3EF8 C2/1BFF: 85 FA STA $FA C2/1C01: AE 2F 3A LDX $3A2F (Second byte for FC) C2/1C04: 20 2D 1D JSR $1D2D (Set bit #X in A) C2/1C07: 85 EE STA $EE C2/1C09: A0 12 LDY #$12 C2/1C0B: B1 FA LDA ($FA),Y C2/1C0D: 24 EE BIT $EE C2/1C0F: D0 05 BNE $1C16 C2/1C11: B9 18 30 LDA $3018,Y C2/1C14: 14 FC TRB $FC C2/1C16: 88 DEY C2/1C17: 88 DEY C2/1C18: 10 F1 BPL $1C0B C2/1C1A: 18 CLC C2/1C1B: A5 FC LDA $FC C2/1C1D: F0 06 BEQ $1C25 C2/1C1F: 20 2A 52 JSR $522A C2/1C22: 85 FC STA $FC C2/1C24: 38 SEC C2/1C25: 60 RTS Command 09 for FC C2/1C26: 20 D7 1B JSR $1BD7 (Do command 08 for FC) C2/1C29: 4C 26 1D JMP $1D26 Command 1A for FC C2/1C2C: 20 34 1D JSR $1D34 (Do command 17 for FC) C2/1C2F: 90 09 BCC $1C3A C2/1C31: B9 E0 3B LDA $3BE0,Y C2/1C34: 2C 2F 3A BIT $3A2F C2/1C37: D0 01 BNE $1C3A C2/1C39: 18 CLC C2/1C3A: 60 RTS Command 03 for FC - Counter Item usage C2/1C3B: 98 TYA C2/1C3C: 69 13 ADC #$13 C2/1C3E: A8 TAY C2/1C3F: C8 INY (Command 02 for FC - counter Spell usage - jumps here) C2/1C40: BB TYX (Command 01 for FC - counter a command - jumps here) C2/1C41: BC 90 32 LDY $3290,X (get $3290 or $3291 or $32A4, depending on where we entered function. this is the attacker index [or in the case of reflection, the reflector] for the the command/spell/item usage.) C2/1C44: 30 0D BMI $1C53 C2/1C46: BD 48 3D LDA $3D48,X (get $3D48 or $3D49 or $3D5C, depending on where we entered function. attack's Command/Spell/Item ID.) C2/1C49: CD 2E 3A CMP $3A2E (does it match first parameter in script?) C2/1C4C: F0 07 BEQ $1C55 (branch if so) C2/1C4E: CD 2F 3A CMP $3A2F (does it match second parameter in script?) C2/1C51: F0 02 BEQ $1C55 (branch if so) C2/1C53: 18 CLC C2/1C54: 60 RTS C2/1C55: C2 20 REP #$20 C2/1C57: B9 18 30 LDA $3018,Y (get target bit of attacker index) C2/1C5A: 85 FC STA $FC C2/1C5C: 38 SEC C2/1C5D: 60 RTS Command 04 for FC C2/1C5E: 98 TYA C2/1C5F: 69 15 ADC #$15 C2/1C61: AA TAX (could swap these 3 for "TYX" [and a needed "CLC"] and use higher offsets below. maybe this function was once intended to handle more commands?) C2/1C62: BC 90 32 LDY $3290,X (get attacker index. [or in the case of reflection, the reflector.] accessed as $32A5 in C2/35E3.) C2/1C65: 30 08 BMI $1C6F C2/1C67: BD 48 3D LDA $3D48,X (get attack's element(s). accessed as $3D5D in C2/35E3.) C2/1C6A: 2C 2E 3A BIT $3A2E (compare to script element(s) [1st byte for FC]) C2/1C6D: D0 E6 BNE $1C55 (branch if any matches) C2/1C6F: 60 RTS Command 05 for FC C2/1C70: BB TYX C2/1C71: BC 7C 32 LDY $327C,X (last attacker [original, not any reflector] to do damage to this target, not including the target itself) C2/1C74: 30 08 BMI $1C7E (branch if none) C2/1C76: C2 20 REP #$20 C2/1C78: B9 18 30 LDA $3018,Y C2/1C7B: 85 FC STA $FC C2/1C7D: 38 SEC C2/1C7E: 60 RTS Command 16 for FC C2/1C7F: C2 20 REP #$20 C2/1C81: AD 44 3A LDA $3A44 (get Global battle time counter) C2/1C84: 80 05 BRA $1C8B Command 0B for FC C2/1C86: C2 20 REP #$20 C2/1C88: B9 C0 3D LDA $3DC0,Y (get monster time counter) C2/1C8B: 4A LSR (divide timer by 2 before comparing to script value) C2/1C8C: CD 2E 3A CMP $3A2E C2/1C8F: 60 RTS Command 0D for FC C2/1C90: AE 2E 3A LDX $3A2E (First byte for FC) C2/1C93: 20 45 1E JSR $1E45 ($EE = variable #X) C2/1C96: A5 EE LDA $EE C2/1C98: CD 2F 3A CMP $3A2F C2/1C9B: 60 RTS Command 0C for FC C2/1C9C: 20 90 1C JSR $1C90 (Do command 0D for FC) C2/1C9F: 4C 26 1D JMP $1D26 Command 14 for FC C2/1CA2: AE 2F 3A LDX $3A2F (Second byte for FC) C2/1CA5: 20 2D 1D JSR $1D2D (Set bit #X in A) C2/1CA8: AE 2E 3A LDX $3A2E (First byte for FC) C2/1CAB: 20 45 1E JSR $1E45 ($EE = variable #X) C2/1CAE: 24 EE BIT $EE C2/1CB0: F0 01 BEQ $1CB3 C2/1CB2: 38 SEC C2/1CB3: 60 RTS Command 15 for FC C2/1CB4: 20 A2 1C JSR $1CA2 (Do command 14 for FC) C2/1CB7: 4C 26 1D JMP $1D26 Command 0F for FC C2/1CBA: 20 34 1D JSR $1D34 (Do command 17 for FC) C2/1CBD: 90 06 BCC $1CC5 C2/1CBF: B9 18 3B LDA $3B18,Y (Level) C2/1CC2: CD 2F 3A CMP $3A2F C2/1CC5: 60 RTS Command 0E for FC C2/1CC6: 20 BA 1C JSR $1CBA (Do command 0F for FC) C2/1CC9: 4C 26 1D JMP $1D26 Command 10 for FC C2/1CCC: A9 01 LDA #$01 C2/1CCE: CD CA 3E CMP $3ECA (Only counter if one type of monster active) (specifically, this variable is the number of unique enemy names still active in battle. it's capped at 4, since it's based on the enemy list on the bottom left of the screen in battle, but that limitation doesn't matter since we're only comparing it to #$01 here.) C2/1CD1: 60 RTS Command 19 for FC C2/1CD2: B9 19 30 LDA $3019,Y C2/1CD5: 2C 2E 3A BIT $3A2E C2/1CD8: F0 01 BEQ $1CDB C2/1CDA: 38 SEC C2/1CDB: 60 RTS Command 11 for FC C2/1CDC: 20 EE 1D JSR $1DEE (if first byte of FC command is 0, set it to current monster) C2/1CDF: AD 75 3A LDA $3A75 (list of present and living enemies) C2/1CE2: 80 0B BRA $1CEF Command 12 for FC C2/1CE4: 64 F8 STZ $F8 (tell caller not to prohibit any script commands; will be of use if this one passes.) C2/1CE6: 20 EE 1D JSR $1DEE (if first byte of FC command is 0, set it to current monster) C2/1CE9: AD 73 3A LDA $3A73 (bitfield of monsters in formation) C2/1CEC: 4D 75 3A EOR $3A75 (exclude present and living enemies) C2/1CEF: 2D 2E 3A AND $3A2E C2/1CF2: CD 2E 3A CMP $3A2E (does result include at least all targets marked in first FC byte?) C2/1CF5: 18 CLC (default to false) C2/1CF6: D0 01 BNE $1CF9 (exit if above answer is no) C2/1CF8: 38 SEC (return true) C2/1CF9: 60 RTS Command 13 for FC C2/1CFA: AD 2E 3A LDA $3A2E (First byte for FC) C2/1CFD: D0 07 BNE $1D06 (branch if it indicates we're testing enemy party) C2/1CFF: AD 76 3A LDA $3A76 (Number of present and living characters in party) C2/1D02: CD 2F 3A CMP $3A2F (Second byte for FC) C2/1D05: 60 RTS C2/1D06: AD 2F 3A LDA $3A2F (Second byte for FC) C2/1D09: CD 77 3A CMP $3A77 (Number of monsters left in combat) C2/1D0C: 60 RTS Command 18 for FC C2/1D0D: AD DF 1E LDA $1EDF C2/1D10: 89 08 BIT #$08 (is Gau enlisted and not Leapt?) C2/1D12: D0 01 BNE $1D15 (branch if so) C2/1D14: 38 SEC C2/1D15: 60 RTS Command 1B for FC C2/1D16: C2 20 REP #$20 C2/1D18: AD 2E 3A LDA $3A2E (First byte for FC) C2/1D1B: CD E0 11 CMP $11E0 (Battle formation) C2/1D1E: F0 01 BEQ $1D21 C2/1D20: 18 CLC C2/1D21: 60 RTS Command 1C for FC C2/1D22: 64 F8 STZ $F8 (tell caller not to prohibit any script commands) C2/1D24: 38 SEC (always return true) C2/1D25: 60 RTS (Toggle the Carry Flag. Will also zero Bit 7 of A for no good reason, but callers overwrite A afterwards anyway.) C2/1D26: E2 20 SEP #$20 C2/1D28: 2A ROL C2/1D29: 49 01 EOR #$01 C2/1D2B: 4A LSR (would change to ROR if we wanted A unchanged) C2/1D2C: 60 RTS Sets bit #X in A (C2/1E57 and this are identical) C2/1D2D: 7B TDC C2/1D2E: 38 SEC C2/1D2F: 2A ROL C2/1D30: CA DEX C2/1D31: 10 FC BPL $1D2F C2/1D33: 60 RTS Command 17 for FC C2/1D34: AD 2E 3A LDA $3A2E (Load first byte for FC) C2/1D37: 48 PHA C2/1D38: 38 SEC C2/1D39: 20 25 1F JSR $1F25 (Set target using first byte as parameter) C2/1D3C: 90 0B BCC $1D49 (If invalid or no targets) C2/1D3E: C2 20 REP #$20 (Set 16-bit Accumulator) C2/1D40: A5 B8 LDA $B8 C2/1D42: 85 FC STA $FC C2/1D44: 20 F9 51 JSR $51F9 (Y = highest targest number * 2) C2/1D47: E2 21 SEP #$21 C2/1D49: 68 PLA C2/1D4A: 08 PHP C2/1D4B: C9 36 CMP #$36 C2/1D4D: D0 04 BNE $1D53 (Branch if not targeting self) C2/1D4F: 64 FC STZ $FC (Clear character targets) C2/1D51: 64 FC STZ $FC (Clear them again. why??) C2/1D53: 28 PLP C2/1D54: 60 RTS Code pointers for command #$FC C2/1D55: 2C 1D (00) (No counter) C2/1D57: 40 1C (01) (Command counter) C2/1D59: 3F 1C (02) (Spell counter) C2/1D5B: 3B 1C (03) (Item counter) C2/1D5D: 5E 1C (04) (Elemental counter) C2/1D5F: 70 1C (05) (Counter if damaged) C2/1D61: B7 1B (06) (HP low counter) C2/1D63: C8 1B (07) (MP low counter) C2/1D65: D7 1B (08) (Status counter) C2/1D67: 26 1C (09) (Status counter (counter if not present)) C2/1D69: 2C 1D (0A) (No counter) C2/1D6B: 86 1C (0B) (Counter depending on time monster has been alive) C2/1D6D: 9C 1C (0C) (Variable counter (less than)) C2/1D6F: 90 1C (0D) (Variable counter (greater than or equal to)) C2/1D71: C6 1C (0E) (Level counter (less than)) C2/1D73: BA 1C (0F) (Level counter (greater than or equal to)) C2/1D75: CC 1C (10) (Counter if only one type of monster alive) C2/1D77: DC 1C (11) (Counter if target alive) C2/1D79: E4 1C (12) (Counter if target dead (final attack)) C2/1D7A: FA 1C (13) (if first byte is 0, check for # of characters, if 1, check for # of monsters) C2/1D7D: A2 1C (14) (Variable bit check) C2/1D7F: B4 1C (15) (Variable bit check (inverse)) C2/1D81: 7F 1C (16) (Counter depending on time combat has lasted) C2/1D83: 34 1D (17) (Aims like F1, Counter if valid target(s)) C2/1D85: 0D 1D (18) (Counter if party hasn't gotten Gau (or Gau has leaped and is on Veldt)) C2/1D87: D2 1C (19) (Counter depending on monster # in formation) C2/1D89: 2C 1C (1A) (Weak vs. element counter) C2/1D8B: 16 1D (1B) (Counter if specific battle formation) C2/1D8D: 22 1D (1C) (Always counter (ignores Quick on other entity)) Code pointers for control commands (monster scripts) C2/1D8F: 22 1B (F0) C2/1D91: 47 1B (F1) C2/1D93: 6E 1B (F2) C2/1D95: 66 1B (F3) C2/1D97: 1C 1B (F4) C2/1D99: 57 1B (F5) C2/1D9B: 05 1B (F6) C2/1D9D: 8E 1B (F7) C2/1D9F: 72 1B (F8) C2/1DA1: 76 1B (F9) C2/1DA3: A0 1B (FA) C2/1DA5: 6A 1B (FB) C2/1DA7: 91 1A (FC) C2/1DA9: 74 1A (FD) C2/1DAB: 7B 1A (FE) C2/1DAD: 7B 1A (FF) # of bytes for control command C2/1DAF: 04 (F0) C2/1DB0: 02 (F1) C2/1DB1: 04 (F2) C2/1DB2: 03 (F3) C2/1DB3: 04 (F4) C2/1DB4: 04 (F5) C2/1DB5: 04 (F6) C2/1DB6: 02 (F7) C2/1DB7: 03 (F8) C2/1DB8: 04 (F9) C2/1DB9: 04 (FA) C2/1DBA: 03 (FB) C2/1DBB: 04 (FC) C2/1DBC: 01 (FD) C2/1DBD: 01 (FE) C2/1DBE: 01 (FF) Figure what type of attack it is (spell, esper, blitz, etc.) , and return command in A C2/1DBF: DA PHX C2/1DC0: 48 PHA C2/1DC1: EB XBA C2/1DC2: 68 PLA (Spell # is now in bottom of A and top of A) C2/1DC3: A2 0A LDX #$0A C2/1DC5: DF D8 1D C2 CMP $C21DD8,X (pick an attack category?) C2/1DC9: 90 06 BCC $1DD1 (if attack is in a lower category, try the next one) C2/1DCB: BF E3 1D C2 LDA $C21DE3,X (choose a command) C2/1DCF: 80 05 BRA $1DD6 C2/1DD1: CA DEX C2/1DD2: 10 F1 BPL $1DC5 C2/1DD4: A9 02 LDA #$02 (if spell matched nothing in loop, it was between 0 and 35h, making it Magic command) C2/1DD6: FA PLX C2/1DD7: 60 RTS (Data - used to delimit which spell #s are which command) C2/1DD8: 36 (Esper) C2/1DD9: 51 (Skean) C2/1DDA: 55 (Swdtech) C2/1DDB: 5D (Blitz) C2/1DDC: 65 (Dance Move) C2/1DDD: 7D (Slot Move, or Tools??) C2/1DDE: 82 (Shock) C2/1DDF: 83 (Magitek) C2/1DE0: 8B (Enemy Attack / Lore) C2/1DE1: EE (Battle, Special) C2/1DE2: F0 (Desperation Attack, Interceptor) (Data - the command #) C2/1DE3: 19 (Summon) C2/1DE4: 02 (Magic) C2/1DE5: 07 (Swdtech) C2/1DE6: 0A (Blitz) C2/1DE7: 02 (Magic) C2/1DE8: 09 (Tools) C2/1DE9: 1B (Shock) C2/1DEA: 1D (Magitek) C2/1DEB: 0C (Lore) C2/1DEC: 00 (Fight) C2/1DED: 02 (Magic) (If first byte of FC command is 0, set it to current monster.) C2/1DEE: AD 2E 3A LDA $3A2E C2/1DF1: D0 06 BNE $1DF9 C2/1DF3: B9 19 30 LDA $3019,Y C2/1DF6: 8D 2E 3A STA $3A2E C2/1DF9: 60 RTS Variable Manipulation (Operand in bottom 6 bits of $B8, Operation in top 2 bits. Bits 7 and 6 = 0 and 0, or 0 and 1: Set variable to operand 1 and 0: Add operand to variable 1 and 1: Subtract operand from variable) C2/1DFA: A6 B6 LDX $B6 C2/1DFC: 20 45 1E JSR $1E45 (Load variable X into $EE) C2/1DFF: A9 80 LDA #$80 C2/1E01: 14 B8 TRB $B8 (Clear bit 7 of byte 1) C2/1E03: D0 05 BNE $1E0A (Branch if bit 7 of byte 1 was set) C2/1E05: 4A LSR (A = 40h, Carry clear) C2/1E06: 14 B8 TRB $B8 (Clear bit 6 of byte 1) C2/1E08: 64 EE STZ $EE C2/1E0A: A5 B8 LDA $B8 C2/1E0C: 89 40 BIT #$40 C2/1E0E: F0 03 BEQ $1E13 (Branch if bit 6 of byte 1 is clear) C2/1E10: 49 BF EOR #$BF (Toggle all but bit 6. that bit is on and bit 7 was off, so this gives us: 192 + (63 - (bottom 6 bits of $B8)). clever!) C2/1E12: 1A INC (so A = 256 - (bottom 6 bits of $B8). iow, the negation of the 6-bit value.) C2/1E13: 65 EE ADC $EE C2/1E15: 85 EE STA $EE C2/1E17: 4C 38 1E JMP $1E38 (Store $EE into variable X) (BRA $1E38?) Code for command #$2F (used by #$F9 monster script command) C2/1E1A: A6 B9 LDX $B9 (Byte 3) C2/1E1C: 20 57 1E JSR $1E57 (Set only bit #X in A) C2/1E1F: A6 B8 LDX $B8 (Byte 2) C2/1E21: 20 45 1E JSR $1E45 (Load variable X into $EE) C2/1E24: C6 B6 DEC $B6 (Byte 1: 0 for Toggle bit, 1 for Set bit, 2 for Clear bit) C2/1E26: 10 04 BPL $1E2C C2/1E28: 45 EE EOR $EE C2/1E2A: 80 0C BRA $1E38 C2/1E2C: C6 B6 DEC $B6 C2/1E2E: 10 04 BPL $1E34 C2/1E30: 05 EE ORA $EE C2/1E32: 80 04 BRA $1E38 C2/1E34: 49 FF EOR #$FF C2/1E36: 25 EE AND $EE C2/1E38: E0 24 CPX #$24 C2/1E3A: B0 05 BCS $1E41 C2/1E3C: 9D B0 3E STA $3EB0,X C2/1E3F: 80 03 BRA $1E44 C2/1E41: 99 AC 3D STA $3DAC,Y C2/1E44: 60 RTS Load variable X into $EE C2/1E45: 48 PHA C2/1E46: E0 24 CPX #$24 C2/1E48: B0 05 BCS $1E4F C2/1E4A: BD B0 3E LDA $3EB0,X C2/1E4D: 80 03 BRA $1E52 C2/1E4F: B9 AC 3D LDA $3DAC,Y C2/1E52: 85 EE STA $EE C2/1E54: 68 PLA C2/1E55: 18 CLC C2/1E56: 60 RTS Sets bit #X in A (C2/1D2D and this are identical) C2/1E57: 7B TDC C2/1E58: 38 SEC C2/1E59: 2A ROL C2/1E5A: CA DEX C2/1E5B: 10 FC BPL $1E59 C2/1E5D: 60 RTS Monster command script command #$FB C2/1E5E: A5 B6 LDA $B6 C2/1E60: 0A ASL C2/1E61: AA TAX C2/1E62: A5 B8 LDA $B8 C2/1E64: 7C 09 1F JMP ($1F09,X) Operation 0 for #$FB Clears monster time counter C2/1E67: 7B TDC C2/1E68: 99 C0 3D STA $3DC0,Y C2/1E6B: 99 C1 3D STA $3DC1,Y C2/1E6E: 60 RTS Operation 9 for #$FB C2/1E6F: A9 0A LDA #$0A C2/1E71: 80 02 BRA $1E75 C2/1E73: A9 08 LDA #$08 (Operation 2 jumps here) C2/1E75: 8D 6E 3A STA $3A6E ("End of combat" method #8, monster script command) C2/1E78: 60 RTS Operation 1 for #$FB C2/1E79: 08 PHP C2/1E7A: 38 SEC C2/1E7B: 20 25 1F JSR $1F25 C2/1E7E: C2 20 REP #$20 C2/1E80: A5 B8 LDA $B8 C2/1E82: 0C 3C 3A TSB $3A3C (mark target(s) as invincible) C2/1E85: 28 PLP C2/1E86: 60 RTS Operation 5 for #$FB C2/1E87: 08 PHP C2/1E88: 38 SEC C2/1E89: 20 25 1F JSR $1F25 C2/1E8C: C2 20 REP #$20 C2/1E8E: A5 B8 LDA $B8 C2/1E90: 1C 3C 3A TRB $3A3C (clear invincibility from target(s)) C2/1E93: 28 PLP C2/1E94: 60 RTS Operation 6 for #$FB C2/1E95: 38 SEC C2/1E96: 20 25 1F JSR $1F25 C2/1E99: A5 B9 LDA $B9 C2/1E9B: 0C 46 2F TSB $2F46 (make monster(s) targetable again. can undo Operation 7 below, or untargetability caused by formation data special event.) C2/1E9E: 60 RTS Operation 7 for #$FB C2/1E9F: 38 SEC C2/1EA0: 20 25 1F JSR $1F25 C2/1EA3: A5 B9 LDA $B9 C2/1EA5: 1C 46 2F TRB $2F46 (make monster(s) untargetable) C2/1EA8: 60 RTS Operation 3 for #$FB C2/1EA9: A9 08 LDA #$08 C2/1EAB: 0C DF 1E TSB $1EDF (mark Gau as enlisted and not Leapt?) C2/1EAE: B9 D9 3E LDA $3ED9,Y (0-15 roster position of this party member) C2/1EB1: AA TAX C2/1EB2: BD 50 18 LDA $1850,X (get character roster information) (Bit 7: 1 = party leader, as set in non-overworld areas Bit 6: main menu presence? Bit 5: row, 0 = front, 1 = back Bit 3-4: position in party, 0-3 Bit 0-2: which party in; 1-3, or 0 if none) C2/1EB5: 09 40 ORA #$40 (turn on main menu presence?) C2/1EB7: 29 E0 AND #$E0 (keep party leader flag, main menu presence, and row flag) C2/1EB9: 0D 6D 1A ORA $1A6D (combine with Active Party number [1-3]) C2/1EBC: 85 EE STA $EE C2/1EBE: 98 TYA C2/1EBF: 0A ASL C2/1EC0: 0A ASL (convert target # into position in party) C2/1EC1: 05 EE ORA $EE C2/1EC3: 9D 50 18 STA $1850,X (save updated roster info) C2/1EC6: 60 RTS Operation 4 for #$FB C2/1EC7: 9C 44 3A STZ $3A44 C2/1ECA: 9C 45 3A STZ $3A45 (zero Global battle time counter) C2/1ECD: 60 RTS Operation 8 for #$FB (Not used by any monster) C2/1ECE: 38 SEC (don't exclude Dead/Hidden/etc entities from targets) C2/1ECF: 20 25 1F JSR $1F25 C2/1ED2: 90 05 BCC $1ED9 (branch if desired target(s) not found) C2/1ED4: A9 FF LDA #$FF C2/1ED6: 99 C9 3A STA $3AC9,Y (set top byte of own "Amount to increment ATB Timer and Wait Timer" REALLY high. iow, near-instantaneous ATB refill.) C2/1ED9: 60 RTS Operation C for #$FB (Quietly lose status) C2/1EDA: 20 EB 1E JSR $1EEB (flag chosen status in attack data) C2/1EDD: A9 04 LDA #$04 C2/1EDF: 0C A4 11 TSB $11A4 (indicate Lift Status) C2/1EE2: 4C 67 31 JMP $3167 (Entity executes one largely unblockable hit on self) Operation B for #$FB (Quietly gain status) C2/1EE5: 20 EB 1E JSR $1EEB (flag chosen status in attack data) C2/1EE8: 4C 67 31 JMP $3167 (Entity executes one largely unblockable hit on self) C2/1EEB: 20 8A 29 JSR $298A (Load command data, and clear special effect, magic power, etc.) C2/1EEE: 18 CLC C2/1EEF: A5 B8 LDA $B8 (Get status # of 0-31) C2/1EF1: 20 17 52 JSR $5217 (X = A / 8, A = 2 ^ (A MOD 8)) C2/1EF4: 1D AA 11 ORA $11AA,X C2/1EF7: 9D AA 11 STA $11AA,X (mark chosen status in attack's status) C2/1EFA: BB TYX C2/1EFB: A9 12 LDA #$12 C2/1EFD: 85 B5 STA $B5 (Store Mimic in command for animation) C2/1EFF: 60 RTS Operation D for #$FB C2/1F00: B9 F9 3E LDA $3EF9,Y C2/1F03: 09 20 ORA #$20 C2/1F05: 99 F9 3E STA $3EF9,Y (Set Hide status on self) C2/1F08: 60 RTS Code pointers for command #$FB C2/1F09: 67 1E (00) C2/1F0B: 79 1E (01) C2/1F0D: 73 1E (02) C2/1F0F: A9 1E (03) C2/1F11: C7 1E (04) C2/1F13: 87 1E (05) C2/1F15: 95 1E (06) C2/1F17: 9F 1E (07) C2/1F19: CE 1E (08) C2/1F1B: 6F 1E (09) C2/1F1D: 08 1F (0A) (jumps to RTS) C2/1F1F: E5 1E (0B) C2/1F21: DA 1E (0C) C2/1F23: 00 1F (0D) C2/1F25: DA PHX C2/1F26: 5A PHY C2/1F27: 48 PHA C2/1F28: 64 B8 STZ $B8 C2/1F2A: A2 06 LDX #$06 C2/1F2C: BD D8 3E LDA $3ED8,X (Which character it is) C2/1F2F: 30 05 BMI $1F36 (Branch if not present) C2/1F31: BD 18 30 LDA $3018,X C2/1F34: 04 B8 TSB $B8 (Set character as target) C2/1F36: CA DEX C2/1F37: CA DEX C2/1F38: 10 F2 BPL $1F2C C2/1F3A: 64 B9 STZ $B9 (Set no monsters as target) C2/1F3C: A2 0A LDX #$0A C2/1F3E: BD 02 20 LDA $2002,X C2/1F41: 30 05 BMI $1F48 C2/1F43: BD 21 30 LDA $3021,X C2/1F46: 04 B9 TSB $B9 (Set monster as target) C2/1F48: CA DEX C2/1F49: CA DEX C2/1F4A: 10 F2 BPL $1F3E C2/1F4C: B0 06 BCS $1F54 C2/1F4E: 20 4D 5A JSR $5A4D (Remove dead and hidden targets) C2/1F51: 20 17 59 JSR $5917 C2/1F54: 68 PLA C2/1F55: C9 30 CMP #$30 C2/1F57: B0 14 BCS $1F6D C2/1F59: A2 06 LDX #$06 C2/1F5B: DD D8 3E CMP $3ED8,X (Which character it is) C2/1F5E: D0 07 BNE $1F67 C2/1F60: BD 18 30 LDA $3018,X C2/1F63: 85 B8 STA $B8 C2/1F65: 80 3A BRA $1FA1 C2/1F67: CA DEX C2/1F68: CA DEX C2/1F69: 10 F0 BPL $1F5B C2/1F6B: 80 32 BRA $1F9F C2/1F6D: C9 36 CMP #$36 C2/1F6F: B0 10 BCS $1F81 C2/1F71: E9 2F SBC #$2F C2/1F73: 0A ASL C2/1F74: AA TAX C2/1F75: BD 02 20 LDA $2002,X C2/1F78: 30 25 BMI $1F9F C2/1F7A: BD 21 30 LDA $3021,X C2/1F7D: 85 B9 STA $B9 C2/1F7F: 80 27 BRA $1FA8 C2/1F81: E9 36 SBC #$36 C2/1F83: 0A ASL C2/1F84: AA TAX C2/1F85: 7C 65 20 JMP ($2065,X) (44) C2/1F88: 64 B9 STZ $B9 C2/1F8A: C2 20 REP #$20 C2/1F8C: A5 B8 LDA $B8 C2/1F8E: 20 2A 52 JSR $522A (randomly pick a bit that is set) C2/1F91: 85 B8 STA $B8 C2/1F93: C2 20 REP #$20 (46 jumps here) C2/1F95: A5 B8 LDA $B8 C2/1F97: E2 21 SEP #$21 (set 8-bit Accumulator, and set Carry) C2/1F99: D0 01 BNE $1F9C C2/1F9B: 18 CLC C2/1F9C: 7A PLY C2/1F9D: FA PLX C2/1F9E: 60 RTS (47) C2/1F9F: 64 B8 STZ $B8 C2/1FA1: 64 B9 STZ $B9 (43 jumps here) C2/1FA3: 80 EE BRA $1F93 (37) C2/1FA5: 20 2D 20 JSR $202D C2/1FA8: 64 B8 STZ $B8 (38 jumps here) C2/1FAA: 80 E7 BRA $1F93 (39) C2/1FAC: 20 2D 20 JSR $202D C2/1FAF: 64 B8 STZ $B8 (3A jumps here) C2/1FB1: 80 D7 BRA $1F8A (3B) C2/1FB3: 20 37 20 JSR $2037 C2/1FB6: 80 E9 BRA $1FA1 (3C) C2/1FB8: 20 37 20 JSR $2037 C2/1FBB: 80 CB BRA $1F88 (3D) C2/1FBD: 20 37 20 JSR $2037 C2/1FC0: 80 E6 BRA $1FA8 (3E) C2/1FC2: 20 37 20 JSR $2037 C2/1FC5: 80 E8 BRA $1FAF (3F) C2/1FC7: 20 4E 20 JSR $204E C2/1FCA: 80 D5 BRA $1FA1 (40) C2/1FCC: 20 4E 20 JSR $204E C2/1FCF: 80 B7 BRA $1F88 (41) C2/1FD1: 20 4E 20 JSR $204E C2/1FD4: 80 D2 BRA $1FA8 (42) C2/1FD6: 20 4E 20 JSR $204E C2/1FD9: 80 D4 BRA $1FAF (4C) C2/1FDB: 20 2D 20 JSR $202D (Remove self as target) C2/1FDE: 20 53 4B JSR $4B53 (random: 0 or 1 in Carry) C2/1FE1: 90 A7 BCC $1F8A C2/1FE3: 80 AE BRA $1F93 (4D) C2/1FE5: BE F5 32 LDX $32F5,Y C2/1FE8: 30 B5 BMI $1F9F (No targets) C2/1FEA: A9 FF LDA #$FF C2/1FEC: 99 F5 32 STA $32F5,Y C2/1FEF: C2 20 REP #$20 C2/1FF1: BD 18 30 LDA $3018,X C2/1FF4: 85 B8 STA $B8 C2/1FF6: 20 4D 5A JSR $5A4D (Remove dead and hidden targets) C2/1FF9: 80 98 BRA $1F93 (45) C2/1FFB: 64 B8 STZ $B8 C2/1FFD: 64 B9 STZ $B9 C2/1FFF: B9 E0 32 LDA $32E0,Y (get last entity to attack monster. 0-9 indicates a valid previous attacker. 7Fh indicates no previous attacker.) C2/2002: C9 0A CMP #$0A C2/2004: B0 8D BCS $1F93 (branch if no previous attacker) C2/2006: 0A ASL C2/2007: AA TAX (turn our 0-9 index into the more common 0,2,4,6,8,10,12,14,16,18 index used to address battle entities.) C2/2008: C2 20 REP #$20 C2/200A: BD 18 30 LDA $3018,X C2/200D: 85 B8 STA $B8 C2/200F: 80 82 BRA $1F93 (48) (49) (4A) (4B) C2/2011: 8A TXA C2/2012: 38 SEC C2/2013: E9 24 SBC #$24 C2/2015: AA TAX C2/2016: BD A0 3A LDA $3AA0,X C2/2019: 4A LSR C2/201A: 90 83 BCC $1F9F C2/201C: BD 18 30 LDA $3018,X C2/201F: 85 B8 STA $B8 C2/2021: 80 A7 BRA $1FCA (36) C2/2023: C2 20 REP #$20 C2/2025: B9 18 30 LDA $3018,Y C2/2028: 85 B8 STA $B8 C2/202A: 4C 93 1F JMP $1F93 Remove self as target C2/202D: 08 PHP C2/202E: C2 20 REP #$20 C2/2030: B9 18 30 LDA $3018,Y C2/2033: 14 B8 TRB $B8 C2/2035: 28 PLP C2/2036: 60 RTS Sets targets to all dead monsters and characters C2/2037: 08 PHP (Set 16-bit Accumulator) C2/2038: C2 20 REP #$20 C2/203A: 64 B8 STZ $B8 (start off with no targets) C2/203C: A2 12 LDX #$12 C2/203E: BD E3 3E LDA $3EE3,X C2/2041: 10 05 BPL $2048 (Branch if not dead) C2/2043: BD 18 30 LDA $3018,X C2/2046: 04 B8 TSB $B8 (mark entity as target) C2/2048: CA DEX C2/2049: CA DEX C2/204A: 10 F2 BPL $203E (loop for all entities) C2/204C: 28 PLP C2/204D: 60 RTS Sets all monsters and characters with Reflect status as targets C2/204E: 08 PHP C2/204F: C2 20 REP #$20 (Set 16-bit Accumulator) C2/2051: 64 B8 STZ $B8 (start off with no targets) C2/2053: A2 12 LDX #$12 C2/2055: BD F7 3E LDA $3EF7,X C2/2058: 10 05 BPL $205F (Branch if not Reflect status) C2/205A: BD 18 30 LDA $3018,X C2/205D: 04 B8 TSB $B8 (mark entity as target) C2/205F: CA DEX C2/2060: CA DEX C2/2061: 10 F2 BPL $2055 (loop for all entities) C2/2063: 28 PLP C2/2064: 60 RTS Code pointers for command F1 targets C2/2065: 23 20 (36) C2/2067: A5 1F (37) C2/2069: A8 1F (38) C2/206B: AC 1F (39) C2/206D: AF 1F (3A) C2/206F: B3 1F (3B) C2/2071: B8 1F (3C) C2/2073: BD 1F (3D) C2/2075: C2 1F (3E) C2/2077: C7 1F (3F) C2/2079: CC 1F (40) C2/207B: D1 1F (41) C2/207D: D6 1F (42) C2/207F: A1 1F (43) C2/2081: 88 1F (44) C2/2083: FB 1F (45) C2/2085: 93 1F (46) C2/2087: 9F 1F (47) C2/2089: 11 20 (48) C2/208B: 11 20 (49) C2/208D: 11 20 (4A) C2/208F: 11 20 (4B) C2/2091: DB 1F (4C) C2/2093: E5 1F (4D) (Recalculate applicable characters' properties from their current equipment and relics) C2/2095: A2 03 LDX $#03 C2/2097: BD 2F 30 LDA $2F30,X (was character flagged to have his/her properties be recalculated from his/her equipment at end of turn?) C2/209A: F0 3E BEQ $20DA (skip to next character if not) C2/209C: 9E 30 2F STZ $2F30,X (clear this character's flag) C2/209F: DA PHX C2/20A0: 5A PHY C2/20A1: 8A TXA C2/20A2: 85 EE STA $EE C2/20A4: 0A ASL C2/20A5: 85 EF STA $EF (save X * 2) C2/20A7: 0A ASL C2/20A8: 65 EE ADC $EE C2/20AA: AA TAX (X = X * 5) C2/20AB: BD 86 2B LDA $2B86,X (character's right hand in menu data) C2/20AE: EB XBA C2/20AF: BD 9A 2B LDA $2B9A,X (character's left hand in menu data) C2/20B2: A6 EF LDX $EF C2/20B4: C2 10 REP #$10 (Set 16-bit X and Y) C2/20B6: BC 10 30 LDY $3010,X (get offset to character info block) C2/20B9: 99 20 16 STA $1620,Y (save contents of left hand in main character block) C2/20BC: EB XBA C2/20BD: 99 1F 16 STA $161F,Y (save contents of right hand in main character block) C2/20C0: BD E4 3E LDA $3EE4,X (in-battle Status Byte 1) C2/20C3: 99 14 16 STA $1614,Y (update outside battle Status Byte 1) C2/20C6: E2 10 SEP #$10 (Set 8-bit X and Y) C2/20C8: BD D9 3E LDA $3ED9,X (0-15 roster position of this party member) C2/20CB: 22 77 0E C2 JSR $C20E77 (load equipment data for character in A) C2/20CF: 20 6D 28 JSR $286D (Initialize in-battle character properties from equipment properties) C2/20D2: 20 7D 52 JSR $527D (Update availability of commands on character's main menu - gray out or enable) C2/20D5: 20 75 26 JSR $2675 (make some equipment statuses permanent by setting immunity to them. also handle immunity to mutually exclusive "mirror statuses".) C2/20D8: 7A PLY C2/20D9: FA PLX C2/20DA: CA DEX C2/20DB: 10 BA BPL $2097 (loop for all 4 onscreen characters) C2/20DD: 60 RTS Command #$2A (Flee, or fail to, from running) C2/20DE: AD 45 2F LDA $2F45 (party trying to run: 0 = no, 1 = yes) C2/20E1: F0 7F BEQ $2162 (exit if not trying to run) C2/20E3: C2 20 REP #$20 C2/20E5: A9 02 09 LDA #$0902 C2/20E8: 8D 28 3A STA $3A28 (default some animation variable to unsuccessful run?) (temporary bytes 1 and 2 for ($76) animation buffer) C2/20EB: E2 20 SEP #$20 C2/20ED: A5 B1 LDA $B1 C2/20EF: 89 02 BIT #$02 (is Can't Run set?) C2/20F1: D0 6C BNE $215F (branch if so) C2/20F3: AD 38 3A LDA $3A38 (characters who are ready to run) C2/20F6: F0 6A BEQ $2162 (branch if none) C2/20F8: 85 B8 STA $B8 (save copy of ready to run characters) C2/20FA: 9C 38 3A STZ $3A38 (clear original list) C2/20FD: 20 00 64 JSR $6400 (Zero $A0 through $AF) C2/2100: A2 06 LDX #$06 C2/2102: BD 18 30 LDA $3018,X C2/2105: 14 B8 TRB $B8 (remove current party member from copy list of ready to run characters) C2/2107: F0 3B BEQ $2144 (skip to next party member if they were never in it) C2/2109: EB XBA C2/210A: BD 19 32 LDA $3219,X (top byte of ATB timer, which is zeroed when the gauge is full) C2/210D: D0 35 BNE $2144 (it it's nonzero, the gauge isn't full, so skip to next party member) C2/210F: BD A0 3A LDA $3AA0,X C2/2112: 89 50 BIT #$50 (???) C2/2114: D0 2E BNE $2144 C2/2116: 4A LSR (is entity even present in the battle?) C2/2117: 90 2B BCC $2144 (skip to next party member if not) C2/2119: BD E4 3E LDA $3EE4,X C2/211C: 89 02 BIT #$02 (Check for Zombie status) C2/211E: D0 24 BNE $2144 (branch if possessed) C2/2120: BD F9 3E LDA $3EF9,X C2/2123: 89 20 BIT #$20 C2/2125: D0 1D BNE $2144 (Branch if Hide status) C2/2127: EB XBA C2/2128: 04 B8 TSB $B8 (tell this function character is successfully running) C2/212A: 0C 39 3A TSB $3A39 (add to list of escaped characters) C2/212D: 0C 4C 2F TSB $2F4C (mark runner to be removed from the battlefield) C2/2130: BD A1 3A LDA $3AA1,X C2/2133: 09 40 ORA #$40 C2/2135: 9D A1 3A STA $3AA1,X (Set bit 6 of $3AA1) C2/2138: BD 04 32 LDA $3204,X C2/213B: 09 40 ORA #$40 C2/213D: 9D 04 32 STA $3204,X (set bit 6 of $3204) C2/2140: 20 C8 07 JSR $07C8 (Clear Zinger, Love Token, and Charm bonds, and clear applicable Quick variables) C2/2143: 9B TXY C2/2144: CA DEX C2/2145: CA DEX C2/2146: 10 BA BPL $2102 (loop for all 4 party members) C2/2148: A5 B8 LDA $B8 (get successfully running characters) C2/214A: F0 16 BEQ $2162 (branch if none) C2/214C: 64 B9 STZ $B9 (no monster targets) C2/214E: BB TYX C2/214F: 20 C2 57 JSR $57C2 (Update $An variables with targets in $B8-$B9, and do other stuff) C2/2152: 20 DB 63 JSR $63DB (Copy $An variables to ($78) buffer) C2/2155: C2 20 REP #$20 (set 16-bit Accumulator) C2/2157: A9 06 22 LDA #$2206 C2/215A: 8D 28 3A STA $3A28 (change some animation variable to successful run?) (temporary bytes 1 and 2 for ($76) animation buffer) C2/215D: E2 20 SEP #$20 (set 8-bit Accumulator) C2/215F: 20 9E 62 JSR $629E (Copy $3A28-$3A2B variables into ($76) buffer) C2/2162: 60 RTS (Process one record from Special Action linked list queue. Note that unlike with other lists, all entities here are mingled together.) C2/2163: F4 18 00 PEA $0018 (will return to C2/0019) C2/2166: 48 PHA C2/2167: 0A ASL C2/2168: A8 TAY (adjust pointer for 16-bit fields) C2/2169: 18 CLC C2/216A: 20 76 02 JSR $0276 (Load command, attack, targets, and MP cost from queued data. Some commands become Fight if tried by an Imp.) C2/216D: 68 PLA C2/216E: A8 TAY (restore pointer for 8-bit fields) C2/216F: B9 84 31 LDA $3184,Y (get ID/pointer of first record in Special Action linked list queue) C2/2172: CD 0A 34 CMP $340A (if that field's contents match record's position, it's a standalone record, or the last in the list) C2/2175: D0 02 BNE $2179 (branch if not, as there are more records left) C2/2177: A9 FF LDA #$FF C2/2179: 8D 0A 34 STA $340A (either make entry point index next record, or null it) C2/217C: A9 FF LDA #$FF C2/217E: 99 84 31 STA $3184,Y (null current first record in Special Action linked list queue) C2/2181: A9 01 LDA #$01 C2/2183: 04 B1 TSB $B1 (indicate it's an unconventional attack) C2/2185: 4C D3 13 JMP $13D3 (Character/Monster Takes One Turn) (Do early processing of one record from entity's conventional linked list queue, establish "time to wait", and visually enter ready stance if character) C2/2188: A9 80 LDA #$80 C2/218A: 20 AB 5B JSR $5BAB C2/218D: BD A0 3A LDA $3AA0,X C2/2190: 89 50 BIT #$50 C2/2192: D0 76 BNE $220A C2/2194: BD A1 3A LDA $3AA1,X C2/2197: 29 7F AND #$7F (Clear bit 7) C2/2199: 09 01 ORA #$01 (Set bit 0) C2/219B: 9D A1 3A STA $3AA1,X C2/219E: 20 1C 03 JSR $031C C2/21A1: BD CC 32 LDA $32CC,X (get entry point to entity's conventional linked list queue) C2/21A4: 30 64 BMI $220A (exit if null) C2/21A6: 0A ASL C2/21A7: A8 TAY (adjust pointer for 16-bit fields) C2/21A8: B9 20 34 LDA $3420,Y (get command from entity's conventional linked list queue) C2/21AB: C9 1E CMP #$1E C2/21AD: B0 5B BCS $220A (exit if not a normal character command. iow, if it was enemy Roulette, "Run Monster Script", periodic damage/healing, etc.) C2/21AF: 8D 6F 2D STA $2D6F (second byte of first entry of ($76) buffer) C2/21B2: C9 16 CMP #$16 (is it Jump?) C2/21B4: F0 06 BEQ $21BC (branch if so) C2/21B6: E0 08 CPX #$08 C2/21B8: 90 2C BCC $21E6 (branch if character) C2/21BA: 80 4E BRA $220A (it's a monster [with no visible ready stance], so exit) C2/21BC: BD 05 32 LDA $3205,X C2/21BF: 10 49 BPL $220A (Exit function if entity has not taken a conventional turn [including landing one] since boarding Palidor) C2/21C1: C2 20 REP #$20 C2/21C3: E0 08 CPX #$08 C2/21C5: B0 0C BCS $21D3 (branch if monster, so it doesn't affect Mimic) C2/21C7: A9 16 00 LDA #$0016 C2/21CA: 8D 28 3F STA $3F28 (tell Mimic last command was Jump) C2/21CD: B9 20 35 LDA $3520,Y (get targets from entity's conventional linked list queue) C2/21D0: 8D 2A 3F STA $3F2A (save last targets, Jump-specific, for Mimic) C2/21D3: BD 18 30 LDA $3018,X C2/21D6: 0C 2C 3F TSB $3F2C (mark entity as a Jumper) C2/21D9: E2 20 SEP #$20 C2/21DB: BD F9 3E LDA $3EF9,X C2/21DE: 09 20 ORA #$20 C2/21E0: 9D F9 3E STA $3EF9,X (Set Hide Status) C2/21E3: 20 26 5D JSR $5D26 (Copy Current and Max HP and MP, and statuses to displayable variables) C2/21E6: 20 39 26 JSR $2639 (Clear animation buffer pointers, extra strike quantity, and various backup targets) C2/21E9: 20 00 64 JSR $6400 (Zero $A0 through $AF) C2/21EC: C2 20 REP #$20 C2/21EE: B9 20 35 LDA $3520,Y (get targets from entity's conventional linked list queue) C2/21F1: 85 B8 STA $B8 (save as current targets) C2/21F3: E2 20 SEP #$20 C2/21F5: A9 0C LDA #$0C C2/21F7: 8D 6E 2D STA $2D6E (first byte of first entry of ($76) buffer) C2/21FA: A9 FF LDA #$FF C2/21FC: 8D 72 2D STA $2D72 (first byte of second entry of ($76) buffer) C2/21FF: 20 C2 57 JSR $57C2 C2/2202: 20 DB 63 JSR $63DB (Copy $An variables to ($78) buffer) C2/2205: A9 04 LDA #$04 C2/2207: 20 11 64 JSR $6411 (Execute animation queue) C2/220A: 4C 19 00 JMP $0019 (branch to start of main battle loop) Determine whether attack hits (Result in Carry Flag: Clear = hit [includes Golem and Dog block], Set = miss) C2/220D: 48 PHA C2/220E: DA PHX C2/220F: 18 CLC (start off assuming hit) C2/2210: 08 PHP (preserve Carry Flag, among others) C2/2211: E2 20 SEP #$20 (set 8-bit accumulator) C2/2213: 64 FE STZ $FE C2/2215: A5 B3 LDA $B3 C2/2217: 10 1C BPL $2235 (Skip Clear check if bit 7 of $B3 not set) C2/2219: B9 E4 3E LDA $3EE4,Y C2/221C: 89 10 BIT #$10 (Check for Clear status) C2/221E: F0 15 BEQ $2235 (Branch if not vanished) C2/2220: AD A4 11 LDA $11A4 C2/2223: 0A ASL C2/2224: 30 07 BMI $222D (Branch if L.X spell) C2/2226: AD A2 11 LDA $11A2 C2/2229: 4A LSR C2/222A: 4C B3 22 JMP $22B3 (If physical attack then miss, otherwise hit) C2/222D: B9 FC 3D LDA $3DFC,Y C2/2230: 09 10 ORA #$10 C2/2232: 99 FC 3D STA $3DFC,Y (mark Clear status to be cleared. that way, it'll still be removed even if the attack misses and C2/4406, which is what normally removes Clear, is skipped.) C2/2235: AD A3 11 LDA $11A3 C2/2238: 89 02 BIT #$02 (Check for not reflectable) C2/223A: D0 0F BNE $224B (Branch if ^) C2/223C: B9 F8 3E LDA $3EF8,Y C2/223F: 10 0A BPL $224B (Branch if target does not have Reflect) C2/2241: C2 20 REP #$20 (set 16-bit accumulator) C2/2243: B9 18 30 LDA $3018,Y C2/2246: 04 A6 TSB $A6 (turn on target in "reflected off of" byte) C2/2248: 4C E5 22 JMP $22E5 (Always miss if reflecting off target) C2/224B: AD A2 11 LDA $11A2 C2/224E: 89 02 BIT #$02 (Check for spell miss if instant death protected) C2/2250: F0 07 BEQ $2259 (Branch if not ^) C2/2252: B9 A1 3A LDA $3AA1,Y C2/2255: 89 04 BIT #$04 C2/2257: D0 5C BNE $22B5 (Always miss if Protected from instant death) C2/2259: AD A2 11 LDA $11A2 C2/225C: 89 04 BIT #$04 (Check for hit only (dead XOR undead) targets) C2/225E: F0 08 BEQ $2268 C2/2260: B9 E4 3E LDA $3EE4,Y C2/2263: 59 95 3C EOR $3C95,Y (death status XOR undead attribute) C2/2266: 10 4D BPL $22B5 (If neither or both of above set, then miss) C2/2268: A5 B5 LDA $B5 C2/226A: C9 00 CMP #$00 C2/226C: F0 04 BEQ $2272 (Branch if command is Fight) C2/226E: C9 06 CMP #$06 C2/2270: D0 2F BNE $22A1 (Branch if command not Capture) C2/2272: AD A9 11 LDA $11A9 C2/2275: D0 2A BNE $22A1 (Branch if has special effect) C2/2277: AD C9 3E LDA $3EC9 C2/227A: C9 01 CMP #$01 C2/227C: D0 23 BNE $22A1 (branch if # of targets isn't 1) C2/227E: C0 08 CPY #$08 C2/2280: B0 1F BCS $22A1 (Branch if target is monster) C2/2282: B9 F9 3E LDA $3EF9,Y C2/2285: 0A ASL C2/2286: 10 0B BPL $2293 (Branch if not dog block) C2/2288: 20 53 4B JSR $4B53 (0 or 1) C2/228B: 90 06 BCC $2293 (50% chance) C2/228D: A9 40 LDA #$40 C2/228F: 85 FE STA $FE (set dog block animation flag) C2/2291: 80 22 BRA $22B5 (Miss) C2/2293: AD 36 3A LDA $3A36 C2/2296: 0D 37 3A ORA $3A37 C2/2299: F0 06 BEQ $22A1 (Branch if no Golem) C2/229B: A9 20 LDA #$20 C2/229D: 85 FE STA $FE (set golem block animation flag) C2/229F: 80 14 BRA $22B5 (Miss) C2/22A1: AD A4 11 LDA $11A4 C2/22A4: 89 20 BIT #$20 (Check for can't be dodged) C2/22A6: D0 40 BNE $22E8 (Always hit if can't be dodged) C2/22A8: 89 40 BIT #$40 C2/22AA: D0 40 BNE $22EC (Check if hit for L? Spells) C2/22AC: 89 10 BIT #$10 C2/22AE: F0 4B BEQ $22FB (Check if hit if Stamina not involved) C2/22B0: 20 9C 23 JSR $239C (Check if hit if Stamina involved) C2/22B3: 90 33 BCC $22E8 (branch if hits) C2/22B5: B9 E4 3E LDA $3EE4,Y C2/22B8: 89 1A BIT #$1A (Check target for Clear, M-Tek, or Zombie) C2/22BA: D0 15 BNE $22D1 (Always miss if ^) C2/22BC: C0 08 CPY #$08 (Check if target is monster) C2/22BE: B0 11 BCS $22D1 (Always miss if ^) C2/22C0: 20 BF 23 JSR $23BF (Determine miss animation) C2/22C3: C9 06 CMP #$06 C2/22C5: 90 0A BCC $22D1 (if it's not Golem or Dog Block, always miss) C2/22C7: A2 03 LDX #$03 C2/22C9: 9E AA 11 STZ $11AA,X (Clear all status modifying effects of attack) C2/22CC: CA DEX C2/22CD: 10 FA BPL $22C9 C2/22CF: 80 17 BRA $22E8 (Always hit [Carry will be cleared]) C2/22D1: A9 02 LDA #$02 C2/22D3: 04 B2 TSB $B2 (Set no critical and ignore True Knight) C2/22D5: 9C 89 3A STZ $3A89 (turn off random weapon spellcast) C2/22D8: AD 1C 34 LDA $341C (0 if current strike is missable weapon spellcast) C2/22DB: F0 08 BEQ $22E5 (if it is, skip flagging the "Miss" message, since we'll be skipping the animation entirely.) C2/22DD: C2 20 REP #$20 C2/22DF: B9 18 30 LDA $3018,Y C2/22E2: 0C 5A 3A TSB $3A5A (Set target as missed) C2/22E5: 28 PLP C2/22E6: 38 SEC (Makes attack miss) C2/22E7: 08 PHP C2/22E8: 28 PLP C2/22E9: FA PLX C2/22EA: 68 PLA C2/22EB: 60 RTS Determines if attack hits for L? spells C2/22EC: AE A8 11 LDX $11A8 (Hit Rate) C2/22EF: 7B TDC C2/22F0: B9 18 3B LDA $3B18,Y (Level) C2/22F3: 20 92 47 JSR $4792 (Division, X = Hit Rate MOD Level) C2/22F6: 8A TXA C2/22F7: D0 D8 BNE $22D1 (Always miss) C2/22F9: 80 ED BRA $22E8 (Always Hit) Determines if attack hits C2/22FB: F4 40 80 PEA $8040 (Sleep, Petrify) C2/22FE: F4 10 02 PEA $0210 (Freeze, Stop) C2/2301: 20 64 58 JSR $5864 C2/2304: 90 E2 BCC $22E8 (Always hit if any set) C2/2306: C2 20 REP #$20 (Set 16-bit A) C2/2308: B9 18 30 LDA $3018,Y C2/230B: 2C 54 3A BIT $3A54 (Check if hitting in back) C2/230E: E2 20 SEP #$20 (Set 8-bit A) C2/2310: D0 D6 BNE $22E8 (Always hit if hitting back of target) C2/2312: AD A8 11 LDA $11A8 (Hit Rate) C2/2315: C9 FF CMP #$FF C2/2317: F0 CF BEQ $22E8 (Automatically hit if Hit Rate is 255) C2/2319: 85 EE STA $EE C2/231B: AD A2 11 LDA $11A2 C2/231E: 4A LSR C2/231F: 90 1E BCC $233F (If magical attack, then skip this next code) C2/2321: B9 4C 3E LDA $3E4C,Y C2/2324: 4A LSR (Check for Retort) C2/2325: B0 C1 BCS $22E8 (Always hits) C2/2327: B9 E5 3E LDA $3EE5,Y (Check for Image status) C2/232A: 89 04 BIT #$04 -------------------------------------------------- (Original Code) C2/232C: F0 11 BEQ $233F (Branch if not Image status on target) C2/232E: 20 5A 4B JSR $4B5A C2/2331: C9 40 CMP #$40 (1 in 4 chance clear Image status) C2/2333: B0 9C BCS $22D1 (Always misses) C2/2335: B9 FD 3D LDA $3DFD,Y C2/2338: 09 04 ORA #$04 C2/233A: 99 FD 3D STA $3DFD,Y (Mark Image status to be cleared) C2/233D: 80 92 BRA $22D1 (Always misses) C2/233F: B9 54 3B LDA $3B54,Y (255 - Evade * 2 + 1) C2/2342: B0 03 BCS $2347 C2/2344: B9 55 3B LDA $3B55,Y (255 - MBlock * 2 + 1) C2/2347: 48 PHA C2/2348: 90 3E BCC $2388 (Evade Patch Applied) C2/232C: F0 17 BEQ $2345 (Branch if not Image status on target) C2/232E: 20 5A 4B JSR $4B5A C2/2331: C9 40 CMP #$40 (1 in 4 chance clear Image status) C2/2333: B0 9C BCS $22D1 (Always misses) C2/2335: B9 FD 3D LDA $3DFD,Y C2/2338: 09 04 ORA #$04 C2/233A: 99 FD 3D STA $3DFD,Y (Mark Image status to be cleared) C2/233D: 80 92 BRA $22D1 (Always misses) C2/233F: B9 55 3B LDA $3B55,Y (255 - MBlock * 2 + 1) C2/2342: 48 PHA C2/2343: 80 43 BRA $2388 C2/2345: B9 54 3B LDA $3B54,Y (255 - Evade * 2 + 1) C2/2348: 48 PHA C2/2349: EA NOP ------------------------------------------------- C2/234A: BD E4 3E LDA $3EE4,X C2/234D: 4A LSR C2/234E: 90 02 BCC $2352 (Branch if attacker not blinded [Dark status]) C2/2350: 46 EE LSR $EE (Cut hit rate in half) C2/2352: B9 58 3C LDA $3C58,Y C2/2355: 89 04 BIT #$04 C2/2357: F0 02 BEQ $235B (Branch if no Beads) C2/2359: 46 EE LSR $EE (Cut hit rate in half) C2/235B: F4 03 20 PEA $2003 (Muddled, Dark, Zombie) C2/235E: F4 04 04 PEA $0404 (Life 3, Slow) C2/2361: 20 64 58 JSR $5864 C2/2364: B0 0C BCS $2372 (Branch if none set on target) C2/2366: A5 EE LDA $EE C2/2368: 4A LSR C2/2369: 4A LSR C2/236A: 65 EE ADC $EE (Adds 1/4 to hit rate) C2/236C: 90 02 BCC $2370 C2/236E: A9 FF LDA #$FF C2/2370: 85 EE STA $EE (if hit rate overflowed, set to 255) C2/2372: F4 04 42 PEA $4204 (Seizure, Near Fatal, Poison) C2/2375: F4 08 00 PEA $0008 (Haste) C2/2378: 20 64 58 JSR $5864 C2/237B: B0 0B BCS $2388 (Branch if none set on target) C2/237D: A5 EE LDA $EE C2/237F: 46 EE LSR $EE C2/2381: 46 EE LSR $EE C2/2383: 38 SEC C2/2384: E5 EE SBC $EE (Subtracts 1/4 from hit rate) C2/2386: 85 EE STA $EE C2/2388: 68 PLA C2/2389: EB XBA C2/238A: A5 EE LDA $EE (Hit Rate) C2/238C: 20 81 47 JSR $4781 (Multiply (255 - Evade/Mblock * 2 + 1) * Hit Rate) C2/238F: EB XBA C2/2390: 85 EE STA $EE (Chance to hit = Product DIV 256. That simplifies to: Hit Rate * (128 - (Evade or MBlock)) / 128 .) C2/2392: A9 64 LDA #$64 C2/2394: 20 65 4B JSR $4B65 (Random number 0 to 99) C2/2397: C5 EE CMP $EE (Clear Carry for Hit, Set it for Miss) C2/2399: 4C B3 22 JMP $22B3 Check if hit if Stamina involved C2/239C: B9 55 3B LDA $3B55,Y (255 - MBlock * 2 + 1) C2/239F: EB XBA C2/23A0: AD A8 11 LDA $11A8 (Hit Rate) C2/23A3: 20 81 47 JSR $4781 (Multiplication Function) C2/23A6: EB XBA C2/23A7: 85 EE STA $EE (Chance to hit = Product DIV 256. That simplifies to: Hit Rate * (128 - MBlock) / 128 .) C2/23A9: A9 64 LDA #$64 C2/23AB: 20 65 4B JSR $4B65 (Random Number 0 to 99) C2/23AE: C5 EE CMP $EE C2/23B0: B0 0C BCS $23BE (Attack misses, so exit) C2/23B2: 20 5A 4B JSR $4B5A (Random Number 0 to 255) C2/23B5: 29 7F AND #$7F (0 to 127) C2/23B7: 85 EE STA $EE C2/23B9: B9 40 3B LDA $3B40,Y (Stamina) C2/23BC: C5 EE CMP $EE (secondary Miss chance = (Stamina + 1) / 128 . iow, 127+ Stamina is perfect block rate.) C2/23BE: 60 RTS Dog/Golem/Equipment miss check C2/23BF: 5A PHY C2/23C0: AD A2 11 LDA $11A2 C2/23C3: 4A LSR C2/23C4: B0 01 BCS $23C7 (Branch if physical attack) C2/23C6: C8 INY (if it was magical, read from 3CE5,old_Y instead) C2/23C7: 7B TDC C2/23C8: B9 E4 3C LDA $3CE4,Y (shield/weapon miss animations) C2/23CB: 05 FE ORA $FE (miss due to Interceptor/Golem) C2/23CD: F0 1C BEQ $23EB (Exit function if none of above) C2/23CF: 20 2A 52 JSR $522A (Pick a random bit that is set) C2/23D2: 89 40 BIT #$40 C2/23D4: F0 03 BEQ $23D9 (Branch if no dog protection) C2/23D6: 8C 83 3A STY $3A83 (save character target in "Dog blocked" byte) C2/23D9: 89 20 BIT #$20 C2/23DB: F0 03 BEQ $23E0 (Branch if no Golem protection) C2/23DD: 8C 82 3A STY $3A82 (save character target in "Golem blocked" byte) C2/23E0: 20 F0 51 JSR $51F0 (X = position of highest [and only] bit that is set) C2/23E3: 98 TYA C2/23E4: 4A LSR C2/23E5: A8 TAY (Y = Y DIV 2, so it won't matter if Y was incremented above. it now holds a 0-3 character #.) C2/23E6: 8A TXA C2/23E7: 1A INC C2/23E8: 99 AA 00 STA $00AA,Y (save the dodge animation type for this character) C2/23EB: 7A PLY C2/23EC: 60 RTS (Initialize many things. Called at battle start.) C2/23ED: 08 PHP C2/23EE: C2 30 REP #$30 (Set 16-bit A, X, & Y) C2/23F0: A2 58 02 LDX #$0258 C2/23F3: 9E 20 3A STZ $3A20,X C2/23F6: 9E 7A 3C STZ $3C7A,X C2/23F9: CA DEX C2/23FA: CA DEX C2/23FB: 10 F6 BPL $23F3 C2/23FD: 7B TDC C2/23FE: 3A DEC C2/23FF: A2 0E 0A LDX #$0A0E C2/2402: 9D 00 20 STA $2000,X C2/2405: 9D 10 2A STA $2A10,X C2/2408: CA DEX C2/2409: CA DEX C2/240A: 10 F6 BPL $2402 C2/240C: 9C 44 2F STZ $2F44 C2/240F: 9C 4C 2F STZ $2F4C (clear list of entities to be removed from battlefield) C2/2412: 9C 4E 2F STZ $2F4E (clear list of entities to enter battlefield) C2/2415: 9C 53 2F STZ $2F53 (clear list of visually flipped entities) C2/2418: 64 B0 STZ $B0 C2/241A: 64 B2 STZ $B2 C2/241C: A2 02 26 LDX #$2602 C2/241F: A0 18 30 LDY #$3018 C2/2422: A9 1B 00 LDA #$001B C2/2424: 54 7E C2 MVN #$C2,7E (copy C2/2602 - C2/261D to 7E/3018 - 7E/3033. unique bits identifying entities, and starting addresses of characters' Magic menus) C2/2427: AD 11 E0 LDA $11E0 C2/242B: C9 D7 01 CMP #$01D7 (Check for Short Arm, Long arm, Face formation) C2/242E: E2 30 SEP #$30 (Set 8-bit A, X & Y) C2/2430: D0 03 BNE $2435 (branch if it's not 1st tier of final 4-tier multi-battle) C2/2432: 9C E0 3E STZ $3EE0 (zero byte to indicate that we're in the final 4-tier multi-battle) C2/2435: A2 13 LDX #$13 C2/2437: BD C9 1D LDA $1DC9,X C2/243A: 9D B4 3E STA $3EB4,X C2/243D: CA DEX C2/243E: 10 F7 BPL $2437 C2/2440: AD 1E 02 LDA $021E (1-60 frame counter) C2/2443: 0A ASL C2/2444: 0A ASL (* 4, so it's now 4, 8, 12, ... , 236, 240) C2/2445: 85 BE STA $BE (Save as RNG Table index) C2/2447: 20 E8 30 JSR $30E8 (Loads battle formation data) C2/244A: 20 2F 2F JSR $2F2F (load some character properties, and set up special event for formation or for possible Gau Veldt return) C2/244D: A9 80 LDA #$80 C2/244F: 1C BB 3E TRB $3EBB C2/2452: A9 91 LDA #$91 C2/2454: 1C BC 3E TRB $3EBC (clear event bits indicating battle ended in loss, Warp/escape, or full-party Engulfing) C2/2457: A2 12 LDX #$12 C2/2459: 20 5A 4B JSR $4B5A (random: 0 to 255) C2/245C: 9D F0 3A STA $3AF0,X (Store it. This randomization serves to stagger when entities get periodic damage/healing from Seizure, Regen, Phantasm, Poison, or from being a Tentacle who's Seize draining.) C2/245F: A9 BC LDA #$BC C2/2461: EC E2 3E CPX $3EE2 (is this target Morphed?) C2/2464: D0 02 BNE $2468 (branch if not) C2/2466: 09 02 ORA #$02 C2/2468: 9D 04 32 STA $3204,X C2/246B: CA DEX C2/246C: CA DEX C2/246D: 10 EA BPL $2459 (iterate for all 10 entities) C2/246F: 20 44 25 JSR $2544 C2/2472: AD 4D 1D LDA $1D4D (from Configuration menu: Battle Mode, Battle Speed, Message Speed, and Command Set) C2/2475: 30 03 BMI $247A (branch if "Short" Command Set) C2/2477: 9C 2E 2F STZ $2F2E (otherwise, it's "Window") C2/247A: 89 08 BIT #$08 (is "Wait" Battle Mode set?) C2/247C: F0 03 BEQ $2481 (branch if not, meaning it's Active) C2/247E: EE 8F 3A INC $3A8F C2/2481: 29 07 AND #$07 (Isolate Battle Speed. Note that its actual value ranges from 0 to 5, but the menu choices the player sees are 1 thru 6.) C2/2483: 0A ASL C2/2484: 0A ASL C2/2485: 0A ASL C2/2486: 85 EE STA $EE (Battle Speed * 8) C2/2488: 0A ASL ('' * 16) C2/2489: 65 EE ADC $EE ('' * 24) C2/248B: 49 FF EOR #$FF C2/248D: 8D 90 3A STA $3A90 (= 255 - (Battle Speed * 24) ) (this variable is a multiplier which is used for slowing down enemies in the Battle Time Counter Function at C2/09D2. as you can see here and from experience, a Battle Speed of zero will leave enemies the fastest.) C2/2490: AD 4E 1D LDA $1D4E (from Configuration menu: Window Background #, Reequip, Sound, Cursor, and Gauge) C2/2493: 10 03 BPL $2498 (branch if the Gauge is not disabled) C2/2495: 9C 21 20 STZ $2021 (zero for gauge disabling [was set to FFh at C2/2402]) C2/2498: 9C 41 2F STZ $2F41 (clear "in a menu" flag) C2/249B: 20 6E 54 JSR $546E (Construct in-battle Item menu, equipment sub-menus, and possessed Tools bitfield, based off of equipped and possessed items.) C2/249E: 20 0C 58 JSR $580C (Construct Dance and Rage menus, and get number of known Blitzes and highest known SwdTech index) C2/24A1: 20 E1 2E JSR $2EE1 (Initialize some enemy presence variables, and load enemy names and stats) C2/24A4: 20 91 43 JSR $4391 (update status effects for all applicable entities) C2/24A7: 20 9B 06 JSR $069B (Do various responses to three mortal statuses) C2/24AA: A9 14 LDA #$14 C2/24AC: 8D AF 11 STA $11AF (treat attacker level as 20 for purpose of initializing Condemned counters) C2/24AF: 20 3F 08 JSR $083F C2/24B2: 20 B9 4A JSR $4AB9 (Update lists and counts of present and/or living characters and monsters) C2/24B5: 20 3A 2E JSR $2E3A (Determine if front, back, pincer, or side attack) C2/24B8: 20 C9 26 JSR $26C9 (Give immunity to permanent statuses, and handle immunity to "mirror" statuses, for all entities.) C2/24BB: 20 68 2E JSR $2E68 (Disable Veldt return on all but Front attack, change rows or see if preemptive attack when applicable) C2/24BE: 20 75 25 JSR $2575 (Initialize ATB Timers) C2/24C1: A2 00 LDX #$00 (start off with no message about encounter) C2/24C3: AD 4B 2F LDA $2F4B (extra formation data, byte 3) C2/24C6: 89 04 BIT #$04 C2/24C8: D0 20 BNE $24EA (branch if "hide starting messages" set) C2/24CA: AD 1F 20 LDA $201F (get encounter type. 0 = front, 1 = back, 2 = pincer, 3 = side) C2/24CD: C9 01 CMP #$01 C2/24CF: D0 04 BNE $24D5 (branch if not back attack) C2/24D1: A2 23 LDX #$23 ("Back attack" message ID) C2/24D3: 80 15 BRA $24EA C2/24D5: C9 02 CMP #$02 C2/24D7: D0 04 BNE $24DD (branch if not pincer attack) C2/24D9: A2 25 LDX #$25 ("Pincer attack" message ID) C2/24DB: 80 0D BRA $24EA C2/24DD: C9 03 CMP #$03 C2/24DF: D0 02 BNE $24E3 (branch if not side attack) C2/24E1: A2 24 LDX #$24 ("Side attack" message ID) C2/24E3: A5 B0 LDA $B0 C2/24E5: 0A ASL C2/24E6: 10 02 BPL $24EA (branch if not preemptive attack) C2/24E8: A2 22 LDX #$22 ("Preemptive attack" message ID) C2/24EA: 9B TXY C2/24EB: F0 05 BEQ $24F2 (branch if no encounter message forthcoming) C2/24ED: A9 25 LDA #$25 (command which prepares text display) C2/24EF: 20 91 4E JSR $4E91 (queue it, in global Special Action queue) C2/24F2: 20 73 5C JSR $5C73 (Update Can't Escape, Can't Run, Run Difficulty, and onscreen list of enemy names, based on currently present enemies) C2/24F5: 20 54 5C JSR $5C54 (Copy ATB timer, Morph gauge, and Condemned counter to displayable variables) C2/24F8: 64 B8 STZ $B8 C2/24FA: 64 B9 STZ $B9 (clear targets, so any Jumps queued below will choose theirs randomly?) C2/24FC: A2 06 LDX #$06 C2/24FE: BD 18 30 LDA $3018,X C2/2501: 2C 2C 3F BIT $3F2C C2/2504: F0 16 BEQ $251C (branch if not Jumping) C2/2506: BD A0 3A LDA $3AA0,X C2/2509: 09 28 ORA #$28 C2/250B: 9D A0 3A STA $3AA0,X C2/250E: 9E 19 32 STZ $3219,X (zero top byte of ATB Timer) C2/2511: 20 77 4E JSR $4E77 (put character in action queue) C2/2514: A9 16 LDA #$16 C2/2516: 8D 7A 3A STA $3A7A (Jump command) C2/2519: 20 CB 4E JSR $4ECB (queue it, in entity's conventional queue) C2/251C: CA DEX C2/251D: CA DEX C2/251E: 10 DE BPL $24FE (loop for all 4 party members) C2/2520: AD E1 3E LDA $3EE1 C2/2523: 1A INC C2/2524: F0 19 BEQ $253F (branch if not one of last 3 tiers of final 4-tier multi-battle?) C2/2526: 3A DEC C2/2527: 8D 6F 2D STA $2D6F (second byte of first entry of ($76) buffer) C2/252A: A9 12 LDA #$12 C2/252C: 8D 6E 2D STA $2D6E (first byte of first entry of ($76) buffer) C2/252F: AD 75 3A LDA $3A75 (list of present and living enemies) C2/2532: 8D 71 2D STA $2D71 (fourth byte of first entry of ($76) buffer) C2/2535: A9 FF LDA #$FF C2/2537: 8D 70 2D STA $2D70 (third byte of first entry of ($76) buffer) C2/253A: 8D 72 2D STA $2D72 (first byte of second entry of ($76) buffer) C2/253D: A9 04 LDA #$04 C2/253F: 20 11 64 JSR $6411 (Execute animation queue) C2/2542: 28 PLP C2/2543: 60 RTS C2/2544: 20 51 55 JSR $5551 (Generate Lore menus based on known Lores, and generate Magic menus based on spells known by ANY character. upcoming C2/568D call will refine as needed.) C2/2547: A2 06 LDX #$06 C2/2549: BD D8 3E LDA $3ED8,X (Which character it is) C2/254C: 30 22 BMI $2570 (Branch if slot empty?) C2/254E: C9 10 CMP #$10 C2/2550: B0 05 BCS $2557 (branch if character # is above 10h) C2/2552: A8 TAY C2/2553: 8A TXA C2/2554: 99 00 30 STA $3000,Y (save 0, 2, 4, 6 party position of where this specific character is found) C2/2557: BD 18 30 LDA $3018,X C2/255A: 0C 8D 3A TSB $3A8D (save active characters in list which will be checked by battle ending code as pertains to Engulf) C2/255D: BD D9 3E LDA $3ED9,X (0-15 roster position of this party member) C2/2560: 22 77 0E C2 JSR $C20E77 (load equipment data for character in A) C2/2564: 20 6D 28 JSR $286D (Initialize in-battle character properties from equipment properties) C2/2567: 20 A8 27 JSR $27A8 (copy character's out of battle stats into battle stats, and mark out of battle and equipment statuses to be set) C2/256A: 20 8D 56 JSR $568D (Generate a character's Esper menu, blank out unknown spells from their Magic menu, and adjust spell and Lore MP costs based on equipped Relics.) C2/256D: 20 2C 53 JSR $532C (Change character commands when wearing MagiTek armor or visiting Fanatics' Tower, or based on Relics. Blank certain commands. Zero MP based on known commands/spells.) C2/2570: CA DEX C2/2571: CA DEX C2/2572: 10 D5 BPL $2549 (iterate for all 4 party members) C2/2574: 60 RTS (Initialize ATB Timers) C2/2575: 08 PHP C2/2576: 64 F3 STZ $F3 (zero General Incrementor) C2/2578: A0 12 LDY #$12 C2/257A: B9 A0 3A LDA $3AA0,Y C2/257D: 4A LSR C2/257E: B0 07 BCS $2587 (branch if entity is present in battle?) C2/2580: 18 CLC C2/2581: A9 10 LDA #$10 C2/2583: 65 F3 ADC $F3 C2/2585: 85 F3 STA $F3 (add 16 to $F3 [our General Incrementor] for each entity shy of the possible 10) C2/2587: 88 DEY C2/2588: 88 DEY C2/2589: 10 EF BPL $257A (loop for all 10 characters and monsters) C2/258B: C2 20 REP #$20 (Set 16-bit accumulator) C2/258D: A9 FF 03 LDA #$03FF (10 bits set, 10 possible entities in battle) C2/2590: 85 F0 STA $F0 C2/2592: A0 12 LDY #$12 C2/2594: A5 F0 LDA $F0 C2/2596: 20 2A 52 JSR $522A (randomly choose one of the 10 bits [targets]) C2/2599: 14 F0 TRB $F0 (and clear it, so it won't be used for subsequent iterations of loop) C2/259B: 20 F0 51 JSR $51F0 (X = bit # of the chosen bit, thus a 0-9 target #) C2/259E: E2 20 SEP #$20 (Set 8-bit accumulator) C2/25A0: 8A TXA C2/25A1: 0A ASL C2/25A2: 0A ASL C2/25A3: 0A ASL C2/25A4: 85 F2 STA $F2 (save [0..9] * 8 in our Specific Incrementor) (the result is that each entity is randomly assigned a different value for $F2: 0, 8, 16, 24, 32, 40, 48, 56, 64, 72) C2/25A6: B9 19 32 LDA $3219,Y (get top byte of ATB Timer) C2/25A9: 1A INC C2/25AA: D0 4E BNE $25FA (skip to next target if it wasn't FFh) C2/25AC: AD E1 3E LDA $3EE1 (FFh in every case, except for last 3 tiers of final 4-tier multi-battle?) C2/25AF: 1A INC C2/25B0: D0 48 BNE $25FA (skip to next target if one of those 3 tiers) C2/25B2: AE 1F 20 LDX $201F (get encounter type. 0 = front, 1 = back, 2 = pincer, 3 = side) C2/25B5: B9 18 30 LDA $3018,Y C2/25B8: 2C 40 3A BIT $3A40 (is target a character acting as enemy?) C2/25BB: D0 14 BNE $25D1 (branch if so) C2/25BD: C0 08 CPY #$08 C2/25BF: B0 10 BCS $25D1 (branch if target is a monster) C2/25C1: A5 B0 LDA $B0 C2/25C3: 0A ASL C2/25C4: 30 34 BMI $25FA (skip to next target if Preemptive Attack) C2/25C6: CA DEX (decrement encounter type) C2/25C7: 30 15 BMI $25DE (branch if front attack) C2/25C9: CA DEX C2/25CA: CA DEX C2/25CB: F0 2D BEQ $25FA (skip to next target if side attack) C2/25CD: A5 F2 LDA $F2 C2/25CF: 80 22 BRA $25F3 (it's a back or pincer attack) (go set top byte of ATB timer to $F2 + 1) C2/25D1: A5 B0 LDA $B0 (we'll reach here only if target is monster or character acting as enemy) C2/25D3: 0A ASL C2/25D4: 30 04 BMI $25DA (branch if Preemptive Attack) C2/25D6: E0 03 CPX #$03 (checking encounter type again) C2/25D8: D0 04 BNE $25DE (branch if not side attack) C2/25DA: A9 01 LDA #$01 C2/25DC: 80 15 BRA $25F3 (go set top byte of ATB timer to 2) C2/25DE: B9 19 3B LDA $3B19,Y (A = Speed) C2/25E1: 20 65 4B JSR $4B65 (random #: 0 to A - 1) C2/25E4: 79 19 3B ADC $3B19,Y (A = random: Speed to ((2 * Speed) - 1) ) C2/25E7: B0 08 BCS $25F1 (branch if exceeded 255) C2/25E9: 65 F2 ADC $F2 (add entity's Specific Incrementor, a 0,8,16,24,32,40,48,56,64,72 random boost) C2/25EB: B0 04 BCS $25F1 (branch if exceeded 255) C2/25ED: 65 F3 ADC $F3 (add our General Incrementor, (10 - number of valid entities) * 16 ) C2/25EF: 90 02 BCC $25F3 (branch if byte didn't exceed 255) C2/25F1: A9 FF LDA #$FF (if it overflowed, set it to FFh [255d]) C2/25F3: 1A INC C2/25F4: D0 01 BNE $25F7 C2/25F6: 3A DEC (so A is incremented if it was < FFh) C2/25F7: 99 19 32 STA $3219,Y (save top byte of ATB timer) C2/25FA: C2 20 REP #$20 C2/25FC: 88 DEY C2/25FD: 88 DEY C2/25FE: 10 94 BPL $2594 (loop for all 10 possible characters and monsters) C2/2600: 28 PLP C2/2601: 60 RTS Data to load into $3018 and $3019 - unique bits identifying entities C2/2602: 01 00 C2/2604: 02 00 C2/2606: 04 00 C2/2608: 08 00 C2/260A: 00 01 C2/260C: 00 02 C2/260E: 00 04 C2/2610: 00 08 C2/2612: 00 10 C2/2614: 00 20 Data - starting addresses of characters' Magic menus C2/2616: 8E 20 C2/2618: CA 21 C2/261A: 06 23 C2/261C: 42 24 C2/261E: 7B TDC (A = 0) C2/261F: A2 5F LDX #$5F C2/2621: 9D E4 3E STA $3EE4,X C2/2624: CA DEX C2/2625: 10 FA BPL $2621 (set $3EE4 through $3F43 to zero. this includes all four status bytes for all ten entities.) C2/2627: 3A DEC (A = 255) C2/2628: A2 0F LDX #$0F C2/262A: 9D D4 3E STA $3ED4,X C2/262D: CA DEX C2/262E: 10 FA BPL $262A (set $3ED4 through $3EE3 to FFh) C2/2630: A9 12 LDA #$12 C2/2632: 8D 28 3F STA $3F28 (tell Mimic last command was something other than Jump) C2/2635: 8D 24 3F STA $3F24 (Last command (second attack w/ Gem Box), for use by Mimic. indicate it as nonexistent.) C2/2638: 60 RTS (Clear animation buffer pointers, extra strike quantity, and various backup targets) C2/2639: 08 PHP C2/263A: 9C 72 3A STZ $3A72 (clear ($76) animation buffer pointer) C2/263D: 9C 70 3A STZ $3A70 (clear extra strike quantity -- iow, default to just one strike) C2/2640: C2 20 REP #$20 C2/2642: 9C 32 3A STZ $3A32 (clear ($78) animation buffer pointer) C2/2645: 9C 34 3A STZ $3A34 (clear simultaneous damage display buffer index?) C2/2648: 9C 30 3A STZ $3A30 (clear backup [and temporary Mimic] targets) C2/264B: 9C 4E 3A STZ $3A4E (clear fallback targets to beat on for multi-strike attacks when no valid targets left) C2/264E: 28 PLP C2/264F: 60 RTS (Turn Death immunity into Instant Death protection by moving it into another byte; otherwise, you'd be bloody immortal. If the Poison elemental is nullified, make immune to Poison status.) C2/2650: BD A1 3A LDA $3AA1,X C2/2653: 29 FB AND #$FB (Clear protection from "instant death") C2/2655: EB XBA C2/2656: BD 1C 33 LDA $331C,X (Blocked status byte 1) C2/2659: 30 06 BMI $2661 (Branch if not block death) C2/265B: 09 80 ORA #$80 (Clear block death) C2/265D: EB XBA C2/265E: 09 04 ORA #$04 (Set protection from "instant death") C2/2660: EB XBA C2/2661: EB XBA C2/2662: 9D A1 3A STA $3AA1,X C2/2665: BD CD 3B LDA $3BCD,X (Nullified elements) C2/2668: 89 08 BIT #$08 C2/266A: F0 04 BEQ $2670 (Branch if not nullify poison) C2/266C: EB XBA C2/266D: 29 FB AND #$FB (Set block poison status if yes) C2/266F: EB XBA C2/2670: EB XBA C2/2671: 9D 1C 33 STA $331C,X C2/2674: 60 RTS (Make some monster or equipment statuses permanent by setting immunity to them: Mute, Berserk, Muddled, Seizure, Regen, Slow, Haste, Shell, Safe, Reflect, Float * * If Float is only marked in Monster status byte 4, it won't be permanent [not to worry; no actual monsters do this]. Then if you're immune to one status in a "mutually exclusive" pair, make immune to the other. These "mirror status" pairs are Slow/Haste and Seizure/Regen.) C2/2675: BD 31 33 LDA $3331,X C2/2678: EB XBA (put blocked status byte 4 in top of A. note that blocked statuses = 0, susceptible ones = 1) C2/2679: BD 6D 3C LDA $3C6D,X (monster/equip status byte 3) C2/267C: 4A LSR C2/267D: 90 04 BCC $2683 (if perm-Float (aka Dance) wasn't set, branch) C2/267F: EB XBA C2/2680: 29 7F AND #$7F C2/2682: EB XBA (if it^ was, then block Float. thus the permanence.) C2/2683: AD BB 3E LDA $3EBB C2/2686: 89 04 BIT #$04 C2/2688: F0 04 BEQ $268E (branch if we're not in Phunbaba battle #4 [iow, Terra's second Phunbaba meeting]) C2/268A: EB XBA C2/268B: 29 F7 AND #$F7 (if we are, give immunity to Morph to make it permanent) C2/268D: EB XBA C2/268E: EB XBA C2/268F: 9D 31 33 STA $3331,X (update blocked status #4. note that blocked statuses = 0, susceptible ones = 1) C2/2692: BD 30 33 LDA $3330,X C2/2695: EB XBA C2/2696: BD 1D 33 LDA $331D,X (A.top=blocked status byte 3, A.bottom=blocked status #2) C2/2699: C2 20 REP #$20 C2/269B: 85 EE STA $EE C2/269D: BD 6C 3C LDA $3C6C,X (monster/equip status bytes 2-3) C2/26A0: 29 78 EE AND #$EE78 (Dance, Stop, Sleep, Condemned, Near Fatal, Image will all be 0) C2/26A3: 49 FF FF EOR #$FFFF (now they'll all be 1) C2/26A6: 25 EE AND $EE (SO Blocked Statuses = what you were blocking before, plus whatever the enemy/equip has. with the exception of the above, which will only be blocked if they were before.) C2/26A8: 89 00 02 BIT #$0200 C2/26AB: F0 05 BEQ $26B2 (if Regen blocked, branch) C2/26AD: 89 40 00 BIT #$0040 C2/26B0: D0 03 BNE $26B5 (if Seizure isn't blocked, branch) C2/26B2: 29 BF FD AND #$FDBF (SO if Regen or Seizure is blocked, block both. this explains Regen failing on Ribbon.) C2/26B5: E2 20 SEP #$20 C2/26B7: 9D 1D 33 STA $331D,X (update blocked status byte #2. we'll update byte #3 below.) C2/26BA: EB XBA (now examine #3) C2/26BB: 89 04 BIT #$04 C2/26BD: F0 04 BEQ $26C3 (if Slow blocked, branch) C2/26BF: 89 08 BIT #$08 C2/26C1: D0 02 BNE $26C5 (if Haste isn't blocked, branch) C2/26C3: 29 F3 AND #$F3 (SO if Slow or Haste is blocked, block 'em both. this explains Slow failing on RunningShoes.) C2/26C5: 9D D0 33 STA $3330,X (update blocked status byte #3) C2/26C8: 60 RTS C2/26C9: A2 12 LDX #$12 (start from 6th enemy) C2/26CB: 20 75 26 JSR $2675 C2/26CE: CA DEX C2/26CF: CA DEX C2/26D0: 10 F9 BPL $26CB (and do Function $2675 for everybody in the battle) C2/26D2: 60 RTS (Load command and attack/sub-command data) (When called: A Low = Command (generally from $B5 or $3A7C) A High = Attack/Sub-command (generally from $B6 or $3A7D) ) C2/26D3: DA PHX C2/26D4: 5A PHY C2/26D5: 48 PHA C2/26D6: 64 BA STZ $BA C2/26D8: A2 40 LDX #$40 C2/26DA: 86 BB STX $BB (default to targeting byte just being Cursor Start on Enemy) C2/26DC: A2 00 LDX #$00 C2/26DE: C9 1E CMP #$1E C2/26E0: B0 1F BCS $2701 (branch if command >= 1Eh , using default function pointer of 0) C2/26E2: AA TAX C2/26E3: BF 8A 27 C2 LDA $C2278A,X (get miscellaneous Command properties byte) C2/26E7: 48 PHA C2/26E8: 29 E1 AND #$E1 (isolate Abort on Characters, Randomize Target, beat on corpses if no valid targets left, and Exclude Attacker From Targets properties) C2/26EA: 85 BA STA $BA C2/26EC: A3 01 LDA $01,S C2/26EE: 29 18 AND #$18 (now check what will become Can Target Dead/Hidden Entities and Don't Retarget if Target Invalid) C2/26F0: 4A LSR C2/26F1: 04 BA TSB $BA C2/26F3: 8A TXA C2/26F4: 0A ASL C2/26F5: AA TAX (multiply command number by 2) C2/26F6: BF 01 FE CF LDA $CFFE01,X C2/26FA: 85 BB STA $BB (get the command's targeting from a table) C2/26FC: 68 PLA C2/26FD: 29 06 AND #$06 (two second lowest bits from C2/278A determine what function to call next) C2/26FF: AA TAX C2/2700: EB XBA (now get spell # or miscellaneous index.. ex- it might indicate the item Number) C2/2701: FC 82 27 JSR ($2782,X) C2/2704: 68 PLA C2/2705: 7A PLY C2/2706: FA PLX C2/2707: 60 RTS (Throw, Tools. Item calls $271A.) C2/2708: A2 04 LDX #$04 C2/270A: DF 78 27 C2 CMP $C22778,X (is the tool or skean one that uses a spell?) C2/270E: D0 06 BNE $2716 (if not, branch) C2/2710: FF 7D 27 C2 SBC $C2277D,X (if yes, subtract constant to determine its spell number) C2/2714: 80 37 BRA $274D (see, certain Tools and Skeans just load spells to do their work) (Bio Blaster will use spell 7D, Bio Blast Flash will use spell 7E, Flash Fire Skean will use spell 51h, Fire Skean Water Edge will use spell 52, Water Edge Bolt Edge will use spell 53, Bolt Edge ) C2/2716: CA DEX C2/2717: 10 F1 BPL $270A (iterate 5 times, provided we didn't jump out of the loop) C2/2719: 38 SEC (set Carry, for check at C2/18BD) C2/271A: 8D 11 34 STA $3411 (save item #) C2/271D: 20 63 2B JSR $2B63 (Multiply A by 30, size of item data block) C2/2720: C2 10 REP #$10 (Set 16-bit X and Y) C2/2722: AA TAX C2/2723: BF 0E 50 D8 LDA $D8500E,X (Targeting byte) C2/2727: 85 BB STA $BB C2/2729: BF 15 50 D8 LDA $D85015,X (Condition 1 when Item used) C2/272D: 89 C2 BIT #$C2 C2/272F: D0 04 BNE $2735 (Branch if Death, Zombie, or Petrify set) C2/2731: A9 08 LDA #$08 C2/2733: 14 BA TRB $BA (Clear Can Target Dead/Hidden Entities) C2/2735: BF 12 50 D8 LDA $D85012,X (equipment spell byte. Bits 0-5: spell # Bit 6: cast randomly after weapon strike [handled elsewhere, shouldn't apply here] Bit 7: 1 = remove from inventory upon usage, 0 = nope) C2/2739: E2 10 SEP #$10 (Set 8-bit X and Y) C2/273B: 60 RTS (Item) C2/273C: C9 E6 CMP #$E6 (Carry is set if item # >= 230, Sprint Shoes. i.e. it's Item type. Carry won't be set for Equipment Magic.) C2/273E: 20 1A 27 JSR $271A (get Targeting byte, and make slight modification to targeting if Item affects Wound/Zombie/Petrify. also, A = equipment spell byte) C2/2741: B0 C4 BCS $2707 (if it's a plain ol' Item, always deduct from inventory, and don't attempt to save the [meaningless] spell # or load spell data) C2/2743: 30 06 BMI $274B (branch if equipment gets used up when used for Item Magic. i'm not aware of any equipment this *doesn't* happen with, though the game supports it.) C2/2745: EB XBA (preserve equipment spell byte) C2/2746: A9 10 LDA #$10 C2/2748: 04 B1 TSB $B1 (set "don't deplete from Item inventory" flag) C2/274A: EB XBA C2/274B: 29 3F AND #$3F (isolate spell # cast by equipment) C2/274D: 8D 10 34 STA $3410 (Magic and numerous other commands enter here) C2/2750: 80 02 BRA $2754 (load spell data for [equipment] magic. note that we rely on that code keeping/making Carry clear.) C2/2752: A9 EE LDA #$EE (select Spell EEh - Battle) C2/2754: 20 66 29 JSR $2966 (go load spell data) C2/2757: A5 BB LDA $BB (targeting byte as read from $CFFE01 table?) C2/2759: 1A INC C2/275A: D0 05 BNE $2761 (branch if it wasn't FF.. if it was, it's null, so we use the spell byte instead) C2/275C: AD A0 11 LDA $11A0 (spell aiming byte) C2/275F: 85 BB STA $BB C2/2761: AD A2 11 LDA $11A2 C2/2764: 48 PHA C2/2765: 29 04 AND #$04 (Isolate bit 2. This spell bit is used for two properties: Bit 2 of $11A2 will be "Hit only (dead XOR undead) targets", and Bit 3 of $BA will be "Can Target Dead/Hidden entities".) C2/2767: 0A ASL C2/2768: 04 BA TSB $BA (Sets Can Target Dead/Hidden entities) C2/276A: A3 01 LDA $01,S (get $11A2 again) C2/276C: 29 10 AND #$10 (Randomize target) C2/276E: 0A ASL C2/276F: 0A ASL C2/2770: 04 BA TSB $BA (Sets randomize target) C2/2772: 68 PLA (get $11A2 again) C2/2773: 29 80 AND #$80 (Abort on characters) C2/2775: 04 BA TSB $BA (Sets abort on characters) C2/2777: 60 RTS (Data - item numbers of Tools and Skeans that use spells to do a good chunk of their work) C2/2778: A4 (Bio Blaster) C2/2779: A5 (Flash) C2/277A: AB (Fire Skean) C2/277B: AC (Water Edge) C2/277C: AD (Bolt Edge) (Data - constants we subtract from the above item #s to get the numbers of the spells they rely on) C2/277D: 27 C2/277E: 27 C2/277F: 5A C2/2780: 5A C2/2781: 5A Code Pointers (indexed by bits 1 and 2 of data values below) C2/2782: 52 27 (Fight, Morph, Revert, Steal, Capture, Runic, Sketch, Control, Leap, Mimic, Row, Def, Jump, GP Rain, Possess) C2/2784: 3C 27 (Item) C2/2786: 4D 27 (Magic, SwdTech, Blitz, Lore, Slot, Rage, Dance, X-Magic, Summon, Health, Shock, MagiTek) C2/2788: 08 27 (Throw, Tools) (Data - indexed by command # 0 thru 1Dh) C2/278A: 20 (Fight) C2/278B: 1A (Item) C2/278C: 04 (Magic) C2/278D: 18 (Morph) C2/278E: 18 (Revert) C2/278F: 00 (Steal) C2/2790: 20 (Capture) C2/2791: 24 (SwdTech) C2/2792: 06 (Throw) C2/2793: 06 (Tools) C2/2794: 04 (Blitz) C2/2795: 18 (Runic) C2/2796: 04 (Lore) C2/2797: 80 (Sketch) C2/2798: 80 (Control) C2/2799: 04 (Slot) C2/279A: 04 (Rage) C2/279B: 80 (Leap) C2/279C: 18 (Mimic) C2/279D: 04 (Dance) C2/279E: 18 (Row) C2/279F: 18 (Def) C2/27A0: 21 (Jump) C2/27A1: 04 (X-Magic) C2/27A2: 01 (GP Rain) C2/27A3: 04 (Summon) C2/27A4: 04 (Health) C2/27A5: 04 (Shock) C2/27A6: 81 (Possess) C2/27A7: 04 (MagiTek) (Copy character's out of battle stats into their battle stats, and mark out of battle and equipment statuses to be set) C2/27A8: 08 PHP C2/27A9: C2 30 REP #$30 (Set 16-bit Accumulator & Index Registers) C2/27AB: BC 10 30 LDY $3010,X (get offset to character info block) C2/27AE: B9 09 16 LDA $1609,Y (get current HP) C2/27B1: 9D F4 3B STA $3BF4,X (HP) C2/27B4: B9 0D 16 LDA $160D,Y (get current MP) C2/27B7: 9D 08 3C STA $3C08,X (MP) C2/27BA: B9 0B 16 LDA $160B,Y (get maximum HP) C2/27BD: 20 3C 28 JSR $283C (get max HP after equipment/relic boosts) C2/27C0: C9 10 27 CMP #$2710 C2/27C3: 90 03 BCC $27C8 C2/27C5: A9 0F 27 LDA #$270F (if it was >= 10000, make it 9999) C2/27C8: 9D 1C 3C STA $3C1C,X (Max HP) C2/27CB: B9 0F 16 LDA $160F,Y (get maximum MP) C2/27CE: 20 3C 28 JSR $283C (get max MP after equipment/relic boosts) C2/27D1: C9 E8 03 CMP #$03E8 C2/27D4: 90 03 BCC $27D9 C2/27D6: A9 E7 03 LDA #$03E7 (if it was >= 1000, make it 999) C2/27D9: 9D 30 3C STA $3C30,X (Max MP) C2/27DC: BD 18 30 LDA $3018,X (Holds $01 for character 1, $02 for character 2, $04 for character 3, $08 for character 4) C2/27DF: 24 B8 BIT $B8 (is this character a Colosseum combatant [indicated by C2/2F2F turning on Bit 0, as the Colosseum fighter is always Character 1] , or was he/she installed by a special event?) C2/27E1: F0 15 BEQ $27F8 (branch if neither) C2/27E3: BD 1C 3C LDA $3C1C,X (Max HP) C2/27E6: 9D F4 3B STA $3BF4,X (copy to Current HP) C2/27E9: BD 30 3C LDA $3C30,X (Max MP) C2/27EC: 9D 08 3C STA $3C08,X (copy to Current MP) C2/27EF: B9 14 16 LDA $1614,Y (outside battle statuses 1 and 2. from tashibana doc) (^ statuses correspond to in-battle statuses 1 and 4) C2/27F2: 29 2D FF AND #$FF2D C2/27F5: 99 14 16 STA $1614,Y (remove Clear, Petrify, Death, Zombie) C2/27F8: BD 6C 3C LDA $3C6C,X (monster/equip status bytes 2-3) C2/27FB: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/27FD: 9D D5 3D STA $3DD5,X (Status to set byte 2) C2/2800: 4A LSR C2/2801: 90 08 BCC $280B (branch if Condemned not marked to be set) C2/2803: BD 04 32 LDA $3204,X C2/2806: 29 EF AND #$EF C2/2808: 9D 04 32 STA $3204,X (^ if it is going to be set, then turn off Bit 4) C2/280B: B9 14 16 LDA $1614,Y C2/280E: 9D D4 3D STA $3DD4,X (Status to set byte 1) C2/2811: 89 08 BIT #$08 C2/2813: F0 0A BEQ $281F (branch if not setting M-Tek) C2/2815: A9 1D LDA #$1D C2/2817: 8D 20 3F STA $3F20 (save MagiTek as default last command for Mimic) C2/281A: A9 83 LDA #$83 C2/281C: 8D 21 3F STA $3F21 (save Fire Beam as default last attack for Mimic) (if Gogo uses Mimic before any other character acts in a battle, he'll normally use Fight. all i can figure is that this code is here to make him use Fire Beam instead should anybody be found to be wearing MagiTek armor -- in the normal game, we can assume that if anybody's in armor, everybody [including Gogo] is in it.) C2/281F: B9 15 16 LDA $1615,Y (outside battle status 2. corresponds to in-battle status byte 4) C2/2822: 29 C0 AND #$C0 (only keep Dog Block and Float) C2/2824: EB XBA (get monster/equip status byte 3) C2/2825: 4A LSR (shift out the lowest bit - Dance) C2/2826: 90 04 BCC $282C (branch if Dance aka Permanent Float isn't set) C2/2828: EB XBA C2/2829: 09 80 ORA #$80 (turn on Float in status byte 4) C2/282B: EB XBA C2/282C: 0A ASL (shift monster/equip status byte 3 back up, zeroing the lowest bit) C2/282D: 9D E8 3D STA $3DE8,X (Status to set byte 3) C2/2830: EB XBA C2/2831: 9D E9 3D STA $3DE9,X (Status to set byte 4) C2/2834: B9 08 16 LDA $1608,Y C2/2837: 9D 18 3B STA $3B18,X (Level) C2/283A: 28 PLP C2/283B: 60 RTS (Apply percentage boost to HP or MP. Bit 14 set = 25% boost, Bit 15 set = 50% boost, Both of those bits set = 12.5% boost) C2/283C: DA PHX C2/283D: 0A ASL C2/283E: 2A ROL C2/283F: 85 EE STA $EE C2/2841: 2A ROL C2/2842: 2A ROL (Bit 15 is now in Bit 2, and Bit 14 is in Bit 1) C2/2843: 29 06 00 AND #$0006 (isolate Bits 1 and 2) C2/2846: AA TAX (and use them as function pointer) C2/2847: A5 EE LDA $EE C2/2849: 4A LSR C2/284A: 4A LSR C2/284B: 85 EE STA $EE (all that crazy shifting was equivalent to $EE = A AND 16383. gotta love Square. =] ) C2/284D: 7C 59 28 JMP ($2859,X) (Boost A by some fraction, if any) C2/2850: 7B TDC (enter here for A = 0 + $EE) C2/2851: 4A LSR (enter here for A = (A * 1/8) + $EE) C2/2852: 4A LSR (enter here for A = (A * 1/4) + $EE) C2/2853: 4A LSR (enter here for A = (A * 1/2) + $EE) C2/2854: 18 CLC C2/2855: 65 EE ADC $EE C2/2857: FA PLX C2/2858: 60 RTS Code Pointers C2/2859: 50 28 (A = A) (technically, A = $EE, but it's the same deal.) C2/285B: 52 28 (A = A + (A * 1/4) ) C2/285D: 53 28 (A = A + (A * 1/2) ) C2/285F: 51 28 (A = A + (A * 1/8) ) (A = 255 - (A * 2) + 1 If A was >= 128 to start with, then A = 1. If A was 0 to start with, then A ends up as 255.) C2/2861: 0A ASL C2/2862: 90 02 BCC $2866 C2/2864: A9 FF LDA #$FF C2/2866: 49 FF EOR #$FF C2/2868: 1A INC C2/2869: D0 01 BNE $286C C2/286B: 3A DEC C2/286C: 60 RTS (Initialize in-battle character properties from equipment properties. A lot of the equipment bytes in this function were explained in C2/0E77, C2/0F9A, and C2/10B2, so consult those functions. Terii's Offsets List at http://www.rpglegion.com/ff6/hack/offset2.txt is another great resource.) C2/286D: 0B PHD C2/286E: F4 00 11 PEA $1100 (Set direct page register 11 $1100) C2/2871: 2B PLD C2/2872: A5 C9 LDA $C9 ($11C9) C2/2874: C9 9F CMP #$9F (Moogle Suit in character's Armor slot?) C2/2876: D0 0B BNE $2883 (if not, branch) C2/2878: 8A TXA C2/2879: 0A ASL C2/287A: 0A ASL C2/287B: 0A ASL C2/287C: 0A ASL C2/287D: A8 TAY (Y = X * 16) C2/287E: A9 0A LDA #$0A C2/2880: 99 AE 2E STA $2EAE,Y (Use Mog's sprite) C2/2883: 8A TXA C2/2884: 4A LSR C2/2885: A8 TAY (Y = X DIV 2) C2/2886: A5 D8 LDA $D8 ($11D8) C2/2888: 29 10 AND #$10 C2/288A: 99 6E 2E STA $2E6E,Y (store Genji Glove effect. this variable is used in Bank C1, apparently to check for Genji Glove's presence when handling mid-battle equipment changes via the Item menu.) C2/288D: 18 CLC C2/288E: A5 A6 LDA $A6 ($11A6) C2/2890: 65 A6 ADC $A6 ($11A6) (add Vigor to itself) C2/2892: 90 02 BCC $2896 (branch if it's under 256) C2/2894: A9 FF LDA #$FF (else make it 255) C2/2896: 9D 2C 3B STA $3B2C,X (store Vigor * 2) C2/2899: A5 A4 LDA $A4 ($11A4) (Speed) C2/289B: 9D 2D 3B STA $3B2D,X C2/289E: 9D 19 3B STA $3B19,X C2/28A1: A5 A2 LDA $A2 ($11A2) (Stamina) C2/28A3: 9D 40 3B STA $3B40,X C2/28A6: A5 A0 LDA $A0 ($11A0) (Magic Power) C2/28A8: 9D 41 3B STA $3B41,X C2/28AB: A5 A8 LDA $A8 ($11A8) C2/28AD: 20 61 28 JSR $2861 C2/28B0: 9D 54 3B STA $3B54,X ( 255 - (Evade * 2) + 1 , capped at low of 1 and high of 255 ) C2/28B3: A5 AA LDA $AA ($11AA) C2/28B5: 20 61 28 JSR $2861 C2/28B8: 9D 55 3B STA $3B55,X ( 255 - (MBlock * 2) + 1 , capped at low of 1 and high of 255 ) C2/28BB: A5 CF LDA $CF ($11CF) C2/28BD: 14 D8 TRB $D8 ($11D8) (clear Genji Glove effect from "Battle Effects 2" if its bit was ON in $11CF [i.e. if both hands hold a weapon]. yes, this reeks of a bug. likely, they instead wanted the GG effect cleared only when one or zero hands held a weapon.) C2/28BF: A5 BC LDA $BC ($11BC) C2/28C1: 9D 6C 3C STA $3C6C,X (Equipment status byte 2) C2/28C4: A5 D4 LDA $D4 ($11D4) C2/28C6: 9D 6D 3C STA $3C6D,X (Equipment status byte 3) C2/28C9: A5 DC LDA $DC ($11DC) C2/28CB: 9D 71 3D STA $3D71,X (Amount to add to character's "Run Success" variable. has range of 2 thru 5. higher means that, on average, they can run away quicker from battle.) C2/28CE: A5 D9 LDA $D9 ($11D9) C2/28D0: 29 80 AND #$80 (undead bit from relic ring) C2/28D2: 09 10 ORA #$10 (always set Human for party members) C2/28D4: 9D 95 3C STA $3C95,X (save in "Special Byte 3") C2/28D7: A5 D5 LDA $D5 ($11D5) C2/28D9: 0A ASL (A = 0, raise attack dmg, double earring, hp+25%, hp+50, hp+12.5, mp+25, mp+50) (carry = mp+12.5) C2/28DA: EB XBA C2/28DB: A5 D6 LDA $D6 ($11D6) C2/28DD: 0C 6D 3A TSB $3A6D (combine with existing "Battle Effects 1" properties) C2/28E0: 0A ASL (carry = jump continously) C2/28E1: A5 D7 LDA $D7 ($11D7) C2/28E3: EB XBA C2/28E4: 6A ROR (Top half A [will be $3C45] = $11D7 = boost steal, single Earring, boost sketch, boost control, sniper sight, gold hairpin, economizer, vigor + 50% Bottom half [will be $3C44] = raise attack dmg, double Earring, hp+25%, hp+50%, hp+12.5%, mp+25%, mp+50%, jump continuously. The HP/MP bonuses were already read from $11D5 earlier, so they're essentially junk in $3C44. All that's read are Bits 0, 1, and 7.) C2/28E5: C2 20 REP #$20 (Set 16-bit Accumulator) C2/28E7: 9D 44 3C STA $3C44,X C2/28EA: A5 AC LDA $AC ($11AC) C2/28EC: 9D 68 3B STA $3B68,X ($3B68 = battle power for 1st hand, $3B69 = bat pwr for 2nd hand) C2/28EF: A5 AE LDA $AE ($11AE) C2/28F1: 9D 7C 3B STA $3B7C,X (hit rate) C2/28F4: A5 B4 LDA $B4 ($11B4) C2/28F6: 9D 34 3D STA $3D34,X (random weapon spellcast, for both hands) C2/28F9: A5 B0 LDA $B0 ($11B0) C2/28FB: 9D 90 3B STA $3B90,X (elemental properties of weapon) C2/28FE: A5 D8 LDA $D8 ($11D8) C2/2900: 89 08 00 BIT #$0008 (is Gauntlet bit set?) C2/2903: D0 05 BNE $290A C2/2905: A9 40 40 LDA #$4040 (if it's not, turn off 2-hand effect for both hands) C2/2908: 14 DA TRB $DA ($11DA) C2/290A: A5 DA LDA $DA ($11DA) C2/290C: 9D A4 3B STA $3BA4,X (save "Weapon effects") C2/290F: A5 BA LDA $BA ($11BA) C2/2911: 9D B8 3B STA $3BB8,X (bottom = Defense, top = Magic Defense) C2/2914: A9 FF FF LDA #$FFFF C2/2917: 9D 1C 33 STA $331C,X (Status Immunity Bytes 1 and 2: character is vulnerable to everything -- i.e. immune to nothing) (pointless instruction, as C2/291C immediately undoes it. should be "STA $3330,X" instead, as that byte is ignored, letting old immunities linger.) C2/291A: 45 D2 EOR $D2 ($11D2) (equipment immunities) C2/291C: 9D 1C 33 STA $331C,X (for Immunity Bytes 1-2, character is now vulnerable to whatever the equipment doesn't block) C2/291F: A5 B6 LDA $B6 ($11B6) C2/2921: 9D CC 3B STA $3BCC,X (bottom = absorbed elements, top = nullified elements) C2/2924: A5 B8 LDA $B8 ($11B8) C2/2926: 9D E0 3B STA $3BE0,X (bottom = weak elements, top = 50% resist elements) C2/2929: A5 BE LDA $BE ($11BE) C2/292B: 9D BC 3C STA $3CBC,X (bottom = special action for right hand, top = special action for left hand) C2/292E: A5 C6 LDA $C6 ($11C6) (item # of equipment in both hands) C2/2930: 9D A8 3C STA $3CA8,X C2/2933: A5 CA LDA $CA ($11CA) (item # of equipment in both relic slots) C2/2935: 9D D0 3C STA $3CD0,X C2/2938: A5 D0 LDA $D0 ($11D0) C2/293A: 9D E4 3C STA $3CE4,X (deals with weapon and shield animation for blocking magical and physical attacks) C2/293D: A5 D8 LDA $D8 ($11D8) C2/293F: 9D 58 3C STA $3C58,X (save "Battle Effects 2") C2/2942: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/2944: 1E 21 3A ASL $3A21,X (Bit X is set, where X is the actual character # of this onscreen character. corresponding bits are set in Items to see if they're equippable. shift out the top bit, as that corresponds to "heavy" merit awardable equipment and will be set below) C2/2947: 0A ASL C2/2948: 0A ASL C2/2949: 0A ASL (rotate "wearer can equip heavy armor" bit from Battle Effects 2 into carry bit) C2/294A: 7E 21 3A ROR $3A21,X (now put it in "character # for purposes of equipping" byte) C2/294D: 2B PLD C2/294E: 4C 50 26 JMP $2650 (deal with Instant Death protection, and Poison elemental nullification giving immunity to Poison status) (Load Magic Power / Vigor and Level) C2/2951: AD A2 11 LDA $11A2 C2/2954: 4A LSR C2/2955: BD 41 3B LDA $3B41,X (magic power [* 1.5]) C2/2958: 90 03 BCC $295D (Branch if not physical attack) C2/295A: BD 2C 3B LDA $3B2C,X (vigor [* 2]) C2/295D: 8D AE 11 STA $11AE C2/2960: 9C 89 3A STZ $3A89 (turn off random weapon spellcast) C2/2963: 4C 21 2C JMP $2C21 (Put attacker level [or Sketcher if applicable] in $11AF) (Load spell data) C2/2966: DA PHX C2/2967: 08 PHP C2/2968: EB XBA C2/2969: A9 0E LDA #$0E C2/296B: 20 81 47 JSR $4781 (length of spell data * spell #) C2/296E: C2 31 REP #$31 (Set 16-bit A, X, Y. Clear carry flag) C2/2970: 69 C0 6A ADC #$6AC0 (spells start at 46CC0 ROM offset, or C4/6AC0) C2/2973: AA TAX C2/2974: A0 A0 11 LDY #$11A0 C2/2977: A9 0D 00 LDA #$000D C2/297A: 54 7E C4 MVN #$C4,7E (copy 14 spell bytes into RAM) C2/297D: E2 20 SEP #$20 C2/297F: 0E A9 11 ASL $11A9 (multiply special effect by 2) C2/2982: 90 03 BCC $2987 C2/2984: 9C A9 11 STZ $11A9 (if it exceeded 255, make it 0) C2/2987: 28 PLP C2/2988: FA PLX C2/2989: 60 RTS (Loads command data, clears special effect, sets unblockable, sets Level to 0, sets Vigor/Mag. Pwr to 0) C2/298A: AD 7C 3A LDA $3A7C (get original command ID) C2/298D: 20 D3 26 JSR $26D3 (Load data for command [held in A.bottom] and, given the callers to this function, data of "Battle" spell) C2/2990: A9 20 LDA #$20 C2/2992: 0C A4 11 TSB $11A4 (Set Unblockable) C2/2995: 9C A9 11 STZ $11A9 (Clear special effects) C2/2998: 9C AF 11 STZ $11AF (Set Level to 0) C2/299B: 9C AE 11 STZ $11AE (Set Vigor / M. Power to 0) C2/299E: 60 RTS (Load weapon data into attack data. Also handles Offering, Sniper Sight, etc.) C2/299F: 08 PHP C2/29A0: BD 2C 3B LDA $3B2C,X C2/29A3: 8D AE 11 STA $11AE (Vigor * 2 / Magic Power) C2/29A6: 20 21 2C JSR $2C21 (Put attacker level [or Sketcher if applicable] in $11AF) C2/29A9: BD 45 3C LDA $3C45,X C2/29AC: 89 10 BIT #$10 C2/29AE: F0 05 BEQ $29B5 (If no Sniper Sight) C2/29B0: A9 20 LDA #$20 C2/29B2: 0C A4 11 TSB $11A4 (Sets Can't be Dodged) C2/29B5: A5 B6 LDA $B6 (get attack #) C2/29B7: C9 EF CMP #$EF C2/29B9: D0 0C BNE $29C7 (Branch if not Special) C2/29BB: BD E4 3E LDA $3EE4,X C2/29BE: 89 20 BIT #$20 (Check for Imp status) C2/29C0: D0 05 BNE $29C7 (if an Imp, branch) C2/29C2: A9 06 LDA #$06 C2/29C4: 8D 12 34 STA $3412 (will display a monster Special atop the screen, and attack will load its properties at C2/32F5) C2/29C7: 28 PLP C2/29C8: DA PHX C2/29C9: 66 B6 ROR $B6 (if carry was set going into function, this is an odd-numbered attack of sequence, related to $3A70.. top bit of $B6 will be used in animation: Clear = right hand, Set = left hand) C2/29CB: 10 01 BPL $29CE (if Carry wasn't set, branch and use right hand) C2/29CD: E8 INX (if it was, point to left weapon hand) C2/29CE: BD 68 3B LDA $3B68,X C2/29D1: 8D A6 11 STA $11A6 (Battle Power) C2/29D4: A9 62 LDA #$62 C2/29D6: 04 B3 TSB $B3 (turn off Always Critical and Gauntlet. Turn on ignore attacker row) C2/29D8: BD A4 3B LDA $3BA4,X C2/29DB: 29 60 AND #$60 (isolate "Same damage from back row" and "2-hand" properties) C2/29DD: 49 20 EOR #$20 (flip "Same damage from back row" to get "Damage affected by attacker row") C2/29DF: 14 B3 TRB $B3 (Bit 6 = 0 for Gauntlet [2-hand] and Bit 5 = 0 for "Damage affected by attacker row") C2/29E1: BD 90 3B LDA $3B90,X C2/29E4: 8D A1 11 STA $11A1 (Element) C2/29E7: BD 7C 3B LDA $3B7C,X C2/29EA: 8D A8 11 STA $11A8 (Hit Rate) C2/29ED: BD 34 3D LDA $3D34,X C2/29F0: 8D 89 3A STA $3A89 (random weapon spellcast) C2/29F3: BD BC 3C LDA $3CBC,X C2/29F6: 29 F0 AND #$F0 C2/29F8: 4A LSR C2/29F9: 4A LSR C2/29FA: 4A LSR C2/29FB: 8D A9 11 STA $11A9 (Special effect) C2/29FE: BD A8 3C LDA $3CA8,X (Get equipment in current hand) C2/2A01: 1A INC C2/2A02: 85 B7 STA $B7 (adjust and save as graphic index) C2/2A04: FA PLX C2/2A05: BD 58 3C LDA $3C58,X (Check for offering) C2/2A08: 4A LSR C2/2A09: 90 10 BCC $2A1B (Branch if no Offering) C2/2A0B: A9 20 LDA #$20 C2/2A0D: 0C A4 11 TSB $11A4 (Set Can't be dodged) C2/2A10: A9 40 LDA #$40 C2/2A12: 04 BA TSB $BA (Sets randomize target) C2/2A14: A9 02 LDA #$02 C2/2A16: 04 B2 TSB $B2 (Set no critical and ignore True Knight) C2/2A18: 9C 89 3A STZ $3A89 (Turn off random spellcast) C2/2A1B: AD A6 11 LDA $11A6 C2/2A1E: F0 16 BEQ $2A36 (Exit if 0 Battle Power) C2/2A20: E0 08 CPX #$08 C2/2A22: 90 12 BCC $2A36 (Exit if character) C2/2A24: A9 20 LDA #$20 C2/2A26: 3C E4 3E BIT $3EE4,X C2/2A29: F0 0B BEQ $2A36 (Exit if not Imp) C2/2A2B: 0A ASL C2/2A2C: 3C 95 3C BIT $3C95,X (Check for auto critical if Imp) C2/2A2F: D0 05 BNE $2A36 (If set then exit) C2/2A31: A9 01 LDA #$01 C2/2A33: 8D A6 11 STA $11A6 (Set Battle Power to 1) C2/2A36: 60 RTS (Item usage setup. Used for non-Magic: Items, Thrown objects, and Tools) (Going in: A = Item number. Carry flag = Command >= 2. It's set for Throw or Tools, but not plain Item.) C2/2A37: DA PHX C2/2A38: 08 PHP C2/2A39: 48 PHA C2/2A3A: DA PHX C2/2A3B: A2 0F LDX #$0F C2/2A3D: 9E A0 11 STZ $11A0,X (zero out all spell data -related bytes) C2/2A40: CA DEX C2/2A41: 10 FA BPL $2A3D C2/2A43: FA PLX C2/2A44: A9 21 LDA #$21 C2/2A46: 8D A2 11 STA $11A2 (Set to ignore defense, physical attack) C2/2A49: A9 22 LDA #$22 C2/2A4B: 8D A3 11 STA $11A3 (Set attack to retarget if target invalid/dead, not reflectable) C2/2A4E: A9 20 LDA #$20 C2/2A50: 8D A4 11 STA $11A4 (Set to unblockable) C2/2A53: 90 09 BCC $2A5E (branch if not Throw or Tools, i.e. plain Item) C2/2A55: BD 2C 3B LDA $3B2C,X (attacker Vigor [* 2]) C2/2A58: 8D AE 11 STA $11AE (Vigor * 2 or Magic Power) C2/2A5B: 20 21 2C JSR $2C21 (Put attacker level [or Sketcher if applicable] in $11AF) C2/2A5E: A3 01 LDA $01,S (get Item ID) C2/2A60: 20 63 2B JSR $2B63 (Multiply A by 30, size of item data block) C2/2A63: C2 10 REP #$10 (Set 16-bit X and Y) C2/2A65: AA TAX C2/2A66: BF 14 50 D8 LDA $D85014,X (Item "HP/MP affected", aka power) C2/2A6A: 8D A6 11 STA $11A6 C2/2A6D: BF 0F 50 D8 LDA $D8500F,X (Item's element) C2/2A71: 8D A1 11 STA $11A1 C2/2A74: B0 66 BCS $2ADC (branch if Throw or Tools) C2/2A76: A9 01 LDA #$01 C2/2A78: 1C A2 11 TRB $11A2 (Sets to magical attack) C2/2A7B: BF 1B 50 D8 LDA $D8501B,X (item special action) C2/2A7F: 0A ASL C2/2A80: B0 05 BCS $2A87 (Branch if top bit set, i.e. no action, usually FFh) C2/2A82: 69 90 ADC #$90 C2/2A84: 8D A9 11 STA $11A9 (Else store 90h + (action*2) in special effect) C2/2A87: C2 20 REP #$20 (set 16-bit accumulator) C2/2A89: BF 15 50 D8 LDA $D85015,X (Item conditions 1+2 when used) C2/2A8D: 8D AA 11 STA $11AA C2/2A90: BF 17 50 D8 LDA $D85017,X (Item conditions 3+4 when used) C2/2A94: 8D AC 11 STA $11AC C2/2A97: E2 20 SEP #$20 (Set 8-bit accumulator) C2/2A99: BF 13 50 D8 LDA $D85013,X (Get Item Properties) C2/2A9D: 85 FE STA $FE C2/2A9F: 06 FE ASL $FE (Does it manipulate 1/16th of actual values?) C2/2AA1: 90 05 BCC $2AA8 (If not ^, branch) C2/2AA3: A9 80 LDA #$80 C2/2AA5: 0C A4 11 TSB $11A4 (Set bit to take HP at fraction of spell byte 7) C2/2AA8: 06 FE ASL $FE C2/2AAA: 06 FE ASL $FE C2/2AAC: 90 05 BCC $2AB3 (If item doesn't remove status conditions, branch) C2/2AAE: A9 04 LDA #$04 C2/2AB0: 0C A4 11 TSB $11A4 (Set remove status spell bit) C2/2AB3: 06 FE ASL $FE C2/2AB5: 90 07 BCC $2ABE (Branch if "restore MP" item bit unset) C2/2AB7: A9 80 LDA #$80 C2/2AB9: 0C A3 11 TSB $11A3 (Set spell to concern MP) C2/2ABC: 04 FE TSB $FE (And automatically set "restore HP" in item properties, so MP-related items always try to give MP, not take it) C2/2ABE: 06 FE ASL $FE C2/2AC0: 90 05 BCC $2AC7 (Branch if "restore HP" (or restore MP) bit unset) C2/2AC2: A9 01 LDA #$01 C2/2AC4: 0C A4 11 TSB $11A4 (Set Heal spell bit) C2/2AC7: 06 FE ASL $FE C2/2AC9: 06 FE ASL $FE C2/2ACB: 90 05 BCC $2AD2 (Branch if Item doesn't reverse damage on undead) C2/2ACD: A9 08 LDA #$08 C2/2ACF: 0C A2 11 TSB $11A2 (Sets Invert Damage on Undead) C2/2AD2: AD AA 11 LDA $11AA C2/2AD5: 10 05 BPL $2ADC (Branch if not death attack) C2/2AD7: A9 0C LDA #$0C C2/2AD9: 0C A2 11 TSB $11A2 (Sets Invert Damage on Undead and Hit only (dead XOR undead) targets) C2/2ADC: A3 01 LDA $01,S C2/2ADE: C9 AE CMP #$AE (Item number 174 - Inviz Edge?) C2/2AE0: D0 07 BNE $2AE9 (branch if not) C2/2AE2: A9 10 LDA #$10 C2/2AE4: 0C AA 11 TSB $11AA (Set Clear effect to attack) C2/2AE7: 80 09 BRA $2AF2 C2/2AE9: C9 AF CMP #$AF (Item number 175 - Shadow Edge?) C2/2AEB: D0 05 BNE $2AF2 (branch if not) C2/2AED: A9 04 LDA #$04 C2/2AEF: 0C AB 11 TSB $11AB (Set Image effect to attack) (NOTE: special Inviz and Shadow Edge checks are needed because much code [including that at C2/2A89 that normally loads statuses] is skipped if we're doing Throw [or Tools]) C2/2AF2: BF 00 50 D8 LDA $D85000,X (Item type) C2/2AF6: 29 07 AND #$07 C2/2AF8: D0 1C BNE $2B16 (If item's not a Tool, branch) C2/2AFA: A9 20 LDA #$20 C2/2AFC: 1C A2 11 TRB $11A2 (Clears ignore defense) C2/2AFF: 1C A4 11 TRB $11A4 (Clears unblockable) C2/2B02: BF 15 50 D8 LDA $D85015,X C2/2B06: 8D A8 11 STA $11A8 (Get and store hit rate) C2/2B09: 7B TDC C2/2B0A: A3 01 LDA $01,S (get item #. number of first tool [NoiseBlaster] is A3h.) C2/2B0C: 38 SEC C2/2B0D: E9 A3 SBC #$A3 C2/2B0F: 29 07 AND #$07 (subtract 163 from item # and use bottom 3 bits to get a "tool number" of 0-7) C2/2B11: 0A ASL (multiply it by 2 to index table below) C2/2B12: AA TAX C2/2B13: FC 1A 2B JSR ($2B1A,X) (load Tool's miscellaneous effect) C2/2B16: 68 PLA C2/2B17: 28 PLP C2/2B18: FA PLX C2/2B19: 60 RTS Code pointers C2/2B1A: 2A 2B (Noise Blaster) C2/2B1C: 2F 2B (Bio Blaster) (do nothing) C2/2B1E: 2F 2B (Flash) (do nothing) C2/2B20: 30 2B (Chainsaw) C2/2B22: 53 2B (Debilitator) C2/2B24: 4D 2B (Drill) C2/2B26: 57 2B (Air Anchor) C2/2B28: 5D 2B (Autocrossbow) Noiseblaster effect C2/2B2A: A9 20 LDA #$20 C2/2B2C: 8D AB 11 STA $11AB (Set Muddled in attack data) C2/2B2F: 60 RTS Chainsaw effect C2/2B30: 20 5A 4B JSR $4B5A (random #: 0 to 255) C2/2B33: 29 03 AND #$03 C2/2B35: D0 16 BNE $2B4D (75% chance branch) C2/2B37: A9 08 LDA #$08 C2/2B39: 85 B6 STA $B6 (Animation) C2/2B3B: 9C A6 11 STZ $11A6 (Battle power) C2/2B3E: A9 80 LDA #$80 C2/2B40: 0C AA 11 TSB $11AA (Set death/wound status in attack data) C2/2B43: A9 10 LDA #$10 C2/2B45: 8D A4 11 STA $11A4 (Set stamina can block) C2/2B48: A9 02 LDA #$02 C2/2B4A: 0C A2 11 TSB $11A2 (Set miss if instant death protected) C2/2B4D: A9 20 LDA #$20 C2/2B4F: 0C A2 11 TSB $11A2 (Set ignore defense) C2/2B52: 60 RTS Debilitator Effect C2/2B53: A9 AC LDA #$AC C2/2B55: 80 02 BRA $2B59 (Set Debilitator effect) Air Anchor effect C2/2B57: A9 AE LDA #$AE (Add Air Anchor effect) C2/2B59: 8D A9 11 STA $11A9 C2/2B5C: 60 RTS Autocrossbow effect C2/2B5D: A9 40 LDA #$40 C2/2B5F: 0C A2 11 TSB $11A2 (Set no split damage) C2/2B62: 60 RTS Multiplies A by 30 C2/2B63: EB XBA C2/2B64: A9 1E LDA #$1E C2/2B66: 4C 81 47 JMP $4781 Magic Damage Calculation: Results: $11B0 = (Spell Power * 4) + (Level * Magic Power * Spell Power) / 32 (If Level of 0 is passed, $11B0 = Spell Power) NOTE: Unlike damage modification functions, this one does NOTHING to make sure damage doesn't exceed 65535. That means with a spell like Ultima, a character at level 99 who has reached 140+ Magic Power via Esper bonuses and equipment will do only triple-digit damage. C2/2B69: AD AF 11 LDA $11AF (Level) C2/2B6C: 85 E8 STA $E8 C2/2B6E: C9 01 CMP #$01 C2/2B70: 7B TDC (Clear 16-bit A) C2/2B71: AD A6 11 LDA $11A6 (Spell Power) C2/2B74: C2 20 REP #$20 (Set 16-bit Accumulator) C2/2B76: 90 02 BCC $2B7A (If Level > 0, Spell Power *= 4) C2/2B78: 0A ASL C2/2B79: 0A ASL C2/2B7A: 8D B0 11 STA $11B0 (Maximum Damage) C2/2B7D: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/2B7F: AD AE 11 LDA $11AE (Magic Power) C2/2B82: EB XBA C2/2B83: AD A6 11 LDA $11A6 (Spell Power) C2/2B86: 20 81 47 JSR $4781 (Multiplication Function: A = Magic Power * Spell Power) C2/2B89: 20 B7 47 JSR $47B7 (Multiplication Function 2: 24-bit $E8 = (Mag Pwr * Spell Power) * Level) C2/2B8C: A9 04 LDA #$04 C2/2B8E: C2 20 REP #$20 (Set 16-bit Accumulator) C2/2B90: 20 D1 0D JSR $0DD1 (Divide 24-bit Damage by 32. [note the division operates on 4 bytes] ) C2/2B93: 18 CLC C2/2B94: 6D B0 11 ADC $11B0 (Maximum Damage) C2/2B97: 8D B0 11 STA $11B0 (Maximum Damage) C2/2B9A: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/2B9C: 60 RTS Physical Damage Calculation: X = Determines if monster or player Results: For characters: If Gauntlet equipped with compatible weapon, G is 7/4; else, it's 1. Attack = (Battle Power * G) + (Vigor * 2). Vigor * 2 is capped at 255. $11B0 = Battle Power + ( (Level * Level * Attack) DIV 256 ) * 3/2 For monsters: Vigor is Random number 56 to 63 Attack = (Battle Power * 4) + Vigor $11B0 = (Level * Level * Attack) DIV 256 C2/2B9D: AD A2 11 LDA $11A2 (Check if magic attack) C2/2BA0: 4A LSR C2/2BA1: B0 03 BCS $2BA6 C2/2BA3: 4C 69 2B JMP $2B69 (Magical Damage Calculation) C2/2BA6: 08 PHP C2/2BA7: AD AF 11 LDA $11AF (attacker Level) C2/2BAA: 48 PHA (save it) C2/2BAB: 85 E8 STA $E8 C2/2BAD: 7B TDC C2/2BAE: AD A6 11 LDA $11A6 (Battle Power) C2/2BB1: C2 20 REP #$20 (Set 16-bit Accumulator) C2/2BB3: E0 08 CPX #$08 (If monster then Battle Power *= 4) C2/2BB5: 90 02 BCC $2BB9 C2/2BB7: 0A ASL C2/2BB8: 0A ASL C2/2BB9: 48 PHA C2/2BBA: A5 B2 LDA $B2 C2/2BBC: 89 00 40 BIT #$4000 C2/2BBF: D0 0C BNE $2BCD (If Gauntlet is not equipped, branch) C2/2BC1: A3 01 LDA $01,S (Battle Power *= 7/4) C2/2BC3: 4A LSR C2/2BC4: 18 CLC C2/2BC5: 63 01 ADC $01,S C2/2BC7: 4A LSR C2/2BC8: 18 CLC C2/2BC9: 63 01 ADC $01,S C2/2BCB: 83 01 STA $01,S C2/2BCD: 68 PLA C2/2BCE: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/2BD0: 6D AE 11 ADC $11AE (add Vigor * 2 if character, or Vigor if monster) C2/2BD3: EB XBA C2/2BD4: 69 00 ADC #$00 (add carry from the bottom byte of Attack into the top byte) C2/2BD6: EB XBA C2/2BD7: 20 B7 47 JSR $47B7 (get 16-bit "Attack" * 8-bit level, and put 24-bit product in Variables $E8 thru $EA) C2/2BDA: A5 E8 LDA $E8 C2/2BDC: 85 EA STA $EA (use top byte of result as temporary variable, since it's generally 0 anyway. to see why that's a bad idea, keep reading.) C2/2BDE: 68 PLA C2/2BDF: 85 E8 STA $E8 (get attacker level again) C2/2BE1: C2 20 REP #$20 (Set 16-bit Accumulator) C2/2BE3: A5 E9 LDA $E9 C2/2BE5: EB XBA (A = bottom two bytes of the first multiplication result.. typically, we'll always have zero in the top byte, so we can ignore it. but with a 255 Battle Power weapon, Gauntlet, and a character at Level 99 with 128 Vigor, that product WILL need 3 bytes. failure to use that top byte in our next multiplication means we'll lose a lot of damage. BUG!) C2/2BE6: 20 B7 47 JSR $47B7 (multiply 16-bit result of [Level * Attack] by our 8-bit level again, and put the new 24-bit product in Variables $E8 thru $EA. 16-bit A will hold the new product DIV 256.) C2/2BE9: 8D B0 11 STA $11B0 (Maximum Damage) C2/2BEC: E0 08 CPX #$08 (If Player then multiply $11B0 by 3/2) C2/2BEE: B0 2F BCS $2C1F (And add Battle Power) C2/2BF0: AD A6 11 LDA $11A6 (Battle Power) C2/2BF3: 29 FF 00 AND #$00FF C2/2BF5: 0A ASL C2/2BF7: 6D B0 11 ADC $11B0 (Maximum Damage) C2/2BFA: 4A LSR C2/2BFB: 18 CLC C2/2BFC: 6D B0 11 ADC $11B0 (Maximum Damage) C2/2BFF: 8D B0 11 STA $11B0 (Maximum Damage) C2/2C02: BD 58 3C LDA $3C58,X C2/2C05: 4A LSR C2/2C06: 90 03 BCC $2C0B (Check for offering) C2/2C08: 4E B0 11 LSR $11B0 (Halves damage) C2/2C0B: 89 08 00 BIT #$0008 C2/2C0E: F0 0F BEQ $2C1F (Check for Genji Glove) C2/2C10: AD B0 11 LDA $11B0 (Maximum Damage) C2/2C13: 4A LSR C2/2C14: 4A LSR C2/2C15: 49 FF FF EOR #$FFFF C2/2C18: 38 SEC C2/2C19: 6D B0 11 ADC $11B0 (Maximum Damage) C2/2C1B: 8D B0 11 STA $11B0 (Subtract 1/4 from Maximum Damage) C2/2C1F: 28 PLP C2/2C20: 60 RTS (Put attacker level [or Sketcher if applicable] in $11AF) C2/2C21: DA PHX C2/2C22: AD 17 34 LDA $3417 (get Sketcher) C2/2C25: 30 01 BMI $2C28 (branch if null) C2/2C27: AA TAX (if there's a valid Sketcher, use their Level for attack) C2/2C28: BD 18 3B LDA $3B18,X (attacker Level) C2/2C2B: 8D AF 11 STA $11AF (save one of above as attack's level) C2/2C2E: FA PLX C2/2C2F: 60 RTS (Load enemy name and stats) (Coming into function: A = Enemy Number. Y = in-battle enemy index, should be between 8 and 18d) (throughout this function, "main enemy" will mean the enemy referenced by the A and Y values that are initially passed to the function. "loop enemy" will mean the enemy currently referenced by the iterator of the loop that compares the main enemy to all other enemies in the battle.) C2/2C30: DA PHX C2/2C31: 08 PHP C2/2C32: C2 30 REP #$30 (16-bit accumulator and index registers) C2/2C34: 99 F9 1F STA $1FF9,Y (save 16-bit enemy number) C2/2C37: 99 A8 33 STA $33A8,Y (make another copy. this variable can change for characters due to Rage, but monsters don't Rage, so it should stay put for them.) C2/2C3A: 20 71 2D JSR $2D71 (read enemy command script. function explicitly preserves A and X, doesn't seem to touch Y.) C2/2C3D: 0A ASL C2/2C3E: 0A ASL C2/2C3F: 48 PHA C2/2C40: AA TAX (enemy number * 4. there are 4 bytes for steal+win slots) C2/2C41: BF 00 30 CF LDA $CF3000,X C2/2C45: 99 08 33 STA $3308,Y (enemy steal slots) C2/2C48: 68 PLA C2/2C49: 0A ASL (enemy number * 8) C2/2C4A: 48 PHA (save it) C2/2C4B: DA PHX (push enemy number * 4) C2/2C4C: 5A PHY (push 8-18 enemy index) C2/2C4D: AA TAX C2/2C4E: B9 F9 1F LDA $1FF9,Y (get enemy number) C2/2C51: 99 80 33 STA $3380,Y (Store it in the name structure. $3380 is responsible for the listing of enemy names in battle. Whatever reads from that structure ensures there's no duplicates -- e.g. if there's 2 Leafers, "Leafer" is just displayed once. And if the code below didn't have bugs, 2 *different* Mag Roaders would yield only one "Mag Roader" display, as it works in FF6j.) C2/2C54: 7B TDC C2/2C55: A8 TAY (Y = 0) C2/2C56: BF 50 C0 CF LDA $CFC050,X (enemy names) C2/2C5A: 99 F8 00 STA $00F8,Y (store name in temporary string) C2/2C5D: E8 INX C2/2C5E: E8 INX C2/2C5F: C8 INY C2/2C60: C8 INY C2/2C61: C0 08 00 CPY #$0008 C2/2C64: 90 F0 BCC $2C56 (loop until 8 characters of name are read) C2/2C66: A0 12 00 LDY #$0012 (point to last enemy in battle) C2/2C69: B9 F9 1F LDA $1FF9,Y (get number of enemy) C2/2C6C: 30 28 BMI $2C96 (if 16-bit enemy number is negative, no enemy in slot, so skip it) C2/2C6E: 5A PHY C2/2C6F: 0A ASL C2/2C70: 0A ASL C2/2C71: 0A ASL C2/2C72: AA TAX (enemy # * 8) C2/2C73: 7B TDC C2/2C74: A8 TAY (Y = 0) C2/2C75: B9 F8 00 LDA $00F8,Y C2/2C78: DF 50 C0 CF CMP $CFC050,X (compare name in temporary string to name of loop enemy) C2/2C7C: 18 CLC C2/2C7D: D0 09 BNE $2C88 (if they're not equal, exit loop) C2/2C7F: E8 INX C2/2C80: E8 INX C2/2C81: C8 INY C2/2C82: C8 INY C2/2C83: C0 08 00 CPY #$0008 C2/2C86: 90 ED BCC $2C75 (compare all the 1st 8 characters of the names as long as they keep matching) C2/2C88: 7A PLY (Y points to in-battle index of loop enemy) C2/2C89: 90 0B BCC $2C96 (if we exited string comparison early, the names don't match, so branch) C2/2C8B: A3 01 LDA $01,S C2/2C8D: AA TAX (retrieve in-battle enemy index passed to function) C2/2C8E: B9 F9 1F LDA $1FF9,Y (number of loop enemy) C2/2C91: 9D 80 33 STA $3380,X (If the strings did match, store enemy # of loop enemy in the "name structure", at the position of the main enemy.) This way, all enemies with the same name are represented by the same enemy # in $3380. Whatever mechanism displays the $3380 structure must "detect" duplicate enemy numbers to avoid listing duplicate enemy names. Sadly, none of this works. Enemy names were 8 characters in FF6j according to Lord J, but 10 characters in FF3us, and this function was unchanged. This means differing enemies with the same name (like Mag Roader) will have duplicate listings. Also, you can make an enemy name be wrongly OMITTED thru clever renaming and grouping of enemies (try giving Enemy #0 and #4 the same name -- e.g. "gangster" -- and put Enemy #0 and #5 in a formation together) or really bad luck. A patch for this function has been released; see http://masterzed.cavesofnarshe.com/ ) C2/2C94: 80 07 BRA $2C9D (we had a match, so exit the crazy loop) C2/2C96: 88 DEY C2/2C97: 88 DEY C2/2C98: C0 08 00 CPY #$0008 C2/2C9B: B0 CC BCS $2C69 (loop and compare string to all enemies in battle) C2/2C9D: 7A PLY (retrieve initial 8-18 enemy index) C2/2C9E: FA PLX (retrieve initial Enemy Number * 4) C2/2C9F: 68 PLA (retrieve initial Enemy Number * 8) C2/2CA0: 0A ASL C2/2CA1: 0A ASL C2/2CA2: AA TAX (X = enemy # * 4 * 8. Monster data block at $CF0000 is 32 bytes) C2/2CA3: BF 05 00 CF LDA $CF0005,X (bottom = Defense, top = Magic Defense) C2/2CA7: 99 B8 3B STA $3BB8,Y C2/2CAA: BF 0C 00 CF LDA $CF000C,X (Experience) C2/2CAE: 99 84 3D STA $3D84,Y C2/2CB1: BF 0E 00 CF LDA $CF000E,X (GP) C2/2CB5: 99 98 3D STA $3D98,Y C2/2CB8: AD 46 3A LDA $3A46 C2/2CBB: 30 27 BMI $2CE4 (test bit 7 of $3A47. branch if there was an enemy formation # switch, and it designates that the new enemies retain HP and Max HP from the current formation.) C2/2CBD: BF 0A 00 CF LDA $CF000A,X (Max MP) C2/2CC1: 99 08 3C STA $3C08,Y (copy to Current MP) C2/2CC4: 99 30 3C STA $3C30,Y (copy to Max MP) C2/2CC7: BF 08 00 CF LDA $CF0008,X (Max HP) C2/2CCB: 99 F4 3B STA $3BF4,Y (copy to Current HP) C2/2CCE: 99 1C 3C STA $3C1C,Y (copy to Max HP) C2/2CD1: AD D4 3E LDA $3ED4 (Battle formation) C2/2CD4: C9 CF 01 CMP #$01CF C2/2CD7: D0 0B BNE $2CE4 (Branch if not Doom Gaze's formation) C2/2CD9: 8C FA 33 STY $33FA (save which monster is Doom Gaze; was initially FFh) C2/2CDC: AD BE 3E LDA $3EBE (Doom Gaze's HP) C2/2CDF: F0 03 BEQ $2CE4 C2/2CE1: 99 F4 3B STA $3BF4,Y (Set current HP to Doom Gaze's HP) C2/2CE4: E2 21 SEP #$21 (Set 8-bit Accumulator) C2/2CE6: B9 1D 3C LDA $3C1D,Y (High byte of max HP) C2/2CE9: 4A LSR C2/2CEA: C9 19 CMP #$19 C2/2CEC: 90 02 BCC $2CF0 C2/2CEE: A9 17 LDA #$17 (Stamina = (Max HP / 512) + 16. If this number is greater than 40, then the monster's stamina is set to 40) C2/2CF0: 69 10 ADC #$10 C2/2CF2: 99 40 3B STA $3B40,Y (Stamina) C2/2CF5: BF 01 00 CF LDA $CF0001,X C2/2CF9: 99 68 3B STA $3B68,Y (Battle Power) C2/2CFC: BF 1A 00 CF LDA $CF001A,X C2/2D00: 99 A8 3C STA $3CA8,Y (Monster's regular weapon graphic) C2/2D03: BF 03 00 CF LDA $CF0003,X (Evade) C2/2D07: 20 61 28 JSR $2861 C2/2D0A: 99 54 3B STA $3B54,Y (255 - Evade * 2 + 1) C2/2D0D: BF 04 00 CF LDA $CF0004,X (MBlock) C2/2D11: 20 61 28 JSR $2861 C2/2D14: 99 55 3B STA $3B55,Y (255 - MBlock * 2 + 1) C2/2D17: BF 02 00 CF LDA $CF0002,X C2/2D1B: 99 7C 3B STA $3B7C,Y (Hit Rate) C2/2D1E: BF 10 00 CF LDA $CF0010,X C2/2D22: 99 18 3B STA $3B18,Y (Level) C2/2D25: BF 00 00 CF LDA $CF0000,X C2/2D29: 99 19 3B STA $3B19,Y (Speed) C2/2D2C: BF 07 00 CF LDA $CF0007,X (Magic Power) C2/2D30: 20 D6 47 JSR $47D6 (* 1.5) C2/2D33: 99 41 3B STA $3B41,Y (Magic Power) C2/2D36: BF 1E 00 CF LDA $CF001E,X (monster status byte 4 and miscellaneous properties) C2/2D3A: 29 82 AND #$82 (only keep Float and Enemy Runic) C2/2D3C: 19 4C 3E ORA $3E4C,Y C2/2D3F: 99 4C 3E STA $3E4C,Y (turn them on in Retort/Runic/etc byte) C2/2D42: BF 13 00 CF LDA $CF0013,X C2/2D46: 99 80 3C STA $3C80,Y (Special Byte 2) C2/2D49: 20 C1 2D JSR $2DC1 (load enemy elemental reactions, statuses and status protection, metamorph info, special info like human/undead/etc) C2/2D4C: BE A8 33 LDX $33A8,Y (get enemy number) C2/2D4F: BF C0 37 CF LDA $CF37C0,X (get Enemy Special Move graphic) C2/2D53: 99 81 3C STA $3C81,Y C2/2D56: E2 10 SEP #$10 C2/2D58: 20 99 2D JSR $2D99 (Carry will be set if the monster is present and has the "Attack First" attribute, clear otherwise) C2/2D5B: 7B TDC C2/2D5C: 6A ROR C2/2D5D: 04 B1 TSB $B1 (if Carry is set, turn on Bit 7 of $B1: Yielding to Monster(s) with "Attack First".) C2/2D5F: 20 5A 4B JSR $4B5A C2/2D62: 29 07 AND #$07 (random number: 0-7) C2/2D64: 18 CLC C2/2D65: 69 38 ADC #$38 (add 56) C2/2D67: 99 2C 3B STA $3B2C,Y (save monster Vigor as a random number from 56 to 63) C2/2D6A: BB TYX C2/2D6B: 20 50 26 JSR $2650 (deal with Instant Death protection, and Poison elemental nullification giving immunity to Poison status) C2/2D6E: 28 PLP C2/2D6F: FA PLX C2/2D70: 60 RTS Read command script at start of combat A = Monster number C2/2D71: DA PHX C2/2D72: 48 PHA C2/2D73: 08 PHP C2/2D74: C2 20 REP #$20 C2/2D76: 0A ASL C2/2D77: AA TAX C2/2D78: BF 00 84 CF LDA $CF8400,X (Monster command script pointers) C2/2D7C: 99 54 32 STA $3254,Y (Offset of main command script) C2/2D7F: AA TAX C2/2D80: E2 20 SEP #$20 C2/2D82: 20 43 1A JSR $1A43 (Read command script, up through an FEh or FFh command, advancing position in X) C2/2D85: 1A INC C2/2D86: D0 FA BNE $2D82 (If FFh wasn't the last thing read, we're not at end of main command script, so loop and read more) C2/2D88: BF 00 87 CF LDA $CF8700,X (Monster command scripts) C2/2D8C: 1A INC C2/2D8D: F0 06 BEQ $2D95 (if first byte of counterattack script is FFh, it's empty, so skip saving the index) C2/2D8F: C2 20 REP #$20 (Set 16-bit Accumulator) C2/2D91: 8A TXA C2/2D92: 99 68 32 STA $3268,Y (Offset of counterattack script) C2/2D95: 28 PLP C2/2D96: 68 PLA C2/2D97: FA PLX C2/2D98: 60 RTS C2/2D99: DA PHX C2/2D9A: BB TYX C2/2D9B: 20 A0 2D JSR $2DA0 C2/2D9E: FA PLX C2/2D9F: 60 RTS (Handle "Attack First" property for monster) (Also, returns Carry clear if Attack First unset, Carry set if it's set.) C2/2DA0: 18 CLC C2/2DA1: BD 80 3C LDA $3C80,X C2/2DA4: 89 02 BIT #$02 (is "Attack First" set in Misc/Special enemy byte?) C2/2DA6: F0 18 BEQ $2DC0 (if not, exit) C2/2DA8: BD A0 3A LDA $3AA0,X C2/2DAB: 89 01 BIT #$01 C2/2DAD: F0 11 BEQ $2DC0 (exit if enemy not present?) C2/2DAF: 09 08 ORA #$08 C2/2DB1: 9D A0 3A STA $3AA0,X C2/2DB4: 9E 19 32 STZ $3219,X (zero top byte of ATB Timer) C2/2DB7: A9 FF LDA #$FF C2/2DB9: 9D B5 3A STA $3AB5,X (max out top byte of enemy's Wait Timer, which means they'll spend essentially no time in the monster equivalent to a ready stance. normally, monsters do this by having a 0 "Time to Wait" in $322C, but since this function is doing things earlier and $322C is still FFh, we instead fill out the timer to meet the threshold.) C2/2DBC: 20 66 4E JSR $4E66 (put monster in the Wait to Attack queue) C2/2DBF: 38 SEC C2/2DC0: 60 RTS (Load monster's special attack, elemental properties, statuses, status immunities, Metamorph info, special properties like Human/Undead/Dies at MP=0 , etc) C2/2DC1: 08 PHP C2/2DC2: BF 1F 00 CF LDA $CF001F,X (Special attack) C2/2DC6: 99 2D 32 STA $322D,Y C2/2DC9: BF 19 00 CF LDA $CF0019,X (elemental weaknesses) C2/2DCD: 19 E0 3B ORA $3BE0,Y C2/2DD0: 99 E0 3B STA $3BE0,Y (add to existing weaknesses) C2/2DD3: BF 16 00 CF LDA $CF0016,X (blocked status byte 3) C2/2DD7: 49 FF EOR #$FF (invert it) C2/2DD9: 39 30 33 AND $3330,Y C2/2DDC: 99 30 33 STA $3330,Y (combine with whatever was already blocked) C2/2DDF: A9 FF LDA #$FF C2/2DE1: 39 31 33 AND $3331,Y C2/2DE4: 99 31 33 STA $3331,Y (block no additional statuses in byte 4) C2/2DE7: C2 20 REP #$20 (Set 16-bit Accumulator) C2/2DE9: BF 1B 00 CF LDA $CF001B,X (monster status bytes 1-2) C2/2DED: 99 D4 3D STA $3DD4,Y (copy into "status to set" bytes) C2/2DF0: BF 1D 00 CF LDA $CF001D,X (get monster status bytes 3-4) C2/2DF4: 48 PHA C2/2DF5: 29 01 00 AND #$0001 C2/2DF8: 4A LSR C2/2DF9: 6A ROR C2/2DFA: 03 01 ORA $01,S (this moves Byte 3,Bit 0 into Byte 4,Bit 7 position) (it turns out "Dance" in B3,b0 is permanent float, while B4,b7 is a dispellable float) C2/2DFC: 29 FE 84 AND #$84FE (filter out character stats like dog and rage) (in byte 4, only Float and Life 3 are kept) C2/2DFF: 99 E8 3D STA $3DE8,Y (put in "status to set") C2/2E02: 68 PLA C2/2E03: EB XBA (now swap enemy status bytes 3<->4 within A) C2/2E04: 4A LSR C2/2E05: 90 09 BCC $2E10 (if byte4, bit 0 (aka "Rage") had not been set, branch) C2/2E07: B9 58 3C LDA $3C58,Y C2/2E0A: 09 40 00 ORA #$0040 (Set True Knight effect?) C2/2E0D: 99 58 3C STA $3C58,Y C2/2E10: BF 1C 00 CF LDA $CF001C,X (monster status bytes 2-3) C2/2E14: 19 6C 3C ORA $3C6C,Y (this makes a copy of ^, used in procs like c2/2675) C2/2E17: 99 6C 3C STA $3C6C,Y C2/2E1A: BF 14 00 CF LDA $CF0014,X (blocked status bytes 1-2) C2/2E1E: 49 FF FF EOR #$FFFF (invert 'em) C2/2E21: 39 1C 33 AND $331C,Y C2/2E24: 99 1C 33 STA $331C,Y (add to existing blockages) C2/2E27: BF 17 00 CF LDA $CF0017,X (elements absorbed and nullified) C2/2E2B: 19 CC 3B ORA $3BCC,Y C2/2E2E: 99 CC 3B STA $3BCC,Y (add to existing absorptions and nullifications) C2/2E31: BF 11 00 CF LDA $CF0011,X C2/2E35: 99 94 3C STA $3C94,Y ($3C94 = Metamorph info $3C95 = Special Byte 3: Dies at 0 MP, No name, Human, Auto critical if Imp, Undead) C2/2E38: 28 PLP C2/2E39: 60 RTS (Determine if front, back, pincer, or side attack) C2/2E3A: AD 6D 3A LDA $3A6D C2/2E3D: 4A LSR C2/2E3E: 4A LSR (Put Back Guard effect into Carry) C2/2E3F: AD 48 2F LDA $2F48 (Get extra enemy formation data, byte 0, top half, inverted) C2/2E42: 90 0C BCC $2E50 (Branch if no Back Guard) C2/2E44: 89 B0 BIT #$B0 (Are Side, Back, or Normal attacks allowed?) C2/2E46: F0 02 BEQ $2E4A (If only Pincer or nothing[??] allowed, branch) C2/2E48: 29 B0 AND #$B0 (Otherwise, disable Pincer) C2/2E4A: 89 D0 BIT #$D0 (Are Side, Pincer, or Normal attacks allowed?) C2/2E4C: F0 02 BEQ $2E50 (If only Back or nothing[??] allowed, branch) C2/2E4E: 29 D0 AND #$D0 (Otherwise, disable Back) C2/2E50: 48 PHA C2/2E51: AD 76 3A LDA $3A76 (Number of present and living characters in party) C2/2E54: C9 03 CMP #$03 C2/2E56: 68 PLA C2/2E57: B0 06 BCS $2E5F (If 3 or more in party, branch) C2/2E59: 89 70 BIT #$70 (Are any of Normal, Back, or Pincer allowed?) C2/2E5B: F0 02 BEQ $2E5F (If only Side or nothing[??] allowed, branch) C2/2E5D: 29 70 AND #$70 (Otherwise, disable Side attack) C2/2E5F: A2 10 LDX #$10 C2/2E61: 20 47 52 JSR $5247 (Randomly choose attack type. If some fictional jackass masked them all, we enter an.. INFINITE LOOP!) C2/2E64: 8E 1F 20 STX $201F (Save encounter type: 0 = Front, 1 = Back, 2 = Pincer, 3 = Side) C2/2E67: 60 RTS (Disable Veldt return on all but Front attack, change character rows for Pincer/Back or see if preemptive attack for Front/Side, copy rows to graphics data) C2/2E68: AE 1F 20 LDX $201F (get encounter type: 0 = front, 1 = back, 2 = pincer, 3 = side) C2/2E6B: E0 00 CPX #$00 C2/2E6D: F0 05 BEQ $2E74 (if front attack, branch) C2/2E6F: A9 01 LDA #$01 C2/2E71: 1C E4 11 TRB $11E4 (mark Gau as not available to return from Veldt leap) C2/2E74: 8A TXA C2/2E75: 0A ASL C2/2E76: AA TAX (multiply encounter type by 2, so it acts as index into function pointers) C2/2E77: FC 93 2E JSR ($2E93,X) (Change rows for pincer and back, see if preemptive attack for front and side) C2/2E7A: A2 06 LDX #$06 C2/2E7C: DA PHX C2/2E7D: BD A1 3A LDA $3AA1,X C2/2E80: 29 20 AND #$20 (Isolate row: 0 = Front, 1 = Back) C2/2E82: 48 PHA C2/2E83: 8A TXA C2/2E84: 0A ASL C2/2E85: 0A ASL C2/2E86: 0A ASL C2/2E87: 0A ASL C2/2E88: AA TAX C2/2E89: 68 PLA C2/2E8A: 9D C5 2E STA $2EC5,X (copy row to Bit 5 of some graphics variable) C2/2E8D: FA PLX C2/2E8E: CA DEX C2/2E8F: CA DEX C2/2E90: 10 EA BPL $2E7C (iterate for all 4 characters) C2/2E92: 60 RTS (Pointers to functions that do stuff based on battle formation) C2/2E93: 9B 2E (Normal attack) C2/2E95: CE 2E (Back attack) C2/2E97: C1 2E (Pincer attack) C2/2E99: 9B 2E (Side attack) (Determines if a battle is a preemptive attack) (Preemptive attack chance = 1 in 8 for normal attacks, 7 in 32 for side attacks) (Gale Hairpin doubles chance) C2/2E9B: A5 B1 LDA $B1 C2/2E9D: 30 21 BMI $2EC0 (Exit function if bit 7 of $B1 is set. that is, if at least one active monster in the formation has the "Attack First" property.) C2/2E9F: AD 4B 2F LDA $2F4B (load formation data, byte 3) C2/2EA2: 89 04 BIT #$04 (is "hide starting messages" set?) C2/2EA4: D0 1A BNE $2EC0 (exit if so) C2/2EA6: 8A TXA (coming in, X is 0 [Front] or 6 [Side]) C2/2EA7: 0A ASL C2/2EA8: 0A ASL C2/2EA9: 09 20 ORA #$20 C2/2EAB: 85 EE STA $EE ($EE = $201F * 8 + #$20. so pre-emptive rate is #$20 or #$38.) C2/2EAD: AD 6D 3A LDA $3A6D C2/2EB0: 4A LSR C2/2EB1: 90 02 BCC $2EB5 (Branch if no Gale Hairpin equipped) C2/2EB3: 06 EE ASL $EE (Double chance of preemptive attack) C2/2EB5: 20 5A 4B JSR $4B5A (random number 0 to 255) C2/2EB8: C5 EE CMP $EE (compare it against pre-emptive rate) C2/2EBA: B0 04 BCS $2EC0 (Branch if random number >= $EE, meaning no pre-emptive strike) C2/2EBC: A9 40 LDA #$40 C2/2EBE: 04 B0 TSB $B0 (Set preemptive attack) C2/2EC0: 60 RTS (Sets all characters to front row for pincer attacks) C2/2EC1: A2 06 LDX #$06 C2/2EC3: A9 DF LDA #$DF C2/2EC5: 20 43 0A JSR $0A43 (Sets character X to front row, by clearing Bit 5 of $3AA1,X) C2/2EC8: CA DEX C2/2EC9: CA DEX C2/2ECA: 10 F7 BPL $2EC3 (iterate for all 4 characters) C2/2ECC: 80 0E BRA $2EDC (Switches characters' row placements for back attacks) C2/2ECE: A2 06 LDX #$06 C2/2ED0: BD A1 3A LDA $3AA1,X C2/2ED3: 49 20 EOR #$20 C2/2ED5: 9D A1 3A STA $3AA1,X (Toggle Row) C2/2ED8: CA DEX C2/2ED9: CA DEX C2/2EDA: 10 F4 BPL $2ED0 (iterate for all 4 characters) C2/2EDC: A9 20 LDA #$20 C2/2EDE: 04 B1 TSB $B1 (???) C2/2EE0: 60 RTS (Initialize some enemy presence variables, and load enemy names and stats) C2/2EE1: 08 PHP C2/2EE2: C2 10 REP #$10 (Set 16-bit X and Y) C2/2EE4: AD 45 3F LDA $3F45 (get enemy presence byte from monster formation data) C2/2EE7: A2 0A 00 LDX #$000A C2/2EEA: 0A ASL C2/2EEB: 0A ASL (move 6 relevant bits into top of byte, as there's only 6 possible enemies) C2/2EEC: 9E A8 3A STZ $3AA8,X (mark enemy as absent to start) C2/2EEF: 0A ASL C2/2EF0: 3E A8 3A ROL $3AA8,X ($3AA8 = 1 for present enemy, 0 for absent) C2/2EF3: CA DEX C2/2EF4: CA DEX C2/2EF5: 10 F5 BPL $2EEC (loop for all 6 enemies) C2/2EF7: AD 52 3F LDA $3F52 (get boss switches byte of monster formation data) C2/2EFA: 0A ASL C2/2EFB: 0A ASL (move 6 relevant bits into top of byte) C2/2EFC: 85 EE STA $EE C2/2EFE: A2 05 00 LDX #$0005 C2/2F01: A0 12 00 LDY #$0012 (Y = onscreen index of enemy, should be between 8 and 18d) C2/2F04: 7B TDC C2/2F05: 0E 73 3A ASL $3A73 (prepare to set next bit for which monsters are in template/formation. this is initialized to 0 at C2/23F3.) C2/2F08: 06 EE ASL $EE (get boss bit for current enemy) C2/2F0A: 2A ROL C2/2F0B: EB XBA (save boss bit in top of A) C2/2F0C: AD 97 3A LDA $3A97 (FFh in Colosseum, 00h elsewhere) C2/2F0F: 0A ASL (Carry = whether in Colosseum) C2/2F10: BD 46 3F LDA $3F46,X (get enemy number from monster formation data) C2/2F13: 90 05 BCC $2F1A (branch if not in Colosseum) C2/2F15: AD 06 02 LDA $0206 (enemy number, passed by Colosseum setup in Bank C3) C2/2F18: 80 04 BRA $2F1E (the Colosseum only supports enemies 0-255, so branch immediately to check the boss bit, since we know any enemy # > 256 is unacceptable.) C2/2F1A: C9 FF CMP #$FF C2/2F1C: D0 04 BNE $2F22 (branch if bottom byte of enemy # isn't 255. if it is 255, it might be empty.) C2/2F1E: EB XBA C2/2F1F: D0 07 BNE $2F28 (if the boss bit is set, the enemy slot's empty/unused, and we skip its stats. otherwise, it holds Pugs [or for Colosseum, it's the desired slot], and it's valid.) C2/2F21: EB XBA C2/2F22: 20 30 2C JSR $2C30 (load enemy name and stats) C2/2F25: EE 73 3A INC $3A73 (which monsters are in template/formation: turn on bit for the current enemy formation position) C2/2F28: 88 DEY C2/2F29: 88 DEY C2/2F2A: CA DEX C2/2F2B: 10 D7 BPL $2F04 (iterate for all 6 enemies) C2/2F2D: 28 PLP C2/2F2E: 60 RTS (At battle start, load some character properties, and set up special event if indicated by formation or if Leapt Gau is eligible to return) C2/2F2F: 08 PHP C2/2F30: C2 10 REP #$10 (Set 16-bit X & Y) C2/2F32: 64 FC STZ $FC (start off assuming 0 characters in party) C2/2F34: 64 B8 STZ $B8 C2/2F36: AD E0 3E LDA $3EE0 C2/2F39: D0 3A BNE $2F75 (branch if not in final 4-tier multi-battle) C2/2F3B: A2 00 00 LDX #$0000 (start looking at first character slot) C2/2F3E: A9 FF LDA #$FF C2/2F40: 9D D9 3E STA $3ED9,X C2/2F43: DD D8 3E CMP $3ED8,X (Which character it is) C2/2F46: D0 24 BNE $2F6C (if character # was actually defined, don't use the list to determine this character) C2/2F48: A0 00 00 LDY #$0000 C2/2F4B: B9 05 02 LDA $0205,Y (get 0-15 character roster position from preferred order list set pre-battle) C2/2F4E: C9 FF CMP #$FF C2/2F50: F0 14 BEQ $2F66 (if no character in slot, skip to next one) C2/2F52: EB XBA C2/2F53: A9 FF LDA #$FF C2/2F55: 99 05 02 STA $0205,Y (null out the entry from the pre-chosen list) C2/2F58: A9 25 LDA #$25 C2/2F5A: 20 81 47 JSR $4781 (multiply by 37, size of character info block) C2/2F5D: A8 TAY (Y is now index into roster info) C2/2F5E: B9 00 16 LDA $1600,Y (get actual character #) (can replace last 4 instructions with "JSR $30DE") C2/2F61: 9D D8 3E STA $3ED8,X (save Which Character it is) C2/2F64: 80 06 BRA $2F6C (we've found our party member, so exit loop, and move onto next party slot.) C2/2F66: C8 INY (check next character) C2/2F67: C0 0C 00 CPY #$000C C2/2F6A: 90 DF BCC $2F4B (loop for all 12 preferred character slots) C2/2F6C: E8 INX C2/2F6D: E8 INX C2/2F6E: E0 08 00 CPX #$0008 C2/2F71: 90 CB BCC $2F3E (loop for all 4 party members) C2/2F73: 80 64 BRA $2FD9 (since we're in the final battle, we know we're not in the Colosseum or on the Veldt, so skip those checks. also skip the party initialization loop at C2/2F8C.) C2/2F75: AE D4 3E LDX $3ED4 (Battle formation) C2/2F78: E0 3E 02 CPX #$023E (Shadow at Colosseum formation) C2/2F7B: 90 0F BCC $2F8C (if not ^ or Colosseum formation #575, branch) C2/2F7D: AD 08 02 LDA $0208 C2/2F80: 8D D8 3E STA $3ED8 (Set "Which Character this is" to our chosen combatant.) C2/2F83: A9 01 LDA #$01 C2/2F85: 04 B8 TSB $B8 (will be checked in C2/27A8) C2/2F87: CE 97 3A DEC $3A97 (set $3A97 to FFh. future checks will look at Bit 7 to determine we're in the Colosseum.) C2/2F8A: 80 4D BRA $2FD9 (we're in the Colosseum using a single character to fight, so skip the party initialization loop.) C2/2F8C: A0 0F 00 LDY #$000F C2/2F8F: B9 50 18 LDA $1850,Y (get character roster information) (Bit 7: 1 = party leader, as set in non-overworld areas Bit 6: main menu presence? Bit 5: row, 0 = front, 1 = back Bit 3-4: position in party, 0-3 Bit 0-2: which party in; 1-3, or 0 if none) C2/2F92: 85 FE STA $FE C2/2F94: 29 07 AND #$07 (isolate which party character is in. don't know why it takes 3 bits rather than 2.) C2/2F96: CD 6D 1A CMP $1A6D (compare to Which Party is Active, 1-3) C2/2F99: D0 12 BNE $2FAD (branch if not equal) C2/2F9B: 5A PHY C2/2F9C: E6 FC INC $FC (increment count of characters in active party) C2/2F9E: 7B TDC C2/2F9F: A5 FE LDA $FE C2/2FA1: 29 18 AND #$18 (isolate the position of character in party) C2/2FA3: 4A LSR C2/2FA4: 4A LSR C2/2FA5: AA TAX (convert to a 0,2,4,6 index) C2/2FA6: 20 DC 30 JSR $30DC (get ID of character in roster slot Y) C2/2FA9: 9D D8 3E STA $3ED8,X (save "which character it is") C2/2FAC: 7A PLY C2/2FAD: 88 DEY C2/2FAE: 10 DF BPL $2F8F (iterate for all 16 roster positions) C2/2FB0: AD DF 1E LDA $1EDF C2/2FB3: 89 08 BIT #$08 (is Gau enlisted and not Leapt?) C2/2FB5: D0 0C BNE $2FC3 (branch if so) C2/2FB7: AD 4B 3F LDA $3F4B (get monster index of enemy #6 in formation) C2/2FBA: 1A INC C2/2FBB: D0 06 BNE $2FC3 (branch if an enemy is in the slot. thankfully, there's no formation with Pugs [enemy #255] in Slot #6, as this code makes no distinction between that and a nonexistent enemy. one problem i noticed is that if you're in a Veldt battle where Gau's destined to return, the 6th Pugs will often be untargetable.) C2/2FBD: A5 FC LDA $FC (number of characters in party) C2/2FBF: C9 04 CMP #$04 C2/2FC1: 90 05 BCC $2FC8 (branch if less than 4) C2/2FC3: A9 01 LDA #$01 C2/2FC5: 1C E4 11 TRB $11E4 (clear Gau as being leapt and available to return on Veldt) C2/2FC8: A9 01 LDA #$01 C2/2FCA: 2C E4 11 BIT $11E4 (set when fighting on Veldt, Gau is Leapt, and he's available to return.) C2/2FCD: F0 0A BEQ $2FD9 (branch if unset) C2/2FCF: A9 0A LDA #$0A C2/2FD1: 8D 4A 2F STA $2F4A (extra enemy formation data, byte 2. store special event.) C2/2FD4: A9 80 LDA #$80 C2/2FD6: 0C 49 2F TSB $2F49 (extra enemy formation data, byte 1: activate special event) C2/2FD9: AD 49 2F LDA $2F49 C2/2FDC: 10 6C BPL $304A (if no special event active, branch) C2/2FDE: AD 4A 2F LDA $2F4A (special event number) C2/2FE1: EB XBA C2/2FE2: A9 18 LDA #$18 C2/2FE4: 20 81 47 JSR $4781 (multiply by 24 bytes to access data structure) C2/2FE7: AA TAX C2/2FE8: BF 00 FD D0 LDA $D0FD00,X (get first byte of formation special event data) C2/2FEC: 10 0C BPL $2FFA C2/2FEE: A0 06 00 LDY #$0006 C2/2FF1: A9 LDA #$FF C2/2FF3: 99 D8 3E STA $3ED8,Y (store null in Which Character it is) C2/2FF6: 88 DEY C2/2FF7: 88 DEY C2/2FF8: 10 F7 BPL $2FF1 (iterate for all 4 party members) C2/2FFA: A0 04 00 LDY #$0004 C2/2FFD: 5A PHY C2/2FFE: BF 04 FD D0 LDA $D0FD04,X (character we want to install) C2/3002: C9 FF CMP #$FF C2/3004: F0 3B BEQ $3041 (branch if undefined) C2/3006: 29 3F AND #$3F (isolate character to install in bottom 6 bits) C2/3008: A0 06 00 LDY #$0006 C2/300B: D9 D8 3E CMP $3ED8,Y (Which character is current party member) C2/300E: F0 13 BEQ $3023 (if one of characters in party already matches desired character to install, branch and exit loop) C2/3010: 88 DEY C2/3011: 88 DEY C2/3012: 10 F7 BPL $300B (iterate through all 4 party members) C2/3014: C8 INY C2/3015: C8 INY C2/3016: B9 D8 3E LDA $3ED8,Y (Which character it is) C2/3019: 1A INC C2/301A: F0 07 BEQ $3023 (if the current character is null, branch and exit loop) C2/301C: C0 06 00 CPY #$0006 C2/301F: 90 F3 BCC $3014 (loop through all 4 characters in party) C2/3021: 80 1E BRA $3041 (we couldn't find the desired character to install already present, nor a null slot to accomodate them, so skip to next entry in the battle event data.) C2/3023: B9 18 30 LDA $3018,Y C2/3026: 04 B8 TSB $B8 (will be checked in C2/27A8) C2/3028: C2 20 REP #$20 (Set 16-bit Accumulator) C2/302A: BF 04 FD D0 LDA $D0FD04,X (character we want to install) C2/302E: 99 D8 3E STA $3ED8,Y (save in Which Character it is) C2/3031: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/3033: A9 01 LDA #$01 (top byte of monster # is always 1) C2/3035: EB XBA C2/3036: BF 06 FD D0 LDA $D0FD06,X (get bottom byte of monster # from battle event data) C2/303A: C9 FF CMP #$FF (is our monster # 511, meaning it's null?) C2/303C: F0 03 BEQ $3041 (branch if so) C2/303E: 20 71 2D JSR $2D71 (read command script at start of combat. A = monster num) C2/3041: 7A PLY C2/3042: E8 INX C2/3043: E8 INX C2/3044: E8 INX C2/3045: E8 INX C2/3046: E8 INX C2/3047: 88 DEY C2/3048: D0 B3 BNE $2FFD C2/304A: A2 06 00 LDX #$0006 C2/304D: BD D8 3E LDA $3ED8,X (which character it is) C2/3050: C9 FF CMP #FF C2/3052: F0 7F BEQ $30D3 (Branch if none (unoccupied slot)) C2/3054: 0A ASL (check bit 7 of which character it is) C2/3055: B0 03 BCS $305A (if set, branch) C2/3057: FE A0 3A INC $3AA0,X (mark character as onscreen?) C2/305A: 0A ASL (check bit 6 of which character it is) C2/305B: 90 08 BCC $3065 (if unset, branch) C2/305D: 48 PHA (save shifted "Which Character" byte) C2/305E: BD 18 30 LDA $3018,X C2/3061: 0C 40 3A TSB $3A40 (mark character as acting as enemy) C2/3064: 68 PLA C2/3065: 4A LSR C2/3066: 4A LSR (original Which Character byte, except top 2 bits are zeroed) C2/3067: 9D D8 3E STA $3ED8,X C2/306A: A0 0F 00 LDY #$000F C2/306D: 5A PHY (save loop variable) C2/306E: 48 PHA (save Which Character) C2/306F: B9 50 18 LDA $1850,Y C2/3072: 29 20 AND #$20 (Isolate character row. clear if Front, set if Back.) C2/3074: 85 FE STA $FE C2/3076: 20 DC 30 JSR $30DC (get ID of character in roster slot Y) C2/3079: C3 01 CMP $01,S C2/307B: D0 51 BNE $30CE (skip character if ID of roster member doesn't match value of Which Character byte for this party slot) C2/307D: DA PHX (save 0,2,4,6 index of character) C2/307E: 48 PHA (save character ID) C2/307F: A5 FE LDA $FE C2/3081: 9D A1 3A STA $3AA1,X (save character row in Special Properties) C2/3084: BD D9 3E LDA $3ED9,X (should be FFh, unless a special event installed this character, in which case it'll hold their sprite #) C2/3087: 48 PHA C2/3088: A3 06 LDA $06,S (retrieve loop variable of 0 to 15) C2/308A: 9D D9 3E STA $3ED9,X (save our roster position #) C2/308D: 7B TDC C2/308E: 8A TXA (put onscreen character index in A) C2/308F: 0A ASL C2/3090: 0A ASL C2/3091: 0A ASL C2/3092: 0A ASL C2/3093: AA TAX C2/3094: 68 PLA C2/3095: C9 FF CMP #$FF (was there a valid sprite supplied by special event?) C2/3097: D0 03 BNE $309C (branch if so) C2/3099: B9 01 16 LDA $1601,Y (get character's current sprite from roster data) C2/309C: 9D AE 2E STA $2EAE,X (save battle sprite) C2/309F: 7B TDC C2/30A0: 68 PLA (retrieve character ID) C2/30A1: 9D C6 2E STA $2EC6,X C2/30A4: C9 0E CMP #$0E (is it Banon or higher? set Carry Flag accordingly) C2/30A6: C2 20 REP #$20 (Set 16-bit Accumulator) C2/30A8: 48 PHA (save character ID) C2/30A9: B9 02 16 LDA $1602,Y (1st two letters of character's name) C2/30AC: 9D AF 2E STA $2EAF,X C2/30AF: B9 04 16 LDA $1604,Y (middle two letters of character's name) C2/30B2: 9D B1 2E STA $2EB1,X C2/30B5: B9 06 16 LDA $1606,Y (last two letters of character's name) C2/30B8: 9D B3 2E STA $2EB3,X C2/30BB: FA PLX (get character ID) C2/30BC: B0 06 BCS $30C4 (if character # is >= 0Eh [Banon], then don't bother [properly] marking them for purposes of what can be equipped on whom) C2/30BE: 7B TDC (Clear Accumulator) C2/30BF: 38 SEC (set carry flag) C2/30C0: 2A ROL (move up a bit, starting with bottom) C2/30C1: CA DEX C2/30C2: 10 FC BPL $30C0 (move bit into position determined by actual # of character. so for Character #3, only Bit #3 is on) (the following, including the next 2 instructions, is still executed for Banon and up. seemingly, jibberish [the last 2 characters of the character name] is stored in that character's equippable items byte. i'm not sure why this is done, but the game does have a property on these characters that prevents you from equipping all sorts of random crap via the Item menu in battle.) C2/30C4: FA PLX (get onscreen 0,2,4,6 index of character) C2/30C5: 9D 20 3A STA $3A20,X (related to what characters item can be equipped on. should only be our basic 14.) C2/30C8: 98 TYA C2/30C9: 9D 10 30 STA $3010,X (save offset of character info block) C2/30CC: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/30CE: 68 PLA (retrieve Which Character byte) C2/30CF: 7A PLY (retrieve loop index) C2/30D0: 88 DEY C2/30D1: 10 9A BPL $306D (iterate for all 16 character info blocks in roster) C2/30D3: CA DEX C2/30D4: CA DEX C2/30D5: 30 03 BMI $30DA C2/30D7: 4C 4D 30 JMP $304D (iterate for all 4 party members) C2/30DA: 28 PLP C2/30DB: 60 RTS (Get ID of character in roster slot Y) C2/30DC: 98 TYA C2/30DD: EB XBA C2/30DE: A9 25 LDA #$25 (multiple by 37 bytes, size of character block) C2/30E0: 20 81 47 JSR $4781 C2/30E3: A8 TAY C2/30E4: B9 00 16 LDA $1600,Y (character ID, aka "Actor") C2/30E7: 60 RTS Loads battle formation data C2/30E8: 08 PHP C2/30E9: C2 30 REP #$30 (Set 16-bit A, X, & Y) C2/30EB: AD B9 3E LDA $3EB9 (from event bits, list of enabled formation interchanges -- that is, whether we'll be allowed to switch a formation that matches one in the "Formations to Change From" list to the corresponding one in the "Formations to Change To" list) C2/30EE: 85 EE STA $EE C2/30F0: A2 1C 00 LDX #$001C C2/30F3: A5 EE LDA $EE (is this potential interchange enabled?) C2/30F5: 10 10 BPL $3107 (branch if not) C2/30F7: BF 80 37 CF LDA $CF3780,X (read from list of Formations to Change From, which consists of 1C4h (SrBehemoth living), and 7 blank entries.) C2/30FB: CD E0 11 CMP $11E0 C2/30FE: D0 07 BNE $3107 (Branch if current battle formation isn't a match.) C2/3100: BF 82 37 CF LDA $CF3782,X (get corresponding entry from list of Formations to Change To, which consists of 1A8h (SrBehemoth undead), and 7 blank entries.) C2/3104: 8D E0 11 STA $11E0 (update the Battle formation) C2/3107: 06 EE ASL $EE C2/3109: CA DEX C2/310A: CA DEX C2/310B: CA DEX C2/310C: CA DEX C2/310D: 10 E4 BPL $30F3 (iterate 8 times) C2/310F: A9 00 80 LDA #$8000 C2/3112: 1C E0 11 TRB $11E0 (Clear highest bit of battle formation) C2/3115: F0 10 BEQ $3127 (Branch if not rand w/ next 3) C2/3117: E2 30 SEP #$30 C2/3119: 7B TDC C2/311A: 20 5A 4B JSR $4B5A (random: 0 to 255) C2/311D: 29 03 AND #$03 (0 to 3) C2/311F: C2 31 REP #$31 (set 16-bit A, X and Y. clear Carry) C2/3121: 6D E0 11 ADC $11E0 C2/3124: 8D E0 11 STA $11E0 (Add 0 to 3 to battle formation) C2/3127: AD D4 3E LDA $3ED4 (get First Battle Formation) C2/312A: 0A ASL C2/312B: AD E0 11 LDA $11E0 (get Current Battle formation) C2/312E: 90 03 BCC $3133 (branch if First Battle Formation was already defined, which it rarely is outside of multi-part battles like Veldt Cave SrBehemoths or Final Kefka's Tiers) C2/3130: 8D D4 3E STA $3ED4 (if it wasn't, copy Current Formation to it) C2/3133: 0A ASL C2/3134: 0A ASL C2/3135: AA TAX C2/3136: BF 02 59 CF LDA $CF5902,X (bytes 2-3 of extra enemy formation data) C2/313A: 8D 4A 2F STA $2F4A C2/313D: BF 00 59 CF LDA $CF5900,X (bytes 0-1 of extra enemy formation data) C2/3141: 49 F0 00 EOR #$00F0 (invert the top nibble of byte 0, which contains the attack formations masked -- Front, Back, Pincer, Side) C2/3143: 8D 48 2F STA $2F48 C2/3147: AD E0 11 LDA $11E0 C2/314A: 0A ASL C2/314B: 0A ASL C2/314C: 0A ASL C2/314D: 0A ASL C2/314E: 38 SEC C2/314F: ED E0 11 SBC $11E0 (A = Monster formation * 15) C2/3152: AA TAX C2/3153: 7B TDC C2/3154: A8 TAY C2/3155: BF 00 62 CF LDA $CF6200,X (Load Battle formation data) C2/3159: 99 44 3F STA $3F44,Y C2/315C: E8 INX C2/315D: E8 INX C2/315E: C8 INY C2/315F: C8 INY C2/3160: C0 10 00 CPY #$0010 C2/3163: 90 F0 BCC $3155 (copy all 16 bytes of data) C2/3165: 28 PLP C2/3166: 60 RTS Entity executes one largely unblockable hit on self C2/3167: A9 80 LDA #$80 C2/3169: 14 B3 TRB $B3 (Set Ignore Clear) C2/316B: A9 0C LDA #$0C C2/316D: 04 BA TSB $BA (Sets Can target dead/hidden entities, and Don't retarget if target invalid) C2/316F: 9C 1B 34 STZ $341B (enable attack to hit Jumpers) C2/3172: C2 20 REP #$20 C2/3174: BD 18 30 LDA $3018,X C2/3177: 85 B8 STA $B8 (Sets attacker as target) C2/3179: E2 20 SEP #$20 Entity Executes One Hit (Loops for Multiple-Strike Attack) C2/317B: DA PHX C2/317C: A5 BD LDA $BD C2/317E: 85 BC STA $BC (copy turn-wide Damage Incrementor to current Damage Incrementor) C2/3180: A9 FF LDA #$FF C2/3182: 8D 82 3A STA $3A82 (Null Golem block) C2/3185: 8D 83 3A STA $3A83 (Null Dog block) C2/3188: AD 00 34 LDA $3400 (Spell # for a second attack. Used by the Magicite item, weapons with normal addition magic [Flame Sabre, Pearl Lance, etc], and Tempest.) (Sketch also sets $3400, but the variable is swapped into $B6 by the Sketch command (C2/151F) rather than by this routine. Thus, $3400 will always be null at this point for Sketch.) C2/318B: 1A INC C2/318C: D0 25 BNE $31B3 (Branch if there is a spell [i.e. the spell # is not FFh]) C2/318E: AD 13 34 LDA $3413 (If Fight or Capture command, holds command number. [Note that Rage's Battle and Special also qualify as "Fight".] That way, if a spell is cast by a weapon for one strike (which will overwrite the command # and attack data), we'll be able to continue with the Fight/Capture command and use the weapon as normal on the next strike. If command isn't Fight or Capture, this holds FFh. ) C2/3191: 30 20 BMI $31B3 (branch if negative) C2/3193: 85 B5 STA $B5 (Restore command #) C2/3195: 20 D3 26 JSR $26D3 (Load data for command [held in A.bottom] and data of "Battle" spell) C2/3198: AD 70 3A LDA $3A70 (# of extra attacks - set by Quadra Slam, Dragon Horn, Offering, etc) C2/319B: 1A INC (add one. even number will check right hand, odd number the left. so in a Genji Glove+Offering sequence, for instance, we'd have: 8 = Right, 7 = Left, 6 = Right, 5 = Left, 4 = Right, 3 = Left, 2 = Right, then 1 = Left) C2/319C: 4A LSR (put bottommost bit of # attacks in carry flag) C2/319D: 20 9F 29 JSR $299F (Load weapon data into attack data. Plus Sniper Sight, Offering and more.) C2/31A0: AD A6 11 LDA $11A6 C2/31A3: D0 03 BNE $31A8 C2/31A5: 4C 75 32 JMP $3275 (branch if zero battle power, which can result from a hand without a weapon, among other things. Fight/Capture set the strike quantity to 2 -- or 8 if you have Offering -- regardless of whether you have Genji Glove. thus, when there's only 1 attack hand, this branch is what skips all the even or odd strikes corresponding to the other hand.) C2/31A8: A5 B5 LDA $B5 C2/31AA: C9 06 CMP #$06 C2/31AC: D0 05 BNE $31B3 (branch if command isn't Capture) C2/31AE: A9 A4 LDA #$A4 (Causes attack to also steal) C2/31B0: 8D A9 11 STA $11A9 (save special effect) C2/31B3: 20 EB 37 JSR $37EB (Set up weapon addition magic, Tempest's Wind Slash, and Espers summoned by the Magicite item) C2/31B6: A9 20 LDA #$20 C2/31B8: 14 B2 TRB $B2 (Bit 5 is set to begin a turn) C2/31BA: F0 05 BEQ $31C1 (branch if it was already clear -- in other words, if we're on the second strike or later of this turn.) C2/31BC: 2C A3 11 BIT $11A3 C2/31BF: D0 04 BNE $31C5 (Branch if Retarget if target invalid/dead) C2/31C1: A9 04 LDA #$04 C2/31C3: 04 BA TSB $BA (NOTE: in $BA, the bit now means *Don't* retarget if target dead/invalid) (To recap the above: if we're on the 1st strike, "Don't Retarget if no valid targets" will depend on the attack stats. If we're on a later strike, it always gets set. This explains why Genji Glove's [sans Offering] second strike will always smack the initial target, even if the first one killed it. However, most multi-strike attacks -- Offering, Dragon Horn, and Quadra Slam/Slice -- set "Randomize Target", which makes you retarget anyway.) C2/31C5: A5 B8 LDA $B8 C2/31C7: 05 B9 ORA $B9 C2/31C9: D0 08 BNE $31D3 (branch if at least one target exists) C2/31CB: A9 04 LDA #$04 C2/31CD: 24 B3 BIT $B3 (is it non Dead/Petrify/Zombie-affecting, non Magic-using Item/Tool/Throw?) C2/31CF: F0 02 BEQ $31D3 (branch if so) C2/31D1: 14 BA TRB $BA (clear "Don't retarget if target invalid".. iow, retarget if target invalid) C2/31D3: AD 15 34 LDA $3415 (will be zero for: the attack performed via Sketch, Umaro's Blizzard, Runic, Tempest's Wind Slash, and Espers summoned with the Magicite item) C2/31D6: 30 04 BMI $31DC (otherwise, it's FFh, so branch.) C2/31D8: A9 40 LDA #$40 C2/31DA: 04 BA TSB $BA (Set randomize targets) C2/31DC: A5 B3 LDA $B3 C2/31DE: 4A LSR C2/31DF: B0 08 BCS $31E9 (branch if Bit 0 of $B3 set. to my knowledge, it's only UNset by a failed Blitz input.) C2/31E1: A9 04 LDA #$04 C2/31E3: 04 BA TSB $BA (set Don't retarget if target invalid) C2/31E5: 64 B8 STZ $B8 C2/31E7: 64 B9 STZ $B9 (clear targets) C2/31E9: 20 66 36 JSR $3666 (Prepare attack name for display atop screen. Also load a few properties for Joker Dooms.) C2/31EC: AD 17 34 LDA $3417 C2/31EF: 30 01 BMI $31F2 (branch if Sketcher is null) C2/31F1: AA TAX (use Sketcher as attacker) C2/31F2: AD 7C 3A LDA $3A7C C2/31F5: C9 1E CMP #$1E (is original command Enemy Roulette?) C2/31F7: D0 08 BNE $3201 (branch if not) C2/31F9: 64 B8 STZ $B8 C2/31FB: 64 B9 STZ $B9 (clear targets) C2/31FD: A9 04 LDA #$04 C2/31FF: 85 BA STA $BA (Don't retarget if target invalid) C2/3201: AD A5 11 LDA $11A5 C2/3204: F0 1F BEQ $3225 (branch if 0 MP cost) C2/3206: BD E5 3E LDA $3EE5,X C2/3209: 89 08 BIT #$08 C2/320B: D0 0E BNE $321B (Branch if Mute) C2/320D: BD E4 3E LDA $3EE4,X C2/3210: 89 20 BIT #$20 (Check for Imp status) C2/3212: F0 11 BEQ $3225 (Branch if not ^) C2/3214: AD 10 34 LDA $3410 C2/3217: C9 23 CMP #$23 C2/3219: F0 0A BEQ $3225 (Branch if spell is Imp) C2/321B: 8A TXA C2/321C: 4A LSR C2/321D: EB XBA C2/321E: A9 0E LDA #$0E C2/3220: 20 BF 62 JSR $62BF C2/3223: 80 50 BRA $3275 C2/3225: 20 2B 35 JSR $352B (Runic function) C2/3228: 20 38 38 JSR $3838 (Check Air Anchor action death) C2/322B: 20 9D 2B JSR $2B9D (Damage Calculation) C2/322E: 20 4A 0D JSR $0D4A (Atlas Armlet / Earring) C2/3231: C2 20 REP #$20 (Set 16-bit Accumulator) C2/3233: 20 92 32 JSR $3292 C2/3236: AD A2 11 LDA $11A2 C2/3239: 4A LSR C2/323A: B0 07 BCS $3243 (Branch if physical attack. this rules out True Knight bodyguarding, which sets $A6 for its own purposes.) C2/323C: A5 A6 LDA $A6 (Reflected spell or Launcher/Super Ball special effect?) C2/323E: F0 03 BEQ $3243 (branch if not) C2/3240: 20 83 34 JSR $3483 (Super Ball, Launcher, and Reflected spells function) C2/3243: AD 30 3A LDA $3A30 (get backup targets) C2/3246: 85 B8 STA $B8 (copy to normal targets, for next strike) C2/3248: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/324A: 20 91 43 JSR $4391 (update statuses for everybody onscreen) C2/324D: 20 3E 36 JSR $363E (handle random addition magic for weapons, in preparation for next strike) C2/3250: AD 01 34 LDA $3401 C2/3253: C9 FF CMP #$FF (is there text to display for the command or attack?) C2/3255: F0 0B BEQ $3262 (branch if not) C2/3257: EB XBA C2/3258: A9 02 LDA #$02 C2/325A: 20 BF 62 JSR $62BF (queue display of text?) C2/325D: A9 FF LDA #$FF C2/325F: 8D 01 34 STA $3401 (no more text to display) C2/3262: AD A7 11 LDA $11A7 C2/3265: 89 02 BIT #$02 C2/3267: F0 0C BEQ $3275 (if there's no text if spell hits, branch) C2/3269: E0 08 CPX #$08 C2/326B: 90 08 BCC $3275 (if attacker isn't monster, branch) C2/326D: A5 B6 LDA $B6 (get attack/spell #) C2/326F: EB XBA C2/3270: A9 02 LDA #$02 C2/3272: 20 BF 62 JSR $62BF (queue display of text for spell that hit) C2/3275: A9 FF LDA #$FF C2/3277: 8D 14 34 STA $3414 (clear Ignore Damage Modification) C2/327A: 8D 15 34 STA $3415 (disable forced randomization, and allow backing up of targets) C2/327D: 8D 1C 34 STA $341C (disable "strike is missable weapon spellcasting") C2/3280: AD 83 3A LDA $3A83 (get Dog block) C2/3283: 30 03 BMI $3288 (if it didn't occur, branch) C2/3285: 8D 16 34 STA $3416 (save backup of who benefitted from Dog block, as $3A83 will be nulled on next strike should it be a multi-strike attack.) C2/3288: FA PLX C2/3289: CE 70 3A DEC $3A70 (# more attacks set by Offering, Quadra Slam, Dragon Horn, etc) C2/328C: 30 03 BMI $3291 (if it's negative, there are no more, so exit) C2/328E: F4 7A 31 PEA $317A (if there are more, repeat this $317B function) C2/3291: 60 RTS C2/3292: 9C 5A 3A STZ $3A5A (Indicates no targets as missed) C2/3295: 9C 54 3A STZ $3A54 (Indicate nobody being hit in the back) C2/3298: 20 00 64 JSR $6400 (Zero $A0 through $AF) C2/329B: 20 7E 58 JSR $587E (targeting function) C2/329E: DA PHX C2/329F: A5 B8 LDA $B8 (load targets) C2/32A1: 20 0E 52 JSR $520E (X = number of bits set in A, so # of targets) C2/32A4: 8E C9 3E STX $3EC9 (save number of targets) C2/32A7: FA PLX C2/32A8: 20 3B 12 JSR $123B (True Knight and Love Token) C2/32AB: 20 C2 57 JSR $57C2 (Update $An variables with targets in $B8-$B9, and set up a few attack and animation flags) C2/32AE: 20 65 38 JSR $3865 (depending on $3415, copy targets into backup targets and add to "already hit targets" list, or copy backup targets into targets.) C2/32B1: AD 4C 3A LDA $3A4C (actual MP cost to caster) C2/32B4: F0 36 BEQ $32EC (if there is none, skip these affordability checks) C2/32B6: 38 SEC (set Carry for upcoming subtraction) C2/32B7: BD 08 3C LDA $3C08,X (attacker MP) C2/32BA: ED 4C 3A SBC $3A4C (MP cost to attacker) C2/32BD: 9C 4C 3A STZ $3A4C (clear MP cost) C2/32C0: B0 1E BCS $32E0 (branch if attacker had sufficient MP) C2/32C2: E0 08 CPX #$08 C2/32C4: 90 04 BCC $32CA (branch if character) C2/32C6: A0 12 LDY #$12 C2/32C8: 84 B5 STY $B5 C2/32CA: 20 AD 35 JSR $35AD (Write data in $B4 - $B7 to current slot in ($76) animation buffer, and point $3A71 to this slot) C2/32CD: 64 A2 STZ $A2 C2/32CF: 64 A4 STZ $A4 C2/32D1: A9 02 00 LDA #$0002 C2/32D4: 1C A7 11 TRB $11A7 (clear Text if Hits bit) C2/32D7: A9 02 28 LDA #$2802 C2/32DA: 20 9B 62 JSR $629B (Copy A to $3A28-$3A29, and copy $3A28-$3A2B variables into ($76) animation buffer) C2/32DD: 4C DB 63 JMP $63DB (Copy $An variables to ($78) buffer) C2/32E0: 9D 08 3C STA $3C08,X (attacker MP = attacker MP - spell MP cost) C2/32E3: A9 80 00 LDA #$0080 C2/32E6: 1D 04 32 ORA $3204,X C2/32E9: 9D 04 32 STA $3204,X (Set flag that will cause attacker's Magic, Esper, and Lore menus to be refreshed) C2/32EC: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/32EE: AD 12 34 LDA $3412 C2/32F1: C9 06 CMP #$06 (is attack a monster Special?) C2/32F3: D0 5A BNE $334F (branch if not) C2/32F5: DA PHX C2/32F6: A9 02 LDA #$02 C2/32F8: 04 B2 TSB $B2 (Set no critical & ignore True Knight) C2/32FA: 4A LSR C2/32FB: 04 A0 TSB $A0 C2/32FD: BD 81 3C LDA $3C81,X (get enemy Special move graphic) C2/3300: 85 B7 STA $B7 (save graphic index) C2/3302: BD 2D 32 LDA $322D,X (get monster's special attack) C2/3305: 48 PHA C2/3306: 0A ASL (is bit 6, "Do no damage," set?) C2/3307: 10 08 BPL $3311 (if it isn't, branch) C2/3309: 9C A6 11 STZ $11A6 (clear Battle Power) C2/330C: A9 01 LDA #$01 C2/330E: 0C A7 11 TSB $11A7 (set to "Miss if No Status Set or Clear") C2/3311: 90 05 BCC $3318 (branch if Bit 7 wasn't set) C2/3313: A9 20 LDA #$20 C2/3315: 0C A4 11 TSB $11A4 (set Can't be Dodged) C2/3318: 68 PLA C2/3319: 29 3F AND #$3F (get bottom 6 bits of monster's special attack) C2/331B: C9 30 CMP #$30 C2/331D: 90 1A BCC $3339 (branch if value < 30h, "Absorb HP") C2/331F: C9 32 CMP #$32 C2/3321: B0 0F BCS $3332 (branch if value > 31h, "Absorb MP") C2/3323: 4A LSR (get bottom bit) C2/3324: A9 02 LDA #$02 C2/3326: 0C A4 11 TSB $11A4 (turn on Redirection bit of spell) C2/3329: 90 23 BCC $334E (branch if bottom bit of attack byte was 0) C2/332B: A9 80 LDA #$80 C2/332D: 0C A3 11 TSB $11A3 (Set to Concern MP) C2/3330: 80 1C BRA $334E C2/3332: A9 04 LDA #$04 (s/b reached if bottom 6 bits of attack byte >= 32h. so real examples are 32h, "Remove Reflect", and Skull Dragon's 3Fh, which had "???" for description) C2/3334: 0C A4 11 TSB $11A4 (turn on "Lift status" spell bit) C2/3337: A9 17 LDA #$17 (act is if just "Reflect" is in attack byte, so there'll be no attack power) C2/3339: C9 20 CMP #$20 C2/333B: 90 08 BCC $3345 (if value < 20h, there is no Attack Level boost, but there is a status to alter) C2/333D: E9 20 SBC #$20 C2/333F: 65 BC ADC $BC C2/3341: 85 BC STA $BC (add attack level btwn 0 and Fh, plus the carry flag [which is always 1 here], to Damage Incrementer) C2/3343: 80 09 BRA $334E (don't mess with statuses) C2/3345: 20 17 52 JSR $5217 (transform the attack byte value 0 to 1F into a spell status bit to set in $11AA, $11AB, $11AC, or $11AD) C2/3348: 1D AA 11 ORA $11AA,X C2/334B: 9D AA 11 STA $11AA,X C2/334E: FA PLX C2/334F: A9 40 LDA #$40 C2/3351: 04 B2 TSB $B2 (Clear little Runic sword animation) C2/3353: D0 0F BNE $3364 (If it wasn't set to begin with, branch over this animation code.) C2/3355: A9 25 LDA #$25 C2/3357: EB XBA C2/3358: A9 06 LDA #$06 C2/335A: 20 BF 62 JSR $62BF C2/335D: 20 DB 63 JSR $63DB (Copy $An variables to ($78) buffer) C2/3360: A9 10 LDA #$10 C2/3362: 14 A0 TRB $A0 C2/3364: A9 08 LDA #$08 C2/3366: 3C F9 3E BIT $3EF9,X C2/3369: F0 04 BEQ $336F (Branch if attacker not morphed) C2/336B: E6 BC INC $BC C2/336D: E6 BC INC $BC (Double damage if morphed) C2/336F: AD A2 11 LDA $11A2 C2/3372: 4A LSR C2/3373: 90 09 BCC $337E (Branch if magic damage) C2/3375: A9 10 LDA #$10 C2/3377: 3C E5 3E BIT $3EE5,X C2/337A: F0 02 BEQ $337E (Branch if attacker not berserked) C2/337C: E6 BC INC $BC (Add 50% damage if berserk and physical attack) C2/337E: AD A2 11 LDA $11A2 C2/3381: 89 40 BIT #$40 C2/3383: D0 0D BNE $3392 (Branch if no split damage) C2/3385: AD C9 3E LDA $3EC9 C2/3388: C9 02 CMP #$02 C2/338A: 90 06 BCC $3392 (Branch if only one target) C2/338C: 4E B1 11 LSR $11B1 C2/338F: 6E B0 11 ROR $11B0 (Cut damage in half) C2/3392: A9 20 LDA #$20 C2/3394: 24 B3 BIT $B3 C2/3396: D0 0B BNE $33A3 (Branch if ignore attacker row) C2/3398: 3C A1 3A BIT $3AA1,X C2/339B: F0 06 BEQ $33A3 (Branch if attacker in Front Row) C2/339D: 4E B1 11 LSR $11B1 C2/33A0: 6E B0 11 ROR $11B0 (Cut damage in half) C2/33A3: 20 AD 14 JSR $14AD (Check if hitting target(s) in back) C2/33A6: 20 7D 3E JSR $3E7D (Special effect code from 42E1, once per strike) C2/33A9: C2 20 REP #$20 (Set 16-bit Accumulator) C2/33AB: AC 05 34 LDY $3405 (# of hits left from Super Ball/Launcher) C2/33AE: 30 01 BMI $33B1 (If there aren't any, those special effects aren't being used, so jump to the normal Combat function. If there are, we skip the Combat function, as C2/3483 more or less takes its place.) C2/33B0: 60 RTS Combat function C2/33B1: A0 12 LDY #$12 C2/33B3: B9 18 30 LDA $3018,Y C2/33B6: 24 A4 BIT $A4 C2/33B8: F0 07 BEQ $33C1 (Skip if spell doesn't target that entity) C2/33BA: 20 0D 22 JSR $220D (Determine whether attack hits) C2/33BD: 90 02 BCC $33C1 (branch if it hits) C2/33BF: 14 A4 TRB $A4 (Makes attack miss target) C2/33C1: 88 DEY C2/33C2: 88 DEY C2/33C3: 10 EE BPL $33B3 (Do for all 10 possible targets) C2/33C5: E2 20 SEP #$20 (Set 8-bit accumulator) C2/33C7: AD 1C 34 LDA $341C C2/33CA: 30 0A BMI $33D6 (branch if not a missable weapon spellcasting) C2/33CC: A5 A4 LDA $A4 C2/33CE: 05 A5 ORA $A5 C2/33D0: D0 04 BNE $33D6 (Branch if at least one target hit) C2/33D2: A9 12 LDA #$12 C2/33D4: 85 B5 STA $B5 (use null animation for strike) C2/33D6: AD 1D 34 LDA $341D C2/33D9: 30 0A BMI $33E5 (branch if an insta-kill weapon hasn't activated instant death this turn.) C2/33DB: A5 A2 LDA $A2 C2/33DD: 05 A3 ORA $A3 C2/33DF: D0 04 BNE $33E5 (Branch if at least one entity targetted) C2/33E1: A9 12 LDA #$12 C2/33E3: 85 B5 STA $B5 (use null animation for strike) C2/33E5: A9 40 LDA #$40 C2/33E7: 3C 95 3C BIT $3C95,X C2/33EA: F0 06 BEQ $33F2 (Branch if not auto critical when Imp) C2/33EC: 4A LSR C2/33ED: 3C E4 3E BIT $3EE4,X C2/33F0: D0 1A BNE $340C (If Attacker is imp do auto critical) C2/33F2: A9 02 LDA #$02 C2/33F4: 24 B3 BIT $B3 C2/33F6: F0 14 BEQ $340C (Automatic critical if bit 1 of $B3 not set) C2/33F8: 24 B2 BIT $B2 C2/33FA: D0 18 BNE $3414 (No critical if bit 1 of $B2 set) C2/33FC: 24 BA BIT $BA C2/33FE: F0 14 BEQ $3414 (No critical if not attacking opposition) C2/3400: 20 5A 4B JSR $4B5A (Random Number 0 to 255) C2/3403: C9 08 CMP #$08 (1 in 32 chance) C2/3405: B0 0D BCS $3414 C2/3407: AD C9 3E LDA $3EC9 C2/340A: F0 08 BEQ $3414 (No critical if no targets) C2/340C: E6 BC INC $BC (Critical hit x2 damage) C2/340E: E6 BC INC $BC C2/3410: A9 20 LDA #$20 C2/3412: 04 A0 TSB $A0 (Set to flash screen) C2/3414: 20 AD 35 JSR $35AD (Write data in $B4 - $B7 to current slot in ($76) animation buffer, and point $3A71 to this slot) C2/3417: C2 20 REP #$20 C2/3419: AD B0 11 LDA $11B0 (Maximum Damage) C2/341C: 20 0B 37 JSR $370B (Increment damage function) C2/341F: 8D B0 11 STA $11B0 (Maximum Damage) C2/3422: E2 20 SEP #$20 C2/3424: AD A3 11 LDA $11A3 C2/3427: 0A ASL C2/3428: 10 04 BPL $342E (Branch if not Caster dies) C2/342A: 9B TXY C2/342B: 20 52 38 JSR $3852 (Kill caster) C2/342E: BC B9 32 LDY $32B9,X (who's Controlling this entity?) C2/3431: 30 09 BMI $343C (branch if nobody is) C2/3433: DA PHX C2/3434: BB TYX (X points to controller) C2/3435: BC B8 32 LDY $32B8,X (Y = whom the controller is controlling [in other words, the entity we previously had in X]) C2/3438: 20 2F 37 JSR $372F (regenerate the Control menu. it will account for the MP cost of a spell cast this turn, but unfortunately, the call is too early to account for actual MP damage/healing/ draining done by the spell, so the menu will lag a turn behind in that respect.) C2/343B: FA PLX (restore X pointing to original entity) C2/343C: C2 20 REP #$20 C2/343E: A0 12 LDY #$12 C2/3440: B9 18 30 LDA $3018,Y C2/3443: 14 A4 TRB $A4 (Make attack miss target, for now) C2/3445: F0 25 BEQ $346C (Skip if not target of attack) C2/3447: 2C 54 3A BIT $3A54 (Check if hitting back of target) C2/344A: F0 02 BEQ $344E C2/344C: E6 BC INC $BC (Increment damage if hitting back) C2/344E: 20 E3 35 JSR $35E3 (initialize several variables for counterattack purposes) C2/3451: CC F8 33 CPY $33F8 (Has this target used Zinger?) C2/3454: F0 16 BEQ $346C (If it has, branch to next target) C2/3456: 9C 48 3A STZ $3A48 (start off assuming attack did not miss this target) C2/3459: 20 06 44 JSR $4406 (determine status to be set/removed when attack hits; miss if attack doesn't change target status) C2/345C: 20 7E 38 JSR $387E (Special effect code for target) C2/345F: AD 48 3A LDA $3A48 C2/3462: D0 08 BNE $346C (Branch if attack missed this target, due to it not changing any statuses or to checks in its special effect) C2/3464: B9 18 30 LDA $3018,Y C2/3467: 04 A4 TSB $A4 (Make attack hit target) C2/3469: 20 83 0B JSR $0B83 (Modify Damage, Heal Undead, and Elemental modification) C2/346C: 88 DEY C2/346D: 88 DEY C2/346E: 10 D0 BPL $3440 (iterate for all 10 entities) C2/3470: 20 EF 62 JSR $62EF (subtract/add damage/healing from/to entities' HP or MP, then queue damage and/or healing values for display) C2/3473: 20 D6 36 JSR $36D6 (Learn lore) C2/3476: A5 A4 LDA $A4 C2/3478: D0 06 BNE $3480 (Branch if 1 or more targets hit) C2/347A: A9 02 00 LDA #$0002 C2/347D: 1C A7 11 TRB $11A7 (Clear Text if Hits bit) C2/3480: 4C DB 63 JMP $63DB (Copy $An variables to ($78) buffer) (Super Ball / Launcher / Reflected off targets function. Seems to be a specialized counterpart of the "Combat Function" at C2/33B1. For Super Ball / Launcher, it replaces that function. For Reflect, this is called shortly after that function.) C2/3483: DA PHX C2/3484: 48 PHA C2/3485: 20 00 64 JSR $6400 (Zero $A0 through $AF) C2/3488: 9C 5A 3A STZ $3A5A (Set no targets as missed) C2/348B: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/348D: A9 22 LDA #$22 C2/348F: 0C A3 11 TSB $11A3 (Set attack to retarget if target invalid/dead, not reflectable) C2/3492: A9 40 LDA #$40 C2/3494: 85 BB STA $BB (Set to cursor start on enemy. Note we're NOT doing any spread-aim here, as the game hits at most one target for each target reflected off. Likewise, each Launcher firing or Super Ball bounce will only hit 1 target.) C2/3496: A9 50 LDA #$50 C2/3498: 04 BA TSB $BA (Sets randomize target & Reflected) C2/349A: A5 B6 LDA $B6 C2/349C: 8D 2A 3A STA $3A2A (temporary byte 3 for ($76) animation buffer) C2/349F: AE 05 34 LDX $3405 (# more times to attack, for Super Ball or Launcher) C2/34A2: 30 08 BMI $34AC (branch if negative, which should only happen if this function was reached due to Reflection) C2/34A4: A9 10 LDA #$10 C2/34A6: 14 BA TRB $BA (Clear Reflected property) C2/34A8: A9 15 LDA #$15 C2/34AA: 80 02 BRA $34AE C2/34AC: A9 09 LDA #$09 C2/34AE: 20 9B 62 JSR $629B (Copy A to $3A28, and copy $3A28-$3A2B variables into ($76) buffer) C2/34B1: A9 FF LDA #$FF C2/34B3: A0 09 LDY #$09 C2/34B5: 99 A0 00 STA $00A0,Y ($A0 thru $A9 = #$FF) C2/34B8: 88 DEY C2/34B9: 10 FA BPL $34B5 (iterate 10 times. as this little loop suggests, you can't go setting the Launcher/Super Ball effect to have more than 10 "hits." that means that $3405 can have a maximum of 9, for those of you planning your own special effect.) C2/34BB: C2 20 REP #$20 (Set 16-bit Accumulator) C2/34BD: 4E B0 11 LSR $11B0 (Half damage) C2/34C0: A0 12 LDY #$12 C2/34C2: B9 18 30 LDA $3018,Y C2/34C5: 23 01 AND $01,S (is the target among those being "reflected off" by Reflect/Super Ball/Launcher ?) C2/34C7: F0 46 BEQ $350F (if not, skip it) C2/34C9: BB TYX (save loop variable) C2/34CA: 20 7E 58 JSR $587E (get new targets.. since the targeting at C2/3494 was set to "cursor start on enemy" and X holds the "reflected off" target going into the call, we're essentially performing a reflection here) C2/34CD: A5 B8 LDA $B8 (new targets after reflection) C2/34CF: F0 3E BEQ $350F (if there's none, skip our current loop target) C2/34D1: 5A PHY C2/34D2: 20 F9 51 JSR $51F9 (Y = [Number of highest target after reflection] * 2) C2/34D5: DA PHX C2/34D6: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/34D8: 8A TXA C2/34D9: 4A LSR C2/34DA: AA TAX ( [onscreen target # of reflected off target] / 2. so characters are now 0-3, and enemies are 4-9) C2/34DB: AD 05 34 LDA $3405 (# more times to attack, for Super Ball or Launcher) C2/34DE: 30 04 BMI $34E4 (branch if negative, which should only happen if this function was reached due to Reflection) C2/34E0: CE 05 34 DEC $3405 (decrement it) C2/34E3: AA TAX (replace reflected off target # with our iterator for Super Ball/Launcher?) C2/34E4: 98 TYA C2/34E5: 4A LSR (A = bit # of highest target after reflection) C2/34E6: 95 A0 STA $A0,X (Reflect: $A0,reflected_off_target = new_target Super Ball/Launcher: $A0,hit_iterator = new_target ) C2/34E8: C2 20 REP #$20 (Set 16-bit Accumulator) C2/34EA: FA PLX C2/34EB: 20 0D 22 JSR $220D (Determine whether attack hits) C2/34EE: B0 19 BCS $3509 (branch if it misses) C2/34F0: 9C 48 3A STZ $3A48 (start off assuming attack did not miss this target) C2/34F3: 20 E3 35 JSR $35E3 (initialize several variables for counterattack purposes) C2/34F6: 20 06 44 JSR $4406 (determine status to be set/removed when attack hits; miss if attack doesn't change target status) C2/34F9: 20 7E 38 JSR $387E (special effect code for target) C2/34FC: AD 48 3A LDA $3A48 C2/34FF: D0 08 BNE $3509 (Branch if attack missed this target, due to it not changing any statuses or to checks in its special effect) C2/3501: BD 18 30 LDA $3018,X C2/3504: 04 AE TSB $AE (Set this Reflector as AN originator of the attack graphically? Since $AE will get overwritten later in the case of Super Ball / Launcher, this setting only applies to Reflection.) C2/3506: 20 83 0B JSR $0B83 (Modify Damage, Heal Undead, and Elemental modification) C2/3509: 7A PLY C2/350A: AE 05 34 LDX $3405 (# more times to attack, for Super Ball or Launcher) C2/350D: 10 B3 BPL $34C2 (If it's positive, go again. This means that for Super Ball/Launcher, if "reflecting off" a certain initial target produces at least one valid final target, we'll keep doing so until it produces the full quantity of strikes indicated by original $3405 [+1].) (Hacks-only essay: Note that "reflecting off" multiple initial targets for Super Ball / Launcher -- which the game never does -- would produce rather meaningless results. $3405 would equal FFh after the first such target, but the main loop would still get repeated by C2/3511. So mechanically, each extra thrower/launcher would perform one extra "strike". But visually, all of the strikes would come from our first valid thrower/launcher, and the animation may or may not convey that there were extra strikes. ) C2/350F: 88 DEY C2/3510: 88 DEY C2/3511: 10 AF BPL $34C2 (loop for everybody on screen) (Uh oh..! If there were no targets found to reflect onto above, we can reach this point with $3405 not being FFh. As a result, the branch at C2/33AE will keep skipping the normal "Combat function" at C2/33B1.. bugging up the current battle. This will continue until another Launcher/Super Ball is attempted when there are actually target(s) to hit. C2/3483 will then loop through those targets, bringing $3405 to a "safe" FFh in the process.) C2/3513: 68 PLA C2/3514: FA PLX C2/3515: A9 10 00 LDA #$0010 C2/3518: 24 BA BIT $BA (was there Reflection?) C2/351A: D0 09 BNE $3525 (branch if so) C2/351C: BD 18 30 LDA $3018,X C2/351F: 85 AE STA $AE (Set the missile launcher or the Super Ball thrower as THE originator of attack graphically?) C2/3521: 64 AA STZ $AA C2/3523: 64 AC STZ $AC C2/3525: 20 EF 62 JSR $62EF (subtract/add damage/healing from/to entities' HP or MP, then queue damage and/or healing values for display) C2/3528: 4C DB 63 JMP $63DB (Copy $An variables to ($78) buffer) Runic Function C2/352B: AD A3 11 LDA $11A3 C2/352E: 89 08 BIT #$08 (can this spell be absorbed by Runic?) C2/3530: F0 7A BEQ $35AC (Exits function if not) C2/3532: 64 EE STZ $EE C2/3534: 64 EF STZ $EF (start off assuming no eligible Runickers) C2/3536: A0 12 LDY #$12 C2/3538: B9 A0 3A LDA $3AA0,Y C2/353B: 4A LSR (is this a valid target?) C2/353C: 90 20 BCC $355E (branch if not) C2/353E: B9 4C 3E LDA $3E4C,Y C2/3541: 89 06 BIT #$06 C2/3543: F0 19 BEQ $355E (Branch if not runic or enemy runic) C2/3545: 29 FB AND #$FB C2/3547: 99 4C 3E STA $3E4C,Y (clear Runic) C2/354A: F4 C0 80 PEA $80C0 (Sleep, Death, Petrify) C2/354D: F4 10 22 PEA $2210 (Freeze, Hide, Stop) C2/3550: 20 64 58 JSR $5864 C2/3553: 90 09 BCC $355E (Branch if entity has any of above ailments) C2/3555: C2 20 REP #$20 C2/3557: B9 18 30 LDA $3018,Y C2/355A: 04 EE TSB $EE (mark this entity as an eligible Runicker) C2/355C: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/355E: 88 DEY C2/355F: 88 DEY (have we run through all 10 entities yet?) C2/3560: 10 D6 BPL $3538 (loop if not) C2/3562: A5 EE LDA $EE C2/3564: 05 EF ORA $EF (are there any eligible Runickers?) C2/3566: F0 44 BEQ $35AC (Exits function if not) C2/3568: DA PHX C2/3569: 20 65 38 JSR $3865 (depending on $3415, copy targets in $B8 into backup targets and add to "already hit targets" list, or benignly copy backup targets into targets in $B8 [the latter can be the case if spell is invoked via Sketch].) C2/356C: 9C 15 34 STZ $3415 (will stop new targets set below from being copied into backup or Mimic targets by later C2/3865 call) (won't force randomization of targets, as variable is being zeroed too late for that) C2/356F: C2 20 REP #$20 (Set 16-bit Accumulator) C2/3571: A5 EE LDA $EE (get eligible Runickers) C2/3573: 85 B8 STA $B8 (save as targets) C2/3575: 20 0E 52 JSR $520E (X = # of bits set in A, i.e. the # of targets) C2/3578: 9C AA 11 STZ $11AA C2/357B: 9C AC 11 STZ $11AC (Make attack set no statuses) C2/357E: A9 82 21 LDA #$2182 C2/3581: 8D A3 11 STA $11A3 (Set just concern MP, not reflectable, Unblockable, Heal) C2/3584: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/3586: A9 60 LDA #$60 C2/3588: 8D A2 11 STA $11A2 (Set just ignore defense, no split damage) C2/358B: 7B TDC (need top half of A clear) C2/358C: AD A5 11 LDA $11A5 (MP cost of spell) C2/358F: 20 92 47 JSR $4792 (divide by X) C2/3592: 8D A6 11 STA $11A6 (save as Battle Power) C2/3595: 20 5E 38 JSR $385E (Sets level, magic power to 0) C2/3598: 9C 14 34 STZ $3414 (Skip damage modification) C2/359B: A9 40 LDA #$40 C2/359D: 14 B2 TRB $B2 (Flag little Runic sword animation) C2/359F: A9 04 LDA #$04 C2/35A1: 85 BA STA $BA (Don't retarget if target invalid) C2/35A3: A9 03 LDA #$03 C2/35A5: 1C A7 11 TRB $11A7 (turn off text if hits and miss if status isn't set or clear) C2/35A8: 9C A9 11 STZ $11A9 (Set attack to no special effect) C2/35AB: FA PLX C2/35AC: 60 RTS (Write data in $B4 - $B7 to current slot in ($76) animation buffer, and make "previous buffer pointer" in $3A71 point to this slot) C2/35AD: DA PHX C2/35AE: AE 72 3A LDX $3A72 (get ($76) animation buffer pointer) C2/35B1: 8E 71 3A STX $3A71 (copy to "previous ($76) animation buffer pointer") C2/35B4: FA PLX C2/35B5: 20 D4 35 JSR $35D4 (Copy animation data from $B4 - $B7 into $3A28 - $3A2B variables) C2/35B8: 4C 9E 62 JMP $629E (Copy $3A28-$3A2B variables into ($76) buffer) (Update a previous entry in ($76) animation buffer with data in $B4 - $B7) (Used to change Atma Weapon length, among other things) C2/35BB: 20 D4 35 JSR $35D4 (Copy animation data from $B4 - $B7 into $3A28 - $3A2B variables) C2/35BE: DA PHX (preserve X) C2/35BF: 08 PHP C2/35C0: AE 72 3A LDX $3A72 C2/35C3: DA PHX (preserve animation buffer pointer) C2/35C4: AE 71 3A LDX $3A71 (get "previous ($76) animation buffer pointer") C2/35C7: 8E 72 3A STX $3A72 (copy it into current ($76) animation buffer pointer) C2/35CA: 20 9E 62 JSR $629E (update animation data in the previous ($76) buffer entry) C2/35CD: FA PLX C2/35CE: 8E 72 3A STX $3A72 (restore ($76) animation buffer pointer) C2/35D1: 28 PLP C2/35D2: FA PLX (restore X) C2/35D3: 60 RTS (Copy animation data from $B4 - $B7 into $3A28 - $3A2B variables) C2/35D4: 08 PHP C2/35D5: C2 20 REP #$20 (Set 16-bit Accumulator) C2/35D7: A5 B4 LDA $B4 C2/35D9: 8D 28 3A STA $3A28 (temporary bytes 1 and 2 for ($76) animation buffer) C2/35DC: A5 B6 LDA $B6 C2/35DE: 8D 2A 3A STA $3A2A (temporary bytes 3 and 4 for ($76) animation buffer) C2/35E1: 28 PLP C2/35E2: 60 RTS (Initialize several variables for counterattack purposes) C2/35E3: 08 PHP C2/35E4: E2 30 SEP #$30 C2/35E6: 20 1B 36 JSR $361B (Mark entity X as the last attacker of entity Y, but 50% chance not if Y already has an attacker this turn) C2/35E9: 8A TXA C2/35EA: 99 90 32 STA $3290,Y (save attacker [or reflector if reflection involved] #) C2/35ED: AD 7C 3A LDA $3A7C C2/35F0: 99 48 3D STA $3D48,Y (save command #) C2/35F3: AD 10 34 LDA $3410 C2/35F6: C9 FF CMP #$FF C2/35F8: F0 07 BEQ $3601 (branch if there's no Spell # [or a Skean/Tool/ piece of equipment using a spell] defined for attack.) C2/35FA: 99 49 3D STA $3D49,Y (save the spell #) C2/35FD: 8A TXA C2/35FE: 99 91 32 STA $3291,Y (save attacker [or reflector if reflection involved] #) C2/3601: AD 11 34 LDA $3411 C2/3604: C9 FF CMP #$FF C2/3606: F0 07 BEQ $360F (branch if there's no Item # [or a Skean/Tool that doesn't use a spell] defined for attack.) C2/3608: 99 5C 3D STA $3D5C,Y (save item #) C2/360B: 8A TXA C2/360C: 99 A4 32 STA $32A4,Y (save attacker [or reflector if reflection involved] #) C2/360F: AD A1 11 LDA $11A1 C2/3612: 99 5D 3D STA $3D5D,Y (save attack's element/s) C2/3615: 8A TXA C2/3616: 99 A5 32 STA $32A5,Y (save attacker [or reflector if reflection involved] #) C2/3619: 28 PLP C2/361A: 60 RTS (Mark entity X as the last attacker of entity Y, but 50% chance of not doing so if Y already has an attacker this turn) C2/361B: 08 PHP C2/361C: E2 21 SEP #$21 (Set 8-bit Accumulator, and set Carry) C2/361E: B9 E0 32 LDA $32E0,Y C2/3621: 10 05 BPL $3628 (branch if this target doesn't yet have an attacker [which can be a reflector, if reflection is involved]) C2/3623: 20 53 4B JSR $4B53 C2/3626: 90 05 BCC $362D (50% chance this attacker overwrites current one) C2/3628: 8A TXA C2/3629: 6A ROR ( [onscreen index of attacker] / 2. so characters are now 0-3, and enemies are 4-9) C2/362A: 99 E0 32 STA $32E0,Y (save index in bottom 7 bits, and turn on top bit) C2/362D: 28 PLP C2/362E: 60 RTS (Mark entity X as the last attacker of entity Y, unless Y already has an attacker this turn. Arbitrarily set/clear flag indicating whether entity Y was attacked this turn.) C2/362F: 48 PHA C2/3630: 08 PHP C2/3631: B9 E0 32 LDA $32E0,Y C2/3634: 30 05 BMI $363B (branch if this target already has an attacker for this turn) C2/3636: 8A TXA C2/3637: 6A ROR (Bits 0-6 = [onscreen index of attacker] / 2. so characters are now 0-3, and enemies are 4-9. Bit 7 = Carry flag passed by caller. sadly, it's arbitrary gibberish from three of the callers: function C2/0C2D, function C2/384A when called via C2/387E, and function C2/384A when called via C2/3E7D.) C2/3638: 99 E0 32 STA $32E0,Y C2/363B: 28 PLP C2/363C: 68 PLA C2/363D: 60 RTS (Weapon "addition magic") C2/363E: A5 B5 LDA $B5 C2/3640: C9 16 CMP #$16 (is Command Jump?) C2/3642: D0 05 BNE $3649 (if not, branch) C2/3644: AD 70 3A LDA $3A70 (are there more attacks to do from Offering / Quadra Slam / Dragon Horn / etc?) C2/3647: D0 1C BNE $3665 (if so, exit function) C2/3649: AD 89 3A LDA $3A89 C2/364C: 89 40 BIT #$40 (is "cast randomly with fight" bit set in the weapon spellcast byte?) C2/364E: F0 15 BEQ $3665 (if not, Exit function) C2/3650: EB XBA C2/3651: 20 5A 4B JSR $4B5A (random #, 0 to 255) C2/3654: C9 40 CMP #$40 C2/3656: B0 0D BCS $3665 (if that # is 64 or greater, exit function. iow, exit 3/4 of time.) C2/3658: EB XBA C2/3659: 29 3F AND #$3F (isolate spell # of weapon in bottom 6 bits) C2/365B: 8D 00 34 STA $3400 (save it) C2/365E: A9 10 LDA #$10 C2/3660: 14 B2 TRB $B2 (this bit distinguishes traditional "addition magic" spellcasts from Tempest's Wind Slash in a few ways in C2/37EB.) (one is that it'll cause the targeting byte to be set to only "Cursor start on enemy" for the followup spell. maybe the goal is to prevent the spell from targeting multiple enemies..? but i'm not sure when the spellcast would even try to target anything other than the target whacked by the weapon, unless the spell randomizes targets, which no normal "addition magic" does.) C2/3662: EE 70 3A INC $3A70 (increment # of attacks remaining. since the calling code will soon decrement this, the addition magic should be cast with the same # of attacks remaining as the weapon strike preceding it was.) C2/3665: 60 RTS (Prepare attack name for display atop screen. Also load a few properties for Joker Dooms.) C2/3666: A9 01 LDA #$01 C2/3668: 14 B2 TRB $B2 C2/366A: F0 F9 BEQ $3665 (exit if we've already called this function before on this turn. will stop Quadra Slam [for example] from displaying its name on every strike.) C2/366C: AD 12 34 LDA $3412 (get message ID) C2/366F: 30 F4 BMI $3665 (exit if undefined) C2/3671: DA PHX C2/3672: 9B TXY C2/3673: 8D 29 3A STA $3A29 (temporary byte 2 for ($76) animation buffer) C2/3676: 0A ASL C2/3677: AA TAX C2/3678: A9 01 LDA #$01 C2/367A: 8D 28 3A STA $3A28 (temporary byte 1 for ($76) animation buffer) C2/367D: FC C4 36 JSR ($36C4,X) C2/3680: 8D 2A 3A STA $3A2A (temporary byte 3 for ($76) animation buffer) C2/3683: FA PLX C2/3684: 4C 9E 62 JMP $629E (Copy $3A28-$3A2B variables into ($76) buffer) (Magic, non-Summoning non-Joker Doom Slot, successful Dance, Lore, Magitek, enemy non-Specials, and many others) C2/3687: A5 B6 LDA $B6 (load attack ID) C2/3689: 60 RTS (Item) C2/368A: AD 7D 3A LDA $3A7D C2/368D: 60 RTS (Esper Summon) C2/368E: 38 SEC C2/368F: A5 B6 LDA $B6 C2/3691: E9 36 SBC #$36 (convert attack ID to 0-26 Esper ID) C2/3693: 60 RTS (enemy GP Rain, Health, Shock) C2/3694: A5 B5 LDA $B5 (load command ID) C2/3696: 60 RTS (Enemy Special) C2/3697: A9 11 LDA #$11 C2/3699: 8D 28 3A STA $3A28 (temporary byte 1 for ($76) animation buffer) C2/369C: B9 A8 33 LDA $33A8,Y (get monster ID, bottom byte) C2/369F: 8D 29 3A STA $3A29 (temporary byte 2 for ($76) animation buffer) C2/36A2: B9 A9 33 LDA $33A9,Y (get monster ID, top byte) C2/36A5: 60 RTS (Joker Dooms) C2/36A6: A9 02 LDA #$02 C2/36A8: 0C 46 3A TSB $3A46 (set flag to let attack target normally untargetable entities: Jumpers [err, scratch that, since they'd have to be un-Hidden, which i don't think is possible], Seized characters, and will ignore "Exclude Attacker from targets" and "Abort on characters", etc.) C2/36AB: 1C A2 11 TRB $11A2 (Clear miss if instant death protected) C2/36AE: A9 20 LDA #$20 C2/36B0: 0C A4 11 TSB $11A4 (Sets unblockable) C2/36B3: A9 00 LDA #$00 C2/36B5: 8D 29 3A STA $3A29 (temporary byte 2 for ($76) animation buffer) C2/36B8: A9 55 LDA #$55 (Joker Doom) C2/36BA: 60 RTS (Blitz) C2/36BB: A9 00 LDA #$00 C2/36BD: 8D 29 3A STA $3A29 (temporary byte 2 for ($76) animation buffer) C2/36C0: AD 7D 3A LDA $3A7D C2/36C3: 60 RTS Pointers to code C2/36C4: 87 36 (Magic, non-Summoning non-Joker Doom Slot, successful Dance, Lore, Magitek, enemy non-Specials, and many others) C2/36C6: 8A 36 (Item [which can include a Tool or thrown weapon or skean]) C2/36C8: 8E 36 (Esper Summon) C2/36CA: 65 36 (does nothing) C2/36CC: 87 36 (SwdTech) C2/36CE: 94 36 (enemy GP Rain, Health, Shock) C2/36D0: 97 36 (Enemy Special) C2/36D2: A6 36 (Slot - Joker Dooms) C2/36D4: BB 36 (Blitz) Learn lore if casted C2/36D6: DA PHX C2/36D7: 08 PHP C2/36D8: E2 20 SEP #$20 C2/36DA: AD A3 11 LDA $11A3 C2/36DD: 89 04 BIT #$04 C2/36DF: F0 27 BEQ $3708 (Branch if not learn when casted) C2/36E1: AC 07 30 LDY $3007 C2/36E4: 30 22 BMI $3708 (Exit if Strago not in party) C2/36E6: F4 C3 B0 PEA $B0C3 (Death, Petrify, Zombie, Dark, Sleep, Muddled, Berserk) C2/36E9: F4 10 23 PEA $2310 (Stop, Hide, Rage, Freeze) C2/36EC: 20 64 58 JSR $5864 C2/36EF: 90 17 BCC $3708 (Exit function if any set) C2/36F1: A5 B6 LDA $B6 C2/36F3: E9 8B SBC #$8B (try to convert spell ID to 0-23 Lore ID, as 8Bh [139d] is ID of first lore, Condemned.) C2/36F5: 18 CLC C2/36F6: 20 17 52 JSR $5217 (X = A DIV 8, A = 2 ^ (A MOD 8) ) C2/36F9: E0 03 CPX #$03 C2/36FB: B0 0B BCS $3708 (branch if spell ID was outside range of Lores; iow, it's not a Lore) C2/36FD: 3C 29 1D BIT $1D29,X (Known lores) C2/3700: D0 06 BNE $3708 (branch if already known) C2/3702: 1D 84 3A ORA $3A84,X (add to Lores to learn) C2/3705: 9D 84 3A STA $3A84,X C2/3708: 28 PLP C2/3709: FA PLX C2/370A: 60 RTS Damage increment function Damage = damage * (1 + (.5 * $BC)) C2/370B: 5A PHY C2/370C: A4 BC LDY $BC C2/370E: F0 1D BEQ $372D (Exit if Damage Incrementor in $BC = 0) C2/3710: 48 PHA C2/3711: A5 B2 LDA $B2 C2/3713: 0A ASL C2/3714: 2D A1 11 AND $11A1 C2/3717: 0A ASL C2/3718: 0A ASL C2/3719: 0A ASL C2/371A: 68 PLA C2/371B: B0 10 BCS $372D (Exit function if Ignores Defense and bit 4 of $B3 [Ignore Damage Increment on Ignore Defense] is set) C2/371D: 85 EE STA $EE C2/371F: 46 EE LSR $EE C2/3721: 18 CLC C2/3722: 65 EE ADC $EE (Add 50% damage) C2/3724: 90 02 BCC $3728 C2/3726: 7B TDC C2/3727: 3A DEC (if overflow, set damage to 65535) C2/3728: 88 DEY C2/3729: D0 F6 BNE $3721 (Do this $BC times) C2/372B: 84 BC STY $BC (Store 0 in $BC) C2/372D: 7A PLY C2/372E: 60 RTS (Relm's Control menu) C2/372F: DA PHX C2/3730: 5A PHY C2/3731: 08 PHP C2/3732: C2 31 REP #$31 (set 16-bit A, X and Y. clear Carry) C2/3734: BF 4A 54 C2 LDA $C2544A,X (address of controlling character's menu) C2/3738: 69 30 00 ADC #$0030 C2/373B: 8F 81 21 00 STA $002181 (Offset for WRAM to access) C2/373F: BB TYX C2/3740: BD 08 3C LDA $3C08,X (MP of monster) C2/3743: 1A INC C2/3744: 85 EE STA $EE (add 1, as it'll make future comparisons easier. but it also means that assigning 65535 MP to a monster won't work properly with Control.) C2/3746: BD F9 1F LDA $1FF9,X (Monster Type) C2/3749: 0A ASL C2/374A: 0A ASL C2/374B: AA TAX (X = monster number * 4) C2/374C: E2 20 SEP #$20 (set 8-bit accumulator) C2/374E: 7B TDC (clear A) C2/374F: 8F 83 21 00 STA $002183 (WRAM will access Bank 7Eh) C2/3753: A0 04 00 LDY #$0004 C2/3756: 7B TDC C2/3757: 48 PHA C2/3758: BF 00 3D CF LDA $CF3D00,X (get Relm's Control command) C2/375C: 8F 80 21 00 STA $002180 (store it in a menu) C2/3760: C9 FF CMP #$FF C2/3762: F0 1C BEQ $3780 (branch if the command [aka the spell #] was null) C2/3764: EB XBA C2/3765: A9 0E LDA #$0E (there are 14d bytes per spell in magic data) C2/3767: 20 81 47 JSR $4781 (spell number * 14) C2/376A: DA PHX C2/376B: AA TAX C2/376C: BF C5 6A C4 LDA $C46AC5,X (get MP cost) C2/3770: EB XBA C2/3771: BF C0 6A C4 LDA $C46AC0,X (get targeting byte) C2/3775: FA PLX (restore X = monster num * 4) C2/3776: 83 01 STA $01,S (replace zero value on stack from C2/3757 with targeting byte) C2/3778: 18 CLC (clear carry) C2/3779: A5 EF LDA $EF (retrieve (MP of monster + 1) / 256) C2/377B: D0 03 BNE $3780 (if it's nonzero, branch. spell MP costs are only 1 byte, so we don't have to worry whether it's castable) C2/377D: EB XBA (get MP cost of spell) C2/377E: C5 EE CMP $EE (carry will be clear if the Cost of spell is less than (monster MP + 1), or if the foe has >= 255 MP) (IOW, if the spell is affordable.) C2/3780: 6A ROR (rotate carry into top bit of A. doubt the other bits matter, given the XBA above is only done sometimes..) C2/3781: 8F 80 21 00 STA $002180 (write it to menu) C2/3785: 68 PLA (get the targeting byte, or zero if the menu entry was null) C2/3786: 8F 80 21 00 STA $002180 (write it to menu) C2/378A: E8 INX C2/378B: 88 DEY C2/378C: D0 C8 BNE $3756 (iterate 4 times, once for each Control command) C2/378E: 28 PLP C2/378F: 7A PLY C2/3790: FA PLX C2/3791: 60 RTS Sketch/Control chance (Returns Carry clear if successful, set if fails) C2/3792: DA PHX C2/3793: B9 18 3B LDA $3B18,Y (Target's Level) C2/3796: 90 07 BCC $379F (if sketch/control chance isn't boosted by equip, branch) C2/3798: EB XBA C2/3799: A9 AA LDA #$AA C2/379B: 20 81 47 JSR $4781 (Multiply target level by #$AA) C2/379E: EB XBA (Multiply target level by 170 / 256) C2/379F: 48 PHA (save target level (or target level * 170/256)) C2/37A0: 7B TDC C2/37A1: BD 18 3B LDA $3B18,X (Attacker's Level) C2/37A4: EB XBA (* 256) C2/37A5: FA PLX (restore target level (or target level * 170/256)) C2/37A6: 20 92 47 JSR $4792 (A / X) C2/37A9: 48 PHA C2/37AA: 18 CLC C2/37AB: EB XBA C2/37AC: D0 05 BNE $37B3 (Automatically hit if result of division is >= 256) C2/37AE: 20 5A 4B JSR $4B5A (random #: 0 to 255) C2/37B1: C3 01 CMP $01,S (compare to result of division) C2/37B3: 68 PLA C2/37B4: FA PLX C2/37B5: 60 RTS Reduce gold for GP Rain or Enemy Steal Gold = Gold - A (no lower than 0) For GP Rain: A = Level * 30 (Gold if gold < level * 30) For Enemy Steal: High A = Enemy level, low A = 20 (14 hex) (Enemy level * 256 + 20) (Gold if gold < (Enemy level * 256) + 20) C2/37B6: 48 PHA C2/37B7: 38 SEC C2/37B8: AD 60 18 LDA $1860 (party's gold, bottom 16 bits) C2/37BB: 85 EE STA $EE C2/37BD: E3 01 SBC $01,S C2/37BF: 8D 60 18 STA $1860 (subtract A from gold) C2/37C2: E2 20 SEP #$20 (8-bit mem/acc) C2/37C4: AD 62 18 LDA $1862 (party's gold, top 8 bits) C2/37C7: E9 00 SBC #$00 C2/37C9: 8D 62 18 STA $1862 (now continue subtraction with borrow) C2/37CC: C2 20 REP #$20 (16-bit mem/acc) C2/37CE: B0 0A BCS $37DA (branch if party's gold was >= amount thrown or stolen) C2/37D0: A5 EE LDA $EE C2/37D2: 83 01 STA $01,S (otherwise, lower amount thrown/stolen to what the party's gold was) C2/37D4: 9C 60 18 STZ $1860 C2/37D7: 9C 61 18 STZ $1861 (zero the party's gold, all 3 bytes) C2/37DA: 68 PLA C2/37DB: 60 RTS Pick a random Esper (not Odin or Raiden) C2/37DC: A9 19 LDA #$19 C2/37DE: 20 65 4B JSR $4B65 (random: 0 to #$18) C2/37E1: C9 0B CMP #$0B C2/37E3: 90 02 BCC $37E7 (Branch if A < #$0B) C2/37E5: 1A INC (Add 2 if over #$0B) C2/37E6: 1A INC C2/37E7: 18 CLC C2/37E8: 69 36 ADC #$36 C2/37EA: 60 RTS (Set up weapon addition magic, Tempest's Wind Slash, and Espers summoned by the Magicite item) C2/37EB: AD 00 34 LDA $3400 C2/37EE: C9 FF CMP #$FF C2/37F0: F0 45 BEQ $3837 (Exit if null "spell # of second attack") C2/37F2: 85 B6 STA $B6 (Set spell #) C2/37F4: 20 BF 1D JSR $1DBF (Get command based on attack/spell number. A bottom = Command #, A top = Attack #) C2/37F7: 85 B5 STA $B5 (Set command to that type) C2/37F9: 20 D3 26 JSR $26D3 (Load data for command and attack/sub-command, held in A.bottom and A.top) C2/37FC: 20 51 29 JSR $2951 (Load Magic Power / Vigor and Level) C2/37FF: 9C A5 11 STZ $11A5 (Set MP cost to 0) C2/3802: A9 FF LDA #$FF C2/3804: 8D 00 34 STA $3400 (null out the "spell # for a second attack", as we've already processed it.) C2/3807: A9 02 LDA #$02 C2/3809: 04 B2 TSB $B2 (Set no critical & ignore True Knight) C2/380B: A9 10 LDA #$10 C2/380D: 24 B2 BIT $B2 C2/380F: F0 03 BEQ $3814 (branch if it's weapon addition magic, which won't let the followup spell hit anybody but the initial weapon victim. why the hell doesn't this just branch directly to $3816?) C2/3811: 9C 15 34 STZ $3415 (will force randomization and skip backing up of targets) C2/3814: D0 17 BNE $382D (and if one changes the above branch, this could simply be an unconditional BRA. i'm tempted to make a Readability patch just combining these two trivial changes..) (To be clear: Traditional weapon "addition magic" will start its journey at C2/3816. As far as I know, anything else will take the C2/382D path. That includes Espers summoned by the Magicite item and Tempest's Wind Slash [which is technically addition magic, but a special case].) C2/3816: A9 0C LDA #$0C C2/3818: 1C A3 11 TRB $11A3 (Clear learn if cast, clear enable Runic) C2/381B: 04 BA TSB $BA (Set Don't retarget if target invalid, and Can target dead/hidden targets) C2/381D: A9 40 LDA #$40 C2/381F: 85 BB STA $BB (Set only to cursor start on enemy [and clear any multi-targeting ability]). C2/3821: A9 10 LDA #$10 C2/3823: 2C A4 11 BIT $11A4 C2/3826: F0 05 BEQ $382D (Branch if Stamina can't block) C2/3828: 9C 1C 34 STZ $341C (this makes a weapon spell -- like Soul Sabre's Doom -- have its animation skipped entirely when missing rather than show a "Miss" message) C2/382B: 80 05 BRA $3832 C2/382D: A9 20 LDA #$20 C2/382F: 0C A4 11 TSB $11A4 (Set Unblockable) C2/3832: A9 02 LDA #$02 C2/3834: 0C A3 11 TSB $11A3 (Set Not Reflectable) C2/3837: 60 RTS Set attacker to die if under Air Anchor effect C2/3838: BD 05 32 LDA $3205,X C2/383B: 89 04 BIT #$04 C2/383D: D0 0A BNE $3849 (Exit function if not under Air Anchor effect) C2/383F: 09 04 ORA #$04 C2/3841: 9D 05 32 STA $3205,X (Clear Air Anchor effect) C2/3844: A9 40 LDA #$40 C2/3846: 0C A3 11 TSB $11A3 (Set caster dies) C2/3849: 60 RTS (Mark Hide and Death statuses to be set on entity X, and mark entity X as last attacker of entity Y if Y doesn't have one this turn.) C2/384A: BD E9 3D LDA $3DE9,X C2/384D: 09 20 ORA #$20 C2/384F: 9D E9 3D STA $3DE9,X (Mark Hide status to be set) C2/3852: 20 2F 36 JSR $362F (Mark entity X as the last attacker of entity Y, unless Y already has an attacker this turn. Arbitrarily set/clear flag indicating whether entity Y was attacked this turn.) C2/3855: A9 80 LDA #$80 C2/3857: 1D D4 3D ORA $3DD4,X C2/385A: 9D D4 3D STA $3DD4,X (Mark Death status to be set) C2/385D: 60 RTS Sets level and magic power for attack to 0 C2/385E: 9C AF 11 STZ $11AF C2/3861: 9C AE 11 STZ $11AE C2/3864: 60 RTS (If Bit 7 of $3415 is set, copy targets to backup targets [used by next strike on turn, as well as Mimic]. Also, add targets to list of "already hit targets" that multi-strike attacks [like Offering, Quadra Slam] will use if no living targets are found. If Bit 7 of $3415 is clear, copy backup targets into targets.) C2/3865: 08 PHP C2/3866: C2 20 REP #$20 C2/3868: AD 14 34 LDA $3414 (aka $3415) C2/386B: 30 07 BMI $3874 (branch if Bit 7 is set -- iow, variable has its default value of FFh) C2/386D: AD 30 3A LDA $3A30 (get backup targets) C2/3870: 85 B8 STA $B8 (copy to current targets, for use by next strike) (i think that doing this from C2/32AE is too early to adequately preserve $B8, as some special effects can change it [and none read from it before doing so, afaik], and that this is obsoleted by C2/3243.) C2/3872: 80 08 BRA $387C C2/3874: A5 B8 LDA $B8 (get current targets) C2/3876: 8D 30 3A STA $3A30 (save to backup targets [also used by C2/021E for Mimic]) C2/3879: 0C 4E 3A TSB $3A4E (add to list of already hit targets, used if we run out of living targets later in turn) C2/387C: 28 PLP C2/387D: 60 RTS (Calls once-per-target special effect code) C2/387E: DA PHX C2/387F: 5A PHY C2/3880: 08 PHP C2/3881: E2 30 SEP #$30 C2/3883: AE A9 11 LDX $11A9 C2/3886: FC CD 3D JSR ($3DCD,X) C2/3889: 28 PLP C2/388A: 7A PLY C2/388B: FA PLX C2/388C: 60 RTS Kill effect ( Slice/Scimitar special effect starts here ) C2/388D: 38 SEC C2/388E: A9 EE LDA #$EE C2/3890: EB XBA (Call from Kill with "X" effect enters here, with A = #$7E) C2/3891: B9 A1 3A LDA $3AA1,Y C2/3894: 89 04 BIT #$04 C2/3896: D0 F4 BNE $388C (Exit function if protected from instant death) C2/3898: B0 05 BCS $389F (if Slice/Scimitar, skip code to make auto hit undead) C2/389A: B9 95 3C LDA $3C95,Y C2/389D: 30 0C BMI $38AB (If Undead, don't skip activation for random or Stamina reasons) C2/389F: 20 5A 4B JSR $4B5A (Random number 0 to 255) C2/38A2: C9 40 CMP #$40 C2/38A4: B0 E6 BCS $388C (Exit 75% chance) C2/38A6: 20 B2 23 JSR $23B2 (Check if Stamina blocks) C2/38A9: B0 E1 BCS $388C (Exit if it does) C2/38AB: AD 70 3A LDA $3A70 (number of strikes remaining from Offering / Dragon Horn / etc) C2/38AE: F0 06 BEQ $38B6 (if this is final strike, branch) C2/38B0: A5 B5 LDA $B5 C2/38B2: C9 16 CMP #$16 C2/38B4: F0 D6 BEQ $388C (Exit if Command = Jump) (The last 5 instructions were added to FF3us, to avoid a couple of bugs.) C2/38B6: B9 18 30 LDA $3018,Y C2/38B9: 04 A4 TSB $A4 (the caller has temporarily cleared this bit in $A4, and will set it after return. but we need it set now, for our animation buffer update at C2/38EF.) C2/38BB: 1C 4E 3A TRB $3A4E (Remove this [character] target from a "backup already-hit targets" byte, which stops Offering/ Genji Glove/etc from beating on their corpse.) C2/38BE: B9 19 30 LDA $3019,Y C2/38C1: 04 A5 TSB $A5 (see note at C2/38B9.) C2/38C3: 1C 4F 3A TRB $3A4F (Remove this [monster] target from a "backup already-hit targets byte", stopping aforementioned corpse-beating.) C2/38C6: A9 10 LDA #$10 C2/38C8: 04 A0 TSB $A0 (i think this is being done to stop the insta-kill Magic animations from putting a casting circle around the attacker [and we're doing it with $A0 rather than usual $B0 method, because C2/57C2 has already been called]. however, neither the dice-up nor the X-kill animations seem to need this precaution. so who knows.) C2/38CA: A9 80 LDA #$80 C2/38CC: 20 32 0E JSR $0E32 (Set Death in Status to Set) C2/38CF: 9C 1D 34 STZ $341D (this will make C2/33B1 null the animation for each strike in the remainder of this turn where no targets are found. this is part of the "corpse beating" prevention described above. without this instruction, the character will wave their hand around like an idiot.) C2/38D2: 9C A6 11 STZ $11A6 (set Battle Power to 0) C2/38D5: A9 02 LDA #$02 C2/38D7: 85 B5 STA $B5 (save Magic as command for animation purposes) C2/38D9: EB XBA C2/38DA: 85 B6 STA $B6 (save attack ID for animation purposes: EEh for Slice/Scimitar, or 7Eh for Kill with 'X') C2/38DC: C9 EE CMP #$EE C2/38DE: D0 0C BNE $38EC (Kill with 'X' branches) C2/38E0: C0 08 CPY #$08 (Check for monster or character) C2/38E2: 90 08 BCC $38EC (branch if character target) C2/38E4: B9 E9 3D LDA $3DE9,Y C2/38E7: 09 20 ORA #$20 C2/38E9: 99 E9 3D STA $3DE9,Y (Set Hide in Status to Set) C2/38EC: 20 AD 35 JSR $35AD (Write data in $B4 - $B7 to current slot in ($76) animation buffer, and point $3A71 to this slot) (this matches up with the ($78) update that will be done at C2/3480.) C2/38EF: 4C DB 63 JMP $63DB (Copy $An variables to ($78) buffer) (this matches up with the ($76) update that was done at C2/3414.) Special Effect 4 x2 Damage vs. Humans C2/38F2: B9 95 3C LDA $3C95,Y C2/38F5: 89 10 BIT #$10 C2/38F7: F0 04 BEQ $38FD (Exit if target not human) C2/38F9: E6 BC INC $BC C2/38FB: E6 BC INC $BC (Double damage dealt) C2/38FD: 60 RTS Sniper/Hawk Eye effect C2/38FE: 20 53 4B JSR $4B53 (random: 0 or 1 in Carry flag) C2/3901: 90 FA BCC $38FD (50% chance exit) C2/3903: E6 BC INC $BC (Add 1 to damage incrementor) C2/3905: B9 F9 3E LDA $3EF9,Y C2/3908: 10 F3 BPL $38FD (Exit if not target not Floating) C2/390A: A5 B5 LDA $B5 C2/390C: C9 00 CMP #$00 C2/390E: D0 ED BNE $38FD (Exit if command not Fight?) C2/3910: E6 BC INC $BC C2/3912: E6 BC INC $BC C2/3914: E6 BC INC $BC (Add another 3 to damage incrementor) C2/3916: A9 08 LDA #$08 C2/3918: 85 B5 STA $B5 (Store Throw for *purposes of animation*) C2/391A: A5 B7 LDA $B7 (get graphic index) C2/391C: 3A DEC C2/391D: 85 B6 STA $B6 (undo earlier adjustment, save as Throw parameter) C2/391F: 4C BB 35 JMP $35BB (Update a previous entry in ($76) animation buffer with data in $B4 - $B7) Stone C2/3922: A3 05 LDA $05,S C2/3924: AA TAX C2/3925: BD 18 3B LDA $3B18,X (Attacker's level) C2/3928: D9 18 3B CMP $3B18,Y (Target's Level) C2/392B: D0 06 BNE $3933 (If not same level, exit) C2/392D: A9 0D LDA #$0D (Add 14 to damage incrementer, as Carry is set) C2/392F: 65 BC ADC $BC C2/3931: 85 BC STA $BC C2/3933: 60 RTS Palidor C2/3934: A9 01 LDA #$01 C2/3936: 20 4C 46 JSR $464C (sets bit 0 in $3204,Y . indicates entity is target/passenger of a Palidor summon this turn.) C2/3939: B9 CC 32 LDA $32CC,Y (get entry point to entity's conventional linked list queue) C2/393C: 48 PHA C2/393D: 20 54 4E JSR $4E54 (Add a record [by initializing its pointer/ID field] to a "master list" in $3184, a collection of linked list queues) C2/3940: 99 CC 32 STA $32CC,Y (have entity's entry point index new addition) C2/3943: A8 TAY (Y = index for 8-bit record fields) C2/3944: 0A ASL C2/3945: AA TAX (X will index 16-bit fields of the record) C2/3946: 68 PLA C2/3947: C9 FF CMP #$FF (was there previously an entry point to this entity's queue?) C2/3949: F0 03 BEQ $394E (branch if not) C2/394B: 99 84 31 STA $3184,Y (if so, have their new record link to the one(s) that was/were previously there.) (so what we've done is make it so any previously queued command(s) for this character will be executed after landing from Palidor) C2/394E: 7B TDC C2/394F: 9D 20 36 STA $3620,X (new record in conventional linked list queue will have 0 MP cost...) C2/3952: C2 20 REP #$20 C2/3954: 9D 20 35 STA $3520,X (...and no initial targets) C2/3957: A9 16 00 LDA #$0016 C2/395A: 9D 20 34 STA $3420,X (...and Jump as command [and no sub-command, as none is needed]) C2/395D: 60 RTS Special effect $39 - Engulf C2/395E: B9 18 30 LDA $3018,Y C2/3961: 0C 8A 3A TSB $3A8A (Set character as engulfed) C2/3964: 80 06 BRA $396C (Branch to remove from combat code) Bababreath from 3DCD C2/3966: B9 18 30 LDA $3018,Y C2/3969: 0C 88 3A TSB $3A88 (flag to remove target from party at end of battle) C2/396C: C2 20 REP #$20 (Special effect $27 & $38 & $4B jump here) (Escape, Sneeze, Smoke Bomb) C2/396E: B9 18 30 LDA $3018,Y C2/3971: 0C 4C 2F TSB $2F4C (mark target to be removed from the battlefield) C2/3974: 0C 39 3A TSB $3A39 (add to list of escaped characters and dead-ish or escaped monsters) C2/3977: 60 RTS Dischord C2/3978: BB TYX C2/3979: FE 18 3B INC $3B18,X (Level) C2/397C: 5E 18 3B LSR $3B18,X (Half level rounded up) C2/397F: 60 RTS R. Polarity C2/3980: B9 A1 3A LDA $3AA1,Y (Target's Row) C2/3983: 49 20 EOR #$20 C2/3985: 99 A1 3A STA $3AA1,Y (Switch) C2/3988: 60 RTS Wall Change C2/3989: 7B TDC C2/398A: A9 FF LDA #$FF C2/398C: 20 2A 52 JSR $522A (Pick a random bit) C2/398F: 99 E0 3B STA $3BE0,Y (Set your weakness to A) C2/3992: 49 FF EOR #$FF C2/3994: 99 CD 3B STA $3BCD,Y (Nullify all other elements) C2/3997: 20 2A 52 JSR $522A (Pick a random bit, not the one picked for weakness) C2/399A: 99 CC 3B STA $3BCC,Y (Absorb that element) C2/399D: 60 RTS Steal function C2/399E: A3 05 LDA $05,S (Attacker) C2/39A0: AA TAX C2/39A1: A9 01 LDA #$01 C2/39A3: 8D 01 34 STA $3401 (=1) (Sets message to "Doesn't have anything!") C2/39A6: E0 08 CPX #$08 (Check if attacker is monster) C2/39A8: B0 5F BCS $3A09 (Branch if monster) C2/39AA: C2 20 REP #$20 (Set 16-bit accumulator) C2/39AC: B9 08 33 LDA $3308,Y (Target's stolen items) C2/39AF: 1A INC C2/39B0: E2 21 SEP #$21 (Set 8-bit Accumulator AND Carry Flag) C2/39B2: F0 4D BEQ $3A01 (Fail to steal if no items) C2/39B4: EE 01 34 INC $3401 (now = 2) (Sets message to "Couldn't steal!!") C2/39B7: BD 18 3B LDA $3B18,X (Attacker's Level) C2/39BA: 69 32 ADC #$32 (adding 51, since Carry Flag was set) C2/39BC: B0 1A BCS $39D8 (Automatically steal if level >= 205) C2/39BE: F9 18 3B SBC $3B18,Y (Subtract Target's Level, along with an extra 1 because Carry Flag is unset at this point. Don't worry; this cancels out with the extra 1 from C2/39BA.) (StealValue = [attacker level + 51] - [target lvl + 1] = Attacker level + 50 - Target level ) C2/39C1: 90 3E BCC $3A01 (Fail to steal if StealValue < 0) C2/39C3: 30 13 BMI $39D8 (Automatically steal if StealValue >= 128) C2/39C5: 85 EE STA $EE (save StealValue) C2/39C7: BD 45 3C LDA $3C45,X C2/39CA: 4A LSR C2/39CB: 90 02 BCC $39CF (Branch if no sneak ring) C2/39CD: 06 EE ASL $EE (Double value) C2/39CF: A9 64 LDA #$64 C2/39D1: 20 65 4B JSR $4B65 (Random: 0 to 99) C2/39D4: C5 EE CMP $EE C2/39D6: B0 29 BCS $3A01 (Fail to steal if the random number >= StealValue) C2/39D8: 5A PHY C2/39D9: 20 5A 4B JSR $4B5A (Random: 0 to 255) C2/39DC: C9 20 CMP #$20 C2/39DE: 90 01 BCC $39E1 (branch 1/8 of the time, so Rare steal slot will be checked) C2/39E0: C8 INY (Check the 2nd [Common] slot 7/8 of the time) C2/39E1: B9 08 33 LDA $3308,Y (Target's stolen item) C2/39E4: 7A PLY C2/39E5: C9 FF CMP #$FF (If no item) C2/39E7: F0 18 BEQ $3A01 (Fail to steal) C2/39E9: 8D 35 2F STA $2F35 (save Item stolen for message purposes in parameter 1, bottom byte) C2/39EC: 9D F4 32 STA $32F4,X (Store in "Acquired item") C2/39EF: BD 18 30 LDA $3018,X C2/39F2: 0C 8C 3A TSB $3A8C (flag character to have any applicable item in $32F4,X added to inventory when turn is over.) C2/39F5: A9 FF LDA #$FF C2/39F7: 99 08 33 STA $3308,Y (Set to no item to steal) C2/39FA: 99 09 33 STA $3309,Y (in both slots) C2/39FD: EE 01 34 INC $3401 (now = 3) (Sets message to "Stole #whatever ") C2/3A00: 60 RTS If no items to steal C2/3A01: E2 20 SEP #$20 C2/3A03: A9 00 LDA #$00 C2/3A05: 99 48 3D STA $3D48,Y (save Fight as command for counterattack purposes) C2/3A08: 60 RTS (Steal for monsters) C2/3A09: 9C 3A 2F STZ $2F3A (clear message parameter 2, third byte) C2/3A0C: EE 01 34 INC $3401 (Sets message to "Couldn't steal!!") C2/3A0F: 20 5A 4B JSR $4B5A (random #: 0 to 255) C2/3A12: C9 C0 CMP #$C0 C2/3A14: B0 EB BCS $3A01 (fail to steal 1/4 of the time) C2/3A16: CE 01 34 DEC $3401 (Sets message to "Doesn't have anything!") C2/3A19: BD 18 3B LDA $3B18,X (enemy level) C2/3A1C: EB XBA C2/3A1D: A9 14 LDA #$14 (enemy will swipe: level * 256 + 20 gold) C2/3A1F: C2 20 REP #$20 (set 16-bit A) C2/3A21: 20 B6 37 JSR $37B6 (subtract swiped gold from party's inventory) C2/3A24: F0 DB BEQ $3A01 (branch if party had zero gold before the steal) C2/3A26: 8D 38 2F STA $2F38 (save gold swiped for message output in parameter 2, bottom word) C2/3A29: 18 CLC C2/3A2A: 7D 98 3D ADC $3D98,X (add amount stolen to gold possessed by enemy) C2/3A2D: 90 02 BCC $3A31 (branch if no overflow) C2/3A2F: 7B TDC C2/3A30: 3A DEC (if sum overflowed, set enemy's gold to 65535) C2/3A31: 9D 98 3D STA $3D98,X (update enemy's gold) C2/3A34: E2 20 SEP #$20 (set 8-bit A) C2/3A36: A9 3F LDA #$3F C2/3A38: 8D 01 34 STA $3401 (Set message to "# GP was stolen!!") C2/3A3B: 60 RTS Metamorph C2/3A3C: C0 08 CPY #$08 (Checks if target is monster) C2/3A3E: 90 4A BCC $3A8A (branch if not) C2/3A40: B9 94 3C LDA $3C94,Y (Metamorph info: Morph chance in bits 5-7, and Morph pack in bits 0-4) C2/3A43: 48 PHA C2/3A44: 29 1F AND #$1F (isolate pack #) C2/3A46: 20 53 4B JSR $4B53 (Random number 0 or 1) C2/3A49: 2A ROL C2/3A4A: 20 53 4B JSR $4B53 (Random number 0 or 1) C2/3A4D: 2A ROL C2/3A4E: AA TAX (now we have the Metamorph pack # in bits 2-6, and a random 0-3 index into that pack in bits 0-1) C2/3A4F: BF 40 7F C4 LDA $C47F40,X (get the item we're attempting to Metamorph the enemy into) C2/3A53: 8D 35 2F STA $2F35 (save it in message parameter 1, bottom byte) C2/3A56: A9 02 LDA #$02 C2/3A58: 8D 28 3A STA $3A28 (temporary byte 1 for ($76) animation buffer) C2/3A5B: A9 1D LDA #$1D C2/3A5D: 8D 29 3A STA $3A29 (temporary byte 2 for ($76) animation buffer) C2/3A60: 20 BE 35 JSR $35BE (Update a previous entry in ($76) animation buffer with data in $3A28 - $3A2B) C2/3A63: 20 AD 35 JSR $35AD (Write data in $B4 - $B7 to current slot in ($76) animation buffer, and point $3A71 to this slot) C2/3A66: 68 PLA C2/3A67: 4A LSR C2/3A68: 4A LSR C2/3A69: 4A LSR C2/3A6A: 4A LSR C2/3A6B: 4A LSR (isolate 0-7 Metamorph Chance index) C2/3A6C: AA TAX (copy it to X) C2/3A6D: 20 5A 4B JSR $4B5A (Random number 0 to 255) C2/3A70: DF C5 3D C2 CMP $C23DC5,X (compare to actual Metamorph Chance) C2/3A74: B0 14 BCS $3A8A (if greater than or equal, branch and fail to Metamorph) C2/3A76: A3 05 LDA $05,S C2/3A78: AA TAX C2/3A79: AD 35 2F LDA $2F35 (get ID of Metamorphed item) C2/3A7C: 9D F4 32 STA $32F4,X (save it in this character's "Item to add to inventory" variable) C2/3A7F: BD 18 30 LDA $3018,X C2/3A82: 0C 8C 3A TSB $3A8C (flag this character to have their inventory variable checked when the turn ends) C2/3A85: A9 80 LDA #$80 C2/3A87: 4C 32 0E JMP $0E32 (Mark death status to be set) C2/3A8A: 4C 1B 3B JMP $3B1B (flag Miss message) Special Efect $56 Debilitator C2/3A8D: 7B TDC C2/3A8E: B9 E0 3B LDA $3BE0,Y (Elements weak against) C2/3A91: 0D C8 3E ORA $3EC8 (Elements nullified by ForceField) C2/3A94: 49 FF EOR #$FF (Get elements in neither category) C2/3A96: F0 F2 BEQ $3A8A (Miss if there aren't any) C2/3A98: 20 2A 52 JSR $522A (Randomly pick one such element) C2/3A9B: 48 PHA C2/3A9C: 20 F0 51 JSR $51F0 (X = Get which bit is picked) C2/3A9F: 8A TXA C2/3AA0: 18 CLC C2/3AA1: 69 0B ADC #$0B C2/3AA3: 8D 01 34 STA $3401 (Set to display that element as text) C2/3AA6: A3 01 LDA $01,S C2/3AA8: 19 E0 3B ORA $3BE0,Y C2/3AAB: 99 E0 3B STA $3BE0,Y (Make weak vs. that element) C2/3AAE: 68 PLA C2/3AAF: 49 FF EOR #$FF C2/3AB1: 48 PHA C2/3AB2: 39 E1 3B AND $3BE1,Y C2/3AB5: 99 E1 3B STA $3BE1,Y (Make not resist that element) C2/3AB8: A3 01 LDA $01,S C2/3ABA: EB XBA C2/3ABB: 68 PLA C2/3ABC: C2 20 REP #$20 (Set 16-bit accumulator) C2/3ABE: 39 CC 3B AND $3BCC,Y C2/3AC1: 99 CC 3B STA $3BCC,Y (Make not absorb or nullify that element) C2/3AC4: 60 RTS Special effect $53 Control C2/3AC5: C0 08 CPY #$08 C2/3AC7: 90 4D BCC $3B16 (Miss with text if target is character) C2/3AC9: B9 80 3C LDA $3C80,Y C2/3ACC: 30 48 BMI $3B16 (Miss with text if target has Can't Control bit set) C2/3ACE: F4 D2 B0 PEA $B0D2 (Death, Petrify, Clear, Zombie, Sleep, Muddled, Berserk) C2/3AD1: F4 00 29 PEA $2900 (Rage, Morph, Hide) C2/3AD4: 20 64 58 JSR $5864 C2/3AD7: 90 3D BCC $3B16 (Miss w/ text if any set on target) C2/3AD9: B9 B9 32 LDA $32B9,Y C2/3ADC: 10 38 BPL $3B16 (If already controlled, then miss w/text) C2/3ADE: A3 05 LDA $05,S C2/3AE0: AA TAX C2/3AE1: BD 45 3C LDA $3C45,X (Coronet "boost Control chance" in Bit 3) C2/3AE4: 4A LSR C2/3AE5: 4A LSR C2/3AE6: 4A LSR C2/3AE7: 4A LSR C2/3AE8: 20 92 37 JSR $3792 (Sketch/Control Chance - pass bit 3 of $3C45 as carry) C2/3AEB: B0 2E BCS $3B1B (Miss w/o text) C2/3AED: 98 TYA C2/3AEE: 9D B8 32 STA $32B8,X (save who attacker is Controlling) C2/3AF1: 8A TXA C2/3AF2: 99 B9 32 STA $32B9,Y (save who target is Controlled by) C2/3AF5: B9 19 30 LDA $3019,Y C2/3AF8: 0C 54 2F TSB $2F54 (cause Controllee to be visually flipped) C2/3AFB: BD 4D 3E LDA $3E4D,X C2/3AFE: 09 01 ORA #$01 C2/3B00: 9D 4D 3E STA $3E4D,X (set a custom bit on attacker. was added on FF3us, because Ripplering off "spell chant" status would cause a freezing bug on FF6j. sadly, FF6 Advance didn't keep this addition.) C2/3B03: BD F9 3E LDA $3EF9,X C2/3B06: 09 10 ORA #$10 C2/3B08: 9D F9 3E STA $3EF9,X (Set Spell Chant status to attacker) C2/3B0B: B9 A1 3A LDA $3AA1,Y C2/3B0E: 09 40 ORA #$40 C2/3B10: 99 A1 3A STA $3AA1,Y (flag target's ATB gauge to be reset?) C2/3B13: 4C 2F 37 JMP $372F (generate the Control menu) C2/3B16: A9 04 LDA #$04 C2/3B18: 8D 01 34 STA $3401 (Set to display text #4) C2/3B1B: C2 20 REP #$20 (Set 16-bit Accumulator) C2/3B1D: B9 18 30 LDA $3018,Y (Represents the target) C2/3B20: 8D 48 3A STA $3A48 (Indicate a miss, due to the attack not changing any statuses or due to checks in its special effect) C2/3B23: 0C 5A 3A TSB $3A5A (Set target as Missed) C2/3B26: 14 A4 TRB $A4 (Remove this target from hit targets) C2/3B28: 60 RTS Sketch C2/3B29: C0 08 CPY #$08 C2/3B2B: 90 EE BCC $3B1B (Miss if aimed at party) C2/3B2D: B9 80 3C LDA $3C80,Y C2/3B30: 89 20 BIT #$20 C2/3B32: D0 30 BNE $3B64 (Branch if target has Can't Sketch) C2/3B34: A3 05 LDA $05,S C2/3B36: AA TAX C2/3B37: BD 45 3C LDA $3C45,X (Beret "boost Sketch chance" in Bit 2) C2/3B3A: 4A LSR C2/3B3B: 4A LSR C2/3B3C: 4A LSR C2/3B3D: 20 92 37 JSR $3792 (Sketch/Control chance - pass bit 2 of $3C45 as carry) C2/3B40: B0 D9 BCS $3B1B (branch if sketch missed) C2/3B42: 8C 17 34 STY $3417 (save Target as Sketchee) C2/3B45: 98 TYA C2/3B46: E9 07 SBC #$07 (subtract 8, as Carry is clear) C2/3B48: 4A LSR C2/3B49: 85 B7 STA $B7 (save 0-5 index of our Sketched monster) C2/3B4B: 20 BB 35 JSR $35BB (Update a previous entry in ($76) animation buffer with data in $B4 - $B7) C2/3B4E: 20 5A 4B JSR $4B5A (random: 0 to 255) C2/3B51: C9 40 CMP #$40 (75% chance for second sketch attack) C2/3B53: C2 30 REP #$30 (Set 16-bit Accumulator and Index registers) C2/3B55: B9 F9 1F LDA $1FF9,Y (get monster #) C2/3B58: 2A ROL C2/3B59: AA TAX C2/3B5A: BF 00 43 CF LDA $CF4300,X C2/3B5E: E2 30 SEP #$30 (Set 8-bit A, X, & Y) C2/3B60: 8D 00 34 STA $3400 (Set attack to sketched attack) C2/3B63: 60 RTS C2/3B64: A9 1F LDA #$1F C2/3B66: 8D 01 34 STA $3401 (Store can't sketch message) C2/3B69: 80 B0 BRA $3B1B (Make attack miss) (BRA $3B18?) Special Effect $25 (Quake) C2/3B6B: B9 F9 3E LDA $3EF9,Y C2/3B6E: 30 AB BMI $3B1B (If Float status set, miss) C2/3B70: 60 RTS Leap C2/3B71: AD 49 2F LDA $2F49 C2/3B74: 89 08 BIT #$08 (extra enemy formation data: is "Can't Leap" set?) C2/3B76: D0 18 BNE $3B90 (if so, miss with text) C2/3B78: AD 76 3A LDA $3A76 (Number of present and living characters in party) C2/3B7B: C9 02 CMP #$02 C2/3B7D: 90 11 BCC $3B90 (if less than 2, then miss w/ text) C2/3B7F: A3 05 LDA $05,S C2/3B81: AA TAX C2/3B82: BD E9 3D LDA $3DE9,X C2/3B85: 09 20 ORA #$20 C2/3B87: 9D E9 3D STA $3DE9,X (Mark Hide status to be set in attacker) C2/3B8A: A9 04 LDA #$04 C2/3B8C: 8D 6E 3A STA $3A6E ("End of combat" method #4, Gau leaping) C2/3B8F: 60 RTS C2/3B90: A9 05 LDA #$05 C2/3B92: 8D 01 34 STA $3401 (Set to display text #5) C2/3B95: 4C 1B 3B JMP $3B1B (Miss target) (JMP $3B18?) Special Effect $50 (Possess) C2/3B98: A3 05 LDA $05,S C2/3B9A: AA TAX C2/3B9B: BD 18 30 LDA $3018,X C2/3B9E: 0C 4C 2F TSB $2F4C (mark Possessor to be removed from battlefield) (what about the Possessee?) C2/3BA1: 0C 88 3A TSB $3A88 (flag to remove Possessor from party at end of battle) C2/3BA4: 20 4A 38 JSR $384A (Mark Hide and Death statuses to be set on attacker in X, and mark entity X as last attacker of target in Y if Y doesn't have one this turn.) C2/3BA7: DA PHX C2/3BA8: BB TYX C2/3BA9: 20 4A 38 JSR $384A (Mark Hide and Death statuses to be set on target in X) C2/3BAC: 7A PLY (X now holds Possessee, and Y holds Possessor) C2/3BAD: 4C 1B 36 JMP $361B (Mark entity X as the last attacker of entity Y, but 50% chance not if Y already has an attacker this turn) Mind Blast C2/3BB0: C2 20 REP #$20 (Set 16-bit Accumulator) C2/3BB2: 20 FF 44 JSR $44FF (Clear Status to Set and Status to Clear bytes) C2/3BB5: B9 18 30 LDA $3018,Y (an original target, might also be in custom list) C2/3BB8: A2 06 LDX #$06 C2/3BBA: 3C 5C 3A BIT $3A5C,X (is the target in this slot of "Mind Blast victims" list? [this list was created previously in the other Mind Blast special effect function.]) C2/3BBD: F0 07 BEQ $3BC6 (branch and check next slot if not) C2/3BBF: 48 PHA C2/3BC0: DA PHX C2/3BC1: 20 D0 3B JSR $3BD0 (Randomly mark a status from attack data to be set) C2/3BC4: FA PLX C2/3BC5: 68 PLA C2/3BC6: CA DEX C2/3BC7: CA DEX C2/3BC8: 10 F0 BPL $3BBA (Do for all 4 list entries. an entity who's listed N times can get N statuses from this spell.) C2/3BCA: 60 RTS Evil Toot (Sets a random status from attack data) C2/3BCB: C2 20 REP #$20 (Set 16-bit Accumulator) C2/3BCD: 20 FF 44 JSR $44FF (Clear Status to Set and Status to Clear bytes) C2/3BD0: AD AA 11 LDA $11AA C2/3BD3: 20 0E 52 JSR $520E (X = Number of statuses set by attack in bytes 1 & 2) C2/3BD6: 86 EE STX $EE C2/3BD8: AD AC 11 LDA $11AC C2/3BDB: 20 0E 52 JSR $520E (X = Number of statuses set by attack in bytes 3 & 4) C2/3BDE: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/3BE0: 8A TXA C2/3BE1: 18 CLC C2/3BE2: 65 EE ADC $EE (A = # of total statuses flagged in attack data) C2/3BE4: 20 65 4B JSR $4B65 (random number: 0 to A - 1) C2/3BE7: C5 EE CMP $EE (Clear Carry if the random status we want to set is in spell status byte 1 or 2; Set Carry if it's in byte 3 or 4.) C2/3BE9: C2 20 REP #$20 (Set 16-bit Accumulator) C2/3BEB: 08 PHP C2/3BEC: AD AA 11 LDA $11AA C2/3BEF: 90 03 BCC $3BF4 (branch if we're attempting to set a status from status byte 1 or 2) C2/3BF1: AD AC 11 LDA $11AC (otherwise, it's from byte 3 or 4) C2/3BF4: 20 2A 52 JSR $522A (randomly pick a bit set in A) C2/3BF7: 28 PLP C2/3BF8: B0 03 BCS $3BFD C2/3BFA: 4C 32 0E JMP $0E32 (Set status picked bytes 1 or 2) C2/3BFD: 19 E8 3D ORA $3DE8,Y (Set status picked bytes 3 or 4) C2/3C00: 99 E8 3D STA $3DE8,Y C2/3C03: 60 RTS Rippler Effect C2/3C04: A3 05 LDA $05,S C2/3C06: AA TAX C2/3C07: C2 20 REP #$20 (Set 16-bit Accumulator) C2/3C09: BD E4 3E LDA $3EE4,X (status bytes 1-2, caster) C2/3C0C: 39 E4 3E AND $3EE4,Y (status bytes 1-2, target) C2/3C0F: 49 FF FF EOR #$FFFF C2/3C12: 85 EE STA $EE (save the statuses that aren't shared among caster and target. iow, turn on any bits that aren't set in both.) C2/3C14: BD E4 3E LDA $3EE4,X C2/3C17: 25 EE AND $EE (get statuses exclusive to caster) C2/3C19: 99 D4 3D STA $3DD4,Y (target status to set = statuses that were only set in caster) C2/3C1C: 9D FC 3D STA $3DFC,X (caster status to clear = statuses that were only set in caster) C2/3C1F: B9 E4 3E LDA $3EE4,Y C2/3C22: 25 EE AND $EE (get statuses exclusive to target) C2/3C24: 9D D4 3D STA $3DD4,X (caster status to set = statuses that were only set in target) C2/3C27: 99 FC 3D STA $3DFC,Y (target status to clear = statuses that were only set in target) C2/3C2A: BD F8 3E LDA $3EF8,X (status bytes 3-4, caster) C2/3C2D: 39 F8 3E AND $3EF8,Y (status bytes 3-4, target) C2/3C30: 49 FF FF EOR #$FFFF C2/3C33: 85 EE STA $EE (save the statuses that aren't shared among caster and target. iow, turn on any bits that aren't set in both.) C2/3C35: BD F8 3E LDA $3EF8,X C2/3C38: 25 EE AND $EE (get statuses exclusive to caster) C2/3C3A: 99 E8 3D STA $3DE8,Y (target status to set = statuses that were only set in caster) C2/3C3D: 9D 10 3E STA $3E10,X (caster status to clear = statuses that were only set in caster) C2/3C40: B9 F8 3E LDA $3EF8,Y C2/3C43: 25 EE AND $EE (get statuses exclusive to target) C2/3C45: 9D E8 3D STA $3DE8,X (caster status to set = statuses that were only set in target) C2/3C48: 99 10 3E STA $3E10,Y (target status to clear = statuses that were only set in target) C2/3C4B: 60 RTS Exploder effect from 3DCD C2/3C4C: A3 05 LDA $05,S C2/3C4E: AA TAX (X = attacker) C2/3C4F: 86 EE STX $EE C2/3C51: C4 EE CPY $EE (is this target the attacker?) C2/3C53: D0 05 BNE $3C5A (branch if not) C2/3C55: BD 18 30 LDA $3018,X C2/3C58: 14 A4 TRB $A4 (if so, and it's a character, clear it from hit targets. seemingly undoing the addition to targets by the earlier special effect function. but the problem is, C2/3467 sets the bit in $A4 again shortly after this function returns.) C2/3C5A: 60 RTS Scan effect C2/3C5B: B9 80 3C LDA $3C80,Y C2/3C5E: 89 10 BIT #$10 C2/3C60: D0 06 BNE $3C68 (Branch if target has Can't Scan) C2/3C62: BB TYX C2/3C63: A9 27 LDA #$27 C2/3C65: 4C 91 4E JMP $4E91 (queue a custom command to display all the info, in global Special Action queue) C2/3C68: A9 2C LDA #$2C C2/3C6A: 8D 01 34 STA $3401 (Store "Can't Scan" message) C2/3C6D: 60 RTS Suplex code from $3DCD C2/3C6E: B9 80 3C LDA $3C80,Y C2/3C71: 89 04 BIT #$04 (Is Can't Suplex set in Misc/Special enemy byte?) C2/3C73: F0 E5 BEQ $3C5A (If not, exit function) C2/3C75: 4C 1B 3B JMP $3B1B (Makes miss) Special Effect $57 - Air Anchor C2/3C78: B9 A1 3A LDA $3AA1,Y C2/3C7B: 89 04 BIT #$04 C2/3C7D: D0 F6 BNE $3C75 (Miss if instant death protected) C2/3C7F: A9 13 LDA #$13 C2/3C81: 8D 01 34 STA $3401 (Display text $13 - "Move, and you're dust!") C2/3C84: B9 05 32 LDA $3205,Y C2/3C87: 29 FB AND #$FB C2/3C89: 99 05 32 STA $3205,Y (Set Air Anchor effect) C2/3C8C: 9C 1A 34 STZ $341A (Special Effect $23 -- X-Zone, Odin, etc -- jumps here) C2/3C8F: 60 RTS L? Pearl from 3DCD C2/3C90: 60 RTS Charm C2/3C91: A3 05 LDA $05,S C2/3C93: AA TAX C2/3C94: BD 94 33 LDA $3394,X C2/3C97: 10 DC BPL $3C75 (Miss if attacker already charmed a target) C2/3C99: 98 TYA C2/3C9A: 9D 94 33 STA $3394,X (Attacker data: save which target they charmed) C2/3C9D: 8A TXA C2/3C9E: 99 95 33 STA $3395,Y (Target data: save who has charmed them) C2/3CA1: 60 RTS (Tapir) C2/3CA2: B9 E5 3E LDA $3EE5,Y C2/3CA5: 10 CE BPL $3C75 (Miss if target is not asleep) C2/3CA7: C2 20 REP #$20 (Set 16-bit Accumulator) C2/3CA9: B9 1C 3C LDA $3C1C,Y C2/3CAC: 99 F4 3B STA $3BF4,Y (Set HP to max HP) C2/3CAF: C2 20 REP #$20 (Pep Up and Elixir/Megalixir branch here) C2/3CB1: B9 30 3C LDA $3C30,Y C2/3CB4: 99 08 3C STA $3C08,Y (Set MP to max MP) C2/3CB7: 60 RTS Pep Up C2/3CB8: A3 05 LDA $05,S C2/3CBA: AA TAX C2/3CBB: 20 4A 38 JSR $384A (Mark Hide and Death statuses to be set on attacker in X, and mark entity X as last attacker of entity Y if Y doesn't have one this turn.) C2/3CBE: C2 20 REP #$20 (Set 16-bit Accumulator) C2/3CC0: BD 18 30 LDA $3018,X C2/3CC3: 0C 4C 2F TSB $2F4C (mark caster to be removed from the battlefield) C2/3CC6: 9E F4 3B STZ $3BF4,X (Set caster HP to 0) C2/3CC9: 9E 08 3C STZ $3C08,X (Set caster MP to 0) C2/3CCC: 80 E1 BRA $3CAF (Set target's MP to max MP) Special Effect $2E - Seize C2/3CCE: A3 05 LDA $05,S C2/3CD0: AA TAX C2/3CD1: BD 58 33 LDA $3358,X (whom attacker is Seizing) C2/3CD4: 10 9F BPL $3C75 (if already Seizing someone, jump to $3B1B - Miss) C2/3CD6: C0 08 CPY #$08 C2/3CD8: B0 9B BCS $3C75 (If target is not character - Miss) C2/3CDA: 98 TYA C2/3CDB: 9D 58 33 STA $3358,X (save who attacker is Seizing) C2/3CDE: 8A TXA C2/3CDF: 99 59 33 STA $3359,Y (save who target is Seized by) C2/3CE2: BD AC 3D LDA $3DAC,X C2/3CE5: 09 80 ORA #$80 C2/3CE7: 9D AC 3D STA $3DAC,X (set Seizing in monster variable visible from script) C2/3CEA: B9 18 30 LDA $3018,Y C2/3CED: 1C 03 34 TRB $3403 (add target to list of Seized characters) C2/3CF0: B9 A0 3A LDA $3AA0,Y C2/3CF3: 29 7F AND #$7F (Clear bit 7) C2/3CF5: 99 A0 3A STA $3AA0,Y C2/3CF8: A9 40 LDA #$40 C2/3CFA: 4C 4C 46 JMP $464C Discard C2/3CFD: A3 05 LDA $05,S C2/3CFF: AA TAX C2/3D00: BD AC 3D LDA $3DAC,X C2/3D03: 29 7F AND #$7F C2/3D05: 9D AC 3D STA $3DAC,X (clear Seizing in monster variable visible from script) C2/3D08: A9 FF LDA #$FF C2/3D0A: 9D 58 33 STA $3358,X (attacker Seizing nobody) C2/3D0D: 99 59 33 STA $3359,Y (target Seized by nobody) C2/3D10: B9 18 30 LDA $3018,Y C2/3D13: 0C 03 34 TSB $3403 (remove target from list of Seized characters) C2/3D16: 60 RTS (Special effect $4C - Elixir and Megalixir. In Item data, this appears as Special effect $04.) C2/3D17: A9 80 LDA #$80 C2/3D19: 20 4C 46 JSR $464C (Sets bit 7 in $3204,Y) C2/3D1C: 80 91 BRA $3CAF (Set MP to Max MP) Overcast C2/3D1E: B9 4D 3E LDA $3E4D,Y C2/3D21: 09 02 ORA #$02 C2/3D23: 99 4D 3E STA $3E4D,Y (Turn on Overcast bit, which will be checked by function C2/450D to give a dying target Zombie instead) C2/3D26: 60 RTS Zinger C2/3D27: A3 05 LDA $05,S C2/3D29: AA TAX C2/3D2A: 8E F8 33 STX $33F8 (save attacker as the Zingerer) C2/3D2D: 8C F9 33 STY $33F9 (save target as who's being Zingered) C2/3D30: BD 19 30 LDA $3019,X C2/3D33: 0C 4D 2F TSB $2F4D (mark attacker to be removed from the battlefield) C2/3D36: 60 RTS Love Token C2/3D37: A3 05 LDA $05,S C2/3D39: AA TAX C2/3D3A: 98 TYA C2/3D3B: 9D 6C 33 STA $336C,X (Attacker data: save which target takes damage for them) C2/3D3E: 8A TXA C2/3D3F: 99 6D 33 STA $336D,Y (Target data: save who they're taking damage for) C2/3D42: 60 RTS Kill with 'X' effect (Auto hit undead, Restores undead) C2/3D43: 18 CLC C2/3D44: A9 7E LDA #$7E (tells function it's an x-kill weapon) C2/3D46: 20 90 38 JSR $3890 (call x-kill/dice-up function, decide whether to activate instant kill) C2/3D49: B9 95 3C LDA $3C95,Y (Doom effect jumps here) C2/3D4C: 10 14 BPL $3D62 (Exit function if not undead) C2/3D4E: C0 08 CPY #$08 C2/3D50: B0 11 BCS $3D63 (Branch if not character) C2/3D52: B9 D4 3D LDA $3DD4,Y C2/3D55: 29 7F AND #$7F C2/3D57: 99 D4 3D STA $3DD4,Y (Remove Death from Status to Set) C2/3D5A: C2 20 REP #$20 C2/3D5C: B9 1C 3C LDA $3C1C,Y C2/3D5F: 99 F4 3B STA $3BF4,Y (Fully heal HP) C2/3D62: 60 RTS C2/3D63: 7B TDC (clear 16-bit A) C2/3D64: B9 E9 3D LDA $3DE9,Y C2/3D67: 09 20 ORA #$20 C2/3D69: 99 E9 3D STA $3DE9,Y (Add Hide to target's Status to Set) C2/3D6C: B9 19 30 LDA $3019,Y (get unique bit identifying this monster) C2/3D6F: EB XBA C2/3D70: C2 20 REP #$20 (Set 16-bit Accumulator) C2/3D72: 85 B8 STA $B8 (save as target in $B9. subcommand in $B8 is 0.) C2/3D74: A2 0A LDX #$0A (animation type) C2/3D76: A9 24 00 LDA #$0024 (payload command of F5 monster script command. so we're queuing Command F5 0A 00 here.) C2/3D79: 4C 91 4E JMP $4E91 (queue it, in global Special Action queue) Phantasm C2/3D7C: B9 4D 3E LDA $3E4D,Y C2/3D7F: 09 40 ORA #$40 C2/3D81: 99 4D 3E STA $3E4D,Y (give Seizure-like quasi status to target; unnamed, but some call it HP Leak) C2/3D84: 60 RTS Stunner (Only a Hit Rate / 256 chance it will actually try to inflict statuses on the target) C2/3D85: 20 5A 4B JSR $4B5A (random: 0 to 255) C2/3D88: CD A8 11 CMP $11A8 C2/3D8B: 90 1A BCC $3DA7 (If less than hit rate then exit) C2/3D8D: C2 20 REP #$20 (Set 16-bit Accumulator) C2/3D8F: AD AA 11 LDA $11AA (Spell's Status to Set bytes 1+2) C2/3D92: 49 FF FF EOR #$FFFF C2/3D95: 39 D4 3D AND $3DD4,Y (Subtract it from target's Status to Set bytes 1+2) C2/3D98: 99 D4 3D STA $3DD4,Y C2/3D9B: AD AC 11 LDA $11AC (Spell's Status to Set bytes 3+4) C2/3D9E: 49 FF FF EOR #$FFFF C2/3DA1: 39 E8 3D AND $3DE8,Y (Subtract it from target's Status to Set bytes 3+4) C2/3DA4: 99 E8 3D STA $3DE8,Y C2/3DA7: 60 RTS Targeting C2/3DA8: A3 05 LDA $05,S C2/3DAA: AA TAX C2/3DAB: 98 TYA C2/3DAC: 9D F5 32 STA $32F5,X (Stores target) C2/3DAF: 60 RTS Fallen One C2/3DB0: C2 20 REP #$20 (Set 16-bit Accumulator) C2/3DB2: 7B TDC (Clear Accumulator) C2/3DB3: 1A INC C2/3DB4: 99 F4 3B STA $3BF4,Y (Store 1 in HP) C2/3DB7: 60 RTS Special effect $4A - Super Ball C2/3DB8: 20 5A 4B JSR $4B5A (Random Number 0 to 255) C2/3DBB: 29 07 AND #$07 (Random Number 0 to 7) C2/3DBD: 1A INC (1 to 8) C2/3DBE: 8D B1 11 STA $11B1 (Set damage to 256 to 2048 in steps of 256) C2/3DC1: 9C B0 11 STZ $11B0 C2/3DC4: 60 RTS Metamorph Chance C2/3DC5: FF C2/3DC6: C0 C2/3DC7: 80 C2/3DC8: 40 C2/3DC9: 20 C2/3DCA: 10 C2/3DCB: 08 C2/3DCC: 00 Table for special effects code pointers 1 (once-per-target) C2/3DCD: 8C 38 C2/3DCF: 8C 38 C2/3DD1: 8C 38 C2/3DD3: 43 3D ($03) C2/3DD5: F2 38 ($04) C2/3DD7: 8C 38 C2/3DD9: 8C 38 C2/3DDB: 8C 38 C2/3DDD: FE 38 ($08) C2/3DDF: 8C 38 C2/3DE1: 8C 38 C2/3DE3: 8C 38 C2/3DE5: 8C 38 C2/3DE7: 8D 38 ($0D) C2/3DE9: 8C 38 C2/3DEB: 8C 38 C2/3DED: 5B 3C ($10) C2/3DED: 8C 38 C2/3DF1: 3C 3A ($12) C2/3DF3: 34 39 ($13) C2/3DF5: 8C 38 C2/3DF7: 8C 38 C2/3DF9: 8C 38 C2/3DFB: A2 3C ($17) C2/3DFD: 8C 38 C2/3DFF: 4C 3C ($19) C2/3E01: 8C 38 C2/3E03: 8C 38 C2/3E05: 90 3C ($1C) C2/3E08: 8C 38 C2/3E09: 8C 38 C2/3E0B: 78 39 ($1F) C2/3E0D: B8 3C ($20) C2/3E0F: 04 3C ($21) C2/3E11: 22 39 ($22) C2/3E13: 8C 3C ($23) C2/3E15: 8C 38 C2/3E17: 6B 3B ($25) C2/3E19: 89 39 ($26) C2/3E1B: 6C 39 ($27) C2/3E1D: B0 3B ($28) C2/3E1F: 8C 38 C2/3E21: 8C 38 C2/3E23: 80 39 ($2B) C2/3E25: 8C 38 C2/3E27: 37 3D ($2D) C2/3E29: CE 3C ($2E) C2/3E2B: A8 3D ($2F) C2/3E2D: 6E 3C ($30) C2/3E2F: 8C 38 C2/3E31: 8C 38 C2/3E33: 66 39 ($33) C2/3E35: 91 3C ($34) C2/3E37: 49 3D ($35) C2/3E39: 8C 38 C2/3E3B: 1E 3D ($37) C2/3E3D: 6C 39 ($38) C2/3E3F: 5E 39 ($39) C2/3E41: 27 3D ($3A) C2/3E43: CB 3B ($3B) C2/3E45: 8C 38 C2/3E47: 8C 38 C2/3E49: 7C 3D ($3E) C2/3E4B: 85 3D ($3F) C2/3E4D: B0 3D ($40) C2/3E4F: 8C 38 C2/3E51: 8C 38 C2/3E53: 8C 38 C2/3E55: FD 3C ($44) C2/3E57: 8C 38 C2/3E59: 8C 38 C2/3E5B: 8C 38 C2/3E5D: 8C 38 C2/3E5F: 8C 38 C2/3E61: B8 3D ($4A) C2/3E63: 6C 39 ($4B) C2/3E65: 17 3D ($4C) C2/3E67: 8C 38 C2/3E69: 8C 38 C2/3E6B: 8C 38 C2/3E6D: 98 3B ($50) C2/3E6F: 8C 38 C2/3E71: 9E 39 ($52) C2/3E73: C5 3A ($53) C2/3E75: 71 3B ($54) C2/3E77: 29 3B ($55) C2/3E79: 8D 3A ($56) C2/3E7B: 78 3C ($57) (Calls once-per-strike special effect code) C2/3E7D: DA PHX C2/3E7E: 08 PHP C2/3E7F: E2 30 SEP #$30 C2/3E81: 9B TXY C2/3E82: AE A9 11 LDX $11A9 C2/3E85: FC E1 42 JSR ($42E1,X) C2/3E88: 28 PLP C2/3E89: FA PLX C2/3E8A: 60 RTS Random Steal Effect (Special Effect 1 - ThiefKnife) C2/3E8B: 20 53 4B JSR $4B53 (50% chance to steal) C2/3E8E: B0 0F BCS $3E9F C2/3E90: A9 A4 LDA #$A4 (Add steal effect to attack) C2/3E92: 8D A9 11 STA $11A9 C2/3E95: A5 B5 LDA $B5 C2/3E97: C9 00 CMP #$00 C2/3E99: D0 04 BNE $3E9F (Exit if Command is not Fight) C2/3E9B: A9 06 LDA #$06 C2/3E9D: 85 B5 STA $B5 (set command to Capture for animation purposes) C2/3E9F: 60 RTS (Step Mine - sets damage to Steps / Spell Power, capped at 65535) C2/3EA0: 9C 14 34 STZ $3414 (Set to ignore damage modifiers) C2/3EA3: C2 20 REP #$20 (Set 16-bit Accumulator) C2/3EA5: 7B TDC C2/3EA6: 3A DEC C2/3EA7: 8D B0 11 STA $11B0 (Store default of 65535 in maximum damage) C2/3EAA: AD 67 18 LDA $1867 (Steps High 2 Bytes) C2/3EAD: AE A6 11 LDX $11A6 (Spell Power) C2/3EB0: 20 92 47 JSR $4792 (Division function Steps / Spell Power) C2/3EB3: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/3EB5: EB XBA C2/3EB6: D0 11 BNE $3EC9 (If the top byte of quotient is nonzero, we know the final result will exceed 2 bytes, so leave it at 65535 and branch) C2/3EB8: 8A TXA (A = remainder of Steps / Spell Power) C2/3EB9: EB XBA C2/3EBA: 8D B1 11 STA $11B1 (Store in Maximum Damage high byte) C2/3EBD: AD 66 18 LDA $1866 (Steps Low Byte) C2/3EC0: AE A6 11 LDX $11A6 (Spell Power) C2/3EC3: 20 92 47 JSR $4792 (Division function) C2/3EC6: 8D B0 11 STA $11B0 (Store in Maximum Damage low byte) C2/3EC9: 60 RTS (Ogre Nix - Weapon randomly breaks. Also uses MP for criticals.) C2/3ECA: A5 B1 LDA $B1 C2/3ECC: 4A LSR C2/3ECD: B0 53 BCS $3F22 (if not a conventional attack [i.e. in this context: it's a counterattack], Jump to code for attack with MP) C2/3ECF: B9 A0 3A LDA $3AA0,Y C2/3ED2: 89 04 BIT #$04 C2/3ED4: D0 4C BNE $3F22 (Jump to code for attack with MP if bit 2 of $3AA0,Y is set) C2/3ED6: B9 F5 3B LDA $3BF5,Y (Load high byte of HP) C2/3ED9: EB XBA C2/3EDA: B9 F4 3B LDA $3BF4,Y (Load low byte of HP) C2/3EDD: A2 0A LDX #$0A C2/3EDF: 20 92 47 JSR $4792 (A = HP / 10. X = remainder, or the ones digit.) C2/3EE2: E8 INX C2/3EE3: 8A TXA C2/3EE4: 20 65 4B JSR $4B65 (Random number 0 to last digit of HP) C2/3EE7: 3A DEC C2/3EE8: 10 38 BPL $3F22 (If number was not 0, branch) C2/3EEA: 98 TYA C2/3EEB: 4A LSR C2/3EEC: AA TAX (X = target [0, 1, 2, 3, etc]) C2/3EED: FE 30 2F INC $2F30,X (flag character's properties to be recalculated from his/her equipment at end of turn.) C2/3EF0: EB XBA C2/3EF1: A9 05 LDA #$05 C2/3EF3: 20 81 47 JSR $4781 (Multiplication function) C2/3EF6: 85 EE STA $EE (save target # * 5) C2/3EF8: BB TYX C2/3EF9: AD 70 3A LDA $3A70 (# of strikes remaining in attack. with Fight/Capture, this value is always odd when the right hand is striking, and even when the left is. unfortunately, that's not the case with Jump -- the hand used has nothing to do with the strike # (in fact, it's random when Genji Glove is worn) -- resulting in a bug where Ogre Nix fails to break when it should [as C2/3F0B will check the wrong hand].) C2/3EFC: 4A LSR (Carry = 1 for right hand, 0 for left) C2/3EFD: B0 07 BCS $3F06 (branch if right hand is attacking) C2/3EFF: E8 INX (point to left hand equipment slot) C2/3F00: A5 EE LDA $EE C2/3F02: 69 14 ADC #$14 C2/3F04: 85 EE STA $EE (point to the character's left hand in their menu data) C2/3F06: 9E 68 3B STZ $3B68,X (zero this hand's Battle Power) C2/3F09: A6 EE LDX $EE C2/3F0B: BD 86 2B LDA $2B86,X (get item in this hand) C2/3F0E: C9 17 CMP #$17 C2/3F10: D0 10 BNE $3F22 (Branch if it's not Ogre Nix) C2/3F12: A9 FF LDA #$FF C2/3F14: 9D 86 2B STA $2B86,X (null this hand slot in the character's menu data) C2/3F17: 9D 87 2B STA $2B87,X C2/3F1A: 9E 89 2B STZ $2B89,X C2/3F1D: A9 44 LDA #$44 C2/3F1F: 8D 01 34 STA $3401 (Display weapon broke text) C2/3F22: A9 0C LDA #$0C (Special Effect 7 - Use MP for criticals - jumps here. Featured in Rune Edge, Punisher, Ragnarok, and Illumina.) C2/3F24: 85 EE STA $EE C2/3F26: A5 B2 LDA $B2 C2/3F28: 89 02 BIT #$02 C2/3F2A: D0 23 BNE $3F4F (Exit function if "No Critical and Ignore True Knight" is set) C2/3F2C: AD C9 3E LDA $3EC9 C2/3F2F: F0 1E BEQ $3F4F (Exit function if no targets) C2/3F31: 7B TDC (Clear 16-bit A) C2/3F32: 20 5A 4B JSR $4B5A (random #: 0 to 255) C2/3F35: 29 07 AND #$07 (now random #: 0 to 7) C2/3F37: 18 CLC C2/3F38: 65 EE ADC $EE (Add to $EE [#$0C]) C2/3F3A: C2 20 REP #$20 (Set 16-bit Accumulator) C2/3F3C: 85 EE STA $EE (Save MP consumed) C2/3F3E: B9 08 3C LDA $3C08,Y (Attacker MP) C2/3F41: C5 EE CMP $EE C2/3F43: 90 0A BCC $3F4F (Exit function if weapon would drain more MP than the wielder currently has) C2/3F45: E5 EE SBC $EE C2/3F47: 99 08 3C STA $3C08,Y (Current MP = Current MP - MP consumed) C2/3F4A: A9 00 02 LDA #$0200 C2/3F4D: 14 B2 TRB $B2 (Set always critical) C2/3F4F: 60 RTS (Special Effect $0F - Use MP for criticals. No weapons use this, afaik.) C2/3F50: A9 1C LDA #$1C C2/3F52: 80 D0 BRA $3F24 Pearl Wind C2/3F54: A9 60 LDA #$60 C2/3F56: 0C A2 11 TSB $11A2 (Sets no split damage, and ignore defense) C2/3F59: 9C 14 34 STZ $3414 (Set to not modify damage) C2/3F5C: C2 20 REP #$20 C2/3F5E: B9 F4 3B LDA $3BF4,Y (HP) C2/3F61: 8D B0 11 STA $11B0 (Maximum Damage = HP) C2/3F64: 60 RTS Golem C2/3F65: C2 20 REP #$20 C2/3F67: B9 F4 3B LDA $3BF4,Y (Current HP) C2/3F6A: 8D 36 3A STA $3A36 (HP that Golem will absorb) C2/3F6D: 60 RTS Special Effect 6 - Soul Sabre C2/3F6E: A9 80 LDA #$80 C2/3F70: 0C A3 11 TSB $11A3 (Sets attack to Concern MP) C2/3F73: A9 08 LDA #$08 (Special Effect 5 - Drainer jumps here) C2/3F75: 0C A2 11 TSB $11A2 (Sets attack to heal undead) C2/3F78: A9 02 LDA #$02 C2/3F7A: 0C A4 11 TSB $11A4 (Sets attack to redirection) C2/3F7D: 60 RTS Recover HP - Heal Rod C2/3F7E: A9 20 LDA #$20 C2/3F80: 0C A2 11 TSB $11A2 (Sets attack to ignore defense) C2/3F83: A9 01 LDA #$01 C2/3F85: 0C A4 11 TSB $11A4 (Sets attack to heal) C2/3F88: 60 RTS Valiant Knife C2/3F89: A9 20 LDA #$20 C2/3F8B: 0C A2 11 TSB $11A2 (Sets attack to ignore defense) C2/3F8E: C2 20 REP #$20 C2/3F90: 38 SEC C2/3F91: B9 1C 3C LDA $3C1C,Y (Max HP) C2/3F94: F9 F4 3B SBC $3BF4,Y (HP) C2/3F97: 18 CLC C2/3F98: 6D B0 11 ADC $11B0 (Add Max HP - Current HP to damage) C2/3F9B: 8D B0 11 STA $11B0 C2/3F9E: 60 RTS (Wind Slash - Tempest) C2/3F9F: 20 5A 4B JSR $4B5A (Random Number Function: 0 to 255) C2/3FA2: C9 80 CMP #$80 C2/3FA4: B0 10 BCS $3FB6 (50% chance exit function) C2/3FA6: 9C A6 11 STZ $11A6 (Clear Battle Power) C2/3FA9: A9 65 LDA #$65 (Wind Slash spell number) C2/3FAB: 80 03 BRA $3FB0 (Magicite) C2/3FAD: 20 DC 37 JSR $37DC (Picks random Esper, not Odin or Raiden) C2/3FB0: 8D 00 34 STA $3400 (Save the spell number) C2/3FB3: EE 70 3A INC $3A70 (Increment the number of attacks remaining) C2/3FB6: 60 RTS Special effect $51 GP Rain C2/3FB7: B9 18 3B LDA $3B18,Y (Attacker's Level) C2/3FBA: EB XBA C2/3FBB: A9 1E LDA #$1E C2/3FBD: 20 81 47 JSR $4781 (attack will cost: Attacker's Level * 30) (JSR $2B63?) C2/3FC0: C2 20 REP #$20 (Set 16-bit accumulator) C2/3FC2: C0 08 CPY #$08 C2/3FC4: B0 0D BCS $3FD3 (Branch if attacker is monster) C2/3FC6: 20 B6 37 JSR $37B6 (deduct thrown gold from party's inventory) C2/3FC9: D0 1E BNE $3FE9 (branch if there was actually some GP to throw) C2/3FCB: 64 A4 STZ $A4 (Makes attack target nothing) C2/3FCD: A2 08 LDX #$08 C2/3FCF: 8E 01 34 STX $3401 (Set to display text 8 - "No money!!") C2/3FD2: 60 RTS C2/3FD3: 85 EE STA $EE (Level * 30) C2/3FD5: B9 98 3D LDA $3D98,Y (Gold monster gives) C2/3FD8: F0 F1 BEQ $3FCB (Miss all w/text if = 0) C2/3FDA: E5 EE SBC $EE C2/3FDC: B0 06 BCS $3FE4 (Branch if monster's gold >= Level * 30) C2/3FDE: B9 98 3D LDA $3D98,Y C2/3FE1: 85 EE STA $EE (if gold to consume was more than current gold, set $EE to current gold) C2/3FE3: 7B TDC C2/3FE4: 99 98 3D STA $3D98,Y (Set Gold to 0 or Gold - Level * 30) C2/3FE7: A5 EE LDA $EE (get amount of gold to consume) C2/3FE9: A2 02 LDX #$02 C2/3FEB: 86 E8 STX $E8 C2/3FED: 20 B7 47 JSR $47B7 (24-bit $E8 = A * 2) C2/3FF0: A5 E8 LDA $E8 (A = gold to consume * 2) C2/3FF2: AE C9 3E LDX $3EC9 (Number of targets) C2/3FF5: 20 92 47 JSR $4792 (A / number of targets) C2/3FF8: 8D B0 11 STA $11B0 (Sets maximum damage) C2/3FFB: 60 RTS Exploder effect from 42E1 C2/3FFC: BB TYX C2/3FFD: 64 BC STZ $BC (clear the Damage Incrementor. i don't think it ever could have been set, aside from Morph being Ripplered onto a Lore user.) C2/3FFF: A9 10 LDA #$10 C2/4001: 04 B0 TSB $B0 (somehow ensures caster still steps forward to do attack, and gets blue triangle. must be needed because of extra C2/57C2 calls.) C2/4003: 9C 14 34 STZ $3414 (Set to not modify damage) C2/4006: C2 20 REP #$20 (Set 16-bit A) C2/4008: A5 A4 LDA $A4 (Load target hit) C2/400A: 48 PHA C2/400B: BD 18 30 LDA $3018,X C2/400E: 85 B8 STA $B8 (temporarily save caster as sole target) C2/4010: 20 C2 57 JSR $57C2 C2/4013: 20 DB 63 JSR $63DB (Copy $An variables to ($78) buffer) C2/4016: A3 01 LDA $01,S (restore original target) C2/4018: 85 B8 STA $B8 C2/401A: 20 C2 57 JSR $57C2 C2/401D: 68 PLA C2/401E: 1D 18 30 ORA $3018,X C2/4021: 85 A4 STA $A4 (add attacker to targets) C2/4023: BD F4 3B LDA $3BF4,X C2/4026: 8D B0 11 STA $11B0 (Sets damage to caster's Current HP) C2/4029: 4C AD 35 JMP $35AD (Write data in $B4 - $B7 to current slot in ($76) animation buffer, and point $3A71 to this slot) Special effect $4A (Super Ball) C2/402C: A9 7D LDA #$7D C2/402E: 85 B6 STA $B6 (Set Animation) C2/4030: 20 5A 4B JSR $4B5A (random: 0 to 255) C2/4033: 29 03 AND #$03 (0 to 3) C2/4035: 80 02 BRA $4039 C2/4037: A9 07 LDA #$07 (Special Effect $2C, Launcher, jumps here) C2/4039: 8D 05 34 STA $3405 (# of hits to do. this is a zero-based counter, so a value of 0 means 1 hit.) C2/403C: C2 20 REP #$20 (Set 16-bit Accumulator) C2/403E: B9 18 30 LDA $3018,Y C2/4041: 85 A6 STA $A6 (mark attacker as "reflected off of", which will later trigger function C2/3483 and cause him/her to be treated as the missile launcher or ball thrower.) C2/4043: 60 RTS Special Effect 2 (Atma Weapon) C2/4044: A9 20 LDA #$20 C2/4046: 0C A2 11 TSB $11A2 (Set attack to ignore defense) C2/4049: A9 02 LDA #$02 C2/404B: 04 B2 TSB $B2 (Set no critical & ignore True Knight) C2/404D: 60 RTS Warp effect (Warp Stone uses same effect) C2/404E: A5 B1 LDA $B1 C2/4050: 89 04 BIT #$04 (is "Can't Escape" flag set by an active enemy?) C2/4052: D0 06 BNE $405A (branch if so) C2/4054: A9 02 LDA #$02 C2/4056: 8D 6E 3A STA $3A6E ("End of combat" method #2, Warping) C2/4059: 60 RTS C2/405A: A9 0A LDA #$0A C2/405C: 8D 01 34 STA $3401 (Display can't run text) C2/405F: 80 3B BRA $409C (Set to no targets) Bababreath from 42E1 C2/4061: 64 EE STZ $EE C2/4063: A2 06 LDX #$06 C2/4065: BD A0 3A LDA $3AA0,X C2/4068: 4A LSR C2/4069: 90 11 BCC $407C (branch if target not valid) C2/406B: BD E4 3E LDA $3EE4,X (Status byte 1) C2/406E: 89 C2 BIT #$C2 (Check for Dead, Zombie, or Petrify) C2/4070: F0 0A BEQ $407C (Branch if none set) C2/4072: BD 18 30 LDA $3018,X C2/4075: 2C 2C 3F BIT $3F2C C2/4078: D0 02 BNE $407C (branch if airborne from jump) C2/407A: 85 EE STA $EE (save as preferred target) C2/407C: CA DEX C2/407D: CA DEX C2/407E: 10 E5 BPL $4065 (Loop through all 4 characters) C2/4080: A5 EE LDA $EE C2/4082: D0 09 BNE $408D (if any character is Dead/Zombied/Petrified and not airborne, use it as target instead. if there're multiple such characters, use the one who's closest to the start of the party lineup.) C2/4084: AD 76 3A LDA $3A76 (Number of present and living characters in party) C2/4087: C9 02 CMP #$02 C2/4089: B0 2F BCS $40BA (Exit function if 2+ characters alive, retaining the initial target) C2/408B: 80 0F BRA $409C (Set to no targets, because we don't want to blow away the only living character.) C2/408D: 85 B8 STA $B8 (save the Dead/Zombied/Petrified character as sole target) C2/408F: 64 B9 STZ $B9 (clear any monster targets) C2/4091: BB TYX C2/4092: 4C C2 57 JMP $57C2 Special effect $50 - Possess 106/256 chance to miss C2/4095: 20 5A 4B JSR $4B5A (Random Number Function 0 to 255) C2/4098: C9 96 CMP #$96 C2/409A: 90 1E BCC $40BA (Exit function if A < 150) C2/409C: 64 A4 STZ $A4 C2/409E: 64 A5 STZ $A5 (Make target nothing) C2/40A0: 60 RTS L? Pearl from 42E1 C2/40A1: AD 62 18 LDA $1862 (the following code will divide our 24-bit gold, held in $1860 - $1862, by 10.) C2/40A4: EB XBA C2/40A5: AD 61 18 LDA $1861 C2/40A8: A2 0A LDX #$0A C2/40AA: 20 92 47 JSR $4792 (Divides top 2 bytes of gold by 10. put quotient in A, and remainder in X.) C2/40AD: 8A TXA C2/40AE: EB XBA C2/40AF: AD 60 18 LDA $1860 (16-bit A = (above remainder * 256) + bottom byte of gold) C2/40B2: A2 0A LDX #$0A C2/40B4: 20 92 47 JSR $4792 (X = gold amount MOD 10, i.e. the ones digit of GP) C2/40B7: 8E A8 11 STX $11A8 (Save as Hit rate / level multiplier for LX spells) C2/40BA: 60 RTS Escape C2/40BB: C0 08 CPY #$08 C2/40BD: B0 FB BCS $40BA (Exit if monster) C2/40BF: A9 22 LDA #$22 C2/40C1: 85 B5 STA $B5 (use striding away animation instead of just disappearing) C2/40C3: A9 10 LDA #$10 C2/40C5: 04 A0 TSB $A0 (would prevent the character from stepping forward and getting a blue triangle if that animation didn't already do so) C2/40C7: 60 RTS Special effect $4B - Smoke Bomb C2/40C8: A9 04 LDA #$04 C2/40CA: 24 B1 BIT $B1 (is "Can't Escape" flag set by an active enemy?) C2/40CC: F0 EC BEQ $40BA (Exit if not) C2/40CE: 20 9C 40 JSR $409C (Set to no targets) C2/40D1: 9C A9 11 STZ $11A9 (Clear special effect) C2/40D4: A9 09 LDA #$09 C2/40D6: 8D 01 34 STA $3401 (Display text #9) C2/40D9: 60 RTS Forcefield C2/40DA: 7B TDC (Clear Accumulator) C2/40DB: A9 FF LDA #$FF C2/40DD: 4D C8 3E EOR $3EC8 C2/40E0: F0 BA BEQ $409C (Set to no targets if all elements nullified) C2/40E2: 20 2A 52 JSR $522A (Randomly pick a set bit) C2/40E5: 0C C8 3E TSB $3EC8 (Set that bit in $3EC8) C2/40E8: 20 F0 51 JSR $51F0 (X = Get which bit is picked) C2/40EB: 8A TXA C2/40EC: 18 CLC C2/40ED: 69 37 ADC #$37 C2/40EF: 80 E5 BRA $40D6 Quadra Slam, Quadra Slice, etc. 4 Random attacks C2/40F1: A9 03 LDA #$03 C2/40F3: 8D 70 3A STA $3A70 (# of attacks) C2/40F6: A9 40 LDA #$40 C2/40F8: 04 BA TSB $BA (Sets randomize target) C2/40FA: 9C A9 11 STZ $11A9 (Clears special effect) C2/40FD: 60 RTS Blow Fish C2/40FE: A9 60 LDA #$60 C2/4100: 0C A2 11 TSB $11A2 (Set Ignore defense, and no split damage) C2/4103: 9C 14 34 STZ $3414 (Set to not modify damage) C2/4106: C2 20 REP #$20 (Set 16-bit Accumulator) C2/4108: A9 E8 03 LDA #$03E8 C2/410B: 8D B0 11 STA $11B0 (Set damage to 1000) C2/410E: 60 RTS Flare Star C2/410F: 9C 14 34 STZ $3414 (Set to not modify damage) C2/4112: C2 20 REP #$20 (Set 16-bit Accumulator) C2/4114: A5 A2 LDA $A2 (Bitfield of targets) C2/4116: 20 2A 52 JSR $522A (A = a random target present in $A2) C2/4119: 20 F9 51 JSR $51F9 (Y = [Number of highest target set in A] * 2. so we're obtaining a target index.) C2/411C: A5 A2 LDA $A2 C2/411E: 20 0E 52 JSR $520E (X = number of bits set in A, so # of targets) C2/4121: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/4123: B9 18 3B LDA $3B18,Y (Level) C2/4126: EB XBA C2/4127: AD A6 11 LDA $11A6 (Spell Power) C2/412A: 20 81 47 JSR $4781 (Spell Power * Level) C2/412D: 20 92 47 JSR $4792 (Divide by X, the number of targets) C2/4130: C2 20 REP #$20 (Set 16-bit Accumulator) C2/4132: 8D B0 11 STA $11B0 (Store in maximum damage) C2/4135: 60 RTS (Special effect $4C - Elixir and Megalixir. In Item data, this appears as Special effect $04) C2/4136: A9 80 LDA #$80 C2/4138: 1C A3 11 TRB $11A3 (Clears concern MP) C2/413B: 60 RTS (Special effect $28 - Mind Blast) C2/413C: C2 20 REP #$20 (Set 16-bit Accumulator) C2/413E: A0 06 LDY #$06 C2/4140: A5 A4 LDA $A4 C2/4142: 20 2A 52 JSR $522A (Randomly pick an entity from among the targets) C2/4145: 99 5C 3A STA $3A5C,Y (add them to "Mind Blast victims" list. the other Mind Blast special effect will later try to give an ailment to each entry in the list. and yes, there can be duplicates.) C2/4148: 88 DEY C2/4149: 88 DEY C2/414A: 10 F4 BPL $4140 (Do four times) C2/414C: 60 RTS (Miss random targets Special Effect $29 - N. Cross Each target will have a 50% chance of being untargeted.) C2/414D: 20 5A 4B JSR $4B5A (random #: 0 to 255) C2/4150: 14 A4 TRB $A4 C2/4152: 20 5A 4B JSR $4B5A (random #: 0 to 255) C2/4155: 14 A5 TRB $A5 C2/4157: 60 RTS (Dice Effect) C2/4158: 9C 14 34 STZ $3414 (Set to not modify damage) C2/415B: A9 20 LDA #$20 C2/415D: 0C A4 11 TSB $11A4 (Makes unblockable) C2/4160: A9 0F LDA #$0F C2/4162: 85 B6 STA $B6 (Third die defaults to null to start with) C2/4164: 7B TDC C2/4165: 20 5A 4B JSR $4B5A (Random Number Function 0 to 255) C2/4168: 48 PHA C2/4169: 29 0F AND #$0F (0 to 15) C2/416B: A2 06 LDX #$06 (will divide bottom nibble of random number by 6) C2/416D: 20 92 47 JSR $4792 (Division A/X. X will hold A MOD X) C2/4170: 86 B7 STX $B7 (First die roll, 0 to 5 -- 3/16 chance of 0 thru 3 each, 2/16 chance of 4 thru 5 each) C2/4172: E8 INX C2/4173: 86 EE STX $EE (Save first die roll, 1 to 6) C2/4175: 68 PLA (Retrieve our 0-255 random number) C2/4176: A2 60 LDX #$60 (will divide top nibble of random number by 6) C2/4178: 20 92 47 JSR $4792 (Division A/X) C2/417B: 8A TXA (get MOD of division) C2/417C: 29 F0 AND #$F0 (0 to 5) C2/417E: 05 B7 ORA $B7 C2/4180: 85 B7 STA $B7 ($B7: bottom nibble = 1st die roll 0 thru 5, top nibble = 2nd die roll 0 thru 5) C2/4182: 4A LSR C2/4183: 4A LSR C2/4184: 4A LSR C2/4185: 4A LSR C2/4186: 1A INC (2nd die roll, converted to a 1 thru 6 value) C2/4187: EB XBA (put in top half of A) C2/4188: A5 EE LDA $EE (Get first die roll, 1 to 6) C2/418A: 20 81 47 JSR $4781 (Multiply them) C2/418D: 85 EE STA $EE ($EE = 1st roll * 2nd roll, where each roll is 1 thru 6) C2/418F: AD A8 11 LDA $11A8 (# of dice) C2/4192: C9 03 CMP #$03 C2/4194: 90 15 BCC $41AB (Branch if less than 3 dice, i.e. there's 2) C2/4196: 7B TDC (Clear Accumulator) C2/4197: AD 1E 02 LDA $021E (our 1-60 frame counter. because 6 divides evenly into 60, the third die has the same odds for all sides; it is NOT slanted against you like the first two dice.) C2/419A: A2 06 LDX #$06 C2/419C: 20 92 47 JSR $4792 (Division A/X) C2/419F: 8A TXA (new random number MOD 6) C2/41A0: 85 B6 STA $B6 (save third die roll) C2/41A2: 1A INC C2/41A3: EB XBA (3rd die roll, converted to a 1 thru 6 value) C2/41A4: A5 EE LDA $EE C2/41A6: 20 81 47 JSR $4781 ( (1st roll * 2nd roll) * 3rd roll) C2/41A9: 85 EE STA $EE ($EE = 1st roll * 2nd roll * 3rd roll, where each roll is 1 thru 6) C2/41AB: A2 00 LDX #$00 C2/41AD: A5 B6 LDA $B6 (holds third die roll [0 to 5] if 3 dice, or 0Fh if only 2 dice) C2/41AF: 0A ASL C2/41B0: 0A ASL C2/41B1: 0A ASL C2/41B2: 0A ASL C2/41B3: 05 B6 ORA $B6 (A: if 2 dice, A = FF. if 3 dice, A top nibble = 3rd die roll, and A bottom nibble = 3rd die roll) C2/41B5: C5 B7 CMP $B7 (does 3rd die roll match both 1st and 2nd? obviously, it can NEVER if A = FF) C2/41B7: D0 02 BNE $41BB (if no match, branch) C2/41B9: A6 B6 LDX $B6 (X = 0 if there's not 3 matching dice. if there are, we've got a bonus coming, so let X be the 0 thru 5 roll value) C2/41BB: A5 EE LDA $EE (depending on # of dice, retrieve either: 1st roll * 2nd roll OR 1st roll * 2nd roll * 3rd roll) C2/41BD: EB XBA C2/41BE: AD AF 11 LDA $11AF (Attacker Level) C2/41C1: 0A ASL C2/41C2: 20 81 47 JSR $4781 ( (1st roll * 2nd roll * 3rd roll) * (Level * 2) ) C2/41C5: C2 20 REP #$20 (set 16 bit-Accumulator) C2/41C7: 85 EE STA $EE (overall damage = 2 Dice: 1st roll * 2nd roll * Level * 2, 3 Dice: 1st roll * 2nd roll * 3rd roll * Level * 2) C2/41C9: 18 CLC C2/41CA: 8D B0 11 STA $11B0 (save damage) C2/41CD: A5 EE LDA $EE C2/41CF: 6D B0 11 ADC $11B0 (Add [Level * 1st roll * 2nd roll * 3rd roll * 2] or [Level * 1st roll * 2nd roll * 2] to damage) C2/41D2: 90 02 BCC $41D6 (branch if it didn't overflow) C2/41D4: 7B TDC C2/41D5: 3A DEC (set running damage to 65535) C2/41D6: CA DEX C2/41D7: 10 F0 BPL $41C9 (Add the damage to itself X times, where X is the value as commented at C2/41B9. This loop serves to multiply 3 matching dice by the roll value once more, bringing the damage to: Roll * Roll * Roll * Level * 2 * Roll . if X is 0 (i.e. no 3 matching dice, or 3 matching dice with a value of 1), only the bonus-less damage is saved.) C2/41D9: E2 20 SEP #$20 (8-bit Accumulator) C2/41DB: A5 B5 LDA $B5 C2/41DD: C9 00 CMP #$00 C2/41DF: D0 02 BNE $41E3 (Branch if command not Fight) C2/41E1: A9 26 LDA #$26 C2/41E3: 85 B5 STA $B5 (Store a dice toss animation) C2/41E5: 60 RTS Revenge C2/41E6: 9C 14 34 STZ $3414 (Set to not modify damage) C2/41E9: C2 20 REP #$20 (Set 16-bit Accumulator) C2/41EB: 38 SEC C2/41EC: B9 1C 3C LDA $3C1C,Y (Max HP) C2/41EF: F9 F4 3B SBC $3BF4,Y (Current HP) C2/41F2: 8D B0 11 STA $11B0 (Damage = Max HP - Current HP) C2/41F5: 60 RTS Palidor from $42E1 Makes not jump if you have Petrify, Sleep, Stop, Hide, or Freeze status C2/41F6: A9 10 LDA #$10 C2/41F8: 0C 46 3A TSB $3A46 (set "Palidor was summoned this turn" flag) C2/41FB: C2 20 REP #$20 C2/41FD: A2 12 LDX #$12 C2/41FF: BD E4 3E LDA $3EE4,X C2/4202: 89 40 80 BIT #$8040 (Check for Petrify or Sleep) C2/4205: D0 08 BNE $420F (branch if any set) C2/4207: BD F8 3E LDA $3EF8,X C2/420A: 89 10 22 BIT #$2210 (Check for Stop, Hide, or Freeze) C2/420D: F0 07 BEQ $4216 (branch if none set) C2/420F: BD 18 30 LDA $3018,X C2/4212: 14 A2 TRB $A2 (Remove from being a target) C2/4214: 14 A4 TRB $A4 C2/4216: CA DEX C2/4217: CA DEX C2/4218: 10 E5 BPL $41FF (iterate for all 10 entities) C2/421A: 60 RTS Empowerer C2/421B: AD A3 11 LDA $11A3 C2/421E: 49 80 EOR #$80 (Toggle Concern MP) C2/4220: 8D A3 11 STA $11A3 C2/4223: 10 05 BPL $422A (Branch if not Concern MP -- this means we're currently on the first "strike", which affects HP) C2/4225: A9 12 LDA #$12 C2/4227: 85 B5 STA $B5 (save Nothing [Mimic] as command animation. this means the spell animation won't be repeated for the MP-draining phase of Empowerer.) C2/4229: 60 RTS C2/422A: EE 70 3A INC $3A70 (make the attack, including this special effect, get repeated) C2/422D: 4E A6 11 LSR $11A6 C2/4230: 4E A6 11 LSR $11A6 (Cut Spell Power to 1/4 for 2nd "strike", which will affect MP) C2/4233: 60 RTS Spiraler C2/4234: BB TYX C2/4235: BD 18 30 LDA $3018,X C2/4238: 14 A2 TRB $A2 C2/423A: 14 A4 TRB $A4 (Miss yourself) C2/423C: 0C 4C 2F TSB $2F4C (mark attacker to be removed from the battlefield) C2/423F: 20 4A 38 JSR $384A (Mark Hide and Death statuses to be set on attacker in X, and mark the attacker as its own last attacker.) C2/4242: C2 20 REP #$20 (Set 16-bit Accumulator) C2/4244: 9E F4 3B STZ $3BF4,X (Zeroes HP of attacker) C2/4247: 9E 08 3C STZ $3C08,X (Zeroes MP of attacker) C2/424A: 60 RTS Discard C2/424B: 20 9C 40 JSR $409C (Set to no targets) C2/424E: A9 20 LDA #$20 C2/4250: 0C A4 11 TSB $11A4 (Set Can't be dodged) C2/4253: BE 58 33 LDX $3358,Y (whom you are Seizing) C2/4256: 30 F2 BMI $424A (Exit if not Seizing anybody) C2/4258: BD 18 30 LDA $3018,X C2/425B: 85 B8 STA $B8 C2/425D: 64 B9 STZ $B9 (set sole target to character whom you are Seizing) C2/425F: BB TYX C2/4260: 4C C2 57 JMP $57C2 Mantra C2/4263: A9 60 LDA #$60 C2/4265: 0C A2 11 TSB $11A2 (Set no split damage, & ignore defense) C2/4268: 9C 14 34 STZ $3414 (Set to not modify damage) C2/426B: C2 20 REP #$20 (Set 16-bit Accumulator) C2/426D: B9 18 30 LDA $3018,Y C2/4270: 14 A4 TRB $A4 (Make miss yourself) C2/4272: AE C9 3E LDX $3EC9 (Number of targets) C2/4275: CA DEX C2/4276: B9 F4 3B LDA $3BF4,Y C2/4279: 20 92 47 JSR $4792 (HP / (Number of targets - 1) ) C2/427C: 8D B0 11 STA $11B0 (Set damage) C2/427F: 60 RTS Special Effect $42 Cuts damage to 1/4 C2/4280: C2 20 REP #$20 (Set 16-bit Accumulator) C2/4282: 4E B0 11 LSR $11B0 (Halves damage) C2/4285: C2 20 REP #$20 (Special effect $41 jumps here) C2/4287: 4E B0 11 LSR $11B0 (Halves damage) C2/428A: 60 RTS Suplex code from 42E1 (Picks a random target) C2/428B: A9 10 LDA #$10 C2/428D: 04 B0 TSB $B0 (??? See functions C2/13D3 and C2/57C2 for usual purpose; dunno whether it does anything here.) C2/428F: C2 20 REP #$20 (Set 16-bit Accumulator) C2/4291: A5 A2 LDA $A2 C2/4293: 85 EE STA $EE (Copy targets to temporary variable) C2/4295: A2 0A LDX #$0A C2/4297: BD 88 3C LDA $3C88,X (Monster data - Special Byte 2) C2/429A: 89 04 00 BIT #$0004 C2/429D: F0 05 BEQ $42A4 (Check next target if this one can be Suplexed) C2/429F: BD 20 30 LDA $3020,X C2/42A2: 14 EE TRB $EE (Clear this monster from potential targets) C2/42A4: CA DEX C2/42A5: CA DEX C2/42A6: 10 EF BPL $4297 (Loop for all 6 monster targets) C2/42A8: A5 EE LDA $EE C2/42AA: D0 02 BNE $42AE (Branch if some targets left in temporary variable, which means we'll actually be attacking something that can be Suplexed!) C2/42AC: A5 A2 LDA $A2 (original Targets) C2/42AE: 20 2A 52 JSR $522A (Randomly pick a bit) C2/42B1: 85 B8 STA $B8 (save our one target) C2/42B3: BB TYX C2/42B4: 4C C2 57 JMP $57C2 Reflect??? C2/42B7: C2 20 REP #$20 C2/42B9: A2 12 LDX #$12 C2/42BB: BD F7 3E LDA $3EF7,X C2/42BE: 30 05 BMI $42C5 (Branch if Reflect status) C2/42C0: BD 18 30 LDA $3018,X C2/42C3: 14 A4 TRB $A4 (Make miss target) C2/42C5: CA DEX C2/42C6: CA DEX C2/42C7: 10 F2 BPL $42BB (iterate for all targets) C2/42C9: 60 RTS Quick C2/42CA: AD 02 34 LDA $3402 C2/42CD: 10 09 BPL $42D8 (Branch if already under influence of Quick) C2/42CF: 8C 04 34 STY $3404 (Set attacker as target under the influence of Quick) C2/42D2: A9 02 LDA #$02 C2/42D4: 8D 02 34 STA $3402 (Set the number of turns due to Quick) C2/42D7: 60 RTS C2/42D8: C2 20 REP #$20 (Set 16-bit Accumulator) C2/42DA: B9 18 30 LDA $3018,Y C2/42DD: 0C 5A 3A TSB $3A5A (Set target as missed) C2/42E0: 60 RTS Table for special effects code pointers 2 (once-per-strike) C2/42E1: 8A 3E C2/42E3: 8B 3E C2/42E5: 44 40 ($02) C2/42E7: 8A 3E C2/42E9: 8A 3E C2/42EB: 73 3F ($05) C2/42ED: 6E 3F ($06) C2/42EF: 22 3F ($07) C2/42F1: 8A 3E C2/42F3: 58 41 ($09) C2/42F5: 89 3F ($0A) C2/42F7: 9F 3F ($0B) C2/42F9: 7E 3F ($0C) C2/42FB: 8A 3E C2/42FD: CA 3E ($0E) C2/42FF: 50 3F ($0F) C2/4301: 8A 3E C2/4303: 65 3F ($11) C2/4305: 8A 3E C2/4307: F6 41 ($13) C2/4309: 8A 3E C2/430B: 63 42 ($15) C2/430D: 34 42 ($16) C2/430F: 8A 3E C2/4311: 4E 40 ($18) C2/4313: FC 3F ($19) C2/4315: FE 40 ($1A) C2/4317: 54 3F ($1B) C2/4319: B7 42 ($1C) C2/431B: A1 40 ($1D) C2/431D: A0 3E ($1E) C2/431F: 8A 3E C2/4321: 8A 3E C2/4323: 8A 3E C2/4325: 8A 3E C2/4327: 8A 3E C2/4329: 8A 3E C2/432B: 8A 3E C2/432D: 8A 3E C2/432F: BB 40 ($27) C2/4331: 3C 41 ($28) C2/4333: 4D 41 ($29) C2/4335: 0F 41 ($2A) C2/4337: 8A 3E C2/4339: 37 40 ($2C) C2/433B: 8A 3E C2/433D: 8A 3E C2/433F: 8A 3E C2/4341: 8B 42 ($30) C2/4343: DA 40 ($31) C2/4345: F1 40 ($32) C2/4347: 61 40 ($33) C2/4349: 8A 3E C2/434B: 8A 3E C2/434D: 1B 42 ($36) C2/434F: 8A 3E C2/4351: 8A 3E C2/4353: 8A 3E C2/4354: 8A 3E C2/4357: 8A 3E C2/4359: 8A 3E C2/435B: E6 41 ($3D) C2/435D: 8A 3E C2/435F: 8A 3E C2/4361: 8A 3E C2/4363: 85 42 ($41) C2/4365: 80 42 ($42) C2/4367: CA 42 ($43) C2/4369: 4B 42 ($44) C2/436B: 8A 3E C2/436D: 8A 3E C2/436F: 8A 3E C2/4371: 8A 3E C2/4373: AD 3F ($49) C2/4375: 2C 40 ($4A) C2/4377: C8 40 ($4B) C2/4379: 36 41 ($4C) C2/437B: 4E 40 ($4D) C2/437D: 8A 3E C2/437F: 8A 3E C2/4381: 95 40 ($50) C2/4383: B7 3F ($51) C2/4385: 8A 3E C2/4387: 8A 3E C2/4389: 8A 3E C2/438B: 8A 3E C2/438D: 8A 3E C2/438F: 8A 3E Update statuses for every entity onscreen (at battle start, on formation switch, and after each strike of an attack) C2/4391: DA PHX C2/4392: 08 PHP C2/4393: C2 20 REP #$20 (Set 16-bit Accumulator) C2/4395: A0 12 LDY #$12 C2/4397: B9 A0 3A LDA $3AA0,Y C2/439A: 4A LSR C2/439B: 90 62 BCC $43FF (Skip this entity if not present in battle) C2/439D: 20 0D 45 JSR $450D (Put Status to be Set / Clear into $Fn , Quasi New Status in $3E60 & $3E74) C2/43A0: A5 FC LDA $FC (status to add, bytes 1-2) C2/43A2: F0 0F BEQ $43B3 (Branch if none) C2/43A4: 85 F0 STA $F0 C2/43A6: A2 1E LDX #$1E C2/43A8: 06 F0 ASL $F0 C2/43AA: 90 03 BCC $43AF (Skip if current status not to be set) C2/43AC: FC B0 46 JSR ($46B0,X) (perform "side effects" of setting it) C2/43AF: CA DEX C2/43B0: CA DEX C2/43B1: 10 F5 BPL $43A8 (Loop through all possible statuses to set in bytes 1 & 2) C2/43B3: A5 FE LDA $FE (status to add, bytes 3-4) C2/43B5: F0 0F BEQ $43C6 (branch if none) C2/43B7: 85 F0 STA $F0 C2/43B9: A2 1E LDX #$1E C2/43BB: 06 F0 ASL $F0 C2/43BD: 90 03 BCC $43C2 (Skip if current status not to be set) C2/43BF: FC D0 46 JSR ($46D0,X) (perform "side effects" of setting it) C2/43C2: CA DEX C2/43C3: CA DEX C2/43C4: 10 F5 BPL $43BB (Loop through all possible statuses to set in bytes 3 & 4) (Note: the subtraction of blocked statuses from "statuses to clear" below takes place later than the removal of blocked statuses from "statuses to set". i think this is because the special case set status functions called in $46B0 AND 46D0 can mark additional statuses to be cleared. so Square performed the block checks after these calls to make sure we don't clear any statuses to which we're immune.) C2/43C6: A5 F4 LDA $F4 (status to clear bytes 1-2) C2/43C8: 39 1C 33 AND $331C,Y (blocked status bytes 1-2) C2/43CB: 85 F4 STA $F4 (remove blocked from statuses to clear) C2/43CD: F0 0F BEQ $43DE (branch if nothing in these bytes to clear) C2/43CF: 85 F0 STA $F0 C2/43D1: A2 1E LDX #$1E C2/43D3: 06 F0 ASL $F0 C2/43D5: 90 03 BCC $43DA (Skip if current status not to be cleared) C2/43D7: FC F0 46 JSR ($46F0,X) (Call for each status to be clear byte 1 & 2) C2/43DA: CA DEX C2/43DB: CA DEX C2/43DC: 10 F5 BPL $43D3 (Loop through all possible statuses to clear in bytes 1 & 2) C2/43DE: A5 F6 LDA $F6 (status to clear bytes 3-4) C2/43E0: 39 30 33 AND $3330,Y (blocked status bytes 3-4) C2/43E3: 85 F6 STA $F6 (don't try to clear blocked statuses) C2/43E5: F0 0F BEQ $43F6 (branch if nothing in these bytes to clear) C2/43E7: 85 F0 STA $F0 C2/43E9: A2 1E LDX #$1E C2/43EB: 06 F0 ASL $F0 C2/43ED: 90 03 BCC $43F2 (Skip if current status not to be cleared) C2/43EF: FC 10 47 JSR ($4710,X) (Call for each status to be clear byte 3 & 4) C2/43F2: CA DEX C2/43F3: CA DEX C2/43F4: 10 F5 BPL $43EB (Loop through all possible statuses to clear in bytes 3 & 4) C2/43F6: 20 7F 44 JSR $447F (Get new status) C2/43F9: 20 85 45 JSR $4585 (Store in 3EE4 & 3EF8, and clear some statuses if target has Zombie) C2/43FC: 20 FF 44 JSR $44FF (Clear status to set and status to clear bytes) C2/43FF: 88 DEY C2/4400: 88 DEY C2/4401: 10 94 BPL $4397 (loop for all 10 targets on screen) C2/4403: 28 PLP C2/4404: FA PLX C2/4405: 60 RTS (Determine statuses that will be set/removed when attack hits; miss if attack doesn't change target's status) C2/4406: 08 PHP C2/4407: C2 20 REP #$20 C2/4409: B9 E4 3E LDA $3EE4,Y (get current status bytes 1-2) C2/440C: 85 F8 STA $F8 C2/440E: B9 F8 3E LDA $3EF8,Y (get current status bytes 3-4) C2/4411: 85 FA STA $FA C2/4413: 20 90 44 JSR $4490 (Initialize intermediate "status to set" bytes in $F4 - $F7 and "status to clear" bytes in $FC - $FF. Mark Clear / Freeze to be removed if necessary.) C2/4416: E2 20 SEP #$20 C2/4418: A5 B3 LDA $B3 C2/441A: 30 04 BMI $4420 (Branch if not Ignore Clear) C2/441C: A9 10 LDA #$10 C2/441E: 14 F4 TRB $F4 (remove Vanish from Status to Clear) C2/4420: B9 95 3C LDA $3C95,Y C2/4423: 10 18 BPL $443D (Branch if not undead) C2/4425: A9 08 LDA #$08 C2/4427: 2C A2 11 BIT $11A2 C2/442A: F0 11 BEQ $443D (Branch if attack doesn't reverse damage on undead) C2/442C: 4A LSR C2/442D: 2C A4 11 BIT $11A4 C2/4430: F0 0B BEQ $443D (Branch if not lift status) C2/4432: AD AA 11 LDA $11AA C2/4435: 89 82 BIT #$82 C2/4437: F0 04 BEQ $443D (Branch if attack doesn't involve Death or Zombie) C2/4439: A9 80 LDA #$80 C2/443B: 04 FC TSB $FC (mark Death in Status to set) C2/443D: C2 20 REP #$20 C2/443F: A5 FC LDA $FC C2/4441: 20 32 0E JSR $0E32 (update Status to set Bytes 1-2) C2/4444: A5 FE LDA $FE C2/4446: 19 E8 3D ORA $3DE8,Y C2/4449: 99 E8 3D STA $3DE8,Y (update Status to set Bytes 3-4) C2/444C: A5 F4 LDA $F4 C2/444E: 19 FC 3D ORA $3DFC,Y C2/4451: 99 FC 3D STA $3DFC,Y (update Status to clear Bytes 1-2) C2/4454: A5 F6 LDA $F6 C2/4456: 19 10 3E ORA $3E10,Y C2/4459: 99 10 3E STA $3E10,Y (update Status to clear Bytes 3-4) C2/445C: AD A7 11 LDA $11A7 C2/445F: 4A LSR C2/4460: 90 1B BCC $447D (if "spell misses if protected from ailments" bit is unset, exit function) C2/4462: A5 FC LDA $FC C2/4464: 05 F4 ORA $F4 C2/4466: 39 1C 33 AND $331C,Y (are there any statuses we're trying to set or clear that aren't blocked?) (bytes 1-2) C2/4469: D0 12 BNE $447D (if there are, exit function) C2/446B: A5 FE LDA $FE C2/446D: 05 F6 ORA $F6 C2/446F: 39 30 33 AND $3330,Y (are there any statuses we're trying to set or clear that aren't blocked?) (bytes 3-4) C2/4472: D0 09 BNE $447D (if there are, exit function) C2/4474: B9 18 30 LDA $3018,Y C2/4477: 8D 48 3A STA $3A48 (Indicate a miss, due to the attack not changing any statuses or due to checks in its special effect) C2/447A: 0C 5A 3A TSB $3A5A (Spell misses target if protected from ailments [or specifically, if statuses unchanged]) C2/447D: 28 PLP C2/447E: 60 RTS Get new status C2/447F: A5 F8 LDA $F8 (status byte 1 & 2) C2/4481: 04 FC TSB $FC (add to Status to set byte 1 & 2) C2/4483: A5 F4 LDA $F4 (Status to clear byte 1 & 2) C2/4485: 14 FC TRB $FC (subtract from Status to set byte 1 & 2) C2/4487: A5 FA LDA $FA (Status byte 3 & 4) C2/4489: 04 FE TSB $FE (add to Status to set byte 3 & 4) C2/448B: A5 F6 LDA $F6 (Status to clear byte 3 & 4) C2/448D: 14 FE TRB $FE (subtract from Status to set byte 3 & 4) C2/448F: 60 RTS (Initialize intermediate "status to set" bytes in $F4 - $F7 and "status to clear" bytes in $FC - $FF. Mark Clear / Freeze to be removed if necessary.) C2/4490: DA PHX C2/4491: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/4493: AD A4 11 LDA $11A4 (Special Byte 2) C2/4496: 29 0C AND #$0C C2/4498: 4A LSR C2/4499: AA TAX (X = 0 if set status, 2 = lift status, 4 = toggle status) C2/449A: C2 20 REP #$20 C2/449C: 64 FC STZ $FC (Clear status to clear and set bytes) C2/449E: 64 FE STZ $FE C2/44A0: 64 F4 STZ $F4 C2/44A2: 64 F6 STZ $F6 C2/44A4: FC D1 44 JSR ($44D1,X) (prepare status set, lift, or toggle) C2/44A7: AD A2 11 LDA $11A2 C2/44AA: 4A LSR C2/44AB: B0 0E BCS $44BB (branch if physical attack) C2/44AD: A9 10 00 LDA #$10 C2/44B0: 24 F8 BIT $F8 C2/44B2: F0 07 BEQ $44BB (branch if target not vanished) C2/44B4: 2C AA 11 BIT $11AA C2/44B7: D0 02 BNE $44BB (branch if attack causes Clear) C2/44B9: 04 F4 TSB $F4 (mark Clear status to be cleared) C2/44BB: AD A1 11 LDA $11A1 C2/44BE: 4A LSR C2/44BF: 90 0E BCC $44CF (Exit if not element Fire) C2/44C1: A9 00 02 LDA #$0200 C2/44C4: 24 FA BIT $FA C2/44C6: F0 07 BEQ $44CF (Exit if target not Frozen) C2/44C8: 2C AC 11 BIT $11AC C2/44CB: D0 02 BNE $44CF (Exit if attack setting Freeze) C2/44CD: 04 F6 TSB $F6 (mark Freeze status to be cleared) C2/44CF: FA PLX C2/44D0: 60 RTS Code Pointers C2/44D1: D7 44 C2/44D3: EA 44 C2/44D5: F9 44 (Spell wants to set status) C2/44D7: AD AA 11 LDA $11AA (get status bytes 1-2 from spell) C2/44DA: 85 FC STA $FC (store in status to set) C2/44DC: A5 F8 LDA $F8 (get current status 1-2) C2/44DE: 14 FC TRB $FC (don't try to set anything you already have) C2/44E0: AD AC 11 LDA $11AC (get status bytes 3-4 from spell) C2/44E3: 85 FE STA $FE (store in status to set) C2/44E5: A5 FA LDA $FA (get current status 3-4) C2/44E7: 14 FE TRB $FE (don't try to set anything you already have) C2/44E9: 60 RTS (Spell wants to clear status) C2/44EA: AD AA 11 LDA $11AA (get status bytes 1-2 from spell) C2/44ED: 25 F8 AND $F8 (current status 1-2) C2/44EF: 85 F4 STA $F4 (only try to clear statuses you do have) C2/44F1: AD AC 11 LDA $11AC (get status bytes 3-4 from spell) C2/44F4: 25 FA AND $FA (current status 3-4) C2/44F6: 85 F6 STA $F6 (only try to clear statuses you do have) C2/44F8: 60 RTS (Spell wants to toggle status) C2/44F9: 20 D7 44 JSR $44D7 (mark spell statuses you don't already have to be set) C2/44FC: 4C EA 44 JMP $44EA (and mark the ones you do already have to be cleared) Clear status to set and status to clear bytes C2/44FF: 7B TDC C2/4500: 99 D4 3D STA $3DD4,Y (Status to Set bytes 1-2) C2/4503: 99 E8 3D STA $3DE8,Y (Status to Set bytes 3-4) C2/4506: 99 FC 3D STA $3DFC,Y (Status to Clear bytes 1-2) C2/4509: 99 10 3E STA $3E10,Y (Status to Clear bytes 3-4) C2/450C: 60 RTS (Put Status to be Set / Clear into $Fn Quasi New Status in $3E60 & $3E74) C2/450D: B9 FC 3D LDA $3DFC,Y C2/4510: 85 F4 STA $F4 (Status to Clear bytes 1-2) C2/4512: B9 10 3E LDA $3E10,Y C2/4515: 85 F6 STA $F6 (Status to Clear bytes 3-4) C2/4517: B9 D4 3D LDA $3DD4,Y C2/451A: 39 1C 33 AND $331C,Y C2/451D: 85 FC STA $FC (Status to Set bytes 1-2, excluding blocked statuses) C2/451F: B9 E8 3D LDA $3DE8,Y C2/4522: 39 30 33 AND $3330,Y C2/4525: 85 FE STA $FE (Status to Set bytes 3-4, excluding blocked statuses) C2/4527: B9 E4 3E LDA $3EE4,Y (Load Status of targets, bytes 1-2) C2/452A: 85 F8 STA $F8 C2/452C: 29 40 00 AND #$0040 (If target already had Petrify, set it in Status to Set) C2/452F: 04 FC TSB $FC (Note: I think the above is done in preparation for the special case functions at $46B0 and 46D0. These are called when a status is inflicted, and cause side effects like clearing other statuses [provided you're not immune to them], and messing with assorted variables. A classic example is Slow booting out Haste, and vice versa.) The above code means that just as Muddled/Mute/Clear/Dark/etc are cleared/prevented when Petrify status is first _acquired_, they will also be cleared/prevented as long as Petrify is POSSESSED.) C2/4531: B9 F8 3E LDA $3EF8,Y (Status bytes 3 & 4) C2/4534: 85 FA STA $FA (This chunk will: If Current HP > 1/8 Max HP and Near Fatal status is currently set, mark Near Fatal status to be cleared. If Current HP <= 1/8 Max HP and Near Fatal status isn't currently set, mark Near Fatal status to be set. ) ++++++ C2/4536: B9 1C 3C LDA $3C1C,Y (Max HP) C2/4539: 4A LSR C2/453A: 4A LSR C2/453B: 4A LSR (Divide by 8) C2/453C: D9 F4 3B CMP $3BF4,Y (Current HP) C2/453F: A9 00 02 LDA #$0200 C2/4542: 24 F8 BIT $F8 C2/4544: D0 04 BNE $454A (Branch if Near Fatal status possessed) C2/4546: 90 06 BCC $454E (Branch if Current HP > Max HP / 8) C2/4548: 04 FC TSB $FC (Mark Near Fatal in Status to Set) C2/454A: B0 02 BCS $454E (Branch if Current HP <= Max HP / 8) C2/454C: 04 F4 TSB $F4 (Mark Near Fatal in Status to Clear) ++++++ C2/454E: A5 FB LDA $FB C2/4550: 10 14 BPL $4566 (Branch if no Wound in Status to Set) C2/4552: B9 4D 3E LDA $3E4D,Y C2/4555: 29 02 00 AND #$0002 (Bit set by Overcast) C2/4558: F0 0C BEQ $4566 (Branch if not set) C2/455A: 05 FC ORA $FC (Put Zombie in Status to Set) C2/455C: 29 7F FF AND #$FF7F (Clear Wound from Status to Set) C2/455F: 85 FC STA $FC C2/4561: A9 00 01 LDA #$0100 C2/4564: 04 F4 TSB $F4 (Set Condemned in Status to Clear) C2/4566: B9 DF 32 LDA $32DF,Y C2/4569: 10 19 BPL $4584 (Exit function if attack doesn't hit them. note that targets missed due to the attack not changing any statuses or due to special effects checks can still count as hit.) C2/456B: A5 FC LDA $FC (back up Status to Set bytes 1-2) C2/456D: 48 PHA C2/456E: A5 FE LDA $FE (back up Status to Set bytes 3-4) C2/4570: 48 PHA C2/4571: 20 7F 44 JSR $447F (Get new status) C2/4574: A5 FC LDA $FC C2/4576: 99 60 3E STA $3E60,Y (save Quasi Status bytes 1 and 2) C2/4579: A5 FE LDA $FE C2/457B: 99 74 3E STA $3E74,Y (save Quasi Status bytes 3 and 4) (These bytes are used for counterattack purposes. They differ from actual status bytes in that they don't factor in statuses removed as side effects. Also, they don't exclude from removal statuses to which the target is immune. The result of the former difference is consistency in behavior in non- FC 12 and FC 1C counterattacks. See C2/4BF4 for more info. The latter difference means that monsters with permanent Muddled or Berserk can wrongly be regarded as having the status removed. However, there are no monsters with permanent Muddle, and Brawler, the only one with permanent Berserk, doesn't have a counterattack script anyway.) C2/457E: 68 PLA C2/457F: 85 FE STA $FE (restore Status to Set bytes 1-2) C2/4581: 68 PLA C2/4582: 85 FC STA $FC (restore Status to Set bytes 3-4) C2/4584: 60 RTS (Store new status in character/monster status bytes. Clear some statuses if target has Zombie.) C2/4585: A5 FC LDA $FC C2/4587: 89 02 00 BIT #$0002 C2/458A: F0 03 BEQ $458F (Branch if not Zombie) C2/458C: 29 FA 4D AND #$4DFA (Clear Dark and Poison) (Clear Near Fatal, Berserk, Muddled, Sleep) C2/458F: 99 E4 3E STA $3EE4,Y (Store new status in Bytes 1 and 2) C2/4592: A5 FE LDA $FE C2/4594: 99 F8 3E STA $3EF8,Y (Store new status in Bytes 3 and 4) C2/4597: 60 RTS (If a status in A is possessed or it's set in Status to Set, turn it on in Status to Clear) C2/4598: 48 PHA C2/4599: A5 F8 LDA $F8 C2/459B: 05 FC ORA $FC C2/459D: 23 01 AND $01,S C2/459F: 04 F4 TSB $F4 C2/45A1: 68 PLA C2/45A2: 60 RTS (Zombie - set) C2/45A3: A9 80 00 LDA #$0080 C2/45A6: 20 98 45 JSR $4598 (if Death is possessed or set by the spell, mark it to be cleared) C2/45A9: 20 A9 46 JSR $46A9 (Mark this entity as having died since last executing Command 1Fh, "Run Monster Script") C2/45AC: 80 13 BRA $45C1 (Zombie - clear) C2/45AE: 20 9C 46 JSR $469C (If monster, add to list of remaining enemies, and remove from list of dead-ish ones) C2/45B1: 80 0E BRA $45C1 (Muddle - set) C2/45B3: B9 18 30 LDA $3018,Y C2/45B6: 0C 53 2F TSB $2F53 (cause target to be visually flipped) C2/45B9: 80 06 BRA $45C1 (Muddle - clear) C2/45BB: B9 18 30 LDA $3018,Y C2/45BE: 1C 53 2F TRB $2F53 (cancel visual flipping of target) C2/45C1: DA PHX C2/45C2: BE 18 30 LDX $3018,Y C2/45C5: 8A TXA C2/45C6: 0C 4A 3A TSB $3A4A (set "Entity's Zombie or Muddled changed since last command or ready stance entering") C2/45C9: FA PLX C2/45CA: 60 RTS (Clear - set) C2/45CB: DA PHX C2/45CC: BE 19 30 LDX $3019,Y C2/45CF: 8A TXA C2/45D0: 0C 44 2F TSB $2F44 C2/45D3: FA PLX C2/45D4: 60 RTS (Clear - clear) (is there an echo in here?! who's on first?) C2/45D5: DA PHX C2/45D6: BE 19 30 LDX $3019,Y C2/45D9: 8A TXA C2/45DA: 1C 44 2F TRB $2F44 C2/45DD: FA PLX C2/45DE: 60 RTS (Imp - set or clear) C2/45DF: A9 88 00 LDA #$0088 C2/45E2: 20 4C 46 JSR $464C C2/45E5: C0 08 CPY #$08 (Rage - clear enters here) C2/45E7: B0 08 BCS $45F1 (Exit function if monster) C2/45E9: DA PHX C2/45EA: 98 TYA C2/45EB: 4A LSR C2/45EC: AA TAX C2/45ED: FE 30 2F INC $2F30,X (flag character's properties to be recalculated from his/her equipment at end of turn.) C2/45F0: FA PLX C2/45F1: 60 RTS (Petrify - clear and Death - clear) C2/45F2: 20 9C 46 JSR $469C (If monster, add to list of remaining enemies, and remove from list of dead-ish ones) C2/45F5: A9 00 40 LDA #$4000 C2/45F8: 20 56 46 JSR $4656 (consolidate: "JSR $4653") C2/45FB: A9 40 00 LDA #$0040 C2/45FE: 80 4C BRA $464C (Death - set) C2/4600: A9 40 01 LDA #$0140 C2/4603: 20 98 45 JSR $4598 (if Petrify or Condemned are possessed or set by the spell, mark them to be cleared) C2/4606: A9 80 00 LDA #$0080 C2/4609: 14 F4 TRB $F4 (remove Death from statuses to be cleared) (Petrify - set) C2/460B: 20 A9 46 JSR $46A9 (Mark this entity as having died since last executing Command 1Fh, "Run Monster Script") C2/460E: A9 15 FE LDA #$FE15 C2/4611: 20 98 45 JSR $4598 (if Dark, Poison, Clear, Near Fatal, Image, Mute, Berserk, Muddled, Seizure, or Sleep are possessed by the target or set by the spell, mark them to be cleared) C2/4614: A5 FA LDA $FA C2/4616: 05 FE ORA $FE C2/4618: 29 FF 9B AND #$9BFF (if Dance, Regen, Slow, Haste, Stop, Shell, Safe, Reflect, Rage, Freeze, Morph, Spell Chant, or Float are possessed by the target or set by the spell, mark them to be cleared) C2/461B: 04 F6 TSB $F6 C2/461D: B9 4C 3E LDA $3E4C,Y C2/4620: 29 FF BF AND #$BFFF C2/4623: 99 4C 3E STA $3E4C,Y (clear HP Leak quasi-status that was set by Phantasm) C2/4626: B9 A0 3A LDA $3AA0,Y C2/4629: 29 7F FF AND #$FF7F C2/462C: 99 A0 3A STA $3AA0,Y C2/462F: A9 40 00 LDA #$0040 C2/4632: 80 18 BRA $464C (Sleep - set) C2/4634: 08 PHP C2/4635: E2 20 SEP #$20 (Set 8-bit A) C2/4637: A9 12 LDA #$12 C2/4639: 99 F9 3C STA $3CF9,Y (Time until Sleep wears off) C2/463C: 28 PLP C2/463D: 80 E7 BRA $4626 (Condemned - set) C2/463F: A9 20 00 LDA #$0020 C2/4642: 80 08 BRA $464C C2/4644: A9 10 00 LDA #$0010 (Condemned - clear enters here) C2/4647: 80 03 BRA $464C C2/4649: A9 08 00 LDA #$0008 (Mute - set or clear enter here) C2/464C: 19 04 32 ORA $3204,Y C2/464F: 99 04 32 STA $3204,Y C2/4652: 60 RTS (Sleep - clear) C2/4653: A9 00 40 LDA #$4000 C2/4656: 19 A0 3A ORA $3AA0,Y C2/4659: 99 A0 3A STA $3AA0,Y ($3AA1: flag entity's ATB gauge to be reset?) C2/465C: 60 RTS (Seizure - set) C2/465D: A9 02 00 LDA #$0002 C2/4660: 04 F6 TSB $F6 (mark Regen to be cleared) C2/4662: 60 RTS (Regen - set) C2/4663: A9 00 40 LDA #$4000 C2/4666: 04 F4 TSB $F4 (mark Seizure to be cleared) C2/4668: 60 RTS (Slow - set) C2/4669: A9 08 00 LDA #$0008 C2/466C: 80 03 BRA $4671 (mark Haste to be cleared) (Haste - set) C2/466E: A9 04 00 LDA #$0004 (mark Slow to be cleared) C2/4671: 04 F6 TSB $F6 C2/4673: A9 04 00 LDA #$0004 (Haste - clear and Slow - clear enter here) C2/4676: 80 D4 BRA $464C (Morph - set or clear) C2/4678: A9 02 00 LDA #$0002 C2/467B: 80 CF BRA $464C (Stop - set) C2/467D: 08 PHP C2/467E: E2 20 SEP #$20 (Set 8-bit A) C2/4680: A9 12 LDA #$12 C2/4682: 99 F1 3A STA $3AF1,Y (Time until Stop wears off) C2/4685: 28 PLP C2/4686: 60 RTS (Reflect - set) C2/4687: 08 PHP C2/4688: E2 20 SEP #$20 (Set 8-bit A) C2/468A: A9 1A LDA #$1A C2/468C: 99 0C 3F STA $3F0C,Y (Time until Reflect wears off, though permanency can prevent its removal) C2/468F: 28 PLP C2/4690: 60 RTS (Freeze - set) C2/4691: 08 PHP C2/4692: E2 20 SEP #$20 (Set 8-bit A) C2/4694: A9 22 LDA #$22 C2/4696: 99 0D 3F STA $3F0D,Y (Time until Freeze wears off) C2/4699: 28 PLP C2/469A: 60 RTS (Do nothing: Dark, Poison, M-Tek, Near Fatal, Image, Berserk, Dance, Shell, Safe, Rage [set only], Life 3, Spell, Hide, Dog Block, Float) C2/469B: 60 RTS (If monster, add to list of remaining enemies, and remove from list of dead-ish ones) C2/469C: DA PHX C2/469D: BE 19 30 LDX $3019,Y (get bit identifying monster) C2/46A0: 8A TXA C2/46A1: 0C 2F 2F TSB $2F2F (add to bitfield of remaining enemies?) C2/46A4: 1C 3A 3A TRB $3A3A (remove from bitfield of dead-ish or escaped monsters) C2/46A7: FA PLX C2/46A8: 60 RTS C2/46A9: B9 18 30 LDA $3018,Y C2/46AC: 0C 56 3A TSB $3A56 (Mark this entity as having died since last executing Command 1Fh, "Run Monster Script", counterattack variant) C2/46AF: 60 RTS Not actual code - data (table of pointers to code, for changing status) Set status pointers ("side effects" to perform upon setting of a status): C2/46B0: 9B 46 (Dark) (Jumps to RTS) C2/46B2: A3 45 (Zombie) C2/46B4: 9B 46 (Poison) (Jumps to RTS) C2/46B6: 9B 46 (M-Tek) (Jumps to RTS) C2/46B8: CB 45 (Clear) C2/46BA: DF 45 (Imp) C2/46BC: 0B 46 (Petrify) C2/46BE: 00 46 (Death) C2/46C0: 3F 46 (Condemned) C2/46C2: 9B 46 (Near Fatal) (Jumps to RTS) C2/46C4: 9B 46 (Image) (Jumps to RTS) C2/46C6: 49 46 (Mute) C2/46C8: 9B 46 (Berserk) (Jumps to RTS) C2/46CA: B3 45 (Muddle) C2/46CC: 5D 46 (Seizure) C2/46CE: 34 46 (Sleep) C2/46D0: 9B 46 (Dance) (Jumps to RTS) C2/46D2: 63 46 (Regen) C2/46D4: 69 46 (Slow) C2/46D6: 6E 46 (Haste) C2/46D8: 7D 46 (Stop) C2/46DA: 9B 46 (Shell) (Jumps to RTS) C2/46DC: 9B 46 (Safe) (Jumps to RTS) C2/46DE: 87 46 (Reflect) C2/46E0: 9B 46 (Rage) (Jumps to RTS) C2/46E2: 91 46 (Freeze) C2/46E4: 9B 46 (Life 3) (Jumps to RTS) C2/46E6: 78 46 (Morph) C2/46E8: 9B 46 (Spell) (Jumps to RTS) C2/46EA: 9B 46 (Hide) (Jumps to RTS) C2/46EC: 9B 46 (Dog Block) (Jumps to RTS) C2/46EE: 9B 46 (Float) (Jumps to RTS) Clear status pointers ("side effects" to perform upon clearing of a status): C2/46F0: 9B 46 (Dark) (Jumps to RTS) C2/46F2: AE 45 (Zombie) C2/46F4: 9B 46 (Poison) (Jumps to RTS) C2/46F6: 9B 46 (M-Tek) (Jumps to RTS) C2/46F8: D5 45 (Clear) C2/46FA: DF 45 (Imp) C2/46FC: F2 45 (Petrify) C2/46FE: F2 45 (Death) C2/4700: 44 46 (Condemned) C2/4702: 9B 46 (Near Fatal) (Jumps to RTS) C2/4704: 9B 46 (Image) (Jumps to RTS) C2/4706: 49 46 (Mute) C2/4708: 9B 46 (Berserk) (Jumps to RTS) C2/470A: BB 45 (Muddle) C2/470C: 9B 46 (Seizure) (Jumps to RTS) C2/470E: 53 46 (Sleep) C2/4710: 9B 46 (Dance) (Jumps to RTS) C2/4712: 9B 46 (Regen) (Jumps to RTS) C2/4714: 73 46 (Slow) C2/4716: 73 46 (Haste) C2/4718: 9B 46 (Stop) (Jumps to RTS) C2/471A: 9B 46 (Shell) (Jumps to RTS) C2/471C: 9B 46 (Safe) (Jumps to RTS) C2/471E: 9B 46 (Reflect) (Jumps to RTS) C2/4720: E5 45 (Rage) C2/4722: 9B 46 (Freeze) (Jumps to RTS) C2/4724: 9B 46 (Life 3) (Jumps to RTS) C2/4726: 78 46 (Morph) C2/4728: 9B 46 (Spell) (Jumps to RTS) C2/472A: 9B 46 (Hide) (Jumps to RTS) C2/472C: 9B 46 (Dog Block) (Jumps to RTS) C2/472E: 9B 46 (Float) (Jumps to RTS) ??? Function (Called from other bank) C2/4730: DA PHX C2/4731: 5A PHY C2/4732: 8B PHB C2/4733: 08 PHP C2/4734: E2 30 SEP #$30 C2/4736: 48 PHA C2/4737: A9 7E LDA #$7E C2/4739: 48 PHA C2/473A: AB PLB C2/473B: 68 PLA C2/473C: 18 CLC C2/473D: FC 4B 47 JSR ($474B,X) C2/4740: 20 90 44 JSR $4490 (Initialize intermediate "status to set" bytes in $F4 - $F7 and "status to clear" bytes in $FC - $FF. Mark Clear / Freeze to be removed if necessary.) C2/4743: 20 7F 44 JSR $447F (get new status) C2/4746: 28 PLP C2/4747: AB PLB C2/4748: 7A PLY C2/4749: FA PLX C2/474A: 6B RTL Pointers C2/474B: 4F 47 C2/474D: 78 47 C2/474F: 20 66 29 JSR $2966 (load spell data) C2/4752: AD A4 11 LDA $11A4 C2/4755: 10 1E BPL $4775 (Branch if damage/healing not based on HP or MP) C2/4757: AD A6 11 LDA $11A6 (Spell Power) C2/475A: 85 E8 STA $E8 C2/475C: C2 30 REP #$30 C2/475E: AD B2 11 LDA $11B2 (get maximum HP or MP) C2/4761: 20 3C 28 JSR $283C (apply equipment/relic boosts to it) C2/4764: C9 10 27 CMP #$2710 C2/4767: 90 03 BCC $476C (branch if not 10,000 or higher) C2/4769: A9 0F 27 LDA #$270F (set to 9999) C2/476C: E2 10 SEP #$10 (set 16-bit X and Y) C2/476E: 20 CB 0D JSR $0DCB (A = (Spell Power * HP or MP) / 16) C2/4771: 8D B0 11 STA $11B0 (Damage) C2/4774: 60 RTS C2/4775: 4C 69 2B JMP $2B69 (Magical Damage Calculation) C2/4778: 20 37 2A JSR $2A37 (item usage setup) C2/477B: A9 01 LDA #$01 C2/477D: 0C A2 11 TSB $11A2 (Sets physical attack) C2/4780: 60 RTS Multiplication Function Multiplies low bit of A * high bit of A. Stores result in 16-bit A. C2/4781: 08 PHP C2/4782: C2 20 REP #$20 C2/4784: 8F 02 42 00 STA $004202 C2/4788: EA NOP C2/4789: EA NOP C2/478A: EA NOP C2/478B: EA NOP C2/478C: AF 16 42 00 LDA $004216 C2/4790: 28 PLP C2/4791: 60 RTS Division Function Divides 16-bit A / 8-bit X Stores answer in 16-bit A. Stores remainder in 8-bit X. C2/4792: 5A PHY C2/4793: 08 PHP C2/4794: C2 20 REP #$20 C2/4796: 8F 04 42 00 STA $004204 C2/479A: E2 30 SEP #$30 C2/479C: 8A TXA C2/479D: 8F 06 42 00 STA $004206 C2/47A1: EA NOP C2/47A2: EA NOP C2/47A3: EA NOP C2/47A4: EA NOP C2/47A5: EA NOP C2/47A6: EA NOP C2/47A7: EA NOP C2/47A8: EA NOP C2/47A9: AF 16 42 00 LDA $004216 C2/47AD: AA TAX C2/47AE: C2 20 REP #$20 C2/47B0: AF 14 42 00 LDA $004214 C2/47B4: 28 PLP C2/47B5: 7A PLY C2/47B6: 60 RTS Multiplication Function 2 Results: 16-bit A = (8-bit $E8 * 16-bit A) / 256 24-bit $E8 = 3 byte (8-bit $E8 * 16-bit A) 16-bit $EC = 8-bit $E8 * high byte of A C2/47B7: 08 PHP C2/47B8: E2 20 SEP #$20 C2/47BA: 64 EA STZ $EA C2/47BC: 85 E9 STA $E9 C2/47BE: A5 E8 LDA $E8 C2/47C0: 20 81 47 JSR $4781 C2/47C3: C2 21 REP #$21 C2/47C5: 85 EC STA $EC C2/47C7: A5 E8 LDA $E8 C2/47C9: 20 81 47 JSR $4781 C2/47CC: 85 E8 STA $E8 C2/47CE: A5 EC LDA $EC C2/47D0: 65 E9 ADC $E9 C2/47D2: 85 E9 STA $E9 C2/47D4: 28 PLP C2/47D5: 60 RTS Multiplies A (1 byte) by * 1.5 C2/47D6: 48 PHA C2/47D7: 4A LSR C2/47D8: 18 CLC C2/47D9: 63 01 ADC $01,S C2/47DB: 90 02 BCC $47DF C2/47DD: A9 FF LDA #$FF C2/47DF: 83 01 STA $01,S C2/47E1: 68 PLA C2/47E2: 60 RTS (Remove character in X from all parties) C2/47E3: DA PHX C2/47E4: BD D9 3E LDA $3ED9,X (get 0-15 roster position of this party member) C2/47E7: AA TAX C2/47E8: 9E 50 18 STZ $1850,X (null out their party-related roster information [i.e. which party, which slot in party, row, main menu presence?, and leader flag]) C2/47EB: FA PLX C2/47EC: 60 RTS C2/47ED: AD E0 3E LDA $3EE0 C2/47F0: F0 09 BEQ $47FB (branch if in 4-tier final multi-battle) C2/47F2: AD 6E 3A LDA $3A6E (Method used to end combat?) C2/47F5: F0 04 BEQ $47FB (Branch if no special end?) C2/47F7: AA TAX C2/47F8: 7C F5 48 JMP ($48F5,X) C2/47FB: AD D1 1D LDA $1DD1 ($1DD1 = $3EBC) C2/47FE: 29 20 AND #$20 C2/4800: F0 05 BEQ $4807 C2/4802: 0C BC 3E TSB $3EBC C2/4805: 80 19 BRA $4820 C2/4807: AD 95 3A LDA $3A95 (did monster script Command F5 nn 04 prohibit checking for combat end, without being overridden since?) C2/480A: D0 E0 BNE $47EC (Exit if so) C2/480C: AD 74 3A LDA $3A74 (list of alive and present characters) C2/480F: D0 22 BNE $4833 (branch if at least one) C2/4811: AD 8A 3A LDA $3A8A C2/4814: F0 0C BEQ $4822 (branch if no characters engulfed) C2/4816: CD 8D 3A CMP $3A8D (compare Engulfed characters to list of valid characters at battle start) C2/4819: D0 07 BNE $4822 (branch if the full list wasn't Engulfed) C2/481B: A9 80 LDA #$80 C2/481D: 0C BC 3E TSB $3EBC (set event bit indicating battle ended with full party Engulfed) C2/4820: 80 7F BRA $48A1 C2/4822: AD 39 3A LDA $3A39 C2/4825: D0 70 BNE $4897 (branch if 1 or more characters escaped) C2/4827: AD 97 3A LDA $3A97 (if we reached here, party lost the battle) C2/482A: D0 02 BNE $482E (branch if in Colosseum) C2/482C: A9 29 LDA #$29 (tell function call below party was annihilated) C2/482E: 20 CA 5F JSR $5FCA (handle battle ending in loss) C2/4831: 80 5C BRA $488F C2/4833: AD 77 3A LDA $3A77 (Number of monsters left in combat) C2/4836: D0 B4 BNE $47EC (Exit if 1 or more monsters still alive) C2/4838: AD E0 3E LDA $3EE0 C2/483B: D0 03 BNE $4840 (branch if not in final 4-tier battle) C2/483D: 20 76 4A JSR $4A76 (if currently one of first 3 tiers, take certain steps for transition, and don't return to this calling function) C2/4840: AE 0B 30 LDX $300B (Which character is Gau) C2/4843: 30 1C BMI $4861 (branch if Gau not in party. note that "in party" can mean Gau's actively in the party, or that he's Leapt on the Veldt, you're fighting on the Veldt, and there's a free spot in your party for him to return.) C2/4845: A9 01 LDA #$01 C2/4847: 1C E4 11 TRB $11E4 (mark Gau as not available to return from Veldt leap) C2/484A: F0 15 BEQ $4861 (branch if that was already the case) C2/484C: 20 5A 4B JSR $4B5A (random: 0 to 255) C2/484F: C9 A0 CMP #$A0 C2/4851: B0 0E BCS $4861 (3 in 8 chance branch) C2/4853: AD BD 3E LDA $3EBD C2/4856: 89 02 BIT #$02 (have you already enlisted Gau the first time?) C2/4858: D0 74 BNE $48CE (branch if so) C2/485A: AD 76 3A LDA $3A76 (Number of present and living characters in party) C2/485D: C9 02 CMP #$02 C2/485F: B0 6D BCS $48CE (Branch if 2 or more characters in party -- this ensures that Sabin and Cyan are both *alive* to see the original Gau hijinx) C2/4861: AE 03 30 LDX $3003 (Which character is Shadow) C2/4864: 30 26 BMI $488C (Branch if Shadow not in party) C2/4866: 20 5A 4B JSR $4B5A (random #: 0 to 255) C2/4869: C9 10 CMP #$10 C2/486B: B0 1F BCS $488C (15 in 16 chance branch) C2/486D: AD 1F 20 LDA $201F (get encounter type: 0 = front, 1 = back, 2 = pincer, 3 = side) C2/4870: D0 1A BNE $488C (if not a front attack, branch) C2/4872: AD 76 3A LDA $3A76 (Number of present and living characters in party) C2/4875: C9 02 CMP #$02 C2/4877: 90 13 BCC $488C (Branch if less than 2 characters in party) C2/4879: BD E4 3E LDA $3EE4,X C2/487C: 89 C2 BIT #$C2 (Check for Dead, Zombie, or Petrify) C2/487E: D0 0C BNE $488C (Branch if any set on Shadow) C2/4880: A9 08 LDA #$08 C2/4882: 2C BD 3E BIT $3EBD (is Shadow randomly leaving disabled at this point in game?) C2/4885: D0 05 BNE $488C (branch if so) C2/4887: 2C DE 1E BIT $1EDE (Which characters are enlisted) C2/488A: D0 1A BNE $48A6 (Branch if Shadow enlisted) C2/488C: 20 57 5D JSR $5D57 C2/488F: 20 36 49 JSR $4936 C2/4892: 68 PLA C2/4893: 68 PLA (remove caller address from stack) C2/4894: 4C C5 00 JMP $00C5 (this lets us return somewhere other than C2/0084) (Warp, also used when escaped characters) C2/4897: A9 FF LDA #$FF C2/4899: 8D 05 02 STA $0205 (null out Colosseum item wagered, so we're not billed) C2/489C: A9 10 LDA #$10 C2/489E: 0C BC 3E TSB $3EBC (set event bit indicating battle ended due to Warp or with at least 1 character escaped) ( FB 02-Usual monster script way to end a battle enters here) C2/48A1: 20 03 49 JSR $4903 C2/48A4: 80 E9 BRA $488F (Shadow randomly leaves after battle) C2/48A6: 1C DE 1E TRB $1EDE (un-enlist Shadow) C2/48A9: 20 E3 47 JSR $47E3 (remove him from all parties) C2/48AC: C2 10 REP #$10 C2/48AE: BC 10 30 LDY $3010,X (get offset to character info block) C2/48B1: A9 FF LDA #$FF C2/48B3: 99 1E 16 STA $161E,Y (clear his equipped Esper) C2/48B6: E2 10 SEP #$10 C2/48B8: A9 FE LDA #$FE C2/48BA: 20 92 07 JSR $0792 (clear Bit 0 of $3AA0,X , indicating absence from battle) C2/48BD: A9 02 LDA #$02 C2/48BF: 0C 49 2F TSB $2F49 (turn on "No Winning Stand" aka "No victory dance" in extra formation data. this bit is checked at C1/0124.) C2/48C2: A2 0B LDX #$0B (Attack) C2/48C4: 68 PLA C2/48C5: 68 PLA (remove caller address from stack) C2/48C6: A9 23 LDA #$23 (Command is Battle Event, and Attack in X indicates it's number 11, Shadow leaving after a battle. [or number 27 if Gau code enters at C2/48C4.]) C2/48C8: 20 91 4E JSR $4E91 (queue it, in global Special Action queue) C2/48CB: 4C 19 00 JMP $0019 (return to somewhere other than C2/0084, by branching to start of main battle loop) (Gau arrives after Veldt battle) C2/48CE: BD 18 30 LDA $3018,X C2/48D1: 0C 4E 2F TSB $2F4E (mark character to enter the battlefield) C2/48D4: 0C 40 3A TSB $3A40 (mark Gau as a "character acting as enemy" target) C2/48D7: A9 04 LDA #$04 C2/48D9: 0C 46 3A TSB $3A46 (tell main battle loop we're about to have Gau return at the end of a Veldt battle) C2/48DC: A2 1B LDX #$1B (Attack) C2/48DE: 80 E4 BRA $48C4 (go queue Battle Event number 27, Gau arriving after a Veldt battle) (Gau leapt) C2/48E0: AE 0B 30 LDX $300B (which character is Gau) C2/48E3: 20 E3 47 JSR $47E3 (remove him from all parties) C2/48E6: A9 08 LDA #$08 C2/48E8: 1C DF 1E TRB $1EDF (un-enlist Gau) ( FB 09-Used by returning Gau when he joins the party , enters here) C2/48EB: 20 07 4A JSR $4A07 (Add rages learned in battle) C2/48EE: 80 9F BRA $488F (Banon fell) C2/48F0: A9 36 LDA #$36 C2/48F2: 20 CA 5F JSR $5FCA (handle battle ending in loss) C2/48F5: 80 98 BRA $488F Pointers for Special Combat Endings Code pointers C2/48F7: 97 48 (02-Warp) C2/48F9: E0 48 (04-Gau leapt) C2/48FB: F0 48 (06-Banon fell) C2/48FD: A1 48 (08-FB 02-Usual monster script way to end a battle) C2/48FF: EB 48 (0A-FB 09-Used by returning Gau when he joins the party) C2/4901: 22 4A (0C-Final battle tier transition) C2/4903: 20 36 0B JSR $0B36 (Establish new value for Morph supply based on its previous value and the current Morph timer) C2/4906: A2 06 LDX #$06 C2/4908: 9E 04 3B STZ $3B04,X (Zero this entity's Morph gauge) C2/490B: 8A TXA C2/490C: 4A LSR C2/490D: 85 10 STA $10 C2/490F: A9 03 LDA #$03 C2/4911: 20 11 64 JSR $6411 C2/4914: CA DEX C2/4915: CA DEX C2/4916: 10 F0 BPL $4908 C2/4918: A9 80 LDA #$80 C2/491A: 04 B1 TSB $B1 (set Yielding to Monster(s) with "Attack First".) C2/491C: A2 20 LDX #$20 C2/491E: A9 01 LDA #$01 C2/4920: 20 11 64 JSR $6411 C2/4923: CA DEX C2/4924: D0 F8 BNE $491E C2/4926: A9 0F LDA #$0F C2/4928: 0C 8C 3A TSB $3A8C (mark all characters to have their applicable items added to inventory. in particular, this will handle an item they tried to use (the game depletes it on issuing the command), but were killed before before they could actually execute the command and use it.) C2/492B: 20 C7 62 JSR $62C7 (add items [back] to a $602D-$6031 buffer) C2/492E: A9 0A LDA #$0A C2/4930: 20 11 64 JSR $6411 (for any $602D-$6031 buffer entries that C2/62C7 filled, now actually copy them to Item menu) C2/4933: 4C 95 20 JMP $2095 (Recalculate applicable characters' properties from their current equipment and relics) C2/4936: A2 06 LDX #$06 C2/4938: BD D8 3E LDA $3ED8,X (get which character this is) C2/493B: 30 3E BMI $497B (if it's undefined, skip it) C2/493D: C9 10 CMP #$10 C2/493F: F0 04 BEQ $4945 (branch if it's 1st ghost) C2/4941: C9 11 CMP #$11 C2/4943: D0 07 BNE $494C (branch if it's not 2nd ghost) C2/4945: BD E4 3E LDA $3EE4,X (Check for Dead, Zombie, or Petrify) C2/4948: 89 C2 BIT #$C2 C2/494A: D0 08 BNE $4954 (branch if one or more ^) C2/494C: BD 18 30 LDA $3018,X C2/494F: 2C 88 3A BIT $3A88 (was this character flagged to be removed from party? [by Possessing or getting hit by BabaBreath]) C2/4952: F0 03 BEQ $4957 (branch if not) C2/4954: 20 E3 47 JSR $47E3 (remove character from all parties) C2/4957: BD F9 3E LDA $3EF9,X (in-battle status byte 4) C2/495A: 29 C0 AND #$C0 (only keep Dog Block and Float after battle) C2/495C: EB XBA C2/495D: BD E4 3E LDA $3EE4,X (in-battle status byte 1) C2/4960: C2 30 REP #$30 (Set 16-bit Accumulator, 16-bit X and Y) C2/4962: BC 10 30 LDY $3010,X (get offset to character info block) C2/4965: 99 14 16 STA $1614,Y (save in-battle status bytes 1 and 4 to our two out-of-battle status bytes) C2/4968: BD F4 3B LDA $3BF4,X C2/496B: 99 09 16 STA $1609,Y (save current HP in out-of-battle stat) C2/496E: BD 30 3C LDA $3C30,X C2/4971: F0 06 BEQ $4979 (Branch if max MP is zero) C2/4973: BD 08 3C LDA $3C08,X C2/4976: 99 0D 16 STA $160D,Y (otherwise, save current MP in out-of-battle stat) C2/4979: E2 30 SEP #$30 C2/497B: CA DEX C2/497C: CA DEX C2/497D: 10 B9 BPL $4938 (loop for all 4 party members) C2/497F: C2 10 REP #$10 C2/4981: A2 FF 00 LDX #$00FF C2/4984: A0 FB 04 LDY #$04FB C2/4987: B9 86 26 LDA $2686,Y C2/498A: 9D 69 18 STA $1869,X (copy item ID from Item menu to persistent list) C2/498D: 1A INC C2/498E: F0 03 BEQ $4993 (if item is #255 [Null], store 0 as quantity) C2/4990: B9 89 26 LDA $2689,Y C2/4993: 9D 69 19 STA $1969,X (copy quantity from Item menu to persistent list) C2/4996: 88 DEY C2/4997: 88 DEY C2/4998: 88 DEY C2/4999: 88 DEY C2/499A: 88 DEY C2/499B: CA DEX C2/499C: 10 E9 BPL $4987 (iterate for all 256 Item slots) C2/499E: AD 97 3A LDA $3A97 C2/49A1: F0 21 BEQ $49C4 (branch if not Colosseum brawl) C2/49A3: AD 05 02 LDA $0205 (item wagered) C2/49A6: C9 FF CMP #$FF C2/49A8: F0 1A BEQ $49C4 (branch if null) C2/49AA: A2 FF 00 LDX #$00FF C2/49AD: DD 69 18 CMP $1869,X (is item wagered in this slot?) C2/49B0: D0 0F BNE $49C1 (branch if not) C2/49B2: DE 69 19 DEC $1969,X (if it was, decrement the item's count as a Colosseum fee) C2/49B5: F0 02 BEQ $49B9 (if there's none of the item left, empty out its slot) C2/49B7: 10 08 BPL $49C1 (if there's a nonzero and positive quantity of the item, don't empty out its slot) C2/49B9: A9 FF LDA #$FF C2/49BB: 9D 69 18 STA $1869,X (store Empty item) C2/49BE: 9E 69 19 STZ $1969,X (with a quantity of 0) C2/49C1: CA DEX (move to next lowest item slot) C2/49C2: 10 E9 BPL $49AD (loop for all 256 item slots) C2/49C4: E2 10 SEP #$10 C2/49C6: AE FA 33 LDX $33FA (Which monster is Doom Gaze) C2/49C9: 30 0A BMI $49D5 (Branch if Doom Gaze not in battle [FFh]) C2/49CB: C2 20 REP #$20 (Set 16-bit Accumulator) C2/49CD: BD F4 3B LDA $3BF4,X (Monster's HP) C2/49D0: 8D BE 3E STA $3EBE (Set Doom Gaze's HP to monster's HP) C2/49D3: E2 20 SEP #$20 (Set 8-bit A) C2/49D5: A2 13 LDX #$13 C2/49D7: BD B4 3E LDA $3EB4,X (copy in-battle event bytes) C2/49DA: 9D C9 1D STA $1DC9,X ( back into normal out-of-battle event bytes) C2/49DD: CA DEX C2/49DE: 10 F7 BPL $49D7 (iterate 20 times) C2/49E0: AD 4B 2F LDA $2F4B C2/49E3: 89 02 BIT #$02 C2/49E5: D0 1F BNE $4A06 (exit if this formation has "Don't appear on Veldt" property) C2/49E7: A2 0A LDX #$0A C2/49E9: BD 02 20 LDA $2002,X (Get MSB of monster #) C2/49EC: D0 14 BNE $4A02 (If they're a boss or enemy slot is unoccupied, don't mark formation as found, but check next monster) C2/49EE: AD D5 3E LDA $3ED5 C2/49F1: 4A LSR (Move bit 8 of formation # into Carry and out of A) C2/49F2: D0 12 BNE $4A06 (If any of bits 9-15 were set, the formation # is over 511. skip it.) C2/49F4: AD D4 3E LDA $3ED4 (Get bits 0-7 of First Battle Formation) C2/49F7: 20 17 52 JSR $5217 (X = formation DIV 8, A = 2^(formation MOD 8) ) C2/49FA: 1D DD 1D ORA $1DDD,X C2/49FD: 9D DD 1D STA $1DDD,X (Update structure of encountered groups for Veldt) C2/4A00: 80 04 BRA $4A06 (Once Veldt structure is updated once, we can exit) C2/4A02: CA DEX C2/4A03: CA DEX C2/4A04: 10 E3 BPL $49E9 (Move to next enemy and loop) C2/4A06: 60 RTS (Add rages learned in battle) C2/4A07: A2 0A LDX #$0A C2/4A09: BD 02 20 LDA $2002,X C2/4A0C: D0 0F BNE $4A1D (Branch if monster # >= 256 , or if enemy slot is unoccupied) C2/4A0E: DA PHX C2/4A0F: 18 CLC C2/4A10: BD 01 20 LDA $2001,X (Low byte of monster #) C2/4A13: 20 17 52 JSR $5217 (X = monster # DIV 8, A = 2^(monster # MOD 8)) C2/4A16: 1D 2C 1D ORA $1D2C,X C2/4A19: 9D 2C 1D STA $1D2C,X (Add rage to list of known ones) C2/4A1C: FA PLX C2/4A1D: CA DEX C2/4A1E: CA DEX C2/4A1F: 10 E8 BPL $4A09 (Check for all monsters) C2/4A21: 60 RTS (For final battle tier transitions, do some end-battle code, and clean out Wounded/Petrified/Zombied and Air Anchored characters) C2/4A22: 20 67 02 JSR $0267 C2/4A25: 20 03 49 JSR $4903 C2/4A28: 20 36 49 JSR $4936 C2/4A2B: A2 12 LDX #$12 C2/4A2D: E0 08 CPX #$08 C2/4A2F: B0 34 BCS $4A65 (branch if monster) C2/4A31: BD A0 3A LDA $3AA0,X C2/4A34: 4A LSR C2/4A35: 90 1D BCC $4A54 (branch if entity not present in battle) C2/4A37: BD E4 3E LDA $3EE4,X C2/4A3A: 89 C2 BIT #$C2 (Check for Dead, Zombie, or Petrify) C2/4A3C: D0 16 BNE $4A54 (branch if some possessed) C2/4A3E: BD 05 32 LDA $3205,X C2/4A41: 89 04 BIT #$04 C2/4A43: F0 0F BEQ $4A54 (branch if under Air Anchor effect) C2/4A45: C2 20 REP #$20 (set 16-bit A) C2/4A47: BD F8 3E LDA $3EF8,X (status bytes 3 and 4) C2/4A4A: 29 FE EE AND #$EEFE C2/4A4D: 9D F8 3E STA $3EF8,X (clear Dance, Rage, and Spell Chant statuses) C2/4A50: E2 20 SEP #$20 (set 8-bit A) C2/4A52: 80 14 BRA $4A68 C2/4A54: A9 FF LDA #$FF C2/4A56: 9D D8 3E STA $3ED8,X (indicate null for "which character this is") C2/4A59: BD 18 30 LDA $3018,X C2/4A5C: 1C 2C 3F TRB $3F2C (clear entity from jumpers) C2/4A5F: 1C 2E 3F TRB $3F2E (make them eligible to use an Esper again) C2/4A62: 1C 2F 3F TRB $3F2F (make them eligible to use a Desperation Attack again) C2/4A65: 20 9E 4A JSR $4A9E (Clear all statuses) C2/4A68: CA DEX C2/4A69: CA DEX C2/4A6A: 10 C1 BPL $4A2D (loop for all onscreen entities) C2/4A6C: A9 0C LDA #$0C C2/4A6E: 20 11 64 JSR $6411 C2/4A71: 68 PLA C2/4A72: 68 PLA (clear caller address from stack) C2/4A73: 4C 16 00 JMP $0016 (do start of battle initialization function, then proceed with main battle loop) (If one of first 3 tiers of final 4-tier multi-battle, take certain steps for transition, and don't return to caller) C2/4A76: C2 20 REP #$20 C2/4A78: A2 04 LDX #$04 C2/4A7A: BF AB 4A C2 LDA $C24AAB,X C2/4A7E: CD E0 11 CMP $11E0 (is Battle formation one of the first 3 tiers of the final 4-tier multi-battle?) C2/4A81: D0 14 BNE $4A97 (branch and check another if no match) C2/4A83: BF AD 4A C2 LDA $C24AAD,X C2/4A87: 8D E0 11 STA $11E0 (update Battle formation to the next one of the tiers) C2/4A8A: E2 20 SEP #$20 C2/4A8C: BF B3 4A C2 LDA $C24AB3,X (holds some transition animation ID, and indicates one of last 3 tiers of final 4-tier multi-battle by being non-FFh) C2/4A90: 8D E1 3E STA $3EE1 C2/4A93: 68 PLA C2/4A94: 68 PLA (clear caller address from stack) C2/4A95: 80 8B BRA $4A22 (this lets us return somewhere other than C2/4840) (do some end-battle code for tier transition, and clean out dead/etc and Air Anchored characters) C2/4A97: CA DEX C2/4A98: CA DEX C2/4A99: 10 DF BPL $4A7A (iterate 3 times) C2/4A9B: E2 20 SEP #$20 C2/4A9D: 60 RTS (return normally to caller) Clears all statuses C2/4A9E: 9E E4 3E STZ $3EE4,X (Clear Status Byte 1) C2/4AA1: 9E E5 3E STZ $3EE5,X (Clear Status Byte 2) C2/4AA4: 9E F8 3E STZ $3EF8,X (Clear Status Byte 3) C2/4AA7: 9E F9 3E STZ $3EF9,X (Clear Status Byte 4) C2/4AAA: 60 RTS Data for changing formations in last battle C2/4AAB: D7 01 (Short Arm, Long Arm, Face) C2/4AAD: 00 02 (Hit, Tiger, Tools) C2/4AAF: 01 02 (Girl, Sleep) C2/4AB1: 02 02 (Final Kefka) C2/4AB3: 90 90 C2/4AB5: 90 90 C2/4AB7: 8F 8F (Update lists and counts of present and/or living characters and monsters) C2/4AB9: C2 20 REP #$20 (Set 16-bit Accumulator) C2/4ABB: AD 4C 2F LDA $2F4C C2/4ABE: 49 FF FF EOR #$FFFF C2/4AC1: 2D 4E 2F AND $2F4E C2/4AC4: 8D 4E 2F STA $2F4E (entities to add to battlefield = entities to add to battlefield - entities to remove from battlefield) C2/4AC7: 8D 78 3A STA $3A78 (save it as initial lists of present characters and enemies?) C2/4ACA: 9C 74 3A STZ $3A74 (clear lists of present and living characters and enemies) C2/4ACD: 9C 42 3A STZ $3A42 (clear list of present and living characters acting as enemies?) C2/4AD0: E2 20 SEP #$20 C2/4AD2: A2 06 LDX #$06 C2/4AD4: BD A0 3A LDA $3AA0,X C2/4AD7: 4A LSR (Carry = is this entity present?) C2/4AD8: BD 18 30 LDA $3018,X (get which target this is) C2/4ADB: 2C 4C 2F BIT $2F4C C2/4ADE: D0 22 BNE $4B02 (branch if target is being removed from battlefield) C2/4AE0: 2C 4E 2F BIT $2F4E C2/4AE3: D0 0E BNE $4AF3 (branch if target is being added to battlefield) C2/4AE5: 90 1B BCC $4B02 (branch if entity not present) C2/4AE7: 0C 78 3A TSB $3A78 (add to list of present characters?) C2/4AEA: EB XBA C2/4AEB: BD E4 3E LDA $3EE4,X C2/4AEE: 89 C2 BIT #$C2 (Zombie, Petrify or death status?) C2/4AF0: D0 10 BNE $4B02 (if any possessed, branch) C2/4AF2: EB XBA C2/4AF3: 2D 08 34 AND $3408 (always FFh, i believe) C2/4AF6: 0C 74 3A TSB $3A74 (add to list of present and living characters) C2/4AF9: 2D 40 3A AND $3A40 (only keep set if character acting as an enemy) C2/4AFC: 0C 42 3A TSB $3A42 (add to list of present and living characters acting as enemies?) C2/4AFF: 1C 74 3A TRB $3A74 (remove from list of present and living characters) C2/4B02: CA DEX C2/4B03: CA DEX C2/4B04: 10 CE BPL $4AD4 (iterate for all 4 characters) C2/4B06: A2 0A LDX #$0A C2/4B08: BD A8 3A LDA $3AA8,X C2/4B0B: 4A LSR (Carry = is this entity present?) C2/4B0C: BD 21 30 LDA $3021,X (get which target this is. aka $3019) C2/4B0F: 2C 4D 2F BIT $2F4D C2/4B12: D0 1E BNE $4B32 (branch if target is being removed from battlefield) C2/4B14: 2C 4F 2F BIT $2F4F C2/4B17: D0 13 BNE $4B2C (branch if target is being added to battlefield) C2/4B19: 90 17 BCC $4B32 (branch if entity not present) C2/4B1B: 0C 79 3A TSB $3A79 (add to list of present enemies?) C2/4B1E: 2C 3A 3A BIT $3A3A (is it in bitfield of dead-ish or escaped monsters?) C2/4B21: D0 0F BNE $4B32 (branch if so) C2/4B23: EB XBA C2/4B24: BD EC 3E LDA $3EEC,X (aka $3EE4) C2/4B27: 89 C2 BIT #$C2 (Zombie, Petrify or death status?) C2/4B29: D0 07 BNE $4B32 (if any possessed, branch) C2/4B2B: EB XBA C2/4B2C: 2D 09 34 AND $3409 (starts as bits set for every monster, but can be modified by F5 script commands) C2/4B2F: 0C 75 3A TSB $3A75 (add to list of present and living enemies) C2/4B32: CA DEX C2/4B33: CA DEX C2/4B34: 10 D2 BPL $4B08 (iterate for all 6 monsters) C2/4B36: DA PHX C2/4B37: 08 PHP C2/4B38: AD 74 3A LDA $3A74 (list of present and living characters) C2/4B3B: 20 0E 52 JSR $520E C2/4B3E: 8E 76 3A STX $3A76 (Set Number of present and living characters in party to number of bits set in $3A74) C2/4B41: AD 75 3A LDA $3A75 (list of present and living enemies) C2/4B44: EB XBA C2/4B45: AD 42 3A LDA $3A42 (list of present and living characters acting as enemies?) C2/4B48: C2 20 REP #$20 (Set 16-bit Accumulator) C2/4B4A: 20 0E 52 JSR $520E C2/4B4D: 8E 77 3A STX $3A77 (Set Number of monsters left in combat to number of bits set in $3A42 & $3A75) C2/4B50: 28 PLP C2/4B51: FA PLX C2/4B52: 60 RTS Random Number Generator 1 (0 or 1, carry clear or set) C2/4B53: 48 PHA C2/4B54: 20 5A 4B JSR $4B5A C2/4B57: 4A LSR C2/4B58: 68 PLA C2/4B59: 60 RTS Random Number Generator 2 (0 to 255) C2/4B5A: DA PHX C2/4B5B: E6 BE INC $BE (increment RNG index) C2/4B5D: A6 BE LDX $BE C2/4B5F: BF 00 FD C0 LDA $C0FD00,X (RNG Table) C2/4B63: FA PLX C2/4B64: 60 RTS Random Number Generator 3 (0 to accumulator - 1) C2/4B65: DA PHX C2/4B66: 08 PHP C2/4B67: E2 30 SEP #$30 (Set 8-bit A, X, Y) C2/4B69: EB XBA C2/4B6A: 48 PHA (save top half of A) C2/4B6B: E6 BE INC $BE (increment RNG index) C2/4B6D: A6 BE LDX $BE C2/4B6F: BF 00 FD C0 LDA $C0FD00,X (RNG Table) C2/4B73: 20 81 47 JSR $4781 (16-bit A = (input 8-bit A) * (Random Number Table value) ) C2/4B76: 68 PLA (restore top half of A) C2/4B77: EB XBA (now bottom half of A = (input 8-bit A * Random Table value) / 256) C2/4B78: 28 PLP C2/4B79: FA PLX C2/4B7A: 60 RTS (Process one or two records from entity's Counterattack [both "Run Monster Script" and the actual payload commands, which might be launched from a script] and Periodic Damage/Healing [e.g. Regen/Seizure] linked list queue) C2/4B7B: 38 SEC C2/4B7C: 6E 07 34 ROR $3407 (make $3407 negative. this defaults to not leaving off processing any entity.) C2/4B7F: A9 01 LDA #$01 C2/4B81: 04 B1 TSB $B1 (indicate it's an unconventional attack) C2/4B83: F4 18 00 PEA $0018 (will return to C2/0019) C2/4B86: BD CD 32 LDA $32CD,X (get entry point to entity's counterattack or periodic damage/healing linked list queue) C2/4B89: 30 68 BMI $4BF3 (exit if null. that can happen if: simple 1: a monster script ran and didn't perform anything; e.g. Command F0h chose an FEh simple 2: a monster script ran when this linked list queue was otherwise empty, so command it queued added records to both this list and $3920 "who" queue. then this list is emptied right before executing the command, without adjusting $3A68 to delete the $3920 queue record. complex: second-to-last execution of this function emptied this list, then a new record was added to that [and thus one was added to $3920 queue as well] during C2/13D3 call. then the last execution was done by use of $3407, emptying this list without adjusting $3A68 to delete the $3920 queue record.) (in any case, with this test as a safeguard and C2/0056 getting rid of the stranded $3920 record, we're good.) C2/4B8B: 0A ASL C2/4B8C: A8 TAY C2/4B8D: 20 76 02 JSR $0276 (Load command, attack, targets, and MP cost from queued data. Some commands become Fight if tried by an Imp.) C2/4B90: C9 1F CMP #$1F (is command "Run Monster Script"?) C2/4B92: D0 08 BNE $4B9C (branch it not) C2/4B94: 20 54 4C JSR $4C54 (remove current first record from entity's counterattack or periodic damage/healing linked list queue, and update their entry point accordingly) C2/4B97: 20 F4 4B JSR $4BF4 (Run Monster Script, counterattack portion) C2/4B9A: 80 EA BRA $4B86 (go load next record in queue) C2/4B9C: BD CD 32 LDA $32CD,X (get entry point to queue) C2/4B9F: A8 TAY C2/4BA0: B9 84 31 LDA $3184,Y (read pointer/ID of current first record in queue) C2/4BA3: DD CD 32 CMP $32CD,X (if that field's contents match record's position, it's a standalone record, or the last in the linked list) C2/4BA6: D0 02 BNE $4BAA (branch if not, as there are more records left) C2/4BA8: A9 FF LDA #$FF C2/4BAA: 9D CD 32 STA $32CD,X (either make entry point index next record, or null it) C2/4BAD: A9 FF LDA #$FF C2/4BAF: 99 84 31 STA $3184,Y (null current first record in queue) (last 9 instructions could be replaced with "JSR $4C54", which Square used right above them.) C2/4BB2: A5 B5 LDA $B5 C2/4BB4: C9 1E CMP #$1E C2/4BB6: B0 1D BCS $4BD5 (branch and proceed if command is >= 1Eh. in this context, that's Enemy Roulette, periodic damage/healing, and F2, F3, F5, F7, and F8 - FB script commands.) C2/4BB8: E0 08 CPX #$08 C2/4BBA: B0 19 BCS $4BD5 (branch and proceed if monster) C2/4BBC: BD 18 30 LDA $3018,X C2/4BBF: 2C 39 3A BIT $3A39 (has character escaped?) C2/4BC2: D0 1F BNE $4BE3 (branch and skip execution if so) C2/4BC4: 2C 40 3A BIT $3A40 (is character acting as enemy?) C2/4BC7: D0 0C BNE $4BD5 (branch and proceed if so) C2/4BC9: AD 77 3A LDA $3A77 (Number of monsters left in combat) C2/4BCC: F0 15 BEQ $4BE3 (branch and skip execution if none) C2/4BCE: BD A0 3A LDA $3AA0,X C2/4BD1: 89 50 BIT #$50 C2/4BD3: D0 0E BNE $4BE3 C2/4BD5: BD 04 32 LDA $3204,X C2/4BD8: 09 04 ORA #$04 C2/4BDA: 9D 04 32 STA $3204,X C2/4BDD: 20 D3 13 JSR $13D3 (Character/Monster Takes One Turn) C2/4BE0: 20 1E 02 JSR $021E (Save this command's info in Mimic variables so Gogo will be able to Mimic it if he/she tries.) C2/4BE3: BD CD 32 LDA $32CD,X (get entry point to entity's counterattack or periodic damage/healing linked list queue) C2/4BE6: 1A INC C2/4BE7: D0 07 BNE $4BF0 (branch if it's valid -- which includes anything added during C2/13D3 call) C2/4BE9: A5 B0 LDA $B0 C2/4BEB: 30 06 BMI $4BF3 (if we were in middle of processing a conventional linked list queue, skip C2/0267) C2/4BED: 4C 67 02 JMP $0267 C2/4BF0: 8E 07 34 STX $3407 (leave off processing entity in X) C2/4BF3: 60 RTS (Run Monster Script [Command 1Fh], counterattack portion, and handle bookmarking. Provided we haven't already done so this batch.) C2/4BF4: 08 PHP C2/4BF5: C2 20 REP #$20 (Set 16-bit Accumulator) C2/4BF7: 9C 98 3A STZ $3A98 (start off not prohibiting any script commands) C2/4BFA: BD 18 30 LDA $3018,X C2/4BFD: 1C FC 33 TRB $33FC (indicate that this entity has done Command 1Fh this "batch") C2/4C00: F0 50 BEQ $4C52 (exit if that was already the case) C2/4C02: 1C 56 3A TRB $3A56 (clear "entity died since last use of Command 1Fh, counterattack variant") C2/4C05: D0 21 BNE $4C28 (branch if it had been set) C2/4C07: AD 03 34 LDA $3403 (Is Quick's target byte $3404 null [i.e. FFh]?) C2/4C0A: 30 05 BMI $4C11 (branch if so) C2/4C0C: EC 04 34 CPX $3404 C2/4C0F: D0 1F BNE $4C30 (branch if current entity is not the one under influence of Quick) C2/4C11: BD 60 3E LDA $3E60,X (Quasi Status after attack, bytes 1-2. see C2/450D for more info.) C2/4C14: 89 00 B0 BIT #$B000 C2/4C17: D0 17 BNE $4C30 (if Sleep, Muddled or Berserk is set, branch) C2/4C19: BD 74 3E LDA $3E74,X (Quasi Status after attack, bytes 3-4. see C2/450D for more info.) (An enemy who is Muddled/Berserked/etc won't counterattack (unless their script has the FC 1C command) a non-lethal strike that doesn't outright remove the status. Using these Quasi Status bytes will uphold that behavior for a lethal strike -- provided the creature isn't countering with FC 12 or FC 1C -- by not being swayed by Wound's side effects of removing Muddled/Berserk/etc status.) C2/4C1C: 89 10 02 BIT #$0210 C2/4C1F: D0 0F BNE $4C30 (if Freeze or Stop is set, branch) C2/4C21: BD 94 33 LDA $3394,X C2/4C24: 10 0A BPL $4C30 (branch if you're Charmed by somebody) C2/4C26: 80 0B BRA $4C33 C2/4C28: BD 18 30 LDA $3018,X (think A already has this value if we reached here) C2/4C2B: 0C FE 33 TSB $33FE (disable flag indicating that entity was targeted in the counter-triggering attack, and by somebody/something other than itself.) C2/4C2E: F0 E1 BEQ $4C11 (if flag was enabled [read: 0], branch and do usual status checks [but not the Quick check]. if it was already disabled, the counter was triggered purely as a "catch-all" due to the entity being dead, so limit the allowed script commands.) C2/4C30: CE 98 3A DEC $3A98 (disable most types of script commands. the FC 12 and FC 1C commands can override this.) C2/4C33: BD 68 32 LDA $3268,X (offset of monster's counterattack script) C2/4C36: 85 F0 STA $F0 (upcoming $1A2F call will start at this position) C2/4C38: BD 20 3D LDA $3D20,X (counterattack script position after last executed FD command. iow, where we left off. applicable when $3241,X =/= FFh.) C2/4C3B: 85 F2 STA $F2 C2/4C3D: BD 41 32 LDA $3241,X (index of sub-block in counterattack script where we left off if we exited script due to FD command, null FFh otherwise.) C2/4C40: 85 F4 STA $F4 C2/4C42: 18 CLC C2/4C43: 20 2F 1A JSR $1A2F (Process monster's counterattack script, backing up targets first.) C2/4C46: A5 F2 LDA $F2 C2/4C48: 9D 20 3D STA $3D20,X (save counterattack script position after last executed FD command. iow, where we're leaving off.) C2/4C4B: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/4C4D: A5 F5 LDA $F5 C2/4C4F: 9D 41 32 STA $3241,X (if we exited script due to FD command, save sub-block index of counterattack script where we left off. if we exited due to executing FE command or executing/ reaching FF command, save null FFh.) C2/4C52: 28 PLP C2/4C53: 60 RTS (Remove current first record from entity's counterattack or periodic damage/healing linked list queue, and update their entry point accordingly) C2/4C54: DA PHX C2/4C55: E8 INX C2/4C56: 20 01 03 JSR $0301 C2/4C59: FA PLX C2/4C5A: 60 RTS Prepare Counter attacks (Retort, Interceptor, Black Belt, monster script counter) C2/4C5B: A2 12 LDX #$12 C2/4C5D: BD A0 3A LDA $3AA0,X C2/4C60: 4A LSR C2/4C61: 90 5B BCC $4CBE (skip entity if not present in battle) C2/4C63: AD 1A 34 LDA $341A (did attack have X-Zone/Odin/Snare special effect, or Air Anchor special effect?) C2/4C66: F0 56 BEQ $4CBE (branch and skip counter if so) C2/4C68: 64 B8 STZ $B8 C2/4C6A: 64 B9 STZ $B9 (assume no external entity hit this one to start) C2/4C6C: BD E0 32 LDA $32E0,X (Top bit = 1 if hit by this attack. [note that targets missed due to the attack not changing any statuses or due to special effects checks can still count as hit.] Bottom seven bits = index of entity who last attacked them [which includes spell reflectors].) C2/4C6F: 10 15 BPL $4C86 (Branch if this attack does not target them) C2/4C71: 0A ASL C2/4C72: 85 EE STA $EE (convert attacker index to standard 0, 2, 4, etc.) C2/4C74: E4 EE CPX $EE (compare to loop entity) C2/4C76: F0 0E BEQ $4C86 (Branch if targeting yourself) C2/4C78: A8 TAY (Y = attacker index) C2/4C79: C2 20 REP #$20 (Set 16-bit accumulator) C2/4C7B: B9 18 30 LDA $3018,Y C2/4C7E: 85 B8 STA $B8 (Put attacker in $B8) C2/4C80: BD 18 30 LDA $3018,X C2/4C83: 1C FE 33 TRB $33FE (enable flag indicating that entity was hit by this attack, and by somebody/something other than itself.) C2/4C86: C2 20 REP #$20 C2/4C88: BD 18 30 LDA $3018,X C2/4C8B: 2C 56 3A BIT $3A56 (has entity died since last executing Command 1Fh, "Run Monster Script", counterattack variant?) C2/4C8E: E2 20 SEP #$20 (Set 8-bit accumulator) C2/4C90: D0 0B BNE $4C9D (Branch if so. this is a "catch-all" to allow counters when not normally permitted.) C2/4C92: A5 B1 LDA $B1 C2/4C94: 4A LSR C2/4C95: B0 27 BCS $4CBE (Branch if it's a counterattack, periodic damage/healing, or a special command like a status expiring or an equipment auto-spell. iow, No counter if not a normal attack.) C2/4C97: A5 B8 LDA $B8 C2/4C99: 05 B9 ORA $B9 C2/4C9B: F0 21 BEQ $4CBE (No counter if not target of attack, or if targeting yourself) C2/4C9D: BD 69 32 LDA $3269,X (top byte of offset to monster's counterattack script) C2/4CA0: 30 0F BMI $4CB1 (branch if it has no counterattack script) C2/4CA2: BD CD 32 LDA $32CD,X (get entry point to entity's counterattack or periodic damage/healing linked list queue) C2/4CA5: 10 0A BPL $4CB1 (branch if they have one of the above queued) C2/4CA7: A9 1F LDA #$1F C2/4CA9: 8D 7A 3A STA $3A7A (Set command to #$1F ("Run Monster Script")) C2/4CAC: 20 B2 4E JSR $4EB2 (queue it, in entity's counterattack and periodic damage/healing queue. C2/4BF4 [using C2/1A2F] is what walks the monster script and decides what action(s) to actually perform.) C2/4CAF: 80 0D BRA $4CBE C2/4CB1: E0 08 CPX #$08 C2/4CB3: B0 09 BCS $4CBE (Branch if monster) C2/4CB5: AD A2 11 LDA $11A2 C2/4CB8: 4A LSR C2/4CB9: 90 03 BCC $4CBE (Branch if magical attack) C2/4CBB: 20 C3 4C JSR $4CC3 (Consider Retort counter, Dog Block counter, or Black Belt counter) C2/4CBE: CA DEX C2/4CBF: CA DEX C2/4CC0: 10 9B BPL $4C5D (Check for each character and monster) C2/4CC2: 60 RTS Retort C2/4CC3: BD 4C 3E LDA $3E4C,X C2/4CC6: 4A LSR C2/4CC7: 90 0D BCC $4CD6 (Branch if no retort; check dog block) C2/4CC9: A9 07 LDA #$07 C2/4CCB: 8D 7A 3A STA $3A7A (Store Swdtech in command) C2/4CCE: A9 56 LDA #$56 C2/4CD0: 8D 7B 3A STA $3A7B (Store Retort in attack) C2/4CD3: 4C B2 4E JMP $4EB2 (queue it, in entity's counterattack and periodic damage/healing queue) Dog Block C2/4CD6: A5 B9 LDA $B9 C2/4CD8: F0 E8 BEQ $4CC2 (Exit function if attacked by party) C2/4CDA: EC 16 34 CPX $3416 (was this target protected by a Dog block on this turn? [or if it's a multi-strike attack and Interceptor status was hacked onto multiple characters, then was this target the most recently protected on the turn?]) C2/4CDD: D0 15 BNE $4CF4 (if target wasn't protected by a dog block, branch to Black Belt) C2/4CDF: 20 5A 4B JSR $4B5A (random: 0 to 255) C2/4CE2: 4A LSR C2/4CE3: 90 0F BCC $4CF4 (50% chance branch to Black Belt) C2/4CE5: 4A LSR (Carry will determine which Interceptor counterattack is used: 50% chance of each) C2/4CE6: 7B TDC C2/4CE7: 69 FC ADC #$FC C2/4CE9: 8D 7B 3A STA $3A7B (Store Wild Fang or Take Down in attack) C2/4CEC: A9 02 LDA #$02 C2/4CEE: 8D 7A 3A STA $3A7A (Store Magic in command) C2/4CF1: 4C B2 4E JMP $4EB2 (queue it, in entity's counterattack and periodic damage/healing queue) Black Belt counter C2/4CF4: BD 18 30 LDA $3018,X C2/4CF7: 2C 19 34 BIT $3419 (was this target damaged [by an attacker other than themselves] this turn? the target's bit will be 0 in $3419 if they were.) C2/4CFA: D0 C6 BNE $4CC2 (Exit if they weren't) C2/4CFC: BD 58 3C LDA $3C58,X C2/4CFF: 89 02 BIT #$02 (Check for Black Belt) C2/4D01: F0 BF BEQ $4CC2 (Exit if no Black Belt) C2/4D03: 20 5A 4B JSR $4B5A (random: 0 to 255) C2/4D06: C9 C0 CMP #$C0 C2/4D08: B0 B8 BCS $4CC2 (25% chance of exit) C2/4D0A: 9B TXY C2/4D0B: F4 CA A0 PEA $A0CA (Death, Petrify, M-Tek, Zombie, Sleep, Muddled) C2/4D0E: F4 11 32 PEA $3211 (Stop, Dance, Freeze, Spell, Hide) C2/4D11: 20 64 58 JSR $5864 C2/4D14: 90 AC BCC $4CC2 (Exit if any set) C2/4D16: 9C 7A 3A STZ $3A7A (Store Fight in command) C2/4D19: 9C 7B 3A STZ $3A7B C2/4D1C: 4C B2 4E JMP $4EB2 (queue it, in entity's counterattack and periodic damage/healing queue) (Handle player-confirmed commands) C2/4D1F: AC 6A 3A LDY $3A6A (confirmed commands pointer: 0, 8, 16, or 24) C2/4D22: B9 AE 2B LDA $2BAE,Y (is there a valid, not-yet-processed 0-3 party member ID in this queue slot?) C2/4D25: 30 45 BMI $4D6C (Exit function if not) C2/4D27: 0A ASL C2/4D28: AA TAX (X = 0, 2, 4, 6 party member index) C2/4D29: 20 66 4E JSR $4E66 (put entity in wait queue) C2/4D2C: A9 7B LDA #$7B C2/4D2E: 20 92 07 JSR $0792 (clear Bits 2 and 7 of $3AA0,X) C2/4D31: A9 FF LDA #$FF C2/4D33: 99 AE 2B STA $2BAE,Y (null party member ID, as we're processing it) C2/4D36: 98 TYA C2/4D37: 69 08 ADC #$08 (advance confirmed commands pointer to next position) C2/4D39: 29 18 AND #$18 (wrap to 0 if exceeds 24) C2/4D3B: 8D 6A 3A STA $3A6A C2/4D3E: 20 6D 4D JSR $4D6D (load targets of [first] confirmed command) C2/4D41: B9 B0 2B LDA $2BB0,Y (get party member's [first] confirmed attack/ subcommand ID) C2/4D44: EB XBA C2/4D45: B9 AF 2B LDA $2BAF,Y (get party member's [first] confirmed command ID) C2/4D48: 20 89 4D JSR $4D89 (Perform various setup for the command. note that command in bottom of A holds Magic [02h] if command was X-Magic [17h].) C2/4D4B: 20 77 4D JSR $4D77 (Clears targets if attacker is Zombied or Muddled) C2/4D4E: 20 CB 4E JSR $4ECB (queue first command+attack, in entity's conventional queue) C2/4D51: B9 AF 2B LDA $2BAF,Y C2/4D54: C9 17 CMP #$17 (was confirmed and unadjusted command ID X-Magic?) C2/4D56: D0 C7 BNE $4D1F (if not, repeat loop and look for other characters) C2/4D58: C8 INY C2/4D59: C8 INY C2/4D5A: C8 INY C2/4D5B: 20 6D 4D JSR $4D6D (load targets of second confirmed command) C2/4D5E: B9 B0 2B LDA $2BB0,Y (get party member's second confirmed attack/ subcommand ID) (aka $2BB3,Old_Y) C2/4D61: EB XBA C2/4D62: A9 17 LDA #$17 (command = X-Magic) C2/4D64: 20 77 4D JSR $4D77 (Clears targets if attacker is Zombied or Muddled) C2/4D67: 20 CB 4E JSR $4ECB (queue second, X-Magic attack, in entity's conventional queue) C2/4D6A: 80 B3 BRA $4D1F (repeat loop and look for other characters) C2/4D6C: 60 RTS (Load targets of player-confirmed command) C2/4D6D: 08 PHP C2/4D6E: C2 20 REP #$20 C2/4D70: B9 B1 2B LDA $2BB1,Y (targets of party member's confirmed command) C2/4D73: 85 B8 STA $B8 C2/4D75: 28 PLP C2/4D76: 60 RTS Clears targets if attacker is Zombied or Muddled C2/4D77: 08 PHP C2/4D78: C2 20 REP #$20 (set 16-bit accumulator) C2/4D7A: 8D 7A 3A STA $3A7A (save command and attack/subcommand in intermediate variable used by C2/4ECB) C2/4D7D: BD E4 3E LDA $3EE4,X C2/4D80: 89 02 20 BIT #$2002 C2/4D83: F0 02 BEQ $4D87 (branch if not Zombie or Muddle) C2/4D85: 64 B8 STZ $B8 (clear targets) C2/4D87: 28 PLP C2/4D88: 60 RTS (Perform various setup for player-confirmed command) (Entered with command in bottom of A, and attack/sub-command in top of A. Returns with same format, but attack/sub-command can often be changed, and even command can be changed in X-Magic's case. Targets can also be changed.) C2/4D89: DA PHX C2/4D8A: 5A PHY C2/4D8B: 9B TXY C2/4D8C: C9 17 CMP #$17 C2/4D8E: D0 02 BNE $4D92 (Branch if not X-Magic) C2/4D90: A9 02 LDA #$02 (Set command to Magic) C2/4D92: C9 19 CMP #$19 C2/4D94: D0 11 BNE $4DA7 (Branch if not Summon) C2/4D96: 48 PHA C2/4D97: EB XBA C2/4D98: C9 FF CMP #$FF (Check if no Esper ID from input. my guess is that's the case in "Summon" proper as opposed to via Magic menu.) C2/4D9A: D0 03 BNE $4D9F (branch if there was a valid one) C2/4D9C: B9 44 33 LDA $3344,Y (get equipped Esper) C2/4D9F: EB XBA C2/4DA0: B9 18 30 LDA $3018,Y C2/4DA3: 0C 2E 3F TSB $3F2E (make character ineligible to use Esper again this battle) C2/4DA6: 68 PLA C2/4DA7: C9 01 CMP #$01 C2/4DA9: F0 04 BEQ $4DAF (Branch if Item) C2/4DAB: C9 08 CMP #$08 C2/4DAD: D0 05 BNE $4DB4 (Branch if not Throw) C2/4DAF: EB XBA C2/4DB0: 99 F4 32 STA $32F4,Y (store as item to add back to inventory. this can happen with: 1) Equipment Magic that doesn't destroy the item [no items have this, but the game supports it] 2) the item user's turn never happens. perhaps the character who acted before them won the battle.) C2/4DB3: EB XBA C2/4DB4: C9 0F CMP #$0F C2/4DB6: D0 23 BNE $4DDB (Branch if not Slot) C2/4DB8: 48 PHA (save command #) C2/4DB9: EB XBA (get our Slot index) C2/4DBA: AA TAX C2/4DBB: BF 4A 4E C2 LDA $C24E4A,X (get spell # used by this Slot combo) C2/4DBF: E0 02 CPX #$02 C2/4DC1: B0 0F BCS $4DD2 (branch if it's Bahamut or higher -- i.e. neither form of Joker Doom) C2/4DC3: 48 PHA (save spell #) C2/4DC4: BF 52 4E C2 LDA $C24E52,X (get Joker Doom targeting) C2/4DC8: 95 B8 STA $B8,X (if X is 0 [7-7-Bar], mark all party members in $B8 if X is 1 [7-7-7], mark all enemies in $B9) C2/4DCA: A5 B8 LDA $B8 C2/4DCC: 4D 40 3A EOR $3A40 C2/4DCF: 85 B8 STA $B8 (toggle whether characters acting as enemies are targeted. e.g. Shadow in Colosseum or Gau returning from Veldt leap) C2/4DD1: 68 PLA (restore spell #) C2/4DD2: C9 FF CMP #$FF C2/4DD4: D0 03 BNE $4DD9 (branch if not Bar-Bar-Bar) C2/4DD6: 20 DC 37 JSR $37DC (Pick random esper) C2/4DD9: EB XBA C2/4DDA: 68 PLA (restore command #) C2/4DDB: C9 13 CMP #$13 C2/4DDD: D0 0D BNE $4DEC (Branch if not Dance) C2/4DDF: 48 PHA C2/4DE0: EB XBA C2/4DE1: 99 E1 32 STA $32E1,Y (save as Which dance is selected for this character) C2/4DE4: 8D 6F 3A STA $3A6F (and save as a more global dance #, which other characters might fall back to) C2/4DE7: 20 9C 05 JSR $059C (Pick dance and dance move) C2/4DEA: EB XBA C2/4DEB: 68 PLA C2/4DEC: C9 10 CMP #$10 C2/4DEE: D0 0A BNE $4DFA (Branch if not Rage) C2/4DF0: 48 PHA C2/4DF1: EB XBA C2/4DF2: 99 A8 33 STA $33A8,Y (Which rage is being used) C2/4DF5: 20 D1 05 JSR $05D1 (Picks a Rage [when Muddled/Berserked/etc], and picks the Rage move) C2/4DF8: EB XBA C2/4DF9: 68 PLA C2/4DFA: C9 0A CMP #$0A C2/4DFC: D0 15 BNE $4E13 (Branch if not Blitz) C2/4DFE: 48 PHA C2/4DFF: EB XBA C2/4E00: 48 PHA C2/4E01: 30 0D BMI $4E10 (Branch if no blitz selected) C2/4E03: AA TAX C2/4E04: 20 57 1E JSR $1E57 (Set Bit #X in A) C2/4E07: 2C 28 1D BIT $1D28 C2/4E0A: D0 04 BNE $4E10 (Branch if selected blitz is known) C2/4E0C: A9 FF LDA #$FF C2/4E0E: 83 01 STA $01,S (replace spell/attack # with null) C2/4E10: 68 PLA C2/4E11: EB XBA C2/4E12: 68 PLA C2/4E13: A2 04 LDX #$04 C2/4E15: DF 3C 4E C2 CMP $C24E3C,X (does our command match one that needs its spell # calculated?) C2/4E19: D0 0B BNE $4E26 (branch if not) C2/4E1B: EB XBA C2/4E1C: 18 CLC C2/4E1D: 7F 41 4E C2 ADC $C24E41,X (add the first spell # for this command to our current index. ex - for Pummel, Blitz #0, we'd end up with 55h.) C2/4E21: 90 02 BCC $4E25 (branch if the spell # didn't overflow) C2/4E23: A9 EE LDA #$EE (load Battle as spell #) C2/4E25: EB XBA (put spell # in top of A, and look at command # again) C2/4E26: CA DEX C2/4E27: 10 EC BPL $4E15 (loop for all 5 commands) C2/4E29: 48 PHA C2/4E2A: 18 CLC (clear Carry) C2/4E2B: 20 17 52 JSR $5217 (X = A DIV 8, A = 2 ^ (A MOD 8) ) C2/4E2E: 3F 46 4E C2 AND $C24E46,X (compare to bitfield of commands that need to retarget) C2/4E32: F0 04 BEQ $4E38 (Branch if command doesn't need to retarget) C2/4E34: 64 B8 STZ $B8 C2/4E36: 64 B9 STZ $B9 (clear targets) C2/4E38: 68 PLA C2/4E39: 7A PLY C2/4E3A: FA PLX C2/4E3B: 60 RTS (Data - commands that need their spell # calculated) C2/4E3C: 19 (Summon) C2/4E3D: 0C (Lore) C2/4E3E: 1D (Magitek) C2/4E3F: 0A (Blitz) C2/4E40: 07 (Swdtech) (Data - first spell # for each of above commands) C2/4E41: 36 (Espers) C2/4E42: 8B (Lores) C2/4E43: 83 (Magitek commands) C2/4E44: 5D (Blitzes) C2/4E45: 55 (Swdtech) (Data - commands that need to retarget. 8 commands per byte.) C2/4E46: 80 (Swdtech) C2/4E47: 04 (Blitz) C2/4E48: 0B (Rage, Leap, Dance) C2/4E49: 00 (Nothing) (Data - spell numbers for Slot attacks) C2/4E4A: 94 (L.5 Doom -- used by Joker Doom [7-7-Bar]) C2/4E4B: 94 (L.5 Doom -- used by Joker Doom [7-7-7]) C2/4E4C: 43 (Bahamut) C2/4E4D: FF (Nothing -- used by Triple Bar?) C2/4E4E: 80 (H-Bomb) C2/4E4F: 7F (Chocobop) C2/4E50: 81 (7-Flush) C2/4E51: FE (Lagomorph) (Data - Joker Doom targeting) C2/4E52: 0F (7-7-bar => your whole party) C2/4E53: 3F (7-7-7 => whole enemy party) (Add a record to the "master list". It contains standalone records, or linked list queues. It won't make much sense without its entry points, held in $32CC,target , $32CD,target, and $340A.) (Just the pointer/ID field is initialized by this call. "Sister structures" are $3420, $3520, and $3620. As they're 2 bytes per slot instead of 1, they're physically separate, but conceptually, they're just more fields of the same record.) C2/4E54: DA PHX C2/4E55: A2 7F LDX #$7F C2/4E57: BD 84 31 LDA $3184,X C2/4E5A: 30 04 BMI $4E60 (branch if this slot is free) C2/4E5C: CA DEX C2/4E5D: 10 F8 BPL $4E57 (iterate for all 128 slots if need be) C2/4E5F: E8 INX (default to adding at Position 0 if no free slot was found) C2/4E60: 8A TXA C2/4E61: 9D 84 31 STA $3184,X (a new record's pointer/ID value starts off equal to its slot #) C2/4E64: FA PLX C2/4E65: 60 RTS (Add character/monster to queue of who will wait to act. One place this is called is right after a character's command is input, and before they enter their "ready stance". Monsters' ready stances aren't visible [and are generally negligible in length], but monsters still use this queue too.) C2/4E66: 8A TXA C2/4E67: DA PHX C2/4E68: AE 65 3A LDX $3A65 (get next available Wait Queue slot) C2/4E6B: 9D 20 37 STA $3720,X (store current entity in that slot) C2/4E6E: FA PLX C2/4E6F: EE 65 3A INC $3A65 (point to next queue slot after this one. this is circular: if we've gone past slot #255, we'll restart on #0. that shouldn't be a problem unless 256+ fighters get queued up at once somehow.) C2/4E72: A9 FE LDA #$FE C2/4E74: 4C 43 0A JMP $0A43 (clear Bit 0 of $3AA1,X) (Add character/monster to queue of who will act next. One place this is called is when someone's "wait timer" after inputting a command elapses and they can leave their ready stance to attack.) C2/4E77: 8A TXA C2/4E78: DA PHX C2/4E79: AE 67 3A LDX $3A67 (get next available Action Queue slot) C2/4E7C: 9D 20 38 STA $3820,X (store current entity in that slot) C2/4E7F: FA PLX C2/4E80: EE 67 3A INC $3A67 (point to next queue slot after this one. this is circular: if we've gone past slot #255, we'll restart on #0. that shouldn't be a problem unless 256+ fighters get queued up at once somehow.) C2/4E83: 60 RTS (Add character/monster to queue of who will next take/undergo counterattacks and Regen/Seizure/etc damage/healing.) C2/4E84: 8A TXA C2/4E85: DA PHX C2/4E86: AE 69 3A LDX $3A69 (get next available Counterattack or Damage/Healing slot) C2/4E89: 9D 20 39 STA $3920,X (store current entity in that slot) C2/4E8C: FA PLX C2/4E8D: EE 69 3A INC $3A69 (point to next queue slot after this one. this is circular: if we've gone past slot #255, we'll restart on #0. that shouldn't be a problem unless 256+ fighters get queued up at once somehow.) C2/4E90: 60 RTS (Add command, attack, targets, and [rarely-used] MP cost to global Special Action linked list queue) C2/4E91: 5A PHY C2/4E92: 08 PHP C2/4E93: E2 20 SEP #$20 C2/4E95: 8D 7A 3A STA $3A7A (Set command) C2/4E98: 8E 7B 3A STX $3A7B (Set attack. often, X holds the acting+target entity, or miscellaneous things instead.) C2/4E9B: 20 54 4E JSR $4E54 (Add a record [by initializing its pointer/ID field] to a "master list" in $3184, a collection of linked list queues) C2/4E9E: 48 PHA C2/4E9F: AD 0A 34 LDA $340A (get global entry point to Special Action linked list queue. includes actions like auto-spellcasts from equipment, and timed statuses expiring. note that unlike other entry points, there isn't a separate one for each entity.) C2/4EA2: C9 FF CMP #$FF C2/4EA4: D0 39 BNE $4EDF (branch if it's already defined) C2/4EA6: A3 01 LDA $01,S C2/4EA8: 8D 0A 34 STA $340A (if it's undefined, set it to the index of the list record we just added) C2/4EAB: 80 32 BRA $4EDF (if it helps to follow things, view the last 3 instructions as: "PLA / STA $340A / BRA $4EF0".) (Add command, attack, targets, and MP cost [after determining it] to entity's counterattack and periodic damage/healing linked list queue or to its conventional one, depending on $B1. Usually called from monster script commands, which can run from either script section.) C2/4EAD: A5 B1 LDA $B1 C2/4EAF: 4A LSR (is it an unconventional turn [counterattack, in this context]?) C2/4EB0: 90 19 BCC $4ECB (branch if not) C2/4EB2: 5A PHY (many callers enter here, to directly use counterattack / periodic damage queue) C2/4EB3: 08 PHP C2/4EB4: E2 20 SEP #$20 C2/4EB6: 20 54 4E JSR $4E54 (Add a record [by initializing its pointer/ID field] to a "master list" in $3184, a collection of linked list queues) C2/4EB9: 48 PHA C2/4EBA: BD CD 32 LDA $32CD,X (get entry point to entity's counterattack or periodic damage/healing linked list queue) C2/4EBD: C9 FF CMP #$FF C2/4EBF: D0 1E BNE $4EDF (branch if it's already defined) C2/4EC1: 20 84 4E JSR $4E84 (add entity to counterattack / periodic damage queue) C2/4EC4: A3 01 LDA $01,S C2/4EC6: 9D CD 32 STA $32CD,X (if it's undefined, set it to the index of the list record we just added) C2/4EC9: 80 14 BRA $4EDF (if it helps to follow things, view the last 3 instructions as: "PLA / STA $32CD,X / BRA $4EF0".) (Add command, attack, targets, and MP cost [after determining it] to entity's conventional linked list queue) C2/4ECB: 5A PHY C2/4ECC: 08 PHP C2/4ECD: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/4ECF: 20 54 4E JSR $4E54 (Add a record [by initializing its pointer/ID field] to a "master list" in $3184, a collection of linked list queues) C2/4ED2: 48 PHA C2/4ED3: BD CC 32 LDA $32CC,X (get entry point to entity's conventional linked list queue) C2/4ED6: C9 FF CMP #$FF C2/4ED8: D0 05 BNE $4EDF (branch if it's already defined) C2/4EDA: A3 01 LDA $01,S (if it's undefined, set it to the index of the list record we just added) C2/4EDC: 9D CC 32 STA $32CC,X (if it helps to follow things, view the last 2 instructions as: "PLA / STA $32CC,X / BRA $4EF0".) C2/4EDF: A8 TAY (index for 8-bit fields) C2/4EE0: D9 84 31 CMP $3184,Y (does the pointer/ID value at PositionY equal PositionY?) C2/4EE3: F0 07 BEQ $4EEC (if so, it's a standalone record, or the last record in a linked list, so branch) C2/4EE5: B9 84 31 LDA $3184,Y (get pointer/ID field. [note that which queue holds this record depends on how we reached here.]) C2/4EE8: 30 02 BMI $4EEC (if it's somehow a null record, branch.) (if not, that leaves it being a linked list member that points to another record.) C2/4EEA: 80 F3 BRA $4EDF (loop and check the record that's being pointed to.) (can replace last 2 instructions with "BPL $4EDF".) C2/4EEC: 68 PLA C2/4EED: 99 84 31 STA $3184,Y (make the record that was last point to the new record. [or if the list had been empty, pointlessly re-save the new record.]) C2/4EF0: 0A ASL C2/4EF1: A8 TAY (adjust index for 16-bit fields) C2/4EF2: 20 08 4F JSR $4F08 (Determine MP cost of a spell/attack) C2/4EF5: 99 20 36 STA $3620,Y (save MP cost in a linked list queue. [the specific queue varies depending on how we reached here.]) C2/4EF8: C2 20 REP #$20 (Set 16-bit Accumulator) C2/4EFA: AD 7A 3A LDA $3A7A (get command ID and attack/sub-command ID) C2/4EFD: 99 20 34 STA $3420,Y (save command and attack in same linked list queue) C2/4F00: A5 B8 LDA $B8 (get targets. if reached from C2/4E91, might instead be attack ID or something else.) C2/4F02: 99 20 35 STA $3520,Y (save targets in same linked list queue) C2/4F05: 28 PLP C2/4F06: 7A PLY C2/4F07: 60 RTS (Determine MP cost of a spell/attack) C2/4F08: DA PHX C2/4F09: 08 PHP C2/4F0A: 7B TDC (16-bit A = 0. this means the returned spell cost will default to zero.) C2/4F0B: A9 40 LDA #$40 C2/4F0D: 14 B1 TRB $B1 (clear Bit 6 of $B1) C2/4F0F: D0 42 BNE $4F53 (branch if it was set, meaning we're on second Gem Box spell for Mimic, and return 0 as cost. no precaution needed for first Mimicked Gem Box spell, as we reach this function with $3A7A as 12h [Mimic] then.) C2/4F11: AD 7A 3A LDA $3A7A (get command #) C2/4F14: C9 19 CMP #$19 C2/4F16: F0 0C BEQ $4F24 (branch if it's Summon) C2/4F18: C9 0C CMP #$0C C2/4F1A: F0 08 BEQ $4F24 (branch if it's Lore) C2/4F1C: C9 02 CMP #$02 C2/4F1E: F0 04 BEQ $4F24 (branch if it's Magic) C2/4F20: C9 17 CMP #$17 C2/4F22: D0 2F BNE $4F53 (branch and use 0 cost if it's not X-Magic) C2/4F24: C2 10 REP #$10 (Set 16-bit X and Y) C2/4F26: AD 7B 3A LDA $3A7B (get attack #) C2/4F29: E0 08 00 CPX #$0008 C2/4F2C: B0 19 BCS $4F47 (branch if it's a monster attacker. they don't have menus containing MP data, nor relics that can alter MP costs.) C2/4F2E: DA PHX C2/4F2F: AA TAX C2/4F30: BD 84 30 LDA $3084,X (get this spell's position relative to Esper menu. the order in memory is Esper menu, Magic menu, Lore menu.) C2/4F33: FA PLX C2/4F34: C9 FF CMP #$FF C2/4F36: F0 1B BEQ $4F53 (if it's somehow not in the menu?, branch and use 0 cost) C2/4F38: C2 20 REP #$20 (Set 16-bit Accumulator) C2/4F3A: 0A ASL C2/4F3B: 0A ASL (multiply offset by 4, as each spell menu entry has 4 bytes: Spell index number, Bit 0 = spell unavailability [other bits transitive], Spell aiming, MP cost) C2/4F3C: 7D 2C 30 ADC $302C,X (add starting address of character's Magic menu) C2/4F3F: AA TAX C2/4F40: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/4F42: BD 03 00 LDA $0003,X (get MP cost from character's menu data. it usually matches the spell data, but Gold Hairpin, Economizer, and Step Mine's special formula can make it vary.) C2/4F45: 80 0D BRA $4F54 (clean up stack and exit) C2/4F47: EB XBA C2/4F48: A9 0E LDA #$0E C2/4F4A: 20 81 47 JSR $4781 (attack # * 14) C2/4F4D: AA TAX C2/4F4E: BF C5 6A C4 LDA $C46AC5,X (read MP cost from spell data) C2/4F52: EB XBA C2/4F53: EB XBA (bottom of A = MP cost) C2/4F54: 28 PLP C2/4F55: FA PLX C2/4F56: 60 RTS Monster command script command #$F7 C2/4F57: A5 B6 LDA $B6 C2/4F59: EB XBA C2/4F5A: A9 0F LDA #$0F C2/4F5C: 4C BF 62 JMP $62BF Command #$26 - Doom cast when Condemned countdown reaches 0; Safe, Shell, or Reflect* cast when character enters Near Fatal (* no items actually do this, but it's supported); or revival due to Life 3. C2/4F5F: A5 B8 LDA $B8 (get spell ID?) C2/4F61: A6 B6 LDX $B6 (get target?) C2/4F63: 85 B6 STA $B6 (save spell ID) C2/4F65: C9 0D CMP #$0D C2/4F67: D0 0F BNE $4F78 (branch if we're not casting Doom) C2/4F69: BD 04 32 LDA $3204,X C2/4F6C: 09 10 ORA #$10 C2/4F6E: 9D 04 32 STA $3204,X (set flag to zero and disable the Condemned counter after turn. this is done in case instant death is thwarted, and thus Condemned status isn't removed and C2/4644 never executes.) C2/4F71: AD 77 3A LDA $3A77 C2/4F74: F0 69 BEQ $4FDF (Exit function if no monsters are present and alive) C2/4F76: A9 0D LDA #$0D (Set spell to Doom again. it's easier than PHA/PLA) C2/4F78: EB XBA C2/4F79: A9 02 LDA #$02 C2/4F7B: 85 B5 STA $B5 (Set command to Magic) C2/4F7D: 20 D3 26 JSR $26D3 (Load data for command and attack/sub-command, held in A.bottom and A.top) C2/4F80: 20 51 29 JSR $2951 (Load Magic Power / Vigor and Level) C2/4F83: A9 10 LDA #$10 C2/4F85: 14 B0 TRB $B0 (Prevents characters from stepping forward and getting circular or triangular pattern around them when casting Magic or Lores.) C2/4F87: A9 02 LDA #$02 C2/4F89: 8D A3 11 STA $11A3 (Set attack to only not reflectable) C2/4F8C: A9 20 LDA #$20 C2/4F8E: 0C A4 11 TSB $11A4 (Set can't be dodged) C2/4F91: 9C A5 11 STZ $11A5 (Set to 0 MP cost) C2/4F94: 4C 67 31 JMP $3167 (Entity executes one largely unblockable hit on self) Monster command script command #$F5 C2/4F97: 9C 2A 3A STZ $3A2A C2/4F9A: 9C 2B 3A STZ $3A2B (clear temporary bytes 3 and 4 for ($76) animation buffer) C2/4F9D: AD 73 3A LDA $3A73 C2/4FA0: 49 FF EOR #$FF C2/4FA2: 14 B9 TRB $B9 (Clear monsters that aren't in formation template from command's monster targets) C2/4FA4: A5 B8 LDA $B8 (get subcommand) C2/4FA6: 0A ASL C2/4FA7: AA TAX C2/4FA8: A0 12 LDY #$12 C2/4FAA: B9 19 30 LDA $3019,Y C2/4FAD: 24 B9 BIT $B9 C2/4FAF: F0 03 BEQ $4FB4 (branch if enemy isn't affected by the F5 command) C2/4FB1: FC E4 51 JSR ($51E4,X) (execute subcommand on this enemy) C2/4FB4: 88 DEY C2/4FB5: 88 DEY C2/4FB6: C0 08 CPY #$08 C2/4FB8: B0 F0 BCS $4FAA (iterate for all 6 monsters) C2/4FBA: A5 B6 LDA $B6 (get animation type) C2/4FBC: EB XBA C2/4FBD: A9 13 LDA #$13 C2/4FBF: 4C BF 62 JMP $62BF (Command F5 nn 04) C2/4FC2: 48 PHA C2/4FC3: A9 FF LDA #$FF C2/4FC5: 8D 95 3A STA $3A95 (prohibit C2/47FB from checking for combat end) C2/4FC8: 68 PLA C2/4FC9: 80 03 BRA $4FCE C2/4FCB: 0C 4D 2F TSB $2F4D (Command F5 nn 01 enters here) (mark enemy to be removed from the battlefield) C2/4FCE: 1C 09 34 TRB $3409 (Command F5 nn 03 enters here) C2/4FD1: 1C 2F 2F TRB $2F2F (remove from bitfield of remaining enemies?) C2/4FD4: 0C 2A 3A TSB $3A2A (mark in temporary byte 3 for ($76) animation buffer) C2/4FD7: B9 F9 3E LDA $3EF9,Y C2/4FDA: 09 20 ORA #$20 C2/4FDC: 99 F9 3E STA $3EF9,Y (Set Hide status) C2/4FDF: 60 RTS (Command F5 nn 00) C2/4FE0: 48 PHA C2/4FE1: C2 20 REP #$20 C2/4FE3: B9 1C 3C LDA $3C1C,Y (Max HP) C2/4FE6: 99 F4 3B STA $3BF4,Y (Current HP) C2/4FE9: E2 20 SEP #$20 C2/4FEB: 68 PLA C2/4FEC: 1C 3A 3A TRB $3A3A (Command F5 nn 02 enters here) (remove from bitfield of dead-ish or escaped monsters?) C2/4FEF: 0C 2F 2F TSB $2F2F (add to bitfield of remaining enemies?) C2/4FF2: 0C 2B 3A TSB $3A2B (mark in temporary byte 4 for ($76) animation buffer) C2/4FF5: 0C 4F 2F TSB $2F4F (mark enemy to enter the battlefield) C2/4FF8: 0C 09 34 TSB $3409 C2/4FFB: 9C 95 3A STZ $3A95 (allow C2/47FB to check for combat end) C2/4FFE: 60 RTS (Command F5 nn 05) C2/4FFF: 20 CE 4F JSR $4FCE C2/5002: B9 E4 3E LDA $3EE4,Y C2/5005: 09 80 ORA #$80 C2/5007: 99 E4 3E STA $3EE4,Y (Set Death status) C2/500A: 60 RTS Regen, Poison, and Seizure/Phantasm damage or healing C2/500B: AD 77 3A LDA $3A77 C2/500E: F0 CF BEQ $4FDF (Exit if no monsters left in combat) C2/5010: B9 A1 3A LDA $3AA1,Y C2/5013: 29 EF AND #$EF C2/5015: 99 A1 3A STA $3AA1,Y (clear bit 4 of $3AA1,Y. because we're servicing this damage/healing request, we can allow C2/5A83 to queue up another one for this entity as needed.) C2/5018: B9 A0 3A LDA $3AA0,Y C2/501B: 89 10 BIT #$10 (is entity Wounded, Petrified, or Stopped, or is somebody else under the influence of Quick?) C2/501D: D0 C0 BNE $4FDF (Exit if any are true) C2/501F: 20 8A 29 JSR $298A (Load command data, and clear special effect, magic power, etc.) C2/5022: A9 90 LDA #$90 C2/5024: 14 B3 TRB $B3 (Set Ignore Clear, and allow for damage increment even with Ignore Defense) C2/5026: A9 12 LDA #$12 C2/5028: 85 B5 STA $B5 (Set command for animation to Mimic) C2/502A: A9 68 LDA #$68 C2/502C: 8D A2 11 STA $11A2 (Sets to only ignore defense, no split damage, reverse damage/healing on undead) C2/502F: 4E A4 11 LSR $11A4 C2/5032: A5 B6 LDA $B6 (get spell parameter: 02 = Regen, 04 = Poison, 40 = Seizure/Phantasm) C2/5034: 4A LSR C2/5035: 4A LSR C2/5036: 2E A4 11 ROL $11A4 (Set to heal for regen; damage for poison & seizure/phantasm) C2/5039: 4A LSR C2/503A: 90 15 BCC $5051 (Branch if not poison) C2/503C: B9 24 3E LDA $3E24,Y (Cumulative amount to increment poison damage) C2/503F: 85 BD STA $BD (save in turn-wide Damage Incrementor) C2/5041: 1A INC C2/5042: 1A INC C2/5043: C9 0F CMP #$0F C2/5045: 90 02 BCC $5049 (Branch if under 15) C2/5047: A9 0E LDA #$0E (Set to 14) C2/5049: 99 24 3E STA $3E24,Y (Cumulative amount to increment poison damage for next round) C2/504C: A9 08 LDA #$08 C2/504E: 8D A1 11 STA $11A1 (Set element to poison) C2/5051: B9 40 3B LDA $3B40,Y (Stamina) (Figure damage) C2/5054: 85 E8 STA $E8 C2/5056: C2 20 REP #$20 C2/5058: B9 1C 3C LDA $3C1C,Y (Max HP) C2/505B: 20 B7 47 JSR $47B7 (Max HP * Stamina / 256) C2/505E: 4A LSR C2/505F: 4A LSR ( / 1024) C2/5060: C9 FE 00 CMP #$00FE C2/5063: E2 20 SEP #$20 C2/5065: 90 02 BCC $5069 (Branch if under 254) C2/5067: A9 FC LDA #$FC (set to 253) C2/5069: 69 02 ADC #$02 C2/506B: 8D A6 11 STA $11A6 (Store damage in battle power) C2/506E: BB TYX C2/506F: 4C 67 31 JMP $3167 (Entity executes one largely unblockable hit on self) Monster command script command #$F2 ($B8 and bottom 7 bits of $B9 = new formation to change to) C2/5072: A5 B8 LDA $B8 (Byte 2) C2/5074: 8D E0 11 STA $11E0 (Monster formation, byte 1) C2/5077: 0E 47 3A ASL $3A47 (shift out old bit 7) C2/507A: A5 B9 LDA $B9 (Byte 3. top bit: 1 = monsters get Max HP. 0 = retain HP and Max HP from current formation.) C2/507C: 49 80 EOR #$80 C2/507E: 0A ASL C2/507F: 6E 47 3A ROR $3A47 (put reverse of bit 7 of $B9 into bit 7 here) C2/5082: 4A LSR C2/5083: 8D E1 11 STA $11E1 (Monster formation, byte 2) C2/5086: 20 E8 30 JSR $30E8 (Loads battle formation data) C2/5089: C2 20 REP #$20 (Set 16-bit Accumulator) C2/508B: A2 0A LDX #$0A C2/508D: 9E A8 3A STZ $3AA8,X (clear enemy presence flag) C2/5090: 9E 54 3E STZ $3E54,X C2/5093: 7B TDC C2/5094: 3A DEC C2/5095: 9D 01 20 STA $2001,X (save FFFFh [null] as enemy #) C2/5098: A9 BC FF LDA #$FFBC C2/509A: 9D 0C 32 STA $320C,X (aka $3204,X) C2/509E: CA DEX C2/509F: CA DEX C2/50A0: 10 EB BPL $508D (loop for all 6 enemies) C2/50A2: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/50A4: 20 E1 2E JSR $2EE1 (Initialize some enemy presence variables, and load enemy names and stats) C2/50A7: 20 91 43 JSR $4391 (update status effects for all applicable entities) C2/50AA: 20 9B 06 JSR $069B (Do various responses to three mortal statuses) C2/50AD: 20 3F 08 JSR $083F C2/50B0: 20 B9 4A JSR $4AB9 (Update lists and counts of present and/or living characters and monsters) C2/50B3: 20 C9 26 JSR $26C9 (Give immunity to permanent statuses, and handle immunity to "mirror" statuses, for all entities.) C2/50B6: 20 3A 2E JSR $2E3A (Determine if front, back, pincer, or side attack) C2/50B9: AD 75 3A LDA $3A75 (list of present and living enemies) C2/50BC: 8D 2B 3A STA $3A2B (temporary byte 4 for ($76) animation buffer) C2/50BF: AD 1E 20 LDA $201E C2/50C2: 8D 2A 3A STA $3A2A (temporary byte 3 for ($76) animation buffer) C2/50C5: A5 B6 LDA $B6 C2/50C7: EB XBA C2/50C8: A9 12 LDA #$12 C2/50CA: 4C BF 62 JMP $62BF Command #$25 C2/50CD: A9 02 LDA #$02 C2/50CF: 80 02 BRA $50D3 C2/50D1: A9 10 LDA #$10 (Command #$21 - F3 Command script enters here) C2/50D3: EB XBA C2/50D4: A5 B6 LDA $B6 C2/50D6: EB XBA C2/50D7: 9C 2A 3A STZ $3A2A (set temporary byte 3 for ($76) animation buffer to 0) C2/50DA: 4C BF 62 JMP $62BF (Command #$27 - Display Scan info) C2/50DD: A6 B6 LDX $B6 (get target of original casting) C2/50DF: A9 FF LDA #$FF C2/50E1: 8D 72 2D STA $2D72 (first byte of second entry of ($76) buffer) C2/50E4: A9 02 LDA #$02 C2/50E6: 8D 6E 2D STA $2D6E (first byte of first entry of ($76) buffer) C2/50E9: 9C 36 2F STZ $2F36 C2/50EC: 9C 37 2F STZ $2F37 (clear message parameter 1, top two bytes) C2/50EF: 9C 3A 2F STZ $2F3A (clear message parameter 2, top/third byte) C2/50F2: BD 18 3B LDA $3B18,X (Level) C2/50F5: 8D 35 2F STA $2F35 (save it in message parameter 1, bottom byte) C2/50F8: A9 34 LDA #$34 (ID of "Level [parameter1]" message) C2/50FA: 8D 6F 2D STA $2D6F (second byte of first entry of ($76) buffer) C2/50FD: A9 04 LDA #$04 C2/50FF: 20 11 64 JSR $6411 (Execute animation queue) C2/5102: C2 20 REP #$20 C2/5104: BD F4 3B LDA $3BF4,X (Current HP) C2/5107: 8D 35 2F STA $2F35 (save in message parameter 1, bottom word) C2/510A: BD 1C 3C LDA $3C1C,X (Max HP) C2/510D: 8D 38 2F STA $2F38 (save in message parameter 2, bottom word) C2/5110: E2 20 SEP #$20 C2/5112: A9 30 LDA #$30 (ID of "HP [parameter1]/[parameter2]" message) C2/5114: 8D 6F 2D STA $2D6F (second byte of first entry of ($76) buffer) C2/5117: A9 04 LDA #$04 C2/5119: 20 11 64 JSR $6411 (Execute animation queue) C2/511C: C2 20 REP #$20 C2/511E: BD 08 3C LDA $3C08,X (Current MP) C2/5121: 8D 35 2F STA $2F35 (save in message parameter 1, bottom word) C2/5124: BD 30 3C LDA $3C30,X (Max MP) C2/5127: 8D 38 2F STA $2F38 (save in message parameter 2, bottom word) C2/512A: E2 20 SEP #$20 C2/512C: F0 0A BEQ $5138 C2/512E: A9 31 LDA #$31 (ID of "MP [parameter1]/[parameter2]" message) C2/5130: 8D 6F 2D STA $2D6F (second byte of first entry of ($76) buffer) C2/5133: A9 04 LDA #$04 C2/5135: 20 11 64 JSR $6411 (Execute animation queue) C2/5138: A9 15 LDA #$15 (start with ID of "Weak against fire" message) C2/513A: 8D 6F 2D STA $2D6F (second byte of first entry of ($76) buffer) C2/513D: BD E0 3B LDA $3BE0,X C2/5140: 85 EE STA $EE (Weak elements) C2/5142: BD E1 3B LDA $3BE1,X C2/5145: 1D CC 3B ORA $3BCC,X C2/5148: 1D CD 3B ORA $3BCD,X C2/514B: 14 EE TRB $EE (subtract Absorbed, Nullified, and Resisted elements, because those supercede weaknesses) C2/514D: A9 01 LDA #$01 C2/514F: 24 EE BIT $EE C2/5151: F0 07 BEQ $515A (branch if not weak to current element) C2/5153: 48 PHA C2/5154: A9 04 LDA #$04 C2/5156: 20 11 64 JSR $6411 (Execute animation queue) C2/5159: 68 PLA C2/515A: EE 6F 2D INC $2D6F (advance to "Weak against" message with next element name) C2/515D: 0A ASL (look at next elemental bit) C2/515E: 90 EF BCC $514F (iterate for all 8 elements) C2/5160: 60 RTS Remove Stop, Reflect, Freeze, or Sleep when time is up C2/5161: AE 7D 3A LDX $3A7D (get entity, whom the game regards as performing this action on oneself) C2/5164: 20 8A 29 JSR $298A (Load command data, and clear special effect, magic power, etc.) C2/5167: A9 12 LDA #$12 C2/5169: 85 B5 STA $B5 (Set command to Mimic) C2/516B: A9 10 LDA #$10 C2/516D: 14 B0 TRB $B0 (Prevents characters from stepping forward and getting circular or triangular pattern around them when casting Magic or Lores.) C2/516F: 46 B8 LSR $B8 C2/5171: 90 05 BCC $5178 (Branch if bit 0 of $B8 is 0) C2/5173: A9 10 LDA #$10 C2/5175: 0C AC 11 TSB $11AC (Attack clears Stop) C2/5178: 46 B8 LSR $B8 C2/517A: 90 05 BCC $5181 (Branch if bit 1 of $B8 is 0) C2/517C: A9 80 LDA #$80 C2/517E: 0C AC 11 TSB $11AC (Attack clears Reflect) C2/5181: 46 B8 LSR $B8 C2/5183: 90 05 BCC $518A (Branch if bit 2 of $B8 is 0) C2/5185: A9 02 LDA #$02 C2/5187: 0C AD 11 TSB $11AD (Attack clears Freeze) C2/518A: 46 B8 LSR $B8 C2/518C: 90 12 BCC $51A0 (Branch if bit 3 of $B8 is 0) C2/518E: A9 80 LDA #$80 C2/5190: 3D E5 3E AND $3EE5,X C2/5193: F0 0B BEQ $51A0 (Branch if not sleeping) C2/5195: 0C AB 11 TSB $11AB (Attack clears Sleep) C2/5198: A9 02 LDA #$02 C2/519A: 85 B5 STA $B5 (Set command to Magic) C2/519C: A9 78 LDA #$78 C2/519E: 85 B6 STA $B6 (Set spell to Tapir. Note this does *not* use the spell _data_ of the Tapir from Mog's dance, so it won't have the same effect) C2/51A0: A9 04 LDA #$04 C2/51A2: 0C A4 11 TSB $11A4 (Set to lift statuses) C2/51A5: 4C 67 31 JMP $3167 (Entity executes one largely unblockable hit on self) Command #$2C (buffer Battle Dynamics Command 0Eh, graphics related: for character poses? can't always see effect, but this lets Petrify take spellcaster out of chant pose or relax a Defender, for instance.) C2/51A8: AD 7D 3A LDA $3A7D C2/51AB: 4A LSR (convert target # to 0, 1, 2, etc) C2/51AC: EB XBA C2/51AD: A9 0E LDA #$0E (Battle Dynamics Command 0Eh) C2/51AF: 4C BF 62 JMP $62BF Command #$2D (Drain from being seized) C2/51B2: B9 A1 3A LDA $3AA1,Y C2/51B5: 29 EF AND #$EF C2/51B7: 99 A1 3A STA $3AA1,Y (Clear bit 4 of $3AA1,Y. because we're servicing this damage/healing request, we can allow C2/5A83 to queue up another one for this entity as needed.) C2/51BA: BB TYX C2/51BB: 20 8A 29 JSR $298A (Load command data, and clear special effect, magic power, etc.) C2/51BE: 9C AE 11 STZ $11AE (Set Magic Power to 0) C2/51C1: A9 10 LDA #$10 C2/51C3: 8D AF 11 STA $11AF (Set Level to 16) C2/51C6: 8D A6 11 STA $11A6 (Set Spell Power to 16) C2/51C9: A9 28 LDA #$28 C2/51CB: 8D A2 11 STA $11A2 (Sets to only ignore defense, heal undead) C2/51CE: A9 02 LDA #$02 C2/51D0: 8D A3 11 STA $11A3 (Sets to Not reflectable only) C2/51D3: 0C A4 11 TSB $11A4 (Sets Redirection) C2/51D6: 0C 46 3A TSB $3A46 (set flag to let this attack target a Seized entity, who is normally untargetable) C2/51D9: A9 80 LDA #$80 C2/51DB: 14 B2 TRB $B2 (Indicate a special type of drainage. Normal drain is capped at the lowest of: drainee's Current HP/MP and drainer's Max - Current HP/MP. This one will ignore the latter, meaning it's effectively just a damage attack if the attacker's [or undead target's] HP/MP is full.) C2/51DD: A9 12 LDA #$12 C2/51DF: 85 B5 STA $B5 (Sets command to Mimic) C2/51E1: 4C 7B 31 JMP $317B (entity executes one hit) Code pointers for command #$F5 C2/51E4: E0 4F C2/51E6: CB 4F C2/51E8: EC 4F C2/51EA: CE 4F C2/51EC: C2 4F C2/51EE: FF 4F X = Highest bit in A that is 1 (bit 0 = 0, 1 = 1, etc.) C2/51F0: A2 00 LDX #$00 C2/51F2: 4A LSR C2/51F3: F0 03 BEQ $51F8 (Exit if all bits are 0) C2/51F5: E8 INX C2/51F6: 80 FA BRA $51F2 C2/51F8: 60 RTS Y = (Number of highest target set in A) * 2 (0, 2, 4, or 6 for characters. 8, 10, 12, 14, 16, or 18 for monsters.) (Remember that $3018 : Holds $01 for character 1, $02 for character 2, $04 for character 3, $08 for character 4 $3019 : Holds $01 for monster 1, $02 for monster 2, etc. ) C2/51F9: DA PHX C2/51FA: 08 PHP C2/51FB: C2 20 REP #$20 (Set 16-bit Accumulator) C2/51FD: E2 10 SEP #$10 (Set 8-bit Index Registers) C2/51FF: A2 12 LDX #$12 C2/5201: 3C 18 30 BIT $3018,X C2/5204: D0 04 BNE $520A (Exit loop if bit set) C2/5206: CA DEX C2/5207: CA DEX C2/5208: 10 F7 BPL $5201 (loop through all 10 targets if necessary) C2/520A: 9B TXY C2/520B: 28 PLP C2/520C: FA PLX C2/520D: 60 RTS Sets X to number of bits set in A C2/520E: A2 00 LDX #$00 C2/5210: 4A LSR C2/5211: 90 01 BCC $5214 C2/5213: E8 INX C2/5214: D0 FA BNE $5210 C2/5216: 60 RTS X = A / 8 (including carry, so A is effectively 9 bits) A = 1 if (A % 8) = 0, 2 if (A % 8) = 1, 4 if (A % 8) = 2, 8 if (A % 8) = 3, 16 if (A % 8) = 4, etc. So A = 2 ^ (A MOD 8) Carry flag = cleared C2/5217: 5A PHY C2/5218: 48 PHA C2/5219: 6A ROR C2/521A: 4A LSR C2/521B: 4A LSR C2/521C: AA TAX C2/521D: 68 PLA C2/521E: 29 07 AND #$07 C2/5220: A8 TAY C2/5221: A9 00 LDA #$00 C2/5223: 38 SEC C2/5224: 2A ROL C2/5225: 88 DEY C2/5226: 10 FC BPL $5224 C2/5228: 7A PLY C2/5229: 60 RTS Randomly picks a bit set in A C2/522A: 5A PHY C2/522B: 08 PHP C2/522C: C2 20 REP #$20 (Set 16-bit Accumulator) C2/522E: 85 EE STA $EE C2/5230: 20 0E 52 JSR $520E (X = number of bits set in A) C2/5233: 8A TXA C2/5234: F0 0E BEQ $5244 (Exit if no bits set) C2/5236: 20 65 4B JSR $4B65 (random: 0 to A - 1) C2/5239: AA TAX C2/523A: 38 SEC C2/523B: 7B TDC C2/523C: 2A ROL C2/523D: 24 EE BIT $EE C2/523F: F0 FB BEQ $523C C2/5241: CA DEX C2/5242: 10 F8 BPL $523C C2/5244: 28 PLP C2/5245: 7A PLY C2/5246: 60 RTS (Determine if front, back, pincer, or side attack) (X = #$10 when called for choosing type of attack formation) (A = Which types to allow, bit 7 = side, 6 = pincer, 5 = back, 4 = normal/front) (Returns attack formation in X: 0 = Front/Normal, 1 = Back, 2 = Pincer, 3 = Side) (Also used for determining which attack Umaro should use) (X = #$00 for no Rage Ring or Blizzard Orb, #$04 for Rage Ring, #$08 for Blizzard Orb, #$0C for both) (A = Which attacks to allow, bit 7 = Normal attack, 6 = Charge/Tackle, 5 = Storm, 4 = Throw character. Bits 6 and 7 are always set by caller. Note that masking in A is unneeded [it could very well have all bits set] because the 4 different data structures at C2/5269 will exclude certain attacks by having FFh [read: 00h] for them.) (Returns Umaro attack type in X: 0 = Throw character, 1 = Storm, 2 = Charge/Tackle, 3 = Normal attack) C2/5247: 5A PHY C2/5248: EB XBA C2/5249: A9 00 LDA #$00 C2/524B: A0 03 LDY #$03 C2/524D: EB XBA C2/524E: 0A ASL (put allowability bit of current Attack or Formation type into Carry) C2/524F: EB XBA C2/5250: 90 04 BCC $5256 (Branch if type not allowed) C2/5252: 7F 69 52 C2 ADC $C25269,X (Add chance to get that type, which includes plus one for always-set Carry.) C2/5256: 99 FC 00 STA $00FC,Y (build an array that determines which ranges of random numbers will result in which Umaro attacks or Battle formations) C2/5259: E8 INX C2/525A: 88 DEY C2/525B: 10 F0 BPL $524D (Check for all 4 types) C2/525D: 20 65 4B JSR $4B65 (random #: 0 to A - 1 , where A is the denominator of our probabilities, as explained in the data below.) C2/5260: A2 04 LDX #$04 C2/5262: CA DEX C2/5263: D5 FC CMP $FC,X C2/5265: B0 FB BCS $5262 (Check next type if A >= $FC,X) C2/5267: 7A PLY C2/5268: 60 RTS (Return X = Battle type / Attack to use) (NOTE: Effective values are all 1 greater than those listed in C2/5269 through C2/527C [with FFh wrapping to 00h].) (Each effective value is the Numerator of the probability of getting a certain type of Umaro attack, in the order: Normal attack, Charge/Tackle, Storm, Throw character) (Denominator of the probability is the sum of the effective values.) C2/5269: 9E 5F FF FF (No Rage Ring or Blizzard Orb) C2/526D: 5E 3F FF 5F (Rage Ring) C2/5271: 5E 3F 5F FF (Blizzard Orb) C2/5275: 3E 3F 3F 3F (Both) (Each effective value is the Numerator of probability of getting a certain type of attack formation, in the order: Side, Pincer, Back, Normal/Front) (Denominator of the probability is the sum of the effective values, excluding those of formations that were skipped at C2/5250 due to not being allowed.) C2/5279: 1E 07 07 CF (For choosing type of battle) (Gray out or enable character commands based on various criteria, such as: whether current equipment supports them, whether the character is inflicted with Imp or Mute, and whether they've accumulated enough Magic Points to Morph. This function also enables Offering to change the aiming of Fight and Capture.) C2/527D: DA PHX C2/527E: 08 PHP C2/527F: C2 30 REP #$30 (Set 16-bit A, X and Y) C2/5281: 9B TXY C2/5282: BF 4A 54 C2 LDA $C2544A,X (Get address of character's menu) C2/5286: AA TAX C2/5287: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/5289: B9 18 30 LDA $3018,Y C2/528C: 0C 58 3A TSB $3A58 (flag this character's main menu to be redrawn right away) C2/528F: B9 E4 3E LDA $3EE4,Y C2/5292: 29 20 AND #$20 C2/5294: 85 EF STA $EF (if Imp status possessed, turn on Bit 5 of $EF. if not, the variable is set to 0.) C2/5296: B9 A4 3B LDA $3BA4,Y (weapon properties, right hand) C2/5299: 19 A5 3B ORA $3BA5,Y (merge with weapon properties, left hand) C2/529C: 49 FF EOR #$FF (invert) C2/529E: 29 82 AND #$82 C2/52A0: 04 EF TSB $EF (if neither hand supports Runic, set Bit 7. if neither hand supports SwdTech, set Bit 1.) C2/52A2: A9 04 LDA #$04 C2/52A4: 85 EE STA $EE (counter variable.. we're going to check 4 menu slots in all) C2/52A6: DA PHX (push address of character's current menu slot) C2/52A7: 38 SEC (mark menu slot to be disabled) C2/52A8: 7B TDC (clear 16-bit A) C2/52A9: BD 00 00 LDA $0000,X (get command # in current menu slot) C2/52AC: 30 2D BMI $52DB (branch if slot empty) C2/52AE: 48 PHA (push command #) C2/52AF: 18 CLC (mark menu slot to be enabled) C2/52B0: A5 EF LDA $EF C2/52B2: 89 20 BIT #$20 (are they an Imp?) C2/52B4: F0 0D BEQ $52C3 (branch if not) C2/52B6: A3 01 LDA $01,S C2/52B8: 0A ASL (command # * 2) C2/52B9: AA TAX C2/52BA: BF 00 FE CF LDA $CFFE00,X (table of command info) C2/52BE: 89 04 BIT #$04 (is command supported while Imped?) C2/52C0: D0 01 BNE $52C3 (branch if so) C2/52C2: 38 SEC (mark menu slot to be disabled) C2/52C3: 68 PLA (fetch command #) C2/52C4: B0 15 BCS $52DB (if menu slot is disabled at this point, don't bother with our next checks) (This next loop sees if our current command is one that needs special code to assess its menu availability -- graying it if unavailable -- or another property, such as its aiming. If so, a special function is called for the command.) C2/52C6: A2 07 00 LDX #$0007 C2/52C9: DF E9 52 C2 CMP $C252E9,X (does our current command match one whose menu availability or aiming can vary?) C2/52CD: D0 08 BNE $52D7 (if not, compare it to next command in table) C2/52CF: 8A TXA C2/52D0: 0A ASL C2/52D1: AA TAX C2/52D2: FC F1 52 JSR ($52F1,X) (call special function for command) C2/52D5: 80 04 BRA $52DB (we've gotten a match, so there's no need to compare our current command against rest of list) C2/52D7: CA DEX C2/52D8: 10 EF BPL $52C9 (there are 8 possible commands that need special checks) C2/52DA: 18 CLC (if there was no match, default to enabling the menu slot) C2/52DB: FA PLX C2/52DC: 7E 01 00 ROR $0001,X (2nd byte of current menu slot will have Bit 7 set if the slot should be grayed out and unavailable. iow, Carry = 1 -> grayed. Carry = 0 -> enabled.) C2/52DF: E8 INX C2/52E0: E8 INX C2/52E1: E8 INX (point to next slot in character's menu) C2/52E2: C6 EE DEC $EE C2/52E4: D0 C0 BNE $52A6 (repeat process for all 4 menu slots) C2/52E6: 28 PLP C2/52E7: FA PLX C2/52E8: 60 RTS (Data - commands that can potentially get grayed out on the menu in battle, or have a property like their aiming altered.) C2/52E9: 03 (Morph) C2/52EA: 0B (Runic) C2/52EB: 07 (SwdTech) C2/52EC: 0C (Lore) C2/52ED: 17 (X-Magic) C2/52EE: 02 (Magic) C2/52EF: 06 (Capture) C2/52F0: 00 (Fight) (Data - addresses of functions to check whether above command should be enabled, disabled, or otherwise modified on battle menu) C2/52F1: 26 53 (Morph) C2/52F3: 22 53 (Runic) C2/52F5: 1D 53 (SwdTech) C2/52F7: 14 53 (Lore) C2/52F9: 14 53 (X-Magic) C2/52FB: 14 53 (Magic) C2/52FD: 01 53 (Capture) C2/52FF: 01 53 (Fight) (For Capture and Fight menu slots) C2/5301: B9 58 3C LDA $3C58,Y (Check for offering) C2/5304: 4A LSR C2/5305: 90 0C BCC $5313 (Exit if no Offering) C2/5307: C2 21 REP #$21 (Set 16-bit Accumulator. Clear Carry to enable menu slot.) C2/5309: A3 03 LDA $03,S C2/530B: AA TAX (get address of character's current menu slot) C2/530C: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/530E: A9 4E LDA #$4E C2/5310: 9D 02 00 STA $0002,X (update aiming byte: Cursor start on enemy, Auto select one party, Auto select both parties [in this case, that means you'll target both enemy clumps in a Pincer], and One side only.) C2/5313: 60 RTS (For Lore, X-Magic, and Magic menu slots) C2/5314: B9 E5 3E LDA $3EE5,Y C2/5317: 89 08 BIT #$08 (is character Muted?) C2/5319: F0 01 BEQ $531C (branch if not) C2/531B: 38 SEC (if they are, mark menu slot to be disabled?) C2/531C: 60 RTS (For SwdTech menu slot) C2/531D: A5 EF LDA $EF C2/531F: 4A LSR C2/5320: 4A LSR (Carry = Bit 1, which was set in function C2/527D) C2/5321: 60 RTS (if it was set, menu slot will be disabled.. if it wasn't, slot is enabled) (For Runic menu slot) C2/5322: A5 EF LDA $EF C2/5324: 0A ASL (Carry = Bit 7, which was set in function C2/527D) C2/5325: 60 RTS (if it was set, menu slot will be disabled.. if it wasn't, slot is enabled) (For Morph menu slot) C2/5326: A9 0F LDA #$0F C2/5328: CD F6 1C CMP $1CF6 (compare to Morph supply) C2/532B: 60 RTS (if Morph supply isn't at least 16, menu slot will be disabled.. if it's >=16, slot is enabled) (Change character commands when wearing MagiTek armor or visiting Fanatics' Tower. Change commands based on relics, such as Fight becoming Jump, or Steal becoming Capture. Blank or retain certain commands, depending on whether they should be available -- e.g. no known dances means no Dance command.) (Zero character MP if they have no Lore command, no Magic/X-Magic with at least one spell learned, and no Magic/X-Magic with an Esper equipped.) C2/532C: DA PHX C2/532D: 08 PHP C2/532E: C2 30 REP #$30 (Set 16-bit A, X, and Y) C2/5330: BC 10 30 LDY $3010,X (get offset to character info block) C2/5333: BF 4A 54 C2 LDA $C2544A,X (get address of character's menu) C2/5337: 8F 81 21 00 STA $002181 (save to WRAM Offset, so upcoming writes to $002180 will modify that character's menu) C2/533B: B9 16 16 LDA $1616,Y (1st and 2nd menu slots) C2/533E: 85 FC STA $FC C2/5340: B9 18 16 LDA $1618,Y (3rd and 4th menu slots) C2/5343: 85 FE STA $FE C2/5345: B9 14 16 LDA $1614,Y (out of battle Status Bytes 1 and 2; correspond to in-battle Status Bytes 1 and 4) C2/5348: E2 30 SEP #$30 (Set 8-bit A, X, and Y) C2/534A: 89 08 BIT #$08 (does character have MagiTek?) C2/534C: D0 06 BNE $5354 (branch if so) C2/534E: AD BB 3E LDA $3EBB (in-battle copy of event data. Bit 0 = at Fanatics' Tower, beyond first screen.) C2/5351: 4A LSR C2/5352: 90 49 BCC $539D (branch if neither MagiTek nor Fanatics' Tower) C2/5354: BD D8 3E LDA $3ED8,X (get character index) C2/5357: EB XBA C2/5358: A2 03 LDX #$03 (point to 4th menu slot) C2/535A: B5 FC LDA $FC,X (get command in menu slot) C2/535C: C9 01 CMP #$01 C2/535E: F0 3A BEQ $539A (if Item, skip to next slot) C2/5360: C9 12 CMP #$12 C2/5362: F0 36 BEQ $539A (if Mimic, skip to next slot) C2/5364: EB XBA (retrieve character index) C2/5365: C9 0B CMP #$0B C2/5367: D0 08 BNE $5371 (branch if not Gau) C2/5369: EB XBA (get command again) C2/536A: C9 10 CMP #$10 C2/536C: D0 02 BNE $5370 (branch if not Rage) C2/536E: A9 00 LDA #$00 (load Fight command into A so that Gau's Rage will get replaced by MagiTek too. why not just replace "BNE $5370 / LDA #$00" with "BEQ formerly_$5376" ?? you got me..) C2/5370: EB XBA C2/5371: EB XBA (once more, command is in bottom of A, character index in top) C2/5372: C9 00 CMP #$00 (Fight?) C2/5374: D0 04 BNE $537A (branch if not. if it is Fight, we'll replace it with MagiTek) C2/5376: A9 1D LDA #$1D C2/5378: 80 06 BRA $5380 (go store MagiTek command in menu slot) C2/537A: C9 02 CMP #$02 C2/537C: F0 02 BEQ $5380 (if Magic, branch.. which just keeps Magic as command? rewriting it seems inefficient, unless i'm missing something.) C2/537E: A9 FF LDA #$FF (empty command) C2/5380: 95 FC STA $FC,X (update this menu slot) C2/5382: AD BB 3E LDA $3EBB (in-battle copy of event data. Bit 0 = at Fanatics' Tower, beyond first screen.) C2/5385: 4A LSR C2/5386: 90 12 BCC $539A (branch if not in the tower) C2/5388: B5 FC LDA $FC,X (get menu slot again) C2/538A: C9 02 CMP #$02 C2/538C: F0 08 BEQ $5396 (branch if Magic command, emptying slot.) C2/538E: C9 1D CMP #$1D (MagiTek? actually, this is former Fight or Gau+Rage.) C2/5390: D0 06 BNE $5398 (branch if not) C2/5392: A9 02 LDA #$02 C2/5394: 80 02 BRA $5398 (save Magic as command) C2/5396: A9 FF LDA #$FF (empty command) C2/5398: 95 FC STA $FC,X (update menu slot) C2/539A: CA DEX C2/539B: 10 BD BPL $535A (loop for all 4 slots) C2/539D: 7B TDC (clear 16-bit A) C2/539E: 85 F8 STA $F8 (will default to zeroing character's Max+Current MP. but some commands' C2/545C functions can change.) C2/53A0: 8F 83 21 00 STA $002183 (will write to Bank 7Eh in WRAM) C2/53A4: A8 TAY (Y = 0) C2/53A5: B9 FC 00 LDA $00FC,Y (get command from menu slot) C2/53A8: A2 04 LDX #$04 C2/53AA: 48 PHA C2/53AB: A9 04 LDA #$04 C2/53AD: 85 EE STA $EE (start checking Bit 2 of variable $11D6) C2/53AF: BF 52 54 C2 LDA $C25452,X (commands that can be changed FROM) C2/53B3: C3 01 CMP $01,S (is current command one of those?) C2/53B5: D0 0D BNE $53C4 (branch if not) C2/53B7: AD D6 11 LDA $11D6 (check Battle Effects 1 byte. Bit 2 = Fight -> Jump, Bit 3 = Magic -> X-Magic, Bit 4 = Sketch -> Control, Bit 5 = Slot -> GP Rain, Bit 6 = Steal -> Capture) C2/53BA: 24 EE BIT $EE C2/53BC: F0 06 BEQ $53C4 C2/53BE: BF 57 54 C2 LDA $C25457,X (commands to change TO) C2/53C2: 83 01 STA $01,S (replace command on stack) C2/53C4: 06 EE ASL $EE (will check the next highest bit of $11D6 in our next iteration) C2/53C6: CA DEX C2/53C7: 10 E6 BPL $53AF (loop for all 5 possible commands that can be converted) (This next loop sees if our current command is one that needs special code to assess its menu availability -- blanking it if unavailable -- or do some other tests. If so, a special function is called for the command.) C2/53C9: A3 01 LDA $01,S (get current command) C2/53CB: A2 05 LDX #$05 C2/53CD: DF 68 54 C2 CMP $C25468,X (is it one of the commands that can be blanked from menu or have other miscellaneous crap done?) C2/53D1: D0 08 BNE $53DB (branch if not) C2/53D3: 8A TXA C2/53D4: 0A ASL C2/53D5: AA TAX (X = X * 2) C2/53D6: FC 5C 54 JSR ($545C,X) (call special function for command) C2/53D9: 80 03 BRA $53DE (we've gotten a match, so there's no need to compare our current command against rest of list) C2/53DB: CA DEX C2/53DC: 10 EF BPL $53CD (there are 6 possible commands that need special checks) C2/53DE: 68 PLA (restore command #, which may've been nulled by our C2/545C special function) C2/53DF: 8F 80 21 00 STA $002180 (save command # in first menu byte) C2/53E3: 8F 80 21 00 STA $002180 (save command # again in second menu byte.. all i know about this byte is that the top bit will be set if the menu option is unavailable [blank or gray] ) C2/53E7: 0A ASL C2/53E8: AA TAX (X = command * 2, will let us index a command table) C2/53E9: 7B TDC (clear 16-bit A) C2/53EA: B0 04 BCS $53F0 (branch if command # was negative. this will put zero into the menu aiming.) C2/53EC: BF 01 FE CF LDA $CFFE01,X (get command's aiming) C2/53F0: 8F 80 21 00 STA $002180 (store it in a third menu byte) C2/53F4: C8 INY C2/53F5: C0 04 CPY #$04 (loop for all 4 menu slots) C2/53F7: D0 AC BNE $53A5 C2/53F9: 46 F8 LSR $F8 (Carry gets set if character has Magic/X-Magic command and at least one spell known, Magic/X-Magic and an Esper equipped, or if they simply have Lore.) C2/53FB: B0 0B BCS $5408 C2/53FD: A3 02 LDA $02,S (retrieve the X value originally passed to the function. iow, the index of the party member whose menu is being examined) C2/53FF: AA TAX C2/5400: C2 20 REP #$20 (Set 16-bit A) C2/5402: 9E 08 3C STZ $3C08,X (zero Current MP) C2/5405: 9E 30 3C STZ $3C30,X (zero Max MP) C2/5408: 28 PLP C2/5409: FA PLX C2/540A: 60 RTS (Morph menu entry) C2/540B: A9 04 LDA #$04 C2/540D: 2C BC 3E BIT $3EBC (set after retrieving Terra from Zozo -- allows Morph command) C2/5410: F0 22 BEQ $5434 (if not set, go null out command) C2/5412: 2C BB 3E BIT $3EBB (set only for Phunbaba battle #4 [i.e. Terra's second Phunbaba encounter]) C2/5415: F0 21 BEQ $5438 (if not Phunbaba, just keep command enabled) C2/5417: A3 05 LDA $05,S (get the X value originally passed to function C2/532C. iow, the index of the party member whose menu is being examined.) C2/5419: AA TAX C2/541A: BD E9 3D LDA $3DE9,X C2/541D: 09 08 ORA #$08 C2/541F: 9D E9 3D STA $3DE9,X (mark Morph status to be set [will be granted by Function C2/4391 via C2/24A4]) C2/5422: A9 FF LDA #$FF C2/5424: 8D F6 1C STA $1CF6 (set Morph supply to maximum) C2/5427: 80 0B BRA $5434 (by nulling Morph command in menu, we'll stop Terra from Morphing again and from Reverting?) (Magic and X-Magic menu entry) (Blank out Magic/X-Magic menu if no spells are known and no Esper is equipped) C2/5429: A5 F6 LDA $F6 (# of spells learnt) C2/542B: D0 18 BNE $5445 (if some are, branch and set a flag) C2/542D: A5 F7 LDA $F7 (index of Esper equipped. this value starts with 0 for Ramuh, and the order matches the Espers' order in the spell list. FFh means nothing's equipped.) C2/542F: 1A INC C2/5430: D0 13 BNE $5445 (branch if an Esper equipped) C2/5432: D0 04 BNE $5438 (Dance and Leap jump here. obviously, this branch is never taken if we called this function for Magic or X-Magic.) C2/5434: A9 FF LDA #$FF C2/5436: 83 03 STA $03,S (replace current command with empty) C2/5438: 60 RTS (Dance menu entry) C2/5439: AD 4C 1D LDA $1D4C (bitfield of known Dances) C2/543C: 80 F4 BRA $5432 (if none are, menu entry will be nulled after branch) (Leap menu entry) C2/543E: AD E4 11 LDA $11E4 C2/5441: 89 02 BIT #$02 (is Leap available?) C2/5443: 80 ED BRA $5432 (if it's not, menu entry will be nulled after branch) (Lore menu entry) C2/5445: A9 01 LDA #$01 C2/5447: 04 F8 TSB $F8 (this will stop character's Current MP and Max MP from getting zeroed in calling function. Lore always does this, whereas Magic and X-Magic have conditions.. Also note that Lore never checks whether the menu command should be available, as Strago knows 3 Lores at startup.) C2/5449: 60 RTS (Data - addressed by index of character onscreen -- 0, 2, 4, or 6) (Points to each of their menus, which are 4 entries, 3 bytes per entry.) C2/544A: 2E 20 C2/544C: 3A 20 C2/544E: 46 20 C2/5450: 52 20 (Data - commands that can be replaced with other commands thanks to Relics) C2/5452: 05 (Steal) C2/5453: 0F (Slot) C2/5454: 0D (Sketch) C2/5455: 02 (Magic) C2/5456: 00 (Fight) (Data - commands that can replace above commands due to Relics) C2/5457: 06 (Capture) C2/5458: 18 (GP Rain) C2/5459: 0E (Control) C2/545A: 17 (X-Magic) C2/545B: 16 (Jump) (Pointers - functions to remove commands from in-battle menu, or to make miscellaneous adjustments) C2/545C: 0B 54 (Morph) C2/545E: 3E 54 (Leap) C2/5460: 39 54 (Dance) C2/5462: 29 54 (Magic) C2/5464: 29 54 (X-Magic) C2/5466: 45 54 (Lore) (Data - commands that can be removed from menu in some circumstances, or otherwise need special functions.) C2/5468: 03 (Morph) C2/5469: 11 (Leap) C2/546A: 13 (Dance) C2/546B: 02 (Magic) C2/546C: 17 (X-Magic) C2/546D: 0C (Lore) (Construct in-battle Item menu, equipment sub-menus, and possessed Tools bitfield, based off of equipped and possessed items.) C2/546E: 08 PHP C2/546F: C2 30 REP #$30 (Set 16-bit Accumulator, 16-bit X and Y) C2/5471: A0 AD 2B LDY #$2BAD (start pointing to the last byte of the 2nd equipment menu hand slot of the 4th character. C2/54CD uses MVN, so we'll be counting backwards until reaching $2686, the first Item menu slot.) C2/5474: A9 01 00 LDA #$0001 C2/5477: 8D 75 2E STA $2E75 C2/547A: A2 06 00 LDX #$0006 C2/547D: 5A PHY C2/547E: BC 10 30 LDY $3010,X (get offset to character info block) C2/5481: B9 20 16 LDA $1620,Y (get 2nd Arm equipment) C2/5484: 7A PLY C2/5485: 20 CD 54 JSR $54CD (Copy info of item held in A to a 5-byte buffer, spanning $2E72 - $2E76. Then copy buffer to our current menu position.) C2/5488: CA DEX C2/5489: CA DEX C2/548A: 10 F1 BPL $547D (iterate for all 4 characters) C2/548C: A2 06 00 LDX #$0006 C2/548F: 5A PHY C2/5490: BC 10 30 LDY $3010,X (get offset to character info block) C2/5493: B9 1F 16 LDA $161F,Y (get 1st Arm equipment) C2/5496: 7A PLY C2/5497: 20 CD 54 JSR $54CD (Copy info of item held in A to a 5-byte buffer, spanning $2E72 - $2E76. Then copy buffer to our current menu position.) C2/549A: CA DEX C2/549B: CA DEX C2/549C: 10 F1 BPL $548F (iterate for all 4 characters) C2/549E: A2 FF 00 LDX #$00FF C2/54A1: BD 69 19 LDA $1969,X (get item quantity) C2/54A4: 8D 75 2E STA $2E75 C2/54A7: BD 69 18 LDA $1869,X (get item) C2/54AA: 20 CD 54 JSR $54CD (Copy info of item held in A to a 5-byte buffer, spanning $2E72 - $2E76. Then copy buffer to our current menu position.) C2/54AD: CA DEX C2/54AE: 10 F1 BPL $54A1 (loop for all 256 items) C2/54B0: E2 30 SEP #$30 (Set 8-bit Accumulator, 8-bit X and Y) C2/54B2: 7B TDC C2/54B3: A8 TAY C2/54B4: B9 69 18 LDA $1869,Y (get item in first slot) C2/54B7: C9 A3 CMP #$A3 C2/54B9: 90 0D BCC $54C8 (if it's < 163 [NoiseBlaster], branch) C2/54BB: E9 A3 SBC #$A3 (get a Tool index, where NoiseBlaster = 0, etc) C2/54BD: C9 08 CMP #$08 C2/54BF: B0 07 BCS $54C8 (if it's >= 171 [iow, not a tool], branch) C2/54C1: AA TAX C2/54C2: 20 57 1E JSR $1E57 (Sets bit #X in A) C2/54C5: 0C 9B 3A TSB $3A9B (Set bit N for Tool N) C2/54C8: C8 INY C2/54C9: D0 E9 BNE $54B4 (loop for all 256 item slots) C2/54CB: 28 PLP C2/54CC: 60 RTS (Copy info of item held in A to a 5-byte buffer, spanning $2E72 - $2E76. Then copy buffer to a range whose end address is indicated by Y.) C2/54CD: DA PHX C2/54CE: 20 DC 54 JSR $54DC C2/54D1: A2 76 2E LDX #$2E76 C2/54D4: A9 04 00 LDA #$0004 C2/54D7: 44 7E 7E MVP $7E,$7E C2/54DA: FA PLX C2/54DB: 60 RTS (Copy info of item held in A to a 5-byte buffer, spanning $2E72 - $2E76. Callers set $2E75 quantity themselves.) C2/54DC: DA PHX C2/54DD: 08 PHP C2/54DE: C2 10 REP #$10 (Set 16-bit X and Y) C2/54E0: E2 20 SEP #$20 (set 8-bit Accumulator) C2/54E2: 48 PHA C2/54E3: A9 80 LDA #$80 C2/54E5: 8D 73 2E STA $2E73 (assume item is unusable/unselectable (?) in battle) C2/54E8: A9 FF LDA #$FF C2/54EA: 8D 76 2E STA $2E76 (assume item can't be equipped by any onscreen characters) C2/54ED: 68 PLA C2/54EE: 8D 72 2E STA $2E72 (save the Item #) C2/54F1: C9 FF CMP #$FF (is it item #255, aka Empty?) C2/54F3: F0 51 BEQ $5546 (if so, Exit function) C2/54F5: EB XBA C2/54F6: A9 1E LDA #$1E C2/54F8: 20 81 47 JSR $4781 (Multiply by 30, size of item block) (JSR $2B63?) C2/54FB: AA TAX C2/54FC: BF 0E 50 D8 LDA $D8500E,X (Get Item targeting) C2/5500: 8D 74 2E STA $2E74 C2/5503: BF 00 50 D8 LDA $D85000,X (Get Item type) ( Item Type: 00: Tool 04: Hat | 10: Can be thrown 01: Weapon 05: Relic | 20: Usable as an item in battle 02: Armor 06: Item | 40: Usable on the field (Items only) 03: Shield ) C2/5507: 48 PHA C2/5508: 48 PHA C2/5509: 0A ASL C2/550A: 0A ASL (item type * 4) C2/550B: 29 80 AND #$80 (isolate whether Usable as item in battle) C2/550D: 1C 73 2E TRB $2E73 (clear corresponding bit) C2/5510: 68 PLA (get unshifted item type) C2/5511: 0A ASL C2/5512: 29 20 AND #$20 (isolate can be thrown) C2/5514: 0C 73 2E TSB $2E73 (set corresponding bit) C2/5517: 7B TDC C2/5518: 68 PLA (get unshifted item type) C2/5519: 29 07 AND #$07 (isolate classification) C2/551B: DA PHX C2/551C: AA TAX C2/551D: BF 49 55 C2 LDA $C25549,X (get a value indexed by item type) C2/5521: FA PLX C2/5522: 0A ASL (multiply by 2) C2/5523: 0C 73 2E TSB $2E73 (turn on corresponding bits) C2/5526: B0 1E BCS $5546 (if top bit was set, branch to end of function. only Weapon, Shield and Item classifications have it unset.) (maybe this controls whether an Item is selectable under a given character's Item menu?) (!? why should items of Classification Item ever reach here?! ) C2/5528: C2 21 REP #$21 (Set 16-bit Accumulator, clear carry) C2/552A: 64 EE STZ $EE C2/552C: BF 01 50 D8 LDA $D85001,X (Get Item's equippable characters) C2/5530: A2 06 00 LDX #$0006 C2/5533: 3C 20 3A BIT $3A20,X ($3A20,X has bit Z set, where Z is the actual Character # of the current onscreen character indexed by X. don't think $3A20 is defined for characters >= 0Eh) C2/5536: D0 01 BNE $5539 (branch if character can equip the item) C2/5538: 38 SEC (the current onscreen character can't equip the item) C2/5539: 26 EE ROL $EE C2/553B: CA DEX C2/553C: CA DEX C2/553D: 10 F4 BPL $5533 (loop for all 4 onscreen characters) C2/553F: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/5541: A5 EE LDA $EE C2/5543: 8D 76 2E STA $2E76 (so $2E76 should look like: Bit 0 = 1, if onscreen character 0 can't equip item Bit 1 = 1, if onscreen character 1 can't equip item Bit 2 = 1, if onscreen character 2 can't equip item Bit 3 = 1, if onscreen character 3 can't equip item ) C2/5546: 28 PLP C2/5547: FA PLX C2/5548: 60 RTS (Data) C2/5549: A0 (Tool) C2/554A: 08 (Weapon) C2/554B: 80 (Armor) C2/554C: 04 (Shield) C2/554D: 80 (Hat) C2/554E: 80 (Relic) C2/554F: 00 (Item) C2/5550: 00 (extra?) (Generate Lore menus based on known Lores, and generate Magic menus based on spells known by ANY character. C2/568D will eliminate unknown spells and modify costs as needed, on a per character basis.) C2/5551: 08 PHP C2/5552: A2 1A LDX #$1A C2/5554: 9E BA 30 STZ $30BA,X (set "position of spell" for every Esper to 0, because the 1-entry Esper menu is always at Position 0, just before the Magic menu.) C2/5557: CA DEX C2/5558: 10 FA BPL $5554 (iterate for all 27 Espers) C2/555A: A9 FF LDA #$FF C2/555C: A2 35 LDX #$35 C2/555E: 9D A0 11 STA $11A0,X (null out a temporary list) C2/5561: CA DEX C2/5562: 10 FA BPL $555E (which has 54 entries) C2/5564: A0 17 LDY #$17 (there are 24 possible known Lores) C2/5566: A2 02 LDX #$02 C2/5568: 7B TDC C2/5569: 38 SEC C2/556A: 6A ROR C2/556B: 90 02 BCC $556F (have we looped a multiple of 8 times yet?) C2/556D: 6A ROR C2/556E: CA DEX (if we're on our 9th/17th, set Bit 7 and repeat the process again.) C2/556F: 3C 29 1D BIT $1D29,X (is current Lore known?) C2/5572: F0 10 BEQ $5584 (branch if not) C2/5574: EE 87 3A INC $3A87 (increment number of known Lores) C2/5577: 48 PHA C2/5578: 98 TYA (A = Lore ID) C2/5579: 69 37 ADC #$37 (turn it into a position relative to Esper menu, which immediately precedes the Magic menu.) C2/557B: 99 0F 31 STA $310F,Y (save to "list of positions of each lore") C2/557E: 69 54 ADC #$54 (so now we've converted our 0-23 Lore ID into a raw spell ID, as Condemned [8Bh] is the first Lore.) C2/5580: 99 6A 30 STA $306A,Y (save spell ID to "list of known Lores") C2/5583: 68 PLA C2/5584: 88 DEY C2/5585: 10 E3 BPL $556A (iterate 24 times, going through the Lores in reverse order) C2/5587: A2 06 LDX #$06 C2/5589: BD D8 3E LDA $3ED8,X (get current character) C2/558C: C9 0C CMP #$0C C2/558E: B0 1E BCS $55AE (branch if it's Gogo or Umaro or temporary chars) C2/5590: EB XBA C2/5591: A9 36 LDA #$36 C2/5593: 20 81 47 JSR $4781 (16-bit A = 54 * character ID) C2/5596: C2 21 REP #$21 C2/5598: 69 6E 1A ADC #$1A6E C2/559B: F0 STA $F0 (save address to list of spells this character knows and doesn't know) C2/559D: E2 20 SEP #$20 C2/559F: A0 35 LDY #$35 C2/55A1: B1 F0 LDA ($F0),Y (what % of spell is known) C2/55A3: C9 FF CMP #$FF (does this character know the current spell?) C2/55A5: D0 04 BNE $55AB (branch if not) C2/55A7: 98 TYA C2/55A8: 99 34 30 STA $3034,Y (if they do, set this entry in our "spells known by any character" list to the spell ID/position) (can be seen as a "list of positions by spell ID" or a "list of spell IDs by position". C2/55BA, 55DA, and 55DB treat it as former. C2/55F0 loop will transform it to latter.) C2/55AB: 88 DEY (go to next spell) C2/55AC: 10 F3 BPL $55A1 (iterate 54 times, through this list of character's known/unknown spells) C2/55AE: CA DEX C2/55AF: CA DEX C2/55B0: 10 D7 BPL $5589 (loop for all 4 characters in party) C2/55B2: AD 54 1D LDA $1D54 (info from Config screen) (Bit 7 = Controller: 0 = Single, 1 = Multiple Bit 6 = ??? Bits 3-5 = Window Color adjustment cursor: 000b = Font, 001b = 1st Window component, 010b = 2nd Window component, 011b = 3rd ' ' , 100b = 4th ' ' , 101b = 5th ' ' , 110b = 6th ' ' , 111b = 6th ' ' Bits 0-2 = Magic Order: 000b = Healing, Attack, Effect (HAE) , 001b = HEA , 010b = AEH, 011b = AHE , 100b = EHA , 101b = EAH ) C2/55B5: 29 07 AND #$07 (isolate Magic Order) C2/55B7: AA TAX C2/55B8: A0 35 LDY #$35 C2/55BA: B9 34 30 LDA $3034,Y (get original zero-based position of spell) C2/55BD: C9 18 CMP #$18 (compare to 24. if it's 0-23, it's Attack magic [Black].) C2/55BF: B0 06 BCS $55C7 (branch if it's 24 or higher) C2/55C1: 7F 4B 57 C2 ADC $C2574B,X (add spell position to amount to adjust Attack spells' positioning based on current Magic Order) C2/55C5: 80 12 BRA $55D9 C2/55C7: C9 2D CMP #$2D (compare to 45. if it's 24-44, it's Effect magic [Gray].) C2/55C9: B0 06 BCS $55D1 (branch if it's 45 or higher) C2/55CB: 7F 51 57 C2 ADC $C25751,X (add spell position to amount to adjust Effect spells' positioning based on current Magic Order) C2/55CF: 80 08 BRA $55D9 C2/55D1: C9 36 CMP #$36 (compare to 54. if it's 45-53, it's Healing magic [White].) C2/55D3: B0 0B BCS $55E0 (branch if it's 54 or higher, which means it's not learned, or not a Magic spell at all.) C2/55D5: 7F 57 57 C2 ADC $C25757,X (add spell position to amount to adjust Healing spells' positioning based on current Magic Order) C2/55D9: DA PHX (preserve Magic Order value) C2/55DA: AA TAX (X = position of spell in menu) C2/55DB: 98 TYA (A = spell ID) C2/55DC: 9D A0 11 STA $11A0,X (save to our new, reordered list of "spells known by any character") C2/55DF: FA PLX (get Magic Order) C2/55E0: 88 DEY C2/55E1: 10 D7 BPL $55BA (loop for all 54 spell IDs) C2/55E3: A9 FF LDA #$FF C2/55E5: A2 35 LDX #$35 C2/55E7: 9D 34 30 STA $3034,X C2/55EA: CA DEX C2/55EB: 10 FA BPL $55E7 (null out the Magic portion of our other temporary list) C2/55ED: 7B TDC C2/55EE: AA TAX C2/55EF: A8 TAY C2/55F0: BD A0 11 LDA $11A0,X C2/55F3: 1A INC C2/55F4: D0 0C BNE $5602 C2/55F6: BD A1 11 LDA $11A1,X C2/55F9: 1A INC C2/55FA: D0 06 BNE $5602 C2/55FC: BD A2 11 LDA $11A2,X C2/55FF: 1A INC C2/5600: F0 15 BEQ $5617 (if these three consecutive entries in spell list were all null, skip copying all three to other list. but if any have a spell, then copy all three. this was designed to skip one row at a time in FF6j so a given spell would always stay in the same column, but the list was changed to 2 columns in FF3us without this code being adjusted, so the list winds up hard to follow.) C2/5602: BD A0 11 LDA $11A0,X C2/5605: 99 34 30 STA $3034,Y (copy 1st spell ID from one list to another) C2/5608: BD A1 11 LDA $11A1,X C2/560B: 99 35 30 STA $3035,Y (copy 2nd spell ID from one list to another) C2/560E: BD A2 11 LDA $11A2,X C2/5611: 99 36 30 STA $3036,Y (copy 3rd spell ID from one list to another) C2/5614: C8 INY C2/5615: C8 INY C2/5616: C8 INY C2/5617: E8 INX C2/5618: E8 INX C2/5619: E8 INX C2/561A: E0 36 CPX #$36 C2/561C: 90 D2 BCC $55F0 (iterate 18 times, or cover 54 spell entries) C2/561E: A2 35 LDX #$35 C2/5620: BD 34 30 LDA $3034,X (get entry from our reordered, condensed list of "spells known by any character") C2/5623: C9 FF CMP #$FF C2/5625: F0 06 BEQ $562D (branch if null) C2/5627: A8 TAY (Y = spell ID) C2/5628: 8A TXA (A = position in list) C2/5629: 1A INC (now make it 1-based, because position 0 will correspond to an equipped Esper.) C2/562A: 99 84 30 STA $3084,Y (save to "list of positions of each spell") C2/562D: CA DEX C2/562E: 10 F0 BPL $5620 (iterate 54 times) C2/5630: C2 10 REP #$10 C2/5632: A2 4D 00 LDX #$004D (77. 78 = 54 Magic spells + 24 Lores.) C2/5635: 7B TDC C2/5636: BD 34 30 LDA $3034,X (get spell ID) C2/5639: C9 FF CMP #$FF C2/563B: F0 4B BEQ $5688 (branch to next slot if null) C2/563D: 48 PHA (save spell ID) C2/563E: A8 TAY C2/563F: B9 84 30 LDA $3084,Y (get position of spell relative to Esper menu) C2/5642: C2 20 REP #$20 C2/5644: 0A ASL C2/5645: 0A ASL (there's 4 bytes per spell entry) C2/5646: E2 20 SEP #$20 C2/5648: A8 TAY (offset relative to Esper menu) C2/5649: A3 01 LDA $01,S (get spell ID) C2/564B: C9 8B CMP #$8B (are we at least at Condemned, the first lore?) C2/564D: 90 02 BCC $5651 (branch if not) C2/564F: E9 8B SBC #$8B (if we are, turn it into a 0-23 Lore ID, rather than a raw spell ID) C2/5651: 99 8E 20 STA $208E,Y (output spell or Lore ID to 1st character's menu, Byte 1 of 4 for this slot) C2/5654: 99 CA 21 STA $21CA,Y (' ' 2nd character's menu) C2/5657: 99 06 23 STA $2306,Y (' ' 3rd character's menu) C2/565A: 99 42 24 STA $2442,Y (' ' 4th character's menu) C2/565D: 68 PLA (get spell ID) C2/565E: 20 23 57 JSR $5723 (from spell data, put aiming byte in bottom half of A, and MP cost in top half) C2/5661: 99 90 20 STA $2090,Y (save aiming byte in 1st character's menu, Byte 3 of 4 for this slot) C2/5664: 99 CC 21 STA $21CC,Y (' ' 2nd character's menu) C2/5667: 99 08 23 STA $2308,Y (' ' 3rd character's menu) C2/566A: 99 44 24 STA $2444,Y (' ' 4th character's menu) C2/566D: EB XBA (get MP cost) C2/566E: E0 44 00 CPX #$0044 (are we pointing at Step Mine's menu slot?) C2/5671: D0 09 BNE $567C (branch if not) C2/5673: AD 64 18 LDA $1864 (minutes portion of time played, from when main menu was last visited. or seconds remaining, if we're in a timed area.) C2/5676: C9 1E CMP #$1E (set Carry if >= 30 minutes) C2/5678: AD 63 18 LDA $1863 (hours portion of time played, from when main menu was last visited. or minutes remaining, if we're in a timed area.) C2/567B: 2A ROL (MP Cost = [hours * 2] + [minutes DIV 30] or unintended [minutes remaining * 2] + [seconds remaining DIV 30]) C2/567C: 99 91 20 STA $2091,Y (save MP cost in 1st character's menu, Byte 4 of 4 for this slot) C2/567F: 99 CD 21 STA $21CD,Y (' ' 2nd character's menu) C2/5682: 99 09 23 STA $2309,Y (' ' 3rd character's menu) C2/5685: 99 45 24 STA $2445,Y (' ' 4th character's menu) C2/5688: CA DEX C2/5689: 10 AA BPL $5635 (iterate 78 times, for all Magic and Lore menu slots) C2/568B: 28 PLP C2/568C: 60 RTS (Generate a character's Esper menu, blank out unknown spells from their Magic menu, and adjust spell and Lore MP costs based on equipped Relics.) C2/568D: DA PHX C2/568E: 08 PHP C2/568F: C2 10 REP #$10 C2/5691: BD 45 3C LDA $3C45,X C2/5694: 85 F8 STA $F8 (copy "Relic Effects 2" byte) C2/5696: 64 F6 STZ $F6 (start off assuming known Magic spell quantity of 0) C2/5698: BC 2C 30 LDY $302C,X C2/569B: 84 F2 STY $F2 (copy starting address of character's Magic menu [Esper menu, to be precise]) C2/569D: C8 INY C2/569E: C8 INY C2/569F: C8 INY C2/56A0: 84 F4 STY $F4 (save address of MP cost of first spell) C2/56A2: BC 10 30 LDY $3010,X (get offset to character info block) C2/56A5: B9 1E 16 LDA $161E,Y (get equipped Esper) C2/56A8: 85 F7 STA $F7 (save it) C2/56AA: 30 1B BMI $56C7 C2/56AC: 9D 44 33 STA $3344,X (if it's not null, save it again) C2/56AF: A4 F2 LDY $F2 C2/56B1: 99 00 00 STA $0000,Y (store Esper ID in Esper menu, which is the first slot before the Magic menu and then the Lore menu) C2/56B4: 18 CLC C2/56B5: 69 36 ADC #$36 (convert it to a raw spell ID) C2/56B7: 20 23 57 JSR $5723 (put spell aiming byte in bottom half of A, MP cost in top) C2/56BA: 99 02 00 STA $0002,Y (save aiming byte in menu data) C2/56BD: 9D 45 33 STA $3345,X C2/56C0: EB XBA (get spell MP cost) C2/56C1: 20 36 57 JSR $5736 (change it if Gold Hairpin or Economizer equipped) C2/56C4: 99 03 00 STA $0003,Y (save updated MP cost) C2/56C7: 7B TDC C2/56C8: A8 TAY (A = 0, Y = 0) C2/56C9: BD D8 3E LDA $3ED8,X C2/56CC: C9 0C CMP #$0C C2/56CE: F0 15 BEQ $56E5 (branch if the character is Gogo) C2/56D0: C8 INY C2/56D1: C8 INY (Y = 2) C2/56D2: B0 11 BCS $56E5 (branch if Umaro or a temporary character) C2/56D4: C8 INY C2/56D5: C8 INY (Y = 4) C2/56D6: EB XBA C2/56D7: A9 36 LDA #$36 C2/56D9: 20 81 47 JSR $4781 (16-bit A = character # * 54) C2/56DC: C2 21 REP #$21 (Set 16-bit A, clear Carry) C2/56DE: 69 6E 1A ADC #$1A6E (gives address of list of spells known/unknown by this character) C2/56E1: 85 F0 STA $F0 C2/56E3: E2 20 SEP #$20 (Set 8-bit A) C2/56E5: BB TYX C2/56E6: A0 38 01 LDY #$0138 (we can loop through 78 spell menu entries [each taking 4 bytes]. 54 Magic spells + 24 Lores = 78) C2/56E9: 7B TDC C2/56EA: B1 F2 LDA ($F2),Y (get spell #) C2/56EC: C9 FF CMP #$FF C2/56EE: F0 1E BEQ $570E (branch if no spell available in this menu slot) C2/56F0: C0 DC 00 CPY #$00DC (are we pointing to the first slot on the Lore menu [our 55th slot overall]?) C2/56F3: 7C 5D 57 JMP ($575D,X) (jump out of the loop.. but the other places can actually jump back into it. Square is crazy like that. :P ) C2/56F6: 88 DEY C2/56F7: 88 DEY C2/56F8: 88 DEY C2/56F9: 88 DEY C2/56FA: D0 ED BNE $56E9 (point to next menu slot, and loop) C2/56FC: 28 PLP C2/56FD: FA PLX C2/56FE: A5 F6 LDA $F6 C2/5700: 9D F8 3C STA $3CF8,X (save number of Magic spells possessed by this character) C2/5703: 60 RTS C2/5704: B0 10 BCS $5716 (branch if we're pointing to a Lore slot. otherwise, we're pointing to a Magic spell slot.) C2/5706: 5A PHY C2/5707: A8 TAY C2/5708: B1 F0 LDA ($F0),Y (what % of spell is known. FFh = fully learned.) C2/570A: 7A PLY C2/570B: 1A INC C2/570C: F0 08 BEQ $5716 (branch if character entirely knows this spell) C2/570E: 7B TDC C2/570F: 91 F4 STA ($F4),Y (save 0 as MP cost) C2/5711: 3A DEC C2/5712: 91 F2 STA ($F2),Y (save FFh [null] as spell #) C2/5714: 80 E0 BRA $56F6 (reenter our 78-slot loop) C2/5716: B0 02 BCS $571A (branch if we're pointing to a Lore slot. otherwise, we're pointing to a Magic spell slot.) C2/5718: E6 F6 INC $F6 (increment # of known Magic spells) C2/571A: B1 F4 LDA ($F4),Y (get spell's MP cost from menu) C2/571C: 20 36 57 JSR $5736 (change it if Gold Hairpin or Economizer equipped) C2/571F: 91 F4 STA ($F4),Y (save updated MP cost) C2/5721: 80 D3 BRA $56F6 (reenter our 78-slot loop) (From spell data, put MP cost in top of A, and aiming byte in bottom of A) C2/5723: DA PHX C2/5724: EB XBA C2/5725: A9 0E LDA #$0E C2/5727: 20 81 47 JSR $4781 (spell # * 14) C2/572A: AA TAX C2/572B: BF C5 6A C4 LDA $C46AC5,X (read MP cost from spell data) C2/572F: EB XBA C2/5730: BF C0 6A C4 LDA $C46AC0,X (read aiming byte from spell data) C2/5734: FA PLX C2/5735: 60 RTS (Adjust MP cost for Gold Hairpin and/or Economizer. Obviously, the latter supercedes the former.) C2/5736: EB XBA (put MP cost in top of A) C2/5737: A5 F8 LDA $F8 (read our copy of "Relic Effects 2" byte) C2/5739: 89 20 BIT #$20 C2/573B: F0 04 BEQ $5741 (branch if no Gold Hairpin) C2/573D: EB XBA (get MP cost) C2/573E: 1A INC C2/573F: 4A LSR (MP cost = [MP cost + 1] / 2) C2/5740: EB XBA (look at relics byte again) C2/5741: 89 40 BIT #$40 C2/5743: F0 04 BEQ $5749 (branch if no Economizer) C2/5745: EB XBA C2/5746: A9 01 LDA #$01 (MP cost = 1) C2/5748: EB XBA C2/5749: EB XBA (return MP cost in bottom of A) C2/574A: 60 RTS (Data - amount to shift menu position of certain Magic spells, depending on the "Magic Order" chosen in Config menu. These values are signed, so anything 80h and above means to subtract, i.e. move the spell backwards.) (For Spells 0 - 23 : Attack, Black) C2/574B: 09 (Healing, Attack, Effect (HAE)) C2/574C: 1E (Healing, Effect, Attack (HEA)) C2/574D: 00 (Attack, Effect, Healing (AEH)) C2/574E: 00 (Attack, Healing, Effect (AHE)) C2/574F: 1E (Effect, Healing, Attack (EHA)) C2/5750: 15 (Effect, Attack, Healing (EAH)) (For Spells 24 - 44 : Effect, Gray) C2/5751: 09 (Healing, Attack, Effect (HAE)) C2/5752: F1 (Healing, Effect, Attack (HEA)) C2/5753: 00 (Attack, Effect, Healing (AEH)) C2/5754: 09 (Attack, Healing, Effect (AHE)) C2/5755: E8 (Effect, Healing, Attack (EHA)) C2/5756: E8 (Effect, Attack, Healing (EAH)) (For Spells 45 - 53 : White, Healing) C2/5757: D3 (Healing, Attack, Effect (HAE)) C2/5758: D3 (Healing, Effect, Attack (HEA)) C2/5759: 00 (Attack, Effect, Healing (AEH)) C2/575A: EB (Attack, Healing, Effect (AHE)) C2/575B: E8 (Effect, Healing, Attack (EHA)) C2/575C: 00 (Effect, Attack, Healing (EAH)) (Pointer table) C2/575D: 16 57 (Gogo) C2/575F: 0E 57 (Umaro or temporary character) C2/5761: 04 57 (normal character, ID 00h - 0Bh) (Make entries on Esper, Magic, and Lore menus available and lit up or unavailable and grayed, depending on whether: the spell is learned [or for the Esper menu, an Esper is equipped], the character has enough MP to cast the spell, the character is an Imp trying to cast a spell other than Imp) C2/5763: E0 08 CPX #$08 C2/5765: B0 42 BCS $57A9 (Exit function if monster) C2/5767: DA PHX C2/5768: 5A PHY C2/5769: 08 PHP C2/576A: BD 09 3C LDA $3C09,X (Current MP, top byte) C2/576D: D0 06 BNE $5775 (branch if MP >= 256) C2/576F: BD 08 3C LDA $3C08,X (Current MP, bottom byte) C2/5772: 1A INC C2/5773: D0 02 BNE $5777 (if MP < 255, branch and save it) C2/5775: A9 FF LDA #$FF (otherwise, set it to 255) C2/5777: 8D 4C 3A STA $3A4C (save Caster MP + 1, capped at 255.) C2/577A: BD E4 3E LDA $3EE4,X (Status byte 1) C2/577D: 0A ASL C2/577E: 0A ASL C2/577F: 85 EF STA $EF (Imp is saved in Bit 7) C2/5781: C2 10 REP #$10 (16-bit X and Y registers) C2/5783: BD 18 30 LDA $3018,X (Holds $01 for character 1, $02 for character 2, $04 for character 3, $08 for character 4 C2/5786: BC 2C 30 LDY $302C,X (get starting address of character's Magic menu?) C2/5789: BB TYX C2/578A: 38 SEC C2/578B: 2C 2E 3F BIT $3F2E (bit is set for characters who don't have Espers equipped, or have already used Esper this battle) C2/578E: D0 03 BNE $5793 (if no Esper equipped or already used, branch with Carry Set) C2/5790: 20 AA 57 JSR $57AA (Set Carry if spell's unavailable due to Impage or insufficient MP. Clear Carry otherwise.) C2/5793: 7E 01 00 ROR $0001,X (put Carry into bit 7 of 2nd byte of menu data. if set, it makes spell unavailable on menu.) C2/5796: A0 4D 00 LDY #$004D C2/5799: E8 INX C2/579A: E8 INX C2/579B: E8 INX C2/579C: E8 INX (point to next spell in menu) C2/579D: 20 AA 57 JSR $57AA (Set Carry if spell's unavailable due to absence, Impage, or insufficient MP. Clear Carry otherwise.) C2/57A0: 7E 01 00 ROR $0001,X (put Carry into bit 7 of 2nd byte of menu data. if set, it makes spell unavailable on menu.) C2/57A3: 88 DEY C2/57A4: 10 F3 BPL $5799 (iterate 78 times: 54 spells plus 24 lores) C2/57A6: 28 PLP C2/57A7: 7A PLY C2/57A8: FA PLX C2/57A9: 60 RTS (Set Carry if spell should be disabled due to unavailability, or because caster is an Imp and the spell isn't Imp. If none of these factors disable the spell, check the MP cost.) C2/57AA: BD 00 00 LDA $0000,X (get spell # from menu) C2/57AD: 30 0A BMI $57B9 (branch if undefined) C2/57AF: EB XBA C2/57B0: A5 EF LDA $EF C2/57B2: 10 07 BPL $57BB (branch if character not an Imp) C2/57B4: EB XBA C2/57B5: C9 23 CMP #$23 C2/57B7: F0 02 BEQ $57BB (branch if spell is Imp) C2/57B9: 38 SEC (spell will be unavailable) C2/57BA: 60 RTS (Set Carry if caster lacks MP to cast spell. Clear it if they have sufficient MP.) C2/57BB: BD 03 00 LDA $0003,X (get spell's MP cost from menu data) C2/57BE: CD 4C 3A CMP $3A4C (compare to Caster MP + 1, capped at 255) C2/57C1: 60 RTS (Copies targets in $B8-$B9 to $A2-$A3 and $A4-$A5. Sets up attack animation, including making all jump but the last in a Dragon Horn sequence send the attacker airborne again. Sets up "Attacking Opposition" bit. Randomizes targets for all jumps but the first with Dragon Horn.) C2/57C2: 08 PHP C2/57C3: E2 30 SEP #$30 (set 8-bit A, X, Y) C2/57C5: 64 A0 STZ $A0 C2/57C7: 8A TXA (get attacker index) C2/57C8: 4A LSR (divide by 2. now we have 0, 1, 2, and 3 for characters, and 4, 5, 6, 7, 8, 9 for monsters) C2/57C9: 85 A1 STA $A1 (save attacker for animation purposes) C2/57CB: C9 04 CMP #$04 C2/57CD: 90 02 BCC $57D1 (branch if character is attacker) C2/57CF: 66 A0 ROR $A0 (Bit 7 is set if monster attacker) C2/57D1: A5 B9 LDA $B9 (get monster targets) C2/57D3: 85 A3 STA $A3 C2/57D5: 85 A5 STA $A5 C2/57D7: A5 B8 LDA $B8 (get character targets) C2/57D9: 85 A2 STA $A2 C2/57DB: 85 A4 STA $A4 C2/57DD: D0 04 BNE $57E3 (branch if there are character targets) C2/57DF: A9 40 LDA #$40 C2/57E1: 04 A0 TSB $A0 (Bit 6 set if there are no character targets) C2/57E3: A5 A0 LDA $A0 C2/57E5: 0A ASL C2/57E6: 90 02 BCC $57EA (branch if not monster attacker) C2/57E8: 49 80 EOR #$80 (flip "no character targets" bit) (last two instructions can be replaced by "EOR $A0") C2/57EA: 10 04 BPL $57F0 (next two lines are only executed if: - character attacker and no character (i.e. just monster) targets OR - monster attacker and character targets) C2/57EC: A9 02 LDA #$02 C2/57EE: 04 BA TSB $BA (Set "attacking opposition" bit. Used for criticals and reflections.) C2/57F0: A9 10 LDA #$10 C2/57F2: 14 B0 TRB $B0 (clear bit 4, which is set at beginning of turn.) C2/57F4: D0 02 BNE $57F8 (branch if wasn't already clear) C2/57F6: 04 A0 TSB $A0 (if it was, set Bit 4 in another variable. it apparently prevents characters from stepping forward and getting circular or triangular pattern around them when casting Magic or Lores, an action we don't want to happen more than once per turn.) C2/57F8: AD 70 3A LDA $3A70 (# of strikes left for Dragon Horn / Offering / Quadra Slam) C2/57FB: F0 0D BEQ $580A (if no more after the current one, exit) C2/57FD: AD 8E 3A LDA $3A8E (set to FFh by Dragon Horn's "jump continuously" attribute; should be zero otherwise) C2/5800: F0 08 BEQ $580A (exit if zero) C2/5802: A9 02 LDA #$02 C2/5804: 04 A0 TSB $A0 (animation to send jumper bouncing skyward again) C2/5806: A9 60 LDA #$60 C2/5808: 04 BA TSB $BA (set Can Beat on Corpses if no Valid Targets Left and Randomize Target. the latter explains why all jumps after the first one are random. these two properties will be applied to the *next* strike.) C2/580A: 28 PLP C2/580B: 60 RTS (Construct Dance and Rage menus, and get number of known Blitzes and highest known SwdTech index) C2/580C: 7B TDC (16-bit A = 0) C2/580D: AD F7 1C LDA $1CF7 (Known SwdTechs) C2/5810: 20 0E 52 JSR $520E (X = # of known SwdTechs) C2/5813: CA DEX C2/5814: 8E 20 20 STX $2020 (index of the highest SwdTech acquired. useful to represent it this way because SwdTechs are on a continuum.) C2/5817: 7B TDC C2/5818: AD 28 1D LDA $1D28 (Known Blitzes) C2/581B: 20 0E 52 JSR $520E (X = # of known Blitzes) C2/581E: 8E 80 3A STX $3A80 C2/5821: AD 4C 1D LDA $1D4C (Known Dances) C2/5824: 85 EE STA $EE C2/5826: A2 07 LDX #$07 (start looking at 8th dance) C2/5828: 06 EE ASL $EE (Carry will be set if current dance is known) C2/582A: A9 FF LDA #$FF (default to storing null in Dance menu?) C2/582C: 90 01 BCC $582F (branch if dance unknown) C2/582E: 8A TXA (if current dance is known, store its number in the menu instead.) C2/582F: 9D 7E 26 STA $267E,X C2/5832: CA DEX C2/5833: 10 F3 BPL $5828 (loop for all 8 Dances) C2/5835: C2 20 REP #$20 (Set 16-bit Accumulator) C2/5837: A9 7E 25 LDA #$257E C2/583A: 8F 81 21 00 STA $002181 (save Offset to write to in WRAM) C2/583E: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/5840: 7B TDC C2/5841: A8 TAY C2/5842: AA TAX (Clear A, Y, X) C2/5843: 8F 83 21 00 STA $002183 (will write to Bank 7Eh in WRAM) C2/5847: 89 07 BIT #$07 C2/5849: D0 08 BNE $5853 (if none of bottom 3 bits set, we're on enemy # 0, 8, 16, etc. in which case we need to read a new rage byte) C2/584B: 48 PHA C2/584C: BD 2C 1D LDA $1D2C,X (load current rage byte - 32 bytes total, 8 rages per byte) C2/584F: 85 EE STA $EE C2/5851: E8 INX (point to next rage byte) C2/5852: 68 PLA C2/5853: 46 EE LSR $EE (get bottom bit of current rage byte) C2/5855: 90 07 BCC $585E (if bit wasn't set, rage wasn't found, so don't display it) C2/5857: EE 9A 3A INC $3A9A (# of rages possessed. used to randomly pick a rage in situations like Muddle) C2/585A: 8F 80 21 00 STA $002180 (store rage in menu) C2/585E: 1A INC (advance to next enemy #) C2/585F: C9 FF CMP #$FF C2/5861: D0 E4 BNE $5847 (loop for all eligible enemies, 0 to 254. we don't loop a 256th time for Pugs, which is inaccessible regardless, because that would overflow our $3A9A counter) C2/5863: 60 RTS Checks for statuses Doesn't set carry if any are set Carry clear = one or more set Carry set = none set C2/5864: C2 21 REP #$21 (Set 16-bit Accumulator, clear Carry) C2/5866: B9 E4 3E LDA $3EE4,Y (Target status byte 1 & 2) C2/5869: 23 05 AND $05,S C2/586B: D0 08 BNE $5875 C2/586D: B9 F8 3E LDA $3EF8,Y (Target status byte 3 & 4) C2/5870: 23 03 AND $03,S C2/5872: D0 01 BNE $5875 C2/5874: 38 SEC C2/5875: A3 01 LDA $01,S C2/5877: 83 05 STA $05,S C2/5879: 68 PLA C2/587A: 68 PLA C2/587B: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/587D: 60 RTS (Big ass targeting function. It's not used to choose targets with the cursor, but it can choose targets randomly (for all sorts of reasons), or refine ones previously chosen [e.g. with the cursor]. This routine's so important, it uses several helper functions.) C2/587E: DA PHX C2/587F: 5A PHY C2/5880: 08 PHP C2/5881: E2 30 SEP #$30 (set 8-bit A, X and Y) C2/5883: A5 BB LDA $BB (targeting byte) C2/5885: C9 02 CMP #$02 (does the aiming consist of JUST "one side only?" if so, that means we can't do spread-aim, start the cursor on the enemy, or move it) C2/5887: D0 0C BNE $5895 (if not, branch) C2/5889: BD 18 30 LDA $3018,X C2/588C: 85 B8 STA $B8 C2/588E: BD 19 30 LDA $3019,X C2/5891: 85 B9 STA $B9 (save attacker as lone target) C2/5893: 80 61 BRA $58F6 (then exit function) C2/5895: 20 FA 58 JSR $58FA C2/5898: A5 BA LDA $BA C2/589A: 89 40 BIT #$40 C2/589C: D0 1B BNE $58B9 (Branch if randomize targets) C2/589E: 89 08 BIT #$08 C2/58A0: D0 03 BNE $58A5 (Branch if Can target dead/hidden entities) C2/58A2: 20 4D 5A JSR $5A4D (Remove dead and hidden targets) C2/58A5: A5 B8 LDA $B8 C2/58A7: 05 B9 ORA $B9 C2/58A9: F0 08 BEQ $58B3 (Branch if no targets) C2/58AB: A5 BB LDA $BB (targeting byte) C2/58AD: 89 2C BIT #$2C (is "manual party select", "autoselect one party", or "autoselect both parties" set? in other words, we're checking to see if the spell can be spread) C2/58AF: F0 3C BEQ $58ED (if not, branch) C2/58B1: 80 43 BRA $58F6 (if so, exit function) (So if there were multiple targets and the targeting byte allows that, keep our multiple targets. If there were somehow multiple targets despite the targeting byte [I can't think of a cause for this], just choose a random one at $58ED. If there was only a single target, the branch to either $58ED or $58F6 will retain it.) C2/58B3: A5 BA LDA $BA C2/58B5: 89 04 BIT #$04 (Don't retarget if target dead/invalid?) C2/58B7: D0 0F BNE $58C8 (if we don't retarget, branch) C2/58B9: 20 37 59 JSR $5937 (Randomize Targets jumps here) C2/58BC: 20 FA 58 JSR $58FA C2/58BF: A5 BA LDA $BA C2/58C1: 89 08 BIT #$08 C2/58C3: D0 03 BNE $58C8 (Branch if can target dead/hidden entities) C2/58C5: 20 4D 5A JSR $5A4D (Remove dead and hidden targets) C2/58C8: 20 AC 59 JSR $59AC (refine targets for reflection [sometimes], OR based on encounter formation) C2/58CB: A5 BA LDA $BA C2/58CD: 89 20 BIT #$20 C2/58CF: F0 0D BEQ $58DE (branch if attack doesn't allow us to beat on corpses) C2/58D1: C2 20 REP #$20 (Set 16-bit Accumulator) C2/58D3: A5 B8 LDA $B8 C2/58D5: D0 05 BNE $58DC (branch if there are some targets set) C2/58D7: AD 4E 3A LDA $3A4E C2/58DA: 85 B8 STA $B8 (if there are no targets left, copy them from a "backup already-hit targets" word. this will let Offering and Genji Glove and friends beat on corpses once all targets have been killed during the attacker's turn.) C2/58DC: E2 20 SEP #$20 (Set 8-bit Accumulator) (note: if we're at this point, we never did the BIT #$2C target byte check above.. and we've most likely retargeted thanks to "Randomize targets", or to there being no valid targets initially selected) C2/58DE: A5 BB LDA $BB (targeting byte) C2/58E0: 89 0C BIT #$0C (is "autoselect one party" or "autoselect both parties" set? in another words, we're checking for some auto-spread aim) C2/58E2: D0 12 BNE $58F6 (if so, exit function) C2/58E4: 89 20 BIT #$20 (is "manual party select" set? i.e. can the spell be spread via L/R button?) C2/58E6: F0 05 BEQ $58ED (if not, branch) C2/58E8: 20 53 4B JSR $4B53 (if so, do random coinflip) C2/58EB: B0 09 BCS $58F6 (50% of the time, we'll pretend it was spread, so exit) (50% of the time, we'll pretend it kept one target) C2/58ED: C2 20 REP #$20 (Set 16-bit Accumulator) C2/58EF: A5 B8 LDA $B8 C2/58F1: 20 2A 52 JSR $522A (Randomly picks a bit set in A) C2/58F4: 85 B8 STA $B8 (so we pick one random target) C2/58F6: 28 PLP C2/58F7: 7A PLY C2/58F8: FA PLX C2/58F9: 60 RTS C2/58FA: 08 PHP C2/58FB: A9 02 LDA #$02 C2/58FD: 1C 46 3A TRB $3A46 (clear flag) C2/5900: D0 13 BNE $5915 (if it was set [as is the case with the Joker Dooms and the Tentacles' Seize drain], branch and don't remove any targets) C2/5902: 20 17 59 JSR $5917 C2/5905: A5 BA LDA $BA C2/5907: 10 02 BPL $590B (branch if not abort on characters) C2/5909: 64 B8 STZ $B8 (clear character targets) C2/590B: 4A LSR C2/590C: 90 07 BCC $5915 (branch if not "Exclude Attacker from targets") C2/590E: C2 20 REP #$20 (set 16-bit accumulator) C2/5910: BD 18 30 LDA $3018,X C2/5913: 14 B8 TRB $B8 (clear caster from targets) C2/5915: 28 PLP C2/5916: 60 RTS C2/5917: 08 PHP C2/5918: AD 46 2F LDA $2F46 (untargetable monsters [clear], due to use of script Command FB operation 7, or from formation special event.) C2/591B: EB XBA C2/591C: AD 03 34 LDA $3403 (Seized characters: bit clear for those who are, set for those who aren't.) C2/591F: C2 20 REP #$20 C2/5921: 2D 78 3A AND $3A78 (only include present characters and enemies?) C2/5924: 2D 08 34 AND $3408 C2/5927: 25 B8 AND $B8 (only include initial targets) C2/5929: 85 B8 STA $B8 (save updated targets) C2/592B: AD 1A 34 LDA $341A (check top bit of $341B) C2/592E: 10 05 BPL $5935 (branch if not set) C2/5930: AD 2C 3F LDA $3F2C (get Jumpers) C2/5933: 14 B8 TRB $B8 (remove them from targets) C2/5935: 28 PLP C2/5936: 60 RTS (Randomize Targets function. selects entire monster or character parties (or both) at a time, returned in $B8 and $B9. calling function will later refine the targeting.) (calling the character side 0 and the monster side 1, it looks like this up through C2/598A: side chosen = (monster caster) XOR (character acting as enemy caster) XOR Charmed XOR "Cursor start on opposition" XOR Muddled ) (values DURING function -- not coming in or leaving it: bit 7 of $B8 = side to target. characters = 0, monsters = 1, special/opposing characters = 1 bit 6 of $B8 = 1: make both sides eligible to target) C2/5937: 64 B9 STZ $B9 (clear enemy targets) C2/5939: 7B TDC (Accumulator = 0) C2/593A: E0 08 CPX #$08 (set Carry if caster is monster. note that "caster" can also mean "reflector", in which case a good part of this function will be skipped.) C2/593C: 6A ROR C2/593D: 85 B8 STA $B8 (Bits 0-6 = 0. Bit 7 = 1 if monster caster, 0 if character) C2/593F: A5 BA LDA $BA C2/5941: 89 10 BIT #$10 (has Reflection occurred?) C2/5943: D0 41 BNE $5986 (if so, branch, and do just the one flip of $B8's top bit.. as a reflected spell always bounces at the party opposing the reflector.) (once the spell's already hit the Wall Ring, we [generally] don't care about the reflector's status, and they're not necessarily the caster anyway.) C2/5945: BD 95 33 LDA $3395,X C2/5948: 30 06 BMI $5950 (Branch if not Charmed) C2/594A: A9 80 LDA #$80 C2/594C: 45 B8 EOR $B8 C2/594E: 85 B8 STA $B8 (toggle top bit of $B8) C2/5950: BD 18 30 LDA $3018,X C2/5953: 2C 40 3A BIT $3A40 (is caster a special type of character, namely one acting as an enemy? like Gau returning from a Veldt leap, or Shadow in the Colosseum.) C2/5956: F0 06 BEQ $595E (if not, branch) C2/5958: A9 80 LDA #$80 (if so.. here comes another toggle!) C2/595A: 45 B8 EOR $B8 C2/595C: 85 B8 STA $B8 (toggle top bit of $B8) C2/595E: A5 BB LDA $BB (targeting byte) C2/5960: 29 0C AND #$0C (isolate "Autoselect both parties" and "Autoselect one party") C2/5962: C9 04 CMP #$04 (is "autoselect both parties" the only bit of these two set?) C2/5964: D0 04 BNE $596A (if not, branch) C2/5966: A9 40 LDA #$40 C2/5968: 04 B8 TSB $B8 (make both monsters and characters targetable) C2/596A: A5 BB LDA $BB (targeting byte) C2/596C: 29 40 AND #$40 (isolate "cursor start on enemy" [read: OPPOSITION, not monster]) C2/596E: 0A ASL (put into top bit of A) C2/596F: 45 B8 EOR $B8 C2/5971: 85 B8 STA $B8 (toggle top bit yet again) C2/5973: BD E4 3E LDA $3EE4,X (Status byte 1) C2/5976: 4A LSR C2/5977: 4A LSR C2/5978: 90 04 BCC $597E (Branch if not Zombie) C2/597A: A9 40 LDA #$40 C2/597C: 04 B8 TSB $B8 (make both monsters and characters targetable) C2/597E: BD E5 3E LDA $3EE5,X (Status byte 2) C2/5981: 0A ASL C2/5982: 0A ASL C2/5983: 0A ASL C2/5984: 90 06 BCC $598C (Branch if not Muddled) C2/5986: A9 80 LDA #$80 C2/5988: 45 B8 EOR $B8 C2/598A: 85 B8 STA $B8 (toggle top bit) C2/598C: A5 B8 LDA $B8 C2/598E: 0A ASL C2/598F: 64 B8 STZ $B8 (clear character targets; monsters were cleared at start of function) C2/5991: 30 02 BMI $5995 (if target anybody bit is set, branch, as we don't care whether monsters or characters were indicated by top bit) C2/5993: 90 0B BCC $59A0 (if target monsters bit was not set, branch) C2/5995: 08 PHP (save Carry and Negative flags) C2/5996: A9 3F LDA #$3F C2/5998: 04 B9 TSB $B9 (target all monsters) C2/599A: AD 40 3A LDA $3A40 C2/599D: 04 B8 TSB $B8 (target only characters acting as enemies, like Colosseum Shadow and Gau returning from a Veldt leap) C2/599F: 28 PLP (restore Carry and Negative flags) C2/59A0: 30 02 BMI $59A4 (if target anybody bit is set, branch, as we don't care whether monsters or characters were indicated by top bit) C2/59A2: B0 07 BCS $59AB (if target monsters bit was set, exit function) C2/59A4: A9 0F LDA #$0F (mark all characters) C2/59A6: 4D 40 3A EOR $3A40 (exclude characters acting as enemies from addition) C2/59A9: 04 B8 TSB $B8 (turn on just normal characters' bits) (bits 7 and 6 | Results ----------------------------------------------------------------------- 0 0 normal characters 1 0 all monsters, special/enemy characters 0 1 all monsters, special/enemy characters + normal characters 1 1 all monsters, special/enemy characters + normal characters ) C2/59AB: 60 RTS (If a reflection has occurred AND the initial spellcast had one party aiming at another AND the reflector isn't Muddled, then there's a 50% chance the initial caster will become the sole target, provided he/she is in the party that's about to be hit by the bounce, and hasn't been excluded by Functions C2/58FA, C2/5917, or C2/5A4D. The other 50% of the time, the final target is randomly chosen by the end of function C2/587E; each member of the party opposing the reflector has the same chance of getting hit.) C2/59AC: A5 BA LDA $BA C2/59AE: 89 10 BIT #$10 C2/59B0: F0 28 BEQ $59DA (branch and deal with encounter formations if not Reflected) C2/59B2: 89 02 BIT #$02 C2/59B4: F0 23 BEQ $59D9 (branch if not attacking opposition; i.e., if reflectOR is not an opponent of caster.) C2/59B6: BD E5 3E LDA $3EE5,X (Status byte 2) C2/59B9: 89 20 BIT #$20 C2/59BB: D0 1C BNE $59D9 (if this reflector is Muddled, exit function) C2/59BD: 20 53 4B JSR $4B53 C2/59C0: B0 17 BCS $59D9 (50% chance of exit function) C2/59C2: DA PHX C2/59C3: AE 32 3A LDX $3A32 (get ($78) animation buffer pointer) C2/59C6: BD 5F 2C LDA $2C5F,X (get unique index of ORIGINAL spell caster [from animation data]?) C2/59C9: 0A ASL C2/59CA: AA TAX (multiply by 2 to access their data block) C2/59CB: C2 20 REP #$20 (set 16-bit accumulator) C2/59CD: BD 18 30 LDA $3018,X C2/59D0: 24 B8 BIT $B8 (is original caster among targets eligible to be hit by the bounce? that is: - doublecheck they're a member of the party about to be hit. - they haven't been excluded by C2/58FA, C2/5917, or C2/5A4D. C2/59D2: F0 02 BEQ $59D6 C2/59D4: 85 B8 STA $B8 (if they are eligible, save them as the sole target of this bounce) C2/59D6: E2 20 SEP #$20 (set 8-bit accumulator) C2/59D8: FA PLX C2/59D9: 60 RTS (Deal with targeting for different encounter formations) (NOTE: I reuse the "Autoselect both parties" description from FF3usME, though if "Autoselect one party" is also set, the former becomes "Autoselect both CLUSTERS". Spread-aim spells without this bit set [Haste 2, Slow 2, X-Zone] will only be able to target one cluster of your party at a time when it's split by a Side attack or one cluster of the monster party when it's split by a Pincer. Whereas spells WITH it set [Meteor, Quake] can hit both/all clumps.) C2/59DA: A5 BB LDA $BB (targeting byte) C2/59DC: 29 0C AND #$0C (isolate "Autoselect both parties" and "Autoselect one party") C2/59DE: 48 PHA (save these bits of targeting byte) C2/59DF: 89 04 BIT #$04 (is "Autoselect both parties" set?) C2/59E1: D0 52 BNE $5A35 (if yes, branch) (if not, we'll be unable to hit more than one cluster of targets at a time, so take special steps for formations like Pincer and Side, which divide targets into these clusters) C2/59E3: AD 1F 20 LDA $201F (get encounter type: 0 = front, 1 = back, 2 = pincer, 3 = side) C2/59E6: C9 02 CMP #$02 C2/59E8: D0 23 BNE $5A0D (branch if not pincer) C2/59EA: AD AD 2E LDA $2EAD (bitfield of enemies in right "clump". set in function C1/1588.) C2/59ED: EB XBA C2/59EE: AD AC 2E LDA $2EAC (bitfield of enemies in left "clump". set in function C1/1588.) C2/59F1: E0 08 CPX #$08 C2/59F3: 90 07 BCC $59FC (branch if attacker is not a monster) C2/59F5: 3C 19 30 BIT $3019,X (is this attacker among enemies on left side of pincer?) C2/59F8: F0 11 BEQ $5A0B (branch if not, and clear left side enemies from targets) C2/59FA: 80 0E BRA $5A0A (otherwise, branch, and clear right side enemies from targets) C2/59FC: 24 B9 BIT $B9 (are left side enemies among targets?) C2/59FE: F0 0D BEQ $5A0D (if they aren't, we don't have to choose a side for attack, so branch and dont' alter anything.) C2/5A00: EB XBA C2/5A01: 24 B9 BIT $B9 C2/5A03: F0 08 BEQ $5A0D (if right side enemies aren't among targets, we don't have to choose a side, so branch and don't alter anything.) C2/5A05: 20 53 4B JSR $4B53 C2/5A08: 90 01 BCC $5A0B (50% branch. half the time, we clear left side enemies. the other half, right side.) C2/5A0A: EB XBA C2/5A0B: 14 B9 TRB $B9 (clear some enemy targets) C2/5A0D: AD 1F 20 LDA $201F (get encounter type: 0 = front, 1 = back, 2 = pincer, 3 = side) C2/5A10: C9 03 CMP #$03 C2/5A12: D0 21 BNE $5A35 (branch if not side) C2/5A14: A9 0C LDA #$0C (characters 2 and 3, who are on left side) C2/5A16: EB XBA C2/5A17: A9 03 LDA #$03 (characters 0 and 1, who are on right side) C2/5A19: E0 08 CPX #$08 C2/5A1B: B0 07 BCS $5A24 (branch if monster attacker) C2/5A1D: 3C 18 30 BIT $3018,X C2/5A20: F0 11 BEQ $5A33 (branch if it's a character, and they're not on right side. this will clear right side characters from targets.) C2/5A22: 80 0E BRA $5A32 (otherwise, branch and clear left side characters from targets) C2/5A24: 24 B8 BIT $B8 C2/5A26: F0 0D BEQ $5A35 (if right side characters aren't among targets, we don't have to choose a side, so branch and don't alter anything) C2/5A28: EB XBA C2/5A29: 24 B8 BIT $B8 C2/5A2B: F0 08 BEQ $5A35 (if left side characters aren't among targets, we don't have to choose a side, so branch and don't alter anything) C2/5A2D: 20 53 4B JSR $4B53 C2/5A30: 90 01 BCC $5A33 (50% branch. half the time, we clear right side characters. the other half, left side.) C2/5A32: EB XBA C2/5A33: 14 B8 TRB $B8 (clear some character targets) C2/5A35: 68 PLA (retrieve "Autoselect both parties" and "Autoselect one party" bits of targeting byte) C2/5A36: C9 04 CMP #$04 (was only "Autoselect both parties" set?) C2/5A38: F0 12 BEQ $5A4C (if so, exit function) C2/5A3A: A5 B8 LDA $B8 C2/5A3C: F0 0E BEQ $5A4C (if no characters targeted, exit function) C2/5A3E: A5 B9 LDA $B9 C2/5A40: F0 0A BEQ $5A4C (or if no monsters targeted, exit function) (if we reached here, both monsters and characters are targeted, even though attack's aiming byte didn't indicate that.) C2/5A42: 20 5A 4B JSR $4B5A (random # [0..255]) C2/5A45: DA PHX C2/5A46: 29 01 AND #$01 (reduce random number to 0 or 1) C2/5A48: AA TAX C2/5A49: 74 B8 STZ $B8,X (clear $B8 [character targets] or $B9 [monster targets] . i THINK the only case where C2/5937 would have both characters and monsters targeted with "Autoselect both parties" unset or "Autoselect one party" set along with it is that of a Zombie caster.) C2/5A4B: FA PLX C2/5A4C: 60 RTS Removes dead (including Zombie/Petrify for monsters), hidden, and absent targets C2/5A4D: DA PHX C2/5A4E: 08 PHP C2/5A4F: C2 20 REP #$20 C2/5A51: A2 12 LDX #$12 C2/5A53: BD 18 30 LDA $3018,X C2/5A56: 24 B8 BIT $B8 C2/5A58: F0 22 BEQ $5A7C (Branch if not a target) C2/5A5A: BD A0 3A LDA $3AA0,X C2/5A5D: 4A LSR C2/5A5E: 90 17 BCC $5A77 (branch if target isn't still valid?) C2/5A60: A9 C2 00 LDA #$00C2 C2/5A63: E0 08 CPX #$08 C2/5A65: B0 03 BCS $5A6A (Branch if monster) C2/5A67: A9 80 00 LDA #$0080 C2/5A6A: 3C E4 3E BIT $3EE4,X C2/5A6D: D0 08 BNE $5A77 (Branch if death status for characters/monsters, or Zombie or Petrify for monsters) C2/5A6F: BD F8 3E LDA $3EF8,X C2/5A72: 89 00 20 BIT #$2000 C2/5A75: F0 05 BEQ $5A7C (Branch if not hidden) C2/5A77: BD 18 30 LDA $3018,X C2/5A7A: 14 B8 TRB $B8 (clear current target) C2/5A7C: CA DEX C2/5A7D: CA DEX C2/5A7E: 10 D3 BPL $5A53 (loop for all monsters and characters) C2/5A80: 28 PLP C2/5A81: FA PLX C2/5A82: 60 RTS (Called whenever battle timer is incremented. Handles various time-based events for entities. Advances their timers, does periodic damage/healing from Poison/Regen/etc., checks for running, and more.) C2/5A83: AD 91 3A LDA $3A91 (Lower byte of battle time counter equivalent) C2/5A86: EE 91 3A INC $3A91 (increment that counter equiv.) C2/5A89: 29 0F AND #$0F C2/5A8B: C9 0A CMP #$0A C2/5A8D: B0 52 BCS $5AE1 (Branch if lower nibble of time counter was >= #$0A) (otherwise, A now corresponds to one of the 10 onscreen entities.) C2/5A8F: 0A ASL C2/5A90: AA TAX C2/5A91: BD A0 3A LDA $3AA0,X C2/5A94: 4A LSR C2/5A95: 90 52 BCC $5AE9 (Exit if entity not present in battle) C2/5A97: 18 CLC C2/5A98: BD DC 3A LDA $3ADC,X (Timer that determines how often timers and time-based events will countdown and happen for this entity.) C2/5A9B: 7D DD 3A ADC $3ADD,X (Add ATB multiplier (set at C2/09D2): 64 normally, 32 if Slowed, 84 if Hasted) C2/5A9E: 9D DC 3A STA $3ADC,X C2/5AA1: 90 46 BCC $5AE9 (Exit if timer didn't meet or exceed 256) C2/5AA3: BD F1 3A LDA $3AF1,X (Get Stop timer, originally set to #$12 at C2/467D) C2/5AA6: F0 09 BEQ $5AB1 (Branch if it's 0, as that *should* mean the entity is not stopped.) C2/5AA8: DE F1 3A DEC $3AF1,X (Decrement Stop timer) C2/5AAB: D0 3C BNE $5AE9 (did it JUST run down on this tick? if not, exit) C2/5AAD: A9 01 LDA #$01 C2/5AAF: 80 55 BRA $5B06 (Set Stop to wear off) (Also decrement Reflect, Freeze, and Sleep timers if applicable, and check if any have worn off. That makes no sense, as these timers are stalled on all of the Stop timer's preceding ticks; they should be stalled during the last one as well. In contrast, an entity's Condemned countdown and Regen/Seizure/etc. resume on the tick following the one where its Stop timer hits zero -- that's much more consistent with the simple concept of time unfreezing *after* Stop wears off.) C2/5AB1: BD A0 3A LDA $3AA0,X C2/5AB4: 89 10 BIT #$10 (is entity Wounded, Petrified, or Stopped, or is somebody else under the influence of Quick?) C2/5AB6: D0 31 BNE $5AE9 (Exit if any are true) C2/5AB8: BD 05 3B LDA $3B05,X (Condemned counter - originally set at C2/09B4. To be clear, this counter is "one off" from the actual numerals you'll see onscreen: 00 value = numerals disabled 01 value = numerals at "00", 02 = "01", 03 = "02", etc.) C2/5ABB: C9 02 CMP #$02 C2/5ABD: 90 0A BCC $5AC9 (Branch if counter < 2. [i.e. numerals < "01", meaning they're "00" or disabled.]) C2/5ABF: 3A DEC C2/5AC0: 9D 05 3B STA $3B05,X (decrement counter) C2/5AC3: 3A DEC (just think of this second "DEC" as an optimized "CMP #$01", as we're not altering the counter.) C2/5AC4: D0 03 BNE $5AC9 (Branch if counter now != 1 [i.e. numerals != "00"]) C2/5AC6: 20 C7 5B JSR $5BC7 (Cast Doom when countdown numerals reach 0) C2/5AC9: 20 1B 5C JSR $5C1B (Check if character runs from combat) C2/5ACC: 20 4F 5B JSR $5B4F (Trigger Poison, Seizure, Regen, Phantasm, or Tentacle Drain damage) C2/5ACF: 7B TDC C2/5AD0: 20 06 5B JSR $5B06 (Decrement Reflect, Freeze, and Sleep timers if applicable, and check if any have worn off) C2/5AD3: FE F0 3A INC $3AF0,X (advance this entity's pointer to the next entry in the C2/5AEA function table) C2/5AD6: BD F0 3A LDA $3AF0,X C2/5AD9: 9B TXY (preserve X in Y) C2/5ADA: 29 07 AND #$07 (convert pointer copy to 0-7, wrapping as necessary) C2/5ADC: 0A ASL C2/5ADD: AA TAX C2/5ADE: 7C EA 5A JMP ($5AEA,X) (determine which periodic/damage healing type will be checked on this entity's next tick.) C2/5AE1: E9 0A SBC #$0A (should only be reached if ($3A91 AND 15) was >= 10 [i.e. not corresponding to any specific entity] at start of function. now subtract 10.) C2/5AE3: 0A ASL C2/5AE4: AA TAX C2/5AE5: 7C FA 5A JMP ($5AFA,X) C2/5AE8: BB TYX (restore X from Y) C2/5AE9: 60 RTS (Code pointers) (Note: choosing RTS will default to the (monster) entity draining anybody it has Seized on its next tick.) C2/5AEA: 45 5B (Set bit 3 of $3E4C,X - check regen, seizure, phantasm) C2/5AEC: E8 5A (RTS) C2/5AEE: 3B 5B (Set bit 4 of $3E4C,X - check poison) C2/5AF0: E8 5A (RTS) C2/5AF2: 45 5B (Set bit 3 of $3E4C,X - check regen, seizure, phantasm) C2/5AF4: E8 5A (RTS) C2/5AF6: E8 5A (RTS) C2/5AF8: E8 5A (RTS) (Code pointers) C2/5AFA: B2 5B (Enemy Roulette completion) C2/5AFC: FC 5B (Increment time counters) C2/5AFE: E9 5A (RTS) C2/5B00: E9 5A (RTS) C2/5B02: E9 5A (RTS) C2/5B04: D0 5B (Process "ready to run" characters, queue Flee command as needed) (Decrement Reflect, Freeze, and Sleep timers if applicable, and if any have worn off, mark them to be removed. If A was 1 (rather than 0) going into this function, which means Stop just ran out, mark it to be removed.) C2/5B06: 85 B8 STA $B8 C2/5B08: BD 0C 3F LDA $3F0C,X (Time until Reflect wears off) (Originally set to #$1A at C2/4687) C2/5B0B: F0 09 BEQ $5B16 (branch if timer not active) C2/5B0D: DE 0C 3F DEC $3F0C,X (Decrement Reflect timer) C2/5B10: D0 04 BNE $5B16 C2/5B12: A9 02 LDA #$02 C2/5B14: 04 B8 TSB $B8 (If Reflect timer reached 0 on this tick, set to remove Reflect) C2/5B16: BD 0D 3F LDA $3F0D,X (Time until Freeze wears off) (Originally set to #$22 at C2/4691) C2/5B19: F0 09 BEQ $5B24 (branch if timer not active) C2/5B1B: DE 0D 3F DEC $3F0D,X (Decrement Freeze timer) C2/5B1E: D0 04 BNE $5B24 C2/5B20: A9 04 LDA #$04 C2/5B22: 04 B8 TSB $B8 (If Freeze timer reached 0 on this tick, set to remove Freeze) C2/5B24: BD F9 3C LDA $3CF9,X (Time until Sleep wears off) (Originally set to #$12 at C2/4633) C2/5B27: F0 09 BEQ $5B32 (branch if timer not active) C2/5B29: DE F9 3C DEC $3CF9,X (Decrement Sleep timer) C2/5B2C: D0 04 BNE $5B32 C2/5B2E: A9 08 LDA #$08 C2/5B30: 04 B8 TSB $B8 (If Sleep timer reached 0 on this tick, set to remove Sleep) C2/5B32: A5 B8 LDA $B8 C2/5B34: F0 B3 BEQ $5AE9 (Exit if we haven't marked any of the statuses to be auto-removed) C2/5B36: A9 29 LDA #$29 C2/5B38: 4C 91 4E JMP $4E91 (queue the status removal, in global Special Action queue) Set to check for Poison on this entity's next tick C2/5B3B: BB TYX C2/5B3C: BD 4C 3E LDA $3E4C,X C2/5B3F: 09 10 ORA #$10 C2/5B41: 9D 4C 3E STA $3E4C,X (Set bit 4 of $3E4C,X) C2/5B44: 60 RTS Set to check for Regen, Seizure, Phantasm on this entity's next tick C2/5B45: BB TYX C2/5B46: BD 4C 3E LDA $3E4C,X C2/5B49: 09 08 ORA #$08 C2/5B4B: 9D 4C 3E STA $3E4C,X (Set bit 3 of $3E4C,X) C2/5B4E: 60 RTS Trigger Poison, Regen, Seizure, Phantasm, or Tentacle Drain attack C2/5B4F: A9 10 LDA #$10 C2/5B51: 3C A1 3A BIT $3AA1,X C2/5B54: D0 F8 BNE $5B4E (Exit if bit 4 of $3AA1 is set. we already have some periodic damage/healing queued for this entity, so don't queue any more yet.) C2/5B56: BD 4C 3E LDA $3E4C,X C2/5B59: 89 10 BIT #$10 C2/5B5B: F0 0E BEQ $5B6B (Branch if bit 4 of $3E4C,X is not set) (Check Regen and Seizure and Phantasm if not set, Poison if set) C2/5B5D: 29 EF AND #$EF C2/5B5F: 9D 4C 3E STA $3E4C,X (Clear bit 4 of $3E4C,X) C2/5B62: BD E4 3E LDA $3EE4,X (Status byte 1) C2/5B65: 29 04 AND #$04 C2/5B67: F0 E5 BEQ $5B4E (Exit if not poisoned) C2/5B69: 80 1A BRA $5B85 Check Seizure, Phantasm, and Regen C2/5B6B: 89 08 BIT #$08 C2/5B6D: F0 23 BEQ $5B92 (Branch if bit 3 of $3E4C,X is not set) (Check Tentacle Drain if not set, Seizure and Phantasm and Regen if set) C2/5B6F: 29 F7 AND #$F7 C2/5B71: 9D 4C 3E STA $3E4C,X (Clear bit 3 of $3E4C,X) C2/5B74: BD E5 3E LDA $3EE5,X C2/5B77: 1D 4D 3E ORA $3E4D,X (are Seizure or Phantasm set?) C2/5B7A: 29 40 AND #$40 C2/5B7C: D0 07 BNE $5B85 (if at least one is, branch) C2/5B7E: BD F8 3E LDA $3EF8,X C2/5B81: 29 02 AND #$02 (is Regen set?) C2/5B83: F0 C9 BEQ $5B4E (if not, exit function) C2/5B85: 8D 7B 3A STA $3A7B (Set spell) (02 = Regen, 04 = Poison, 40 = Seizure/Phantasm) C2/5B88: A9 22 LDA #$22 C2/5B8A: 8D 7A 3A STA $3A7A (Set command to #$22 - Poison, Regen, Seizure, Phantasm) C2/5B8D: 20 B2 4E JSR $4EB2 (queue it, in entity's counterattack and periodic damage/healing queue) C2/5B90: 80 17 BRA $5BA9 Check Drain from being Seized C2/5B92: BC 58 33 LDY $3358,X C2/5B95: 30 B7 BMI $5B4E (Exit if monster doesn't have a character seized) C2/5B97: C2 20 REP #$20 (Set 16-bit A) C2/5B99: B9 18 30 LDA $3018,Y C2/5B9C: 85 B8 STA $B8 (Set target to character monster has seized) C2/5B9E: A9 2D 00 LDA #$002D C2/5BA1: 8D 7A 3A STA $3A7A (Set command to #$2D - drain from being seized) C2/5BA4: E2 20 SEP #$20 (Set 8-bit A) C2/5BA6: 20 B2 4E JSR $4EB2 (queue it, in entity's counterattack and periodic damage/healing queue) C2/5BA9: A9 10 LDA #$10 C2/5BAB: 1D A1 3A ORA $3AA1,X C2/5BAE: 9D A1 3A STA $3AA1,X (Set bit 4 of $3AA1,X. This bit will prevent us from queueing up more than one instance of periodic damage/healing (i.e. Poison, Seizure/Phantasm, Regen, or Tentacle Drain) at a time for a given entity.) C2/5BB1: 60 RTS (Enemy Roulette completion) C2/5BB2: AD 43 2F LDA $2F43 (top byte of Enemy Roulette target bitfield, which is set at C1/B41A when the cursor winds down.) C2/5BB5: 30 97 BMI $5B4E (Exit if no targets are defined) C2/5BB7: C2 20 REP #$20 (Set 16-bit A) C2/5BB9: AD 42 2F LDA $2F42 (get our chosen target) C2/5BBC: 20 F9 51 JSR $51F9 (Y = bit number of highest bit set in A (0 for bit 0, 2 for bit 1, 4 for bit 2, etc.)) C2/5BBF: 7B TDC C2/5BC0: 3A DEC (A = #$FFFF) C2/5BC1: 8D 42 2F STA $2F42 (Set Enemy Roulette targets in $2F42 to null) C2/5BC4: E2 20 SEP #$20 (Set 8-bit A) C2/5BC6: BB TYX C2/5BC7: A9 0D LDA #$0D (Condemned expiration enters here) C2/5BC9: 85 B8 STA $B8 (spell = Doom) C2/5BCB: A9 26 LDA #$26 C2/5BCD: 4C 91 4E JMP $4E91 (queue the reaper, in global Special Action queue) (Process "ready to run" characters, queue Flee command as needed) C2/5BD0: AD 45 2F LDA $2F45 (party trying to run: 0 = no, 1 = yes) C2/5BD3: F0 45 BEQ $5C1A (exit if not) C2/5BD5: A5 B1 LDA $B1 C2/5BD7: 89 02 BIT #$02 (is Can't Run set?) C2/5BD9: D0 16 BNE $5BF1 (branch if so) C2/5BDB: AD 91 3A LDA $3A91 (get bottom byte of battle time counter equiv., will have value of NFh here) C2/5BDE: 29 70 AND #$70 C2/5BE0: D0 38 BNE $5C1A (7/8 chance of exit) C2/5BE2: AD 45 2F LDA $2F45 (party trying to run. yes, a duplicate check. it's done because C2/5C1B and C2/11BB can branch here.) C2/5BE5: F0 33 BEQ $5C1A (exit if not trying to run) C2/5BE7: AD 38 3A LDA $3A38 (characters who are ready to run) C2/5BEA: F0 2E BEQ $5C1A (exit if none) C2/5BEC: AD 97 3A LDA $3A97 C2/5BEF: D0 29 BNE $5C1A (exit if in Colosseum) C2/5BF1: A9 04 LDA #$04 C2/5BF3: 04 B0 TSB $B0 (set flag) C2/5BF5: D0 23 BNE $5C1A (exit if we've already executed this since the last time C2/007D was executed, which is at least as recent as the last time C2/5C73 was called) C2/5BF7: A9 2A LDA #$2A C2/5BF9: 4C 91 4E JMP $4E91 (queue (attempted) Flee command, in global Special Action queue) (Increment time counters) C2/5BFC: 08 PHP C2/5BFD: C2 20 REP #$20 (set 16-bit A) C2/5BFF: EE 44 3A INC $3A44 (increment Global battle time counter) C2/5C02: A2 12 LDX #$12 (point to last enemy) C2/5C04: BD A0 3A LDA $3AA0,X C2/5C07: 4A LSR C2/5C08: 90 0B BCC $5C15 (Skip entity if not present in battle) C2/5C0A: BD E4 3E LDA $3EE4,X (status byte 1) C2/5C0D: 89 C0 00 BIT #$00C0 C2/5C10: D0 03 BNE $5C15 (branch if petrified or dead) C2/5C12: FE C0 3D INC $3DC0,X (Increment monster time counter) C2/5C15: CA DEX C2/5C16: CA DEX C2/5C17: 10 EB BPL $5C04 (loop for all monsters and characters) C2/5C19: 28 PLP C2/5C1A: 60 RTS (Check if character runs from combat) C2/5C1B: E0 08 CPX #$08 C2/5C1D: B0 34 BCS $5C53 (Exit if monster) C2/5C1F: AD 45 2F LDA $2F45 (party trying to run: 0 = no, 1 = yes) C2/5C22: F0 2F BEQ $5C53 (Exit if not trying to run) C2/5C24: AD 39 3A LDA $3A39 (Load characters who've escaped) C2/5C27: 0D 40 3A ORA $3A40 (Or with characters acting as enemies) C2/5C2A: 3C 18 30 BIT $3018,X (Is the current character in one or more of these groups?) C2/5C2D: D0 24 BNE $5C53 (Exit if so) C2/5C2F: AD 3B 3A LDA $3A3B (Get the Run Difficulty) C2/5C32: D0 06 BNE $5C3A (Branch if it's nonzero) C2/5C34: 20 4D 5C JSR $5C4D (mark character as "ready to run") C2/5C37: 4C E2 5B JMP $5BE2 (why not BRAnch to C2/5BEC?) (Figure character's "Run Success" variable and determine whether ready to run) C2/5C3A: BD 71 3D LDA $3D71,X (Amount to add to "run success" variable. varies by character; ranges from 2 through 5.) C2/5C3D: 20 65 4B JSR $4B65 (random: 0 to A - 1) C2/5C40: 1A INC (1 to A) C2/5C41: 18 CLC C2/5C42: 7D 70 3D ADC $3D70,X C2/5C45: 9D 70 3D STA $3D70,X (add to Run Success variable) C2/5C48: CD 3B 3A CMP $3A3B (compare to Run Difficulty) C2/5C4B: 90 06 BCC $5C53 (if it's less, the character's not running yet) C2/5C4D: BD 18 30 LDA $3018,X C2/5C50: 0C 38 3A TSB $3A38 (mark character as "ready to run") C2/5C53: 60 RTS (Copy ATB timer, Morph gauge, and Condemned counter to displayable variables) C2/5C54: E2 30 SEP #$30 C2/5C56: A2 06 LDX #$06 C2/5C58: A0 03 LDY #$03 C2/5C5A: BD 19 32 LDA $3219,X (ATB timer, top byte) C2/5C5D: 3A DEC C2/5C5E: 99 22 20 STA $2022,Y (visual ATB gauge?) C2/5C61: BD 04 3B LDA $3B04,X (Morph gauge) C2/5C64: 99 26 20 STA $2026,Y C2/5C67: BD 05 3B LDA $3B05,X (Condemned counter) C2/5C6A: 99 2A 20 STA $202A,Y C2/5C6D: CA DEX C2/5C6E: CA DEX C2/5C6F: 88 DEY C2/5C70: 10 E8 BPL $5C5A (iterate for all 4 characters) C2/5C72: 60 RTS (Update Can't Escape, Can't Run, Run Difficulty, and onscreen list of enemy names, based on currently present enemies) C2/5C73: C2 20 REP #$20 (Set 16-bit Accumulator) C2/5C75: A0 08 LDY #$08 (the following loop nulls the list of enemy names [and quantities, shown in FF6j but not FF3us] that appears on the bottom left corner of the screen in battle?) C2/5C77: 7B TDC (A = 0000h) C2/5C78: 99 13 20 STA $2013,Y (store to $2015 - $201B, each having a 16-bit monster quantity) C2/5C7B: 3A DEC (A = FFFFh) C2/5C7C: 99 0B 20 STA $200B,Y (store to $200D - $2013, each having a 16-bit monster ID) C2/5C7F: 88 DEY C2/5C80: 88 DEY C2/5C81: D0 F4 BNE $5C77 (iterate 4 times, as there are 4 list entries) C2/5C83: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/5C85: A9 06 LDA #$06 C2/5C87: 14 B1 TRB $B1 (clear Can't Run and Can't Escape) C2/5C89: AD 1F 20 LDA $201F (get encounter type. 0 = front, 1 = back, 2 = pincer, 3 = side) C2/5C8C: C9 02 CMP #$02 C2/5C8E: D0 14 BNE $5CA4 (branch if not pincer) C2/5C90: AD AC 2E LDA $2EAC (bitfield of enemies in left "clump". set in function C1/1588.) C2/5C93: 2D 2F 2F AND $2F2F (compare to bitfield of remaining enemies?) C2/5C96: F0 0C BEQ $5CA4 (branch if no enemy on left side remaining) C2/5C98: AD AD 2E LDA $2EAD (bitfield of enemies in right "clump". set in function C1/1588.) C2/5C9B: 2D 2F 2F AND $2F2F (compare to bitfield of remaining enemies?) C2/5C9E: F0 04 BEQ $5CA4 (branch if no enemy on right side remaining) C2/5CA0: A9 02 LDA #$02 C2/5CA2: 04 B1 TSB $B1 (set Can't Run) C2/5CA4: 9C 3B 3A STZ $3A3B (set Run Difficulty to zero) C2/5CA7: 9C CA 3E STZ $3ECA (set Number of Unique enemy names who are currently active to zero? this variable will have a max of 4, even though the actual number of unique enemy names can go to 6.) C2/5CAA: B9 A8 3A LDA $3AA8,Y C2/5CAD: 4A LSR C2/5CAE: 90 54 BCC $5D04 (skip to next monster if this one not present) C2/5CB0: B9 21 30 LDA $3021,Y C2/5CB3: 2C 3A 3A BIT $3A3A (is it in bitfield of dead-ish or escaped monsters?) C2/5CB6: D0 4C BNE $5D04 (branch if so) C2/5CB8: 2C 09 34 BIT $3409 C2/5CBB: F0 47 BEQ $5D04 C2/5CBD: B9 EC 3E LDA $3EEC,Y (get monster's status byte 1) C2/5CC0: 89 C2 BIT #$C2 C2/5CC2: D0 40 BNE $5D04 (branch if Zombie, Petrify, or Wound is set) C2/5CC4: B9 88 3C LDA $3C88,Y (monster Misc/Special Byte 2. normally accessed as "$3C80,Y" , but we're only looking at enemies here.) C2/5CC7: 4A LSR (put "Harder to Run From" bit in Carry flag) C2/5CC8: 89 04 BIT #$04 (is "Can't Escape" bit set in monster data? [called "Can't Run" in FF3usME]) C2/5CCA: F0 04 BEQ $5CD0 C2/5CCC: A9 06 LDA #$06 C2/5CCE: 04 B1 TSB $B1 (if so, set both Can't Run and Can't Escape. the latter will stop Warp, Warp Stones, and Smoke Bombs. even though a failed Smoke Bomb gives a "Can't run away!!" rather than a "Can't escape!!" message, it just looks at the Can't Escape bit. ) C2/5CD0: 7B TDC C2/5CD1: 2A ROL C2/5CD2: 38 SEC C2/5CD3: 2A ROL C2/5CD4: 0A ASL (if "Harder to Run From" was set, A = 6. if not, A = 2.) C2/5CD5: 6D 3B 3A ADC $3A3B C2/5CD8: 8D 3B 3A STA $3A3B (add to Run Difficulty) C2/5CDB: B9 9D 3C LDA $3C9D,Y (normally accessed as $3C95,Y , but we're only looking at enemies here.) C2/5CDE: 89 04 BIT #$04 (is "Name Hidden" property set?) C2/5CE0: D0 22 BNE $5D04 (branch if so) C2/5CE2: C2 20 REP #$20 C2/5CE4: A2 00 LDX #$00 C2/5CE6: BD 0D 20 LDA $200D,X (entry in list of enemy names you see on bottom left of screen in battle?) C2/5CE9: 10 09 BPL $5CF4 (branch if this entry has already been assigned an enemy ID) C2/5CEB: B9 88 33 LDA $3388,Y (get entry from Enemy Name structure, initialized in function C2/2C30 [using $3380], for our current monster pointed to by Y. this structure has a list of enemy IDs for the up to 6 enemies in a battle, but it's normalized so enemies with matching names have matching IDs.) C2/5CEE: 9D 0D 20 STA $200D,X (save it in list of names?) C2/5CF1: EE CA 3E INC $3ECA (increment the number of unique names of active enemies? this counter will max out at 4, because the in-battle list shows a maximum of 4 names, even though the actual # of unique enemy names goes up to 6. this variable is used by the FC 10 monster script command.) C2/5CF4: D9 88 33 CMP $3388,Y (compare enemy ID previously in this screen list entry to one in the Name Structure entry. they'll match for sure if we didn't follow the branch at C2/5CE9.) C2/5CF7: D0 05 BNE $5CFE (if they don't match, skip to next screen list entry) C2/5CF9: FE 15 20 INC $2015,X (they did match, so increase the quantity of enemies who have this name. FF6j displayed a quantity in battle. FF3us increased enemy names from 8 to 10 characters, so it never shows the quantity.) C2/5CFC: 80 06 BRA $5D04 (exit this loop, as our enemy ID [as indexed by Y] is already in the screen list.) C2/5CFE: E8 INX C2/5CFF: E8 INX C2/5D00: E0 08 CPX #$08 C2/5D02: 90 E2 BCC $5CE6 (iterate 4 times, as the battle enemy name list has 4 entries.) C2/5D04: E2 20 SEP #$20 C2/5D06: C8 INY C2/5D07: C8 INY C2/5D08: C0 0C CPY #$0C C2/5D0A: 90 9E BCC $5CAA (iterate for all 6 monsters) C2/5D0C: AD 1F 20 LDA $201F (get encounter type. 0 = front, 1 = back, 2 = pincer, 3 = side) C2/5D0F: C9 03 CMP #$03 C2/5D11: F0 06 BEQ $5D19 (branch if side attack) C2/5D13: A5 B0 LDA $B0 C2/5D15: 89 40 BIT #$40 C2/5D17: F0 03 BEQ $5D1C (branch if not Preemptive attack) C2/5D19: 9C 3B 3A STZ $3A3B (set Run Difficulty to zero) C2/5D1C: AD 42 3A LDA $3A42 (list of present and living characters acting as enemies?) C2/5D1F: F0 04 BEQ $5D25 (branch if none) C2/5D21: A9 02 LDA #$02 C2/5D23: 04 B1 TSB $B1 (set Can't Run) C2/5D25: 60 RTS (Copy Current and Max HP and MP, and statuses to displayable variables) C2/5D26: 08 PHP C2/5D27: C2 20 REP #$20 C2/5D29: E2 10 SEP #$10 C2/5D2B: A0 06 LDY #$06 C2/5D2D: B9 F4 3B LDA $3BF4,Y (current HP) C2/5D30: 99 78 2E STA $2E78,Y C2/5D33: B9 1C 3C LDA $3C1C,Y (max HP) C2/5D36: 99 80 2E STA $2E80,Y C2/5D39: B9 08 3C LDA $3C08,Y (current MP) C2/5D3C: 99 88 2E STA $2E88,Y C2/5D3F: B9 30 3C LDA $3C30,Y (max MP) C2/5D42: 99 90 2E STA $2E90,Y C2/5D45: B9 E4 3E LDA $3EE4,Y (status bytes 1-2) C2/5D48: 99 98 2E STA $2E98,Y C2/5D4B: B9 F8 3E LDA $3EF8,Y (status bytes 3-4) C2/5D4E: 99 A0 2E STA $2EA0,Y C2/5D51: 88 DEY C2/5D52: 88 DEY C2/5D53: 10 D8 BPL $5D2D (iterate for all 4 characters) C2/5D55: 28 PLP C2/5D56: 60 RTS C2/5D57: 08 PHP C2/5D58: 20 67 02 JSR $0267 C2/5D5B: A2 06 LDX #$06 C2/5D5D: 9E 99 2E STZ $2E99,X C2/5D60: CA DEX C2/5D61: CA DEX C2/5D62: 10 F9 BPL $5D5D C2/5D64: A2 0B LDX #$0B C2/5D66: 9E 35 2F STZ $2F35,X (clear message parameter bytes) C2/5D69: CA DEX C2/5D6A: 10 FA BPL $5D66 (iterate 12 times) C2/5D6C: A9 08 LDA #$08 C2/5D6E: 20 11 64 JSR $6411 C2/5D71: 20 03 49 JSR $4903 C2/5D74: AD 97 3A LDA $3A97 C2/5D77: F0 18 BEQ $5D91 (branch if not in Colosseum) C2/5D79: A9 01 LDA #$01 C2/5D7B: 8D 75 2E STA $2E75 (indicate quantity of won item is 1) C2/5D7E: AD 07 02 LDA $0207 (item won from Colosseum) C2/5D81: 8D 35 2F STA $2F35 (save in message parameter 1, bottom byte) C2/5D84: 20 DC 54 JSR $54DC (copy item's info to a 5-byte buffer, spanning $2E72 - $2E76. doesn't touch $2E75.) C2/5D87: 20 79 62 JSR $6279 (add item in buffer to Item menu [which is soon copied to inventory]?) C2/5D8A: A9 20 LDA #$20 C2/5D8C: 20 D4 5F JSR $5FD4 (buffer and display "Got [item] x 1" message) C2/5D8F: 28 PLP C2/5D90: 60 RTS (At end of victorious combat, handle GP and Experience gained from battle, learned spells and abilities, won items, and displays all relevant messages.) C2/5D91: C2 10 REP #$10 (Set 16-bit X and Y) C2/5D93: 7B TDC (clear accumulator) C2/5D94: AE D4 3E LDX $3ED4 (get battle formation #) C2/5D97: E0 00 02 CPX #$0200 C2/5D9A: B0 04 BCS $5DA0 (if it's >= 512, there's no magic points, so branch) C2/5D9C: BF 00 B4 DF LDA $DFB400,X (magic points given by that enemy formation) C2/5DA0: 85 FB STA $FB C2/5DA2: 64 F0 STZ $F0 C2/5DA4: AD BC 3E LDA $3EBC C2/5DA7: 29 08 AND #$08 (set after getting any of four Magicites in Zozo -- allows Magic Point display) C2/5DA9: 85 F1 STA $F1 (save that bit) C2/5DAB: C2 20 REP #$20 (Set 16-bit Accumulator) C2/5DAD: A2 0A 00 LDX #$000A C2/5DB0: BD EC 3E LDA $3EEC,X (check enemy's 1st status byte) C2/5DB3: 89 C2 00 BIT #$00C2 (Petrify, death, or zombie?) C2/5DB6: F0 26 BEQ $5DDE (if not, skip this enemy) C2/5DB8: AD E4 11 LDA $11E4 C2/5DBB: 89 02 00 BIT #$0002 (is Leap available [aka we're on Veldt]?) C2/5DBE: D0 0F BNE $5DCF (branch if so) (had been typoed "BNE $5DD0") C2/5DC0: 18 CLC C2/5DC1: BD 8C 3D LDA $3D8C,X (get enemy's XP -- base offset 3D84 is used earlier, but that's because the function was indexing everybody on screen, not just enemies) C2/5DC4: 6D 35 2F ADC $2F35 (add it to the experience from other enemies) C2/5DC7: 8D 35 2F STA $2F35 (save in message parameter 1, bottom word) C2/5DCA: 90 03 BCC $5DCF C2/5DCC: EE 37 2F INC $2F37 (if it flowed out of bottom word, increment top word [top byte, really, since this was 0 prior]) C2/5DCF: 18 CLC C2/5DD0: BD A0 3D LDA $3DA0,X (get enemy's GP) C2/5DD3: 6D 3E 2F ADC $2F3E (add it to GP from other enemies) C2/5DD6: 8D 3E 2F STA $2F3E (save in extra [?] message parameter, bottom word) C2/5DD9: 90 03 BCC $5DDE C2/5DDB: EE 40 2F INC $2F40 (if it flowed out of bottom word, increment top word) C2/5DDE: CA DEX C2/5DDF: CA DEX C2/5DE0: 10 CE BPL $5DB0 (iterate for all 6 enemies) (Following code divides 24-bit XP gained from battle by 8-bit character quantity. Just long divide a 3-digit number by a 1-digit # to better follow the steps.) C2/5DE2: AD 35 2F LDA $2F35 (bottom 2 bytes of 24-bit experience) C2/5DE5: 85 E8 STA $E8 C2/5DE7: AD 36 2F LDA $2F36 (top 2 bytes of XP) C2/5DEA: AE 76 3A LDX $3A76 (Number of present and living characters in party) C2/5DED: DA PHX C2/5DEE: 20 92 47 JSR $4792 (Divides 16-bit A / 8-bit X Stores quotient in 16-bit A. Stores remainder in 8-bit X) C2/5DF1: 85 EC STA $EC (save quotient) C2/5DF3: 86 E9 STX $E9 (save remainder) C2/5DF5: A5 E8 LDA $E8 ( $E8 = (remainder * 256) + bottom byte of original XP ) C2/5DF7: FA PLX C2/5DF8: 20 92 47 JSR $4792 (divide that by # of characters again) C2/5DFB: 8D 35 2F STA $2F35 (save bottom byte of final quotient in message parameter 1, bottom byte) C2/5DFE: A5 EC LDA $EC (retrieve top 2 bytes of final quotient) C2/5E00: 8D 36 2F STA $2F36 (save in message parameter 1, top 2 bytes) C2/5E03: 0D 35 2F ORA $2F35 C2/5E06: F0 06 BEQ $5E0E (if the XP per character is zero, branch) C2/5E08: A9 27 00 LDA #$0027 C2/5E0B: 20 D4 5F JSR $5FD4 (buffer and display "Got [amount] Exp. point(s)" message) C2/5E0E: E2 20 SEP #$20 (set 8-bit Accumulator) C2/5E10: A0 06 00 LDY #$0006 C2/5E13: B9 18 30 LDA $3018,Y C2/5E16: 2C 74 3A BIT $3A74 C2/5E19: F0 58 BEQ $5E73 (Branch if character dead or absent [e.g. slot is empty, or the character escaped or got sneezed or engulfed].) C2/5E1B: B9 59 3C LDA $3C59,Y C2/5E1E: 29 10 AND #$10 C2/5E20: F0 0D BEQ $5E2F (Branch if not x2 Gold [from Cat Hood]) C2/5E22: 04 F0 TSB $F0 C2/5E24: D0 09 BNE $5E2F (Branch if gold has already been doubled by another character) C2/5E26: 0E 3E 2F ASL $2F3E C2/5E29: 2E 3F 2F ROL $2F3F C2/5E2C: 2E 40 2F ROL $2F40 (double the GP won) C2/5E2F: B9 D8 3E LDA $3ED8,Y (Which character it is) C2/5E32: C9 00 CMP #$00 C2/5E34: D0 13 BNE $5E49 (Branch if not Terra) C2/5E36: A5 F1 LDA $F1 (Bit 3 = 1 if have gotten any of Esper Magicites in Zozo) C2/5E38: F0 0F BEQ $5E49 (branch if not) C2/5E3A: 04 F0 TSB $F0 (this will enable Magic Point display below) C2/5E3C: A5 FB LDA $FB (Number of Magic Points gained from battle) C2/5E3E: 0A ASL (* 2) C2/5E3F: 6D F6 1C ADC $1CF6 (Add to Morph supply) C2/5E42: 90 02 BCC $5E46 (If it didn't overflow, branch) C2/5E44: A9 FF LDA #$FF (Since it DID overflow, just set it to maximum) C2/5E46: 8D F6 1C STA $1CF6 (Set Morph supply) C2/5E49: BE 10 30 LDX $3010,Y (get offset to character info block) C2/5E4C: 20 35 62 JSR $6235 (Add experience for battle) C2/5E4F: B9 59 3C LDA $3C59,Y C2/5E52: 89 08 BIT #$08 C2/5E54: F0 03 BEQ $5E59 (Branch if not x2 XP [from Exp. Egg]) C2/5E56: 20 35 62 JSR $6235 (Add experience for battle) C2/5E59: B9 D8 3E LDA $3ED8,Y (Which character it is) C2/5E5C: C9 0C CMP #$0C C2/5E5E: B0 13 BCS $5E73 (Branch if Gogo or Umaro) C2/5E60: 20 83 62 JSR $6283 (Stores address for spells known by character in $F4) C2/5E63: BE 10 30 LDX $3010,Y (get offset to character info block) C2/5E66: 5A PHY C2/5E67: 20 EF 5F JSR $5FEF (Progress towards uncursing Cursed Shield, and learning spells taught by equipment) C2/5E6A: BD 1E 16 LDA $161E,X (Esper equipped) C2/5E6D: 30 03 BMI $5E72 (Branch if no esper equipped) C2/5E6F: 20 2A 60 JSR $602A (Progress towards learning spells taught by Esper) C2/5E72: 7A PLY C2/5E73: 88 DEY C2/5E74: 88 DEY C2/5E75: 10 9C BPL $5E13 (Check next character) C2/5E77: A5 F1 LDA $F1 C2/5E79: 25 F0 AND $F0 C2/5E7B: F0 12 BEQ $5E8F (branch if we don't have both of the following: - Esper Magicites have been retrieved at Zozo - Terra is in party, or Magic Points went towards a character progressing on spell learning) C2/5E7D: A5 FB LDA $FB (Magic points gained from battle) C2/5E7F: F0 0E BEQ $5E8F (branch if none) C2/5E81: 8D 35 2F STA $2F35 (save in message parameter 1, bottom byte) C2/5E84: 9C 36 2F STZ $2F36 C2/5E87: 9C 37 2F STZ $2F37 (zero top two bytes of parameter) C2/5E8A: A9 35 LDA #$35 C2/5E8C: 20 D4 5F JSR $5FD4 (buffer and display "Got [amount] Magic Point(s)" message) C2/5E8F: A0 06 00 LDY #$0006 C2/5E92: B9 18 30 LDA $3018,Y C2/5E95: 2C 74 3A BIT $3A74 (is character present and alive [and a non-enemy]?) C2/5E98: F0 1F BEQ $5EB9 (branch if not) C2/5E9A: B9 D8 3E LDA $3ED8,Y (Which character it is) C2/5E9D: 20 83 62 JSR $6283 (Stores address for spells known by character in $F4) C2/5EA0: BE 10 30 LDX $3010,Y (get offset to character info block) C2/5EA3: 98 TYA C2/5EA4: 4A LSR C2/5EA5: 8D 38 2F STA $2F38 (save 0-3 character # in message parameter 2, bottom byte) C2/5EA8: A9 2E LDA #$2E C2/5EAA: 85 F2 STA $F2 (supply message ID of "[Character] gained a level", to C2/606D, and tell it that the character has yet to level up from this battle.) C2/5EAC: 20 6D 60 JSR $606D (check whether character has enough experience to reach next level, and level up if so) C2/5EAF: B9 D8 3E LDA $3ED8,Y (which character this is) C2/5EB2: C9 0C CMP #$0C C2/5EB4: B0 03 BCS $5EB9 (branch if it's Gogo or Umaro or some temporary character) C2/5EB6: 20 33 61 JSR $6133 (Mark just-learned spells for a character as known, and display messages for them) C2/5EB9: 88 DEY C2/5EBA: 88 DEY C2/5EBB: 10 D5 BPL $5E92 (iterate for all 4 party members) C2/5EBD: E2 10 SEP #$10 (set 8-bit X and Y) C2/5EBF: 7B TDC C2/5EC0: 38 SEC C2/5EC1: A2 02 LDX #$02 (start looking at last of three bytes in Lores to Learn and Known Lores) C2/5EC3: A0 17 LDY #$17 (start looking at last Lore, Exploder) C2/5EC5: 6A ROR C2/5EC6: 90 02 BCC $5ECA C2/5EC8: 6A ROR C2/5EC9: CA DEX (move to previous lore byte for each 8 we check) C2/5ECA: 3C 84 3A BIT $3A84,X (was current Lore marked in Lores to Learn?) C2/5ECD: F0 13 BEQ $5EE2 (branch if not) C2/5ECF: 48 PHA C2/5ED0: 1D 29 1D ORA $1D29,X C2/5ED3: 9D 29 1D STA $1D29,X (add to Known Lores) C2/5ED6: 98 TYA C2/5ED7: 69 8B ADC #$8B (convert current lore # to a spell/attack #) C2/5ED9: 8D 35 2F STA $2F35 (save in message parameter 1, bottom byte) C2/5EDC: A9 2D LDA #$2D C2/5EDE: 20 D4 5F JSR $5FD4 (buffer and display "Learned [lore name]" message) C2/5EE1: 68 PLA C2/5EE2: 88 DEY C2/5EE3: 10 E0 BPL $5EC5 (loop for all 24 lores) C2/5EE5: AD 0A 30 LDA $300A (which character is Mog) C2/5EE8: 30 16 BMI $5F00 (branch if not present in party) C2/5EEA: AE E2 11 LDX $11E2 (get combat background) C2/5EED: BF 5B 8E ED LDA $ED8E5B,X (get corresponding Dance #) C2/5EF1: 30 0D BMI $5F00 (branch if it's negative - presumably FF) C2/5EF3: 20 17 52 JSR $5217 (X = A DIV 8, A = 2 ^ (A MOD 8) ) C2/5EF6: 0C 4C 1D TSB $1D4C (turn on dance in known dances) C2/5EF9: D0 05 BNE $5F00 (if it was already on, don't display a message) C2/5EFB: A9 40 LDA #$40 C2/5EFD: 20 D4 5F JSR $5FD4 (buffer and display "Mastered a new dance!" message) C2/5F00: A5 F0 LDA $F0 C2/5F02: 4A LSR C2/5F03: 90 05 BCC $5F0A (branch if we didn't uncurse the Cursed Shield this battle) C2/5F05: A9 2A LDA #$2A C2/5F07: 20 D4 5F JSR $5FD4 (buffer and display "Dispelled curse on shield" message) C2/5F0A: A2 05 LDX #$05 (with up to 6 different enemies, you can win up to 6 different types of items) C2/5F0C: 7B TDC (clear A) C2/5F0D: 3A DEC (set A to FF) C2/5F0E: 95 F0 STA $F0,X (item type) C2/5F10: 74 F6 STZ $F6,X (quantity of that item) C2/5F12: CA DEX C2/5F13: 10 F7 BPL $5F0C (loop. so in all 6 item slots, we'll have 0 of item #255.) C2/5F15: A0 0A LDY #$0A (point to last enemy) C2/5F17: B9 EC 3E LDA $3EEC,Y (check enemy's 1st status byte) C2/5F1A: 89 C2 BIT #$C2 (Petrify, Wound, or Zombied?) C2/5F1C: F0 30 BEQ $5F4E (if not, skip this enemy) C2/5F1E: 20 5A 4B JSR $4B5A (random #, 0 to 255) C2/5F21: C9 20 CMP #$20 (Carry clear if A < 20h, set otherwise. this means we'll use the Rare dropped item slot 1/8 of the time, and the Common 7/8 of the time) C2/5F23: C2 30 REP #$30 (Accumulator and Index regs 16-bit) C2/5F25: 7B TDC (clear A) C2/5F26: 6A ROR (put Carry in highest bit of A) C2/5F27: 79 01 20 ADC $2001,Y (enemy number. $2001 is filled by code handling F2 script command, which handles enemy formation.) C2/5F2A: 0A ASL C2/5F2B: 2A ROL (multiply enemy # by 4, as Stolen+Dropped Item block is 4 bytes) (and put Carry into lowest bit. Rare when bit is 0, Common for 1.) C2/5F2C: AA TAX (updated index with enemy num and rare/common slot) C2/5F2D: BF 02 30 CF LDA $CF3002,X (item dropped - CF3002 is rare, CF3003 is common) C2/5F31: E2 30 SEP #$30 (Accumulator and index regs 8-bit) C2/5F33: C9 FF CMP #$FF (does chosen enemy slot have empty FF item?) C2/5F35: F0 17 BEQ $5F4E (if so, skip to next enemy) C2/5F37: A2 05 LDX #$05 C2/5F39: D5 F0 CMP $F0,X (is Item # the same as any of the others won?) C2/5F3B: F0 0F BEQ $5F4C (if so, branch to increment its quantity) C2/5F3D: EB XBA C2/5F3E: B5 F0 LDA $F0,X (if not, check if current battle slot is empty) C2/5F40: 1A INC C2/5F41: D0 05 BNE $5F48 (if it wasn't empty, branch to check another battle slot) C2/5F43: EB XBA C2/5F44: 95 F0 STA $F0,X (if it was, we can store our item there) C2/5F46: 80 04 BRA $5F4C C2/5F48: EB XBA C2/5F49: CA DEX C2/5F4A: 10 ED BPL $5F39 (compare item won to next slot) C2/5F4C: F6 F6 INC $F6,X (increment the quantity of the item won) C2/5F4E: 88 DEY C2/5F4F: 88 DEY (move down to next enemy) C2/5F50: 10 C5 BPL $5F17 (loop for all the critters) C2/5F52: A2 05 LDX #$05 (start at last of 6 item slots) C2/5F54: B5 F0 LDA $F0,X (get current item ID) C2/5F56: C9 FF CMP #$FF C2/5F58: F0 1B BEQ $5F75 (skip to next slot if it's empty) C2/5F5A: 8D 35 2F STA $2F35 (save in message parameter 1, bottom byte) C2/5F5D: 20 DC 54 JSR $54DC (copy item's info to a 5-byte buffer, spanning $2E72 - $2E76) C2/5F60: B5 F6 LDA $F6,X (get quantity of item won) C2/5F62: 8D 38 2F STA $2F38 (save in message parameter 2, bottom byte) C2/5F65: 8D 75 2E STA $2E75 (save quantity in that 5-byte buffer) C2/5F68: 20 79 62 JSR $6279 (add item in buffer to Item menu [which is soon copied to inventory]) C2/5F6B: A9 20 LDA #$20 ("Got [item] x 1" message ID) C2/5F6D: D6 F6 DEC $F6,X C2/5F6F: F0 01 BEQ $5F72 C2/5F71: 1A INC (if more than one of this item ID won, A = 21h, "Got [item] x [quantity]" message) C2/5F72: 20 D4 5F JSR $5FD4 (buffer and display won item(s) message) C2/5F75: CA DEX C2/5F76: 10 DC BPL $5F54 (iterate for all 6 possible won item types) C2/5F78: AD 3E 2F LDA $2F3E C2/5F7B: 0D 3F 2F ORA $2F3F C2/5F7E: 0D 40 2F ORA $2F40 C2/5F81: F0 42 BEQ $5FC5 (branch if no gold won) C2/5F83: AD 3E 2F LDA $2F3E C2/5F86: 8D 38 2F STA $2F38 C2/5F89: AD 3F 2F LDA $2F3F C2/5F8C: 8D 39 2F STA $2F39 C2/5F8F: AD 40 2F LDA $2F40 C2/5F92: 8D 3A 2F STA $2F3A (copy 24-bit gold won from extra [?] message parameter into 3-byte message parameter 2) C2/5F95: A9 26 LDA #$26 C2/5F97: 20 D4 5F JSR $5FD4 (buffer and display "Got [amount] GP" message) C2/5F9A: 18 CLC C2/5F9B: A2 FD LDX #$FD C2/5F9D: BD 63 17 LDA $1763,X C2/5FA0: 7D 41 2E ADC $2E41,X C2/5FA3: 9D 63 17 STA $1763,X (this loop adds won gold to party's gold) C2/5FA6: E8 INX C2/5FA7: D0 F4 BNE $5F9D (The following loops will compare the party's GP (held in $1860 - $1862) to 9999999, and if it exceeds that amount, cap it at 9999999.) C2/5FA9: A2 02 LDX #$02 (start pointing to topmost bytes of party GP and GP limit) C2/5FAB: BF C7 5F C2 LDA $C25FC7,X (get current byte of GP limit) C2/5FAF: DD 60 18 CMP $1860,X (compare to corresponding byte of party GP) C2/5FB2: F0 0E BEQ $5FC2 (if the byte values match, we don't know how the overall 24-bit values compare yet, so go check the next lowest byte) C2/5FB4: B0 0F BCS $5FC5 (if this byte of the GP limit exceeds the corresponding byte of the party GP, we know the overall value is also higher, so there's no need to alter anything or compare further) C2/5FB6: A2 02 LDX #$02 (if we reached here, we know party GP must exceed the 9999999 limit, so cap it.) C2/5FB8: BF C7 5F C2 LDA $C25FC7,X C2/5FBC: 9D 60 18 STA $1860,X C2/5FBF: CA DEX C2/5FC0: 10 F6 BPL $5FB8 (update all 3 bytes of the party's GP) C2/5FC2: CA DEX C2/5FC3: 10 E6 BPL $5FAB C2/5FC5: 28 PLP C2/5FC6: 60 RTS Data C2/5FC7: 7F 96 98 (GP cap: 9999999) (Handle battles ending in loss - conventional, Colosseum, or Banon falling. Various end-battle messages also enter at C2/5FD4.) C2/5FCA: 48 PHA C2/5FCB: A9 01 LDA #$01 C2/5FCD: 0C BC 3E TSB $3EBC (set event bit indicating battle ended in loss) C2/5FD0: 20 03 49 JSR $4903 C2/5FD3: 68 PLA C2/5FD4: 08 PHP C2/5FD5: E2 20 SEP #$20 C2/5FD7: C9 FF CMP #$FF C2/5FD9: F0 12 BEQ $5FED (branch if in Colosseum) C2/5FDB: 8D 6F 2D STA $2D6F (second byte of first entry of ($76) buffer) C2/5FDE: A9 02 LDA #$02 C2/5FE0: 8D 6E 2D STA $2D6E (first byte of first entry of ($76) buffer) C2/5FE3: A9 FF LDA #$FF C2/5FE5: 8D 72 2D STA $2D72 (first byte of second entry of ($76) buffer) C2/5FE8: A9 04 LDA #$04 C2/5FEA: 20 11 64 JSR $6411 (Execute animation queue) C2/5FED: 28 PLP C2/5FEE: 60 RTS (Progress towards uncursing Cursed Shield, and learning spells taught by equipment) C2/5FEF: DA PHX C2/5FF0: A0 06 00 LDY #$0006 (Check all equipment and relic slots) C2/5FF3: BD 1F 16 LDA $161F,X (Item equipped, X determines slot to check) C2/5FF6: C9 FF CMP #$FF C2/5FF8: F0 2A BEQ $6024 (Branch if no item equipped) C2/5FFA: C9 66 CMP #$66 C2/5FFC: D0 0E BNE $600C (Branch if no Cursed Shield equipped) C2/5FFE: EE C0 3E INC $3EC0 (Increment number of battles fought with Cursed Shield) C2/6001: D0 09 BNE $600C (Branch if not 256 battles) C2/6003: A9 01 LDA #$01 C2/6005: 04 F0 TSB $F0 (tell caller the shield was uncursed) C2/6007: A9 67 LDA #$67 C2/6009: 9D 1F 16 STA $161F,X (Change to Paladin Shield) C2/600C: EB XBA C2/600D: A9 1E LDA #$1E C2/600F: 20 81 47 JSR $4781 (16-bit A = item ID * 30 [size of item data block]) (JSR $2B63?) C2/6012: DA PHX C2/6013: 5A PHY C2/6014: AA TAX C2/6015: 7B TDC C2/6016: BF 04 50 D8 LDA $D85004,X (Spell item teaches) C2/601A: A8 TAY C2/601B: BF 03 50 D8 LDA $D85003,X (Rate spell is learned) C2/601F: 20 4B 60 JSR $604B (Progress towards learning spell for equipped item) C2/6022: 7A PLY C2/6023: FA PLX C2/6024: E8 INX (Check next equipment slot) C2/6025: 88 DEY C2/6026: D0 CB BNE $5FF3 (Branch if not last slot to check) C2/6028: FA PLX C2/6029: 60 RTS (Progress towards learning spells taught by Esper) C2/602A: DA PHX C2/602B: 20 93 62 JSR $6293 (Multiply A by #$0B and store in X) C2/602E: A0 05 00 LDY #$0005 (Do for each spell taught by esper) C2/6031: 7B TDC (Clear A) C2/6032: BF 01 6E D8 LDA $D86E01,X (Spell taught) C2/6036: C9 FF CMP #$FF C2/6038: F0 0A BEQ $6044 (Branch if no spell taught) C2/603A: 5A PHY C2/603B: A8 TAY C2/603C: BF 00 6E D8 LDA $D86E00,X (Spell learn rate) C2/6040: 20 4B 60 JSR $604B (Progress towards learning spell) C2/6043: 7A PLY C2/6044: E8 INX C2/6045: E8 INX C2/6046: 88 DEY C2/6047: D0 E8 BNE $6031 (Check next spell taught) C2/6049: FA PLX C2/604A: 60 RTS Progress towards learning spell C2/604B: F0 1F BEQ $606C (branch if no learn rate, i.e. no spell to learn) C2/604D: EB XBA C2/604E: A5 FB LDA $FB (Magic points gained from the battle) C2/6050: 20 81 47 JSR $4781 (Multiply by spell learn rate) C2/6053: 85 EE STA $EE (Store this amount in $EE) C2/6055: B1 F4 LDA ($F4),Y (what % of spell is known) C2/6057: C9 FF CMP #$FF C2/6059: F0 11 BEQ $606C (Branch if spell already known) C2/605B: 18 CLC C2/605C: 65 EE ADC $EE (Add amount learned to % known for spell) C2/605E: B0 04 BCS $6064 C2/6060: C9 64 CMP #$64 C2/6062: 90 02 BCC $6066 (branch if % known didn't reach 100) C2/6064: A9 80 LDA #$80 C2/6066: 91 F4 STA ($F4),Y (if it did, mark spell as just learned) C2/6068: A5 F1 LDA $F1 C2/606A: 04 F0 TSB $F0 (tell Function C2/5D91 to enable gained Magic Point display, provided we've already gotten an Esper Magicite from Zozo) C2/606C: 60 RTS (Check whether character has enough experience to reach next level, and level up if so) C2/606D: 64 F8 STZ $F8 C2/606F: 7B TDC (Clear 16-bit A) C2/6070: BD 08 16 LDA $1608,X (current level) C2/6073: C9 63 CMP #$63 C2/6075: B0 F5 BCS $606C (exit if >= 99) C2/6077: C2 20 REP #$20 (Set 16-bit A) C2/6079: 0A ASL C2/607A: DA PHX C2/607B: AA TAX (level * 2) C2/607C: 7B TDC (Clear 16-bit A) C2/607D: 18 CLC (Clear carry) C2/607E: 7F 1E 82 ED ADC $ED821E,X (add to Experience Needed for Level Up FROM this level) C2/6082: 90 02 BCC $6086 (branch if bottom 16-bits of sum didn't overflow) C2/6084: E6 F8 INC $F8 (if so, increment a counter that will determine top 16-bits) C2/6086: CA DEX C2/6087: CA DEX (point to experience needed for next lowest level) C2/6088: D0 F3 BNE $607D (total experience needed for level 1 thru current level. IOW, total experience needed to reach next level.) C2/608A: FA PLX (BUT, experience needed is stored divided by 8 in ROM, so we must multiply it to get true value) C2/608B: 0A ASL C2/608C: 26 F8 ROL $F8 (multiply 32-bit [only 24 bits ever used] experience needed by 2) C2/608E: 0A ASL C2/608F: 26 F8 ROL $F8 (again) C2/6091: 0A ASL C2/6092: 26 F8 ROL $F8 (again) C2/6094: 85 F6 STA $F6 (so now, $F6 thru $F8 = total 24-bit experience needed to advance from our given level) C2/6096: BD 12 16 LDA $1612,X (top 2 bytes of current Experience) C2/6099: C5 F7 CMP $F7 (compare to top 2 bytes of needed experience) C2/609B: E2 20 SEP #$20 (set 8-bit Accumulator) C2/609D: 90 CD BCC $606C (Exit if (current exp / 256) < (needed exp / 256) ) C2/609F: D0 07 BNE $60A8 (if (current exp / 256) != (needed exp / 256), branch) (since it's not less than, we know it's greater than) C2/60A1: BD 11 16 LDA $1611,X (bottom byte of Experience) C2/60A4: C5 F6 CMP $F6 (compare to experience needed) C2/60A6: 90 C4 BCC $606C (Exit if less) C2/60A8: A5 F2 LDA $F2 (holds 2Eh, message ID of "[Character] gained a level", to start with) C2/60AA: F0 05 BEQ $60B1 (branch if current character has already levelled up once from this function) C2/60AC: 64 F2 STZ $F2 (indicate current character has levelled up) C2/60AE: 20 D4 5F JSR $5FD4 (buffer and display "[character name] gained a level" message) C2/60B1: 20 C2 60 JSR $60C2 (raise level, raise normal HP and MP, and give any Esper bonus) C2/60B4: DA PHX C2/60B5: BD 08 16 LDA $1608,X (load level) C2/60B8: EB XBA (put in top of A) C2/60B9: BD 00 16 LDA $1600,X (character ID, aka "Actor") C2/60BC: 20 B6 61 JSR $61B6 (Handle spells or abilities learned at level-up for character) C2/60BF: FA PLX C2/60C0: 80 AB BRA $606D (repeat to check for another possible level gain, since it's possible a battle with wicked high experience on a wussy character boosted multiple levels.) (Gain level, raise HP and MP, and give any Esper bonus) C2/60C2: 08 PHP C2/60C3: FE 08 16 INC $1608,X (increment current level) C2/60C6: 64 FD STZ $FD C2/60C8: 64 FF STZ $FF C2/60CA: DA PHX C2/60CB: 7B TDC (Clear 16-bit A) C2/60CC: BD 08 16 LDA $1608,X (get level) C2/60CF: AA TAX C2/60D0: BF 00 F5 E6 LDA $E6F500,X (normal MP gain for level) C2/60D4: 85 FE STA $FE C2/60D6: BF 9E F4 E6 LDA $E6F49E,X (normal HP gain for level) C2/60DA: 85 FC STA $FC C2/60DC: FA PLX C2/60DD: BD 1E 16 LDA $161E,X (get equipped Esper) C2/60E0: 30 14 BMI $60F6 (if it's null, don't try to calculate bonuses) C2/60E2: 5A PHY C2/60E3: DA PHX C2/60E4: 9B TXY (Y will be used to index stats that are boosted by the $614E call. i believe it currently points to offset of character block from $1600) C2/60E5: 20 93 62 JSR $6293 (X = A * 11d) C2/60E8: 7B TDC (Clear 16-bit A) C2/60E9: BF 0A 6E D8 LDA $D86E0A,X (end of data block for Esper.. probably has level-up bonus) C2/60ED: 30 05 BMI $60F4 (if null, don't try to calculate bonus) C2/60EF: 0A ASL C2/60F0: AA TAX (multiply bonus index by 2) C2/60F1: FC 4E 61 JSR ($614E,X) (calculate bonus. note that [Stat]+1 jumps to the same place as [Stat]+2. what distinguishes them? Bit 1 of X. if X is 20, 24, 28, 32, you'll get +1 to a stat.. if it's 18, 22, 26, 30, you get +2. for HP/MP boosts, X of 0/2/4 means HP, and 6/8/10 means MP) C2/60F4: FA PLX C2/60F5: 7A PLY C2/60F6: C2 21 REP #$21 (set 16-bit A, clear carry) C2/60F8: BD 0B 16 LDA $160B,X (maximum HP) C2/60FB: 48 PHA C2/60FC: 29 00 C0 AND #$C000 (isolate top bits, which indicate (bit 7, then bit 6): 00 = no equipment % bonus, 11 = 12.5% bonus, 01 = 25% bonus, 10 = 50% bonus) C2/60FF: 85 EE STA $EE (save equipment bonus bits) C2/6101: 68 PLA (get max HP again) C2/6102: 29 FF 3F AND #$3FFF (isolate bottom 14 bits.. just the max HP w/o bonus) C2/6105: 65 FC ADC $FC (add to HP gain for level) C2/6107: C9 10 27 CMP #$2710 C2/610A: 90 03 BCC $610F (branch if less than 10000) C2/610C: A9 0F 27 LDA #$270F (replace with 9999) C2/610F: 05 EE ORA $EE (combine with bonus bits) C2/6111: 9D 0B 16 STA $160B,X (save updated max HP) C2/6114: 18 CLC (clear carry) C2/6115: BD 0F 16 LDA $160F,X (now maximum MP) C2/6118: 48 PHA C2/6119: 29 00 AND #$C000 (isolate top bits, which indicate (bit 7, then bit 6): 00 = no equipment % bonus, 11 = 12.5% bonus, 01 = 25% bonus, 10 = 50% bonus) C2/611C: 85 EE STA $EE (save equipment bonus bits) C2/611E: 68 PLA (get max MP again) C2/611F: 29 FF 3F AND #$3FFF (isolate bottom 14 bits.. just the max MP w/o bonus) C2/6122: 65 FE ADC $FE (add to MP gain for level) C2/6124: C9 E8 03 CMP #$03E8 C2/6127: 90 03 BCC $612C (branch if less than 1000) C2/6129: A9 E7 03 LDA #$03E7 (replace with 999) C2/612C: 05 EE ORA $EE (combine with bonus bits) C2/612E: 9D 0F 16 STA $160F,X (save updated max MP) C2/6131: 28 PLP C2/6132: 60 RTS (Mark just-learned spells for a character as known, and display messages for them) C2/6133: 5A PHY C2/6134: A0 35 00 LDY #$0035 C2/6137: B1 F4 LDA ($F4),Y C2/6139: C9 80 CMP #$80 (was this spell just learned?) C2/613B: D0 0C BNE $6149 (branch if not) C2/613D: A9 FF LDA #$FF C2/613F: 91 F4 STA ($F4),Y (mark it as known) C2/6141: 8C 35 2F STY $2F35 (save spell ID in message parameter 1, bottom byte) C2/6144: A9 32 LDA #$32 C2/6146: 20 D4 5F JSR $5FD4 (buffer and display "[Character name] learned [spell name]" message) C2/6149: 88 DEY C2/614A: 10 EB BPL $6137 (iterate for all 54 spells) C2/614C: 7A PLY C2/614D: 60 RTS (Code Pointers) C2/614E: 70 61 (~10% HP bonus) (HP due to X) C2/6150: 74 61 (~30% HP bonus) (HP due to X) C2/6152: 78 61 (50% HP bonus) (HP due to X) C2/6154: 70 61 (~10% MP bonus) (MP due to X) C2/6156: 74 61 (~30% MP bonus) (MP due to X) C2/6158: 78 61 (50% MP bonus) (MP due to X) C2/615A: B0 61 (Double natural HP gain for level. Curious...) C2/615C: 97 61 (No bonus) C2/615E: 97 61 (No bonus) C2/6160: 9B 61 (Vigor bonus) (+1 due to X value in caller) C2/6162: 9B 61 (Vigor bonus) (+2 due to X) C2/6164: 9A 61 (Speed bonus) (+1 due to X) C2/6166: 9A 61 (Speed bonus) (+2 due to X. No Esper currently uses) C2/6168: 99 61 (Stamina bonus) (+1 due to X) C2/616A: 99 61 (Stamina bonus) (+2 due to X) C2/616C: 98 61 (MagPwr bonus) (+1 due to X) C2/616E: 98 61 (MagPwr bonus) (+2 due to X) (Esper HP or MP bonus at level-up) C2/6170: A9 1A LDA #$1A (26 => 10.15625% bonus) C2/6172: 80 06 BRA $617A C2/6174: A9 4E LDA #$4E (78 => 30.46875% bonus) C2/6176: 80 02 BRA $617A C2/6178: A9 80 LDA #$80 (128 ==> 50% bonus) C2/617A: E0 06 00 CPX #$0006 (are we boosting MP rather than HP?) C2/617D: A2 00 00 LDX #$0000 (start pointing to $FC, which holds normal HP to raise) C2/6180: 90 02 BCC $6184 (if X was less than 6, we're just boosting HP, so branch) C2/6182: E8 INX C2/6183: E8 INX (point to $FE, which holds normal MP to raise) C2/6184: EB XBA (put boost numerator in top of A) C2/6185: B5 FC LDA $FC,X (get current HP or MP to add) C2/6187: 20 81 47 JSR $4781 C2/618A: EB XBA (get (boost number * current HP or MP to add) / 256. after all, the boost IS a percentage..) C2/618B: D0 01 BNE $618E (if the HP/MP bonus is nonzero, branch) C2/618D: 1A INC (if it was zero, be nice and give the chump one..) C2/618E: 18 CLC C2/618F: 75 FC ADC $FC,X C2/6191: 95 FC STA $FC,X (add boost to natural HP/MP gain) C2/6193: 90 02 BCC $6197 C2/6195: F6 FD INC $FD,X (if bottom byte overflowed from add, boost top byte) C2/6197: 60 RTS (Esper stat bonus at level-up. Vigor, Speed, Stamina, or MagPwr. If Bit 1 of X is set, give +1 bonus. If not, give +2.) C2/6198: C8 INY (enter here = 3 INYs = point to MagPwr) C2/6199: C8 INY (enter here = 2 INYs = point to Stamina) C2/619A: C8 INY (enter here = 1 INY = point to Speed) C2/619B: 8A TXA (enter here = 0 INYs = point to Vigor) C2/619C: 4A LSR C2/619D: 4A LSR (Carry holds bit 1 of X) C2/619E: BB TYX (0 to 3 value. determines which stat will be altered) C2/619F: BD 1A 16 LDA $161A,X (at $161A,X we have Vigor, Speed, Stamina, and MagPwr, in that order) C2/61A2: 1A INC C2/61A3: B0 01 BCS $61A6 (If carry set, just give +1) C2/61A5: 1A INC C2/61A6: C9 81 CMP #$81 (is stat >= 129?) C2/61A8: 90 02 BCC $61AC C2/61AA: A9 80 LDA #$80 (if so, make it 128) C2/61AC: 9D 1A 16 STA $161A,X (save updated stat) C2/61AF: 60 RTS (Give double natural HP gain for level? Can't say I know when this happens...) C2/61B0: 7B TDC (Clear 16-bit A) C2/61B1: AA TAX (X = 0) C2/61B2: A5 FC LDA $FC C2/61B4: 80 D8 BRA $618E (Handle spells or abilities learned at level-up for character) C2/61B6: A2 00 00 LDX #$0000 (point to start of Terra's magic learned at level up block) C2/61B9: C9 00 CMP #$00 (is it character #0, Terra?) C2/61BB: F0 3F BEQ $61FC (if yes, branch to see if she learns any spells) C2/61BD: A2 20 00 LDX #$0020 (point to start of Celes' magic learned at level up block) C2/61C0: C9 06 CMP #$06 (is it character #6, Celes?) C2/61C2: F0 38 BEQ $61FC (if yes, branch to see if she learns any spells) C2/61C4: A2 00 00 LDX #$0000 (point to start of Cyan's SwdTechs learned at level up block) C2/61C7: C9 02 CMP #$02 (if it character #2, Cyan?) C2/61C9: D0 15 BNE $61E0 (if not, check for Sabin) (Cyan learning SwdTechs at level up. His data block is just an array of 8 bytes: the level for learning each SwdTech) C2/61CB: 20 22 62 JSR $6222 (are any SwdTechs learned at the current level?) C2/61CE: F0 51 BEQ $6221 (if not, exit) C2/61D0: 0C F7 1C TSB $1CF7 (if so, enable the newly learnt SwdTech) C2/61D3: D0 4C BNE $6221 (if it was already enabled [e.g. Cleave learned in nightmare], suppress celebratory messages and such) C2/61D5: A9 40 LDA #$40 C2/61D7: 04 F0 TSB $F0 C2/61D9: D0 46 BNE $6221 (branch if we already learned another SwdTech this battle; possible with multiple level-ups.) C2/61DB: A9 42 LDA #$42 C2/61DD: 4C D4 5F JMP $5FD4 (buffer and display "Mastered a new technique!" message) (Sabin learning Blitzes at level up. His data block is just an array of 8 bytes: the level for learning each Blitz) C2/61E0: A2 08 00 LDX #$0008 (point to start of Sabin's Blitzes learned at level up block) C2/61E3: C9 05 CMP #$05 (is it character #5, Sabin?) C2/61E5: D0 3A BNE $6221 (if not, exit) C2/61E7: 20 22 62 JSR $6222 (are any Blitzes learned at the current level?) C2/61EA: F0 35 BEQ $6221 (if not, exit) C2/61EC: 0C 28 1D TSB $1D28 (if so, enable the newly learnt Blitz) C2/61EF: D0 30 BNE $6221 (if it was already enabled [e.g. Bum Rush taught by Duncan], suppress celebratory messages and such) C2/61F1: A9 80 LDA #$80 C2/61F3: 04 F0 TSB $F0 C2/61F5: D0 2A BNE $6221 (branch if we already learned another Blitz this battle; possible with multiple level-ups.) C2/61F7: A9 33 LDA #$33 C2/61F9: 4C D4 5F JMP $5FD4 (buffer and display "Devised a new Blitz!" message) (Terra and Celes natural magic learning at level up) C2/61FC: 5A PHY C2/61FD: EB XBA C2/61FE: A0 10 00 LDY #$0010 (check a total of 32 bytes, as Terra and Celes each have a 16-element spell list, with 2 bytes per element [spell #, then level] ) C2/6201: DF C1 E3 EC CMP $ECE3C1,X (Terra/Celes level-up spell list: Level at which spell learned) C2/6205: D0 14 BNE $621B (if this level isn't one where the character learns a spell, branch to check the next list element) C2/6207: 48 PHA C2/6208: 5A PHY C2/6209: 7B TDC (Clear 16-bit A) C2/620A: BF C0 E3 EC LDA $ECE3C0,X (Terra/Celes level-up spell list: Spell number) C2/620E: A8 TAY C2/620F: B1 F4 LDA ($F4),Y (check spell's learning progress) C2/6211: C9 FF CMP #$FF C2/6213: F0 04 BEQ $6219 (branch if it's already known) C2/6215: A9 80 LDA #$80 C2/6217: 91 F4 STA ($F4),Y (set it as just learned) C2/6219: 7A PLY C2/621A: 68 PLA C2/621B: E8 INX C2/621C: E8 INX (check next spell and level pair) C2/621D: 88 DEY C2/621E: D0 E1 BNE $6201 C2/6220: 7A PLY C2/6221: 60 RTS (Handles Sabin's Blitzes learned or Cyan's SwdTechs learned, depending on X value) C2/6222: A9 01 LDA #$01 C2/6224: 85 EE STA $EE (start by marking SwdTech/Blitz #0) C2/6226: EB XBA (get current level from top of A?) C2/6227: DF 90 F4 E6 CMP $E6F490,X (does level match the one in the SwdTech/Blitz table?) C2/622B: F0 05 BEQ $6232 (if so, branch) C2/622D: E8 INX (otherwise, move to check next level) C2/622E: 06 EE ASL $EE (mark the next SwdTech/Blitz as learned instead) C2/6230: 90 F5 BCC $6227 (loop for all 8 bits. if Carry is set, we've checked all 8 to no avail, and $EE will be 0, indicating no SwdTech or Blitz is learned) C2/6232: A5 EE LDA $EE (get the SwdTech/Blitz bitfield.. where the number of the bit that is set represents the number of the SwdTech/Blitz to learn) C2/6234: 60 RTS Add Experience for battle to character If XP over 15,000,000 sets XP to 15,000,000 C2/6235: 08 PHP C2/6236: C2 21 REP #$21 C2/6238: AD 35 2F LDA $2F35 (XP Gained from battle) C2/623B: 7D 11 16 ADC $1611,X (Add to XP for character) C2/623E: 85 F6 STA $F6 C2/6240: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/6242: AD 37 2F LDA $2F37 (Do third byte of XP) C2/6245: 7D 13 16 ADC $1613,X C2/6248: 85 F8 STA $F8 C2/624A: DA PHX C2/624B: A2 02 00 LDX #$0002 (The following loops will compare the character's new Experience (held in $F6 - $F8) to 15000000, and if it exceeds that amount, cap it at 15000000.) C2/624E: BF 76 62 C2 LDA $C26276,X C2/6252: D5 F6 CMP $F6,X C2/6254: F0 0E BEQ $6264 C2/6256: B0 0F BCS $6267 C2/6258: A2 02 LDX #$0002 C2/625B: BF 76 62 C2 LDA $C26276,X C2/625F: 95 F6 STA $F6,X C2/6261: CA DEX C2/6262: 10 F7 BPL $625B C2/6264: CA DEX C2/6265: 10 E7 BPL $624E C2/6267: FA PLX C2/6268: A5 F8 LDA $F8 C2/626A: 9D 13 16 STA $1613,X (store to third persistent byte of XP) C2/626D: C2 20 REP #$20 C2/626F: A5 F6 LDA $F6 C2/6271: 9D 11 16 STA $1611,X (store to bottom two bytes of XP) C2/6274: 28 PLP C2/6275: 60 RTS Data (Experience cap: 15000000) C2/6276: C0 C2/6277: E1 C2/6278: E4 (Add item in $2E72 - $2E76 buffer to Item menu) C2/6279: A9 05 LDA #$05 C2/627B: 20 11 64 JSR $6411 (copy $2E72-$2E76 buffer to a $602D-$6031 [plus offset] buffer) C2/627E: A9 0A LDA #$0A C2/6280: 4C 11 64 JMP $6411 (copy $602D-$6031 buffer to Item menu) Stores address for spells known by character in $F4 C2/6283: 08 PHP C2/6284: EB XBA C2/6285: A9 36 LDA #$36 C2/6287: 20 81 47 JSR $4781 C2/628A: C2 21 REP #$21 C2/628C: 69 6E 1A ADC #$1A6E C2/628F: 85 F4 STA $F4 C2/6291: 28 PLP C2/6292: 60 RTS Multiply A by #$0B and store in X C2/6293: EB XBA C2/6294: A9 0B LDA #$0B C2/6296: 20 81 47 JSR $4781 C2/6299: AA TAX C2/629A: 60 RTS (Copy $3A28-$3A2B variables into ($76) buffer) C2/629B: 8D 28 3A STA $3A28 C2/629E: 48 PHA C2/629F: DA PHX C2/62A0: 08 PHP C2/62A1: C2 20 REP #$20 (Set 16-bit Accumulator) C2/62A3: E2 10 SEP #$10 (Set 8-bit Index Registers) C2/62A5: AE 72 3A LDX $3A72 (X = animation buffer pointer) C2/62A8: AD 28 3A LDA $3A28 (temporary bytes 1 and 2 for animation buffer) C2/62AB: 9D 6E 2D STA $2D6E,X (copy to buffer) C2/62AE: AD 2A 3A LDA $3A2A (temporary bytes 3 and 4 for animation buffer) C2/62B1: 9D 70 2D STA $2D70,X (copy to buffer) C2/62B4: E8 INX C2/62B5: E8 INX C2/62B6: E8 INX C2/62B7: E8 INX C2/62B8: 8E 72 3A STX $3A72 (increase animation buffer pointer by 4) C2/62BB: 28 PLP C2/62BC: FA PLX C2/62BD: 68 PLA C2/62BE: 60 RTS ??? Function Calls 629B, setting the accumulator to 16-bit before. C2/62BF: 08 PHP C2/62C0: C2 20 REP #$20 (Set 16-bit Accumulator) C2/62C2: 20 9B 62 JSR $629B C2/62C5: 28 PLP C2/62C6: 60 RTS (Add/restore characters' items to a temporary $602D-$6031 buffer, which will later be added to inventory. This function is called: - At the end of a character's turn when they Steal or Metamorph something. - At the end of battle for all characters, to account for items they tried to use during the battle, but were thwarted by being killed/etc (the game depletes items upon *issuing* the command, so it'll be gone from inventory even if the command never executed). - It can also be used to restore a "bottomless" item at the end of a character's turn. [The game does support equipment that doesn't deplete when you use it as an Item, though no such equipment exists.]) C2/62C7: A2 06 LDX #$06 C2/62C9: BD 18 30 LDA $3018,X C2/62CC: 1C 8C 3A TRB $3A8C (clear this character's "add my items to inventory" flag) C2/62CF: F0 19 BEQ $62EA (if it wasn't set, then skip this character) C2/62D1: BD F4 32 LDA $32F4,X C2/62D4: C9 FF CMP #$FF (does this character have a valid item to add to inventory?) C2/62D6: F0 12 BEQ $62EA (branch if not) C2/62D8: 20 DC 54 JSR $54DC (copy item's info to a 5-byte buffer, spanning $2E72 - $2E76) C2/62DB: A9 01 LDA #$01 C2/62DD: 8D 75 2E STA $2E75 (indicate quantity of 1 item being added/restored) C2/62E0: A9 05 LDA #$05 C2/62E2: 20 11 64 JSR $6411 (copy $2E72-$2E76 buffer to a $602D-$6031 buffer. latter buffer gets copied to Item menu: - if at end of battle, by C2/492E - if mid-battle, apparently by having triangle cursor switch to different character) C2/62E5: A9 FF LDA #$FF C2/62E7: 9D F4 32 STA $32F4,X (null the item to add to inventory) C2/62EA: CA DEX C2/62EB: CA DEX C2/62EC: 10 DB BPL $62C9 (iterate for all 4 party members) C2/62EE: 60 RTS (Call C2/12F5 to do actual damage/healing at the end of a "strike", then queue damage and/or healing values for display. Note that -1 (FFFFh) in a Damage Taken/Healed variable means the damage taken or healed is nonexistent and won't be displayed, as opposed to a displayable 0.) C2/62EF: DA PHX C2/62F0: 5A PHY C2/62F1: 64 F0 STZ $F0 (zero number of damaged or healed entities) C2/62F3: 64 F2 STZ $F2 (zero number of entities both damaged and healed) C2/62F5: A0 12 LDY #$12 C2/62F7: B9 D0 33 LDA $33D0,Y (Damage Taken) C2/62FA: D9 E4 33 CMP $33E4,Y (Damage Healed) C2/62FD: D0 03 BNE $6302 C2/62FF: 1A INC C2/6300: F0 43 BEQ $6345 (Branch if Damage Taken and Damage Healed are both nonexistent) C2/6302: B9 18 30 LDA $3018,Y C2/6305: 1C 5A 3A TRB $3A5A (Target is not missed) (how can we have a target who's both missed and being damaged/healed going into this function, you ask? it could be from Launcher firing multiple missiles at a single target. or it could be from spread-aiming a spell at a Reflective group, and multiple reflections coming back at a single target.) C2/6308: 20 F5 12 JSR $12F5 (Do the HP or MP Damage/Healing to entity) C2/630B: CC 82 3A CPY $3A82 (Check if target protected by Golem) C2/630E: D0 13 BNE $6323 (Branch if not ^) C2/6310: B9 D0 33 LDA $33D0,Y (Damage Taken) C2/6313: 1A INC C2/6314: F0 0D BEQ $6323 (branch if Damage Taken is nonexistent, but there is Damage Healed) C2/6316: 38 SEC C2/6317: AD 36 3A LDA $3A36 (HP for Golem) C2/631A: F9 D0 33 SBC $33D0,Y (Subtract damage) C2/631D: B0 01 BCS $6320 (branch if >= 0) C2/631F: 7B TDC C2/6320: 8D 36 3A STA $3A36 (Set to 0 if < 0) C2/6323: B9 E4 33 LDA $33E4,Y (Damage Healed) C2/6326: 1A INC C2/6327: F0 1C BEQ $6345 (Branch if Damage Healed nonexistent) C2/6329: 3A DEC C2/632A: 09 00 80 ORA #$8000 C2/632D: 99 E4 33 STA $33E4,Y (Set "sign bit" in Damage Healed) C2/6330: E6 F2 INC $F2 (increment count of targets with both damage done and damage healed) C2/6332: B9 D0 33 LDA $33D0,Y C2/6335: 1A INC C2/6336: D0 0D BNE $6345 (Branch if there is Damage Taken) C2/6338: C6 F2 DEC $F2 (damage was healed but not done, so undo incrementation done for this target) C2/633A: B9 E4 33 LDA $33E4,Y C2/633D: 99 D0 33 STA $33D0,Y (If only Damage Healed, Damage Taken = - Damage Healed) C2/6340: 7B TDC C2/6341: 3A DEC C2/6342: 99 E4 33 STA $33E4,Y (Store -1 in Damage Healed) C2/6345: B9 18 30 LDA $3018,Y C2/6348: 2C 5A 3A BIT $3A5A C2/634B: F0 06 BEQ $6353 (branch if target is not missed) C2/634D: A9 00 40 LDA #$4000 C2/6350: 99 D0 33 STA $33D0,Y (Store Miss bit in damage) C2/6353: B9 D0 33 LDA $33D0,Y C2/6356: 1A INC C2/6357: F0 02 BEQ $635B (If no damage dealt and/or damage healed) C2/6359: E6 F0 INC $F0 (increment count of targets with damage dealt or healed) C2/635B: 88 DEY C2/635C: 88 DEY C2/635D: 10 98 BPL $62F7 C2/635F: A4 F0 LDY $F0 (how many targets have damage dealt and/or damage healed) C2/6361: C0 05 CPY #$05 C2/6363: 20 98 63 JSR $6398 (set up display for < 5 targets damaged or healed) C2/6366: 20 B4 63 JSR $63B4 (OR for >= 5 targets damaged or healed) C2/6369: A5 F2 LDA $F2 C2/636B: F0 1A BEQ $6387 (if no target had both damage healed and damage done, branch) C2/636D: A2 12 LDX #$12 C2/636F: A0 00 LDY #$00 C2/6371: BD E4 33 LDA $33E4,X (Damage Healed) C2/6374: 9D D0 33 STA $33D0,X (Store in Damage Taken) C2/6377: 1A INC C2/6378: F0 01 BEQ $637B (If no damage dealt) C2/637A: C8 INY (how many targets have [2nd round of] damage dealt?) C2/637B: CA DEX C2/637C: CA DEX C2/637D: 10 F2 BPL $6371 C2/637F: C0 05 CPY #$05 C2/6381: 20 98 63 JSR $6398 (set up display for < 5 targets damaged or healed) C2/6384: 20 B4 63 JSR $63B4 (OR for >= 5 targets damaged or healed) C2/6387: 7B TDC C2/6388: 3A DEC C2/6389: A2 12 LDX #$12 C2/638B: 9D E4 33 STA $33E4,X (Store -1 in Damage Healed) C2/638E: 9D D0 33 STA $33D0,X (Store -1 in Damage Taken) C2/6391: CA DEX C2/6392: CA DEX C2/6393: 10 F6 BPL $638B (null out damage for all onscreen targets) C2/6395: 7A PLY C2/6396: FA PLX C2/6397: 60 RTS (For less than 5 targets damaged or healed, use a "cascading" damage display. One target's damage/healing numbers will show up a split second after the other's.) C2/6398: B0 19 BCS $63B3 (Exit function if 5+ targets have damage dealt? Why the hell not branch to C2/63B4, cut the BCC there, and cut the "JSR $63B4"s out of function C2/62EF?) C2/639A: A2 12 LDX #$12 C2/639C: BD D0 33 LDA $33D0,X (Damage Taken) C2/639F: 1A INC C2/63A0: F0 0D BEQ $63AF (branch if no damage) C2/63A2: 3A DEC C2/63A3: 8D 2A 3A STA $3A2A (temporary bytes 3 and 4 for ($76) animation buffer) C2/63A6: 8A TXA C2/63A7: 4A LSR (Acc = 0-9 target #) C2/63A8: EB XBA C2/63A9: 09 0B 00 ORA #$000B (target # in top of A, 0x0B in bottom?) C2/63AC: 20 9B 62 JSR $629B (Copy A to $3A28-$3A29, and copy $3A28-$3A2B variables into ($76) buffer) C2/63AF: CA DEX C2/63B0: CA DEX C2/63B1: 10 E9 BPL $639C (loop for all onscreen targets) C2/63B3: 60 RTS (if < 5 targets have damage dealt, Carry will always be clear here. either we skipped the LSR above, or it was done on an even number.) (For 5+ targets damaged or healed, have all their damage/healing numbers pop up simultaneously.) C2/63B4: 90 24 BCC $63DA (exit function if less than 5 targets have damage dealt?) C2/63B6: 08 PHP C2/63B7: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/63B9: A9 03 LDA #$03 C2/63BB: 20 9B 62 JSR $629B (Copy A to $3A28, and copy $3A28-$3A2B variables into ($76) buffer) C2/63BE: AD 34 3A LDA $3A34 (get simultaneous damage display buffer index?) C2/63C1: EE 34 3A INC $3A34 (advance for next strike) C2/63C4: EB XBA C2/63C5: A9 14 LDA #$14 (A = old index * 20) C2/63C7: 20 81 47 JSR $4781 C2/63CA: C2 31 REP #$31 (Set 16-bit Accumulator, 16-bit X and Y, clear Carry) C2/63CC: 69 CE 2B ADC #$2BCE (add to address of start of buffer) C2/63CF: A8 TAY C2/63D0: A2 D0 33 LDX #$33D0 C2/63D3: A9 13 00 LDA #$0013 C2/63D6: 54 7E 7E MVN $7E,$7E (copy $33D0 thru $33E3, the damage variables for all 10 targets, to some other memory location) C2/63D9: 28 PLP C2/63DA: 60 RTS (Copy 8 words (16 bytes) from $A0 to ($78) buffer, ((7E:3A32) + #$2C6E)) (C1 inspection shows $2C6E to be the area where animation scripts are read from. Thus, $3A32 stores the beginning offset for the animation script.) C2/63DB: DA PHX C2/63DC: 5A PHY C2/63DD: 08 PHP C2/63DE: E2 20 SEP #$20 (Set 8-bit A) C2/63E0: 7B TDC C2/63E1: AD 32 3A LDA $3A32 (get animation buffer pointer) C2/63E4: 48 PHA C2/63E5: C2 31 REP #$31 (Set 16-bit A,Y,X) C2/63E7: 69 6E 2C ADC #$2C6E C2/63EA: A8 TAY C2/63EB: A2 A0 00 LDX #$00A0 C2/63EE: A9 0F 00 LDA #$000F C2/63F1: 54 7E 7E MVN #$7E,7E C2/63F4: E2 30 SEP #$30 (Set 8-bit A,Y,X) C2/63F6: 68 PLA C2/63F7: 69 10 ADC #$10 C2/63F9: 8D 32 3A STA $3A32 (increment animation buffer pointer by 16) C2/63FC: 28 PLP C2/63FD: 7A PLY C2/63FE: FA PLX C2/63FF: 60 RTS (Zero $A0 through $AF) C2/6400: DA PHX C2/6401: 08 PHP C2/6402: C2 20 REP #$20 (set 16-bit accumulator) C2/6404: A2 06 LDX #$06 C2/6406: 74 A0 STZ $A0,X C2/6408: 74 A8 STZ $A8,X (overall: $A0 thru $AF are zeroed out) C2/640A: CA DEX C2/640B: CA DEX C2/640C: 10 F8 BPL $6406 (iterate 4 times) C2/640E: 28 PLP C2/640F: FA PLX C2/6410: 60 RTS C2/6411: DA PHX C2/6412: 5A PHY C2/6413: 08 PHP C2/6414: E2 20 SEP #$20 C2/6416: C2 11 REP #$11 C2/6418: 48 PHA C2/6419: 7B TDC C2/641A: 68 PLA C2/641B: C9 02 CMP #$02 C2/641D: D0 06 BNE $6425 C2/641F: A5 B1 LDA $B1 C2/6421: 30 06 BMI $6429 (branch if Yielding to Monster(s) with "Attack First") C2/6423: A9 02 LDA #$02 C2/6425: 22 00 00 C1 JSR $C10000 C2/6429: 28 PLP C2/642A: 7A PLY C2/642B: FA PLX C2/642C: 60 RTS Monster command script command #$FA C2/642D: C2 20 REP #$20 (Set 16-bit accumulator) C2/642F: A5 B8 LDA $B8 (Byte 2 & 3) C2/6431: 8D 2A 3A STA $3A2A (store in temporary bytes 3 and 4 for ($76) animation buffer) C2/6434: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/6436: A5 B6 LDA $B6 (Byte 0) C2/6438: EB XBA C2/6439: A9 14 LDA #$14 C2/643B: 4C BF 62 JMP $62BF (Well, well, well... it's a shame that this function is apparently never called.) C2/643E: C2 20 REP #$20 (Set 16-bit Accumulator) C2/6440: AD 55 1D LDA $1D55 (get Font color from Configuration) C2/6443: C9 DE 7B CMP #$7BDE (are Red, Green, and Blue all equal to 30?) C2/6446: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/6448: D0 1E BNE $6468 (branch if not desired Font color) C2/644A: AF 19 42 00 LDA $004219 (Joypad #1 status register) C2/644E: C9 28 CMP #$28 (are Up and Select pressed, and only those?) C2/6450: D0 16 BNE $6468 (branch if not) C2/6452: A9 02 LDA #$02 C2/6454: 0C 96 3A TSB $3A96 (set some flag) C2/6457: D0 0F BNE $6468 (branch if it was already set) C2/6459: A9 FF LDA #$FF C2/645B: 85 B9 STA $B9 C2/645D: A9 05 LDA #$05 C2/645F: 85 B8 STA $B8 C2/6461: A2 00 LDX #$00 C2/6463: A9 24 LDA #$24 C2/6465: 20 91 4E JSR $4E91 (queue up something. you tell me what.) C2/6468: 60 RTS (Blank Space - 919 bytes) C2/6469: FF FF FF FF C2/646D: FF FF FF FF C2/6471: FF FF FF FF C2/6475: FF FF FF FF C2/6479: FF FF FF FF C2/647D: FF FF FF FF C2/6481: FF FF FF FF C2/6485: FF FF FF FF C2/6489: FF FF FF FF C2/648D: FF FF FF FF C2/6491: FF FF FF FF C2/6495: FF FF FF FF C2/6499: FF FF FF FF C2/649D: FF FF FF FF C2/64A1: FF FF FF FF C2/64A5: FF FF FF FF C2/64A9: FF FF FF FF C2/64AD: FF FF FF FF C2/64B1: FF FF FF FF C2/64B5: FF FF FF FF C2/64B9: FF FF FF FF C2/64BD: FF FF FF FF C2/64C1: FF FF FF FF C2/64C5: FF FF FF FF C2/64C9: FF FF FF FF C2/64CD: FF FF FF FF C2/64D1: FF FF FF FF C2/64D5: FF FF FF FF C2/64D9: FF FF FF FF C2/64DD: FF FF FF FF C2/64E1: FF FF FF FF C2/64E5: FF FF FF FF C2/64E9: FF FF FF FF C2/64ED: FF FF FF FF C2/64F1: FF FF FF FF C2/64F5: FF FF FF FF C2/64F9: FF FF FF FF C2/64FD: FF FF FF FF C2/6501: FF FF FF FF C2/6505: FF FF FF FF C2/6509: FF FF FF FF C2/650D: FF FF FF FF C2/6511: FF FF FF FF C2/6515: FF FF FF FF C2/6519: FF FF FF FF C2/651D: FF FF FF FF C2/6521: FF FF FF FF C2/6525: FF FF FF FF C2/6529: FF FF FF FF C2/652D: FF FF FF FF C2/6531: FF FF FF FF C2/6535: FF FF FF FF C2/6539: FF FF FF FF C2/653D: FF FF FF FF C2/6541: FF FF FF FF C2/6545: FF FF FF FF C2/6549: FF FF FF FF C2/654D: FF FF FF FF C2/6551: FF FF FF FF C2/6555: FF FF FF FF C2/6559: FF FF FF FF C2/655D: FF FF FF FF C2/6561: FF FF FF FF C2/6565: FF FF FF FF C2/6569: FF FF FF FF C2/656D: FF FF FF FF C2/6571: FF FF FF FF C2/6575: FF FF FF FF C2/6579: FF FF FF FF C2/657D: FF FF FF FF C2/6581: FF FF FF FF C2/6585: FF FF FF FF C2/6589: FF FF FF FF C2/658D: FF FF FF FF C2/6591: FF FF FF FF C2/6595: FF FF FF FF C2/6599: FF FF FF FF C2/659D: FF FF FF FF C2/65A1: FF FF FF FF C2/65A5: FF FF FF FF C2/65A9: FF FF FF FF C2/65AD: FF FF FF FF C2/65B1: FF FF FF FF C2/65B5: FF FF FF FF C2/65B9: FF FF FF FF C2/65BD: FF FF FF FF C2/65C1: FF FF FF FF C2/65C5: FF FF FF FF C2/65C9: FF FF FF FF C2/65CD: FF FF FF FF C2/65D1: FF FF FF FF C2/65D5: FF FF FF FF C2/65D9: FF FF FF FF C2/65DD: FF FF FF FF C2/65E1: FF FF FF FF C2/65E5: FF FF FF FF C2/65E9: FF FF FF FF C2/65ED: FF FF FF FF C2/65F1: FF FF FF FF C2/65F5: FF FF FF FF C2/65F9: FF FF FF FF C2/65FD: FF FF FF FF C2/6601: FF FF FF FF C2/6605: FF FF FF FF C2/6609: FF FF FF FF C2/660D: FF FF FF FF C2/6611: FF FF FF FF C2/6615: FF FF FF FF C2/6619: FF FF FF FF C2/661D: FF FF FF FF C2/6621: FF FF FF FF C2/6625: FF FF FF FF C2/6629: FF FF FF FF C2/662D: FF FF FF FF C2/6631: FF FF FF FF C2/6635: FF FF FF FF C2/6639: FF FF FF FF C2/663D: FF FF FF FF C2/6641: FF FF FF FF C2/6645: FF FF FF FF C2/6649: FF FF FF FF C2/664D: FF FF FF FF C2/6651: FF FF FF FF C2/6655: FF FF FF FF C2/6659: FF FF FF FF C2/665D: FF FF FF FF C2/6661: FF FF FF FF C2/6665: FF FF FF FF C2/6669: FF FF FF FF C2/666D: FF FF FF FF C2/6671: FF FF FF FF C2/6675: FF FF FF FF C2/6679: FF FF FF FF C2/667D: FF FF FF FF C2/6681: FF FF FF FF C2/6685: FF FF FF FF C2/6689: FF FF FF FF C2/668D: FF FF FF FF C2/6691: FF FF FF FF C2/6695: FF FF FF FF C2/6699: FF FF FF FF C2/669D: FF FF FF FF C2/66A1: FF FF FF FF C2/66A5: FF FF FF FF C2/66A9: FF FF FF FF C2/66AD: FF FF FF FF C2/66B1: FF FF FF FF C2/66B5: FF FF FF FF C2/66B9: FF FF FF FF C2/66BD: FF FF FF FF C2/66C1: FF FF FF FF C2/66C5: FF FF FF FF C2/66C9: FF FF FF FF C2/66CD: FF FF FF FF C2/66D1: FF FF FF FF C2/66D5: FF FF FF FF C2/66D9: FF FF FF FF C2/66DD: FF FF FF FF C2/66E1: FF FF FF FF C2/66E5: FF FF FF FF C2/66E9: FF FF FF FF C2/66ED: FF FF FF FF C2/66F1: FF FF FF FF C2/66F5: FF FF FF FF C2/66F9: FF FF FF FF C2/66FD: FF FF FF FF C2/6701: FF FF FF FF C2/6705: FF FF FF FF C2/6709: FF FF FF FF C2/670D: FF FF FF FF C2/6711: FF FF FF FF C2/6715: FF FF FF FF C2/6719: FF FF FF FF C2/671D: FF FF FF FF C2/6721: FF FF FF FF C2/6725: FF FF FF FF C2/6729: FF FF FF FF C2/672D: FF FF FF FF C2/6731: FF FF FF FF C2/6735: FF FF FF FF C2/6739: FF FF FF FF C2/673D: FF FF FF FF C2/6741: FF FF FF FF C2/6745: FF FF FF FF C2/6749: FF FF FF FF C2/674D: FF FF FF FF C2/6751: FF FF FF FF C2/6755: FF FF FF FF C2/6759: FF FF FF FF C2/675D: FF FF FF FF C2/6761: FF FF FF FF C2/6765: FF FF FF FF C2/6769: FF FF FF FF C2/676D: FF FF FF FF C2/6771: FF FF FF FF C2/6775: FF FF FF FF C2/6779: FF FF FF FF C2/677D: FF FF FF FF C2/6781: FF FF FF FF C2/6785: FF FF FF FF C2/6789: FF FF FF FF C2/678D: FF FF FF FF C2/6791: FF FF FF FF C2/6795: FF FF FF FF C2/6799: FF FF FF FF C2/679D: FF FF FF FF C2/67A1: FF FF FF FF C2/67A5: FF FF FF FF C2/67A9: FF FF FF FF C2/67AD: FF FF FF FF C2/67B1: FF FF FF FF C2/67B5: FF FF FF FF C2/67B9: FF FF FF FF C2/67BD: FF FF FF FF C2/67C1: FF FF FF FF C2/67C5: FF FF FF FF C2/67C9: FF FF FF FF C2/67CD: FF FF FF FF C2/67D1: FF FF FF FF C2/67D5: FF FF FF FF C2/67D9: FF FF FF FF C2/67DD: FF FF FF FF C2/67E1: FF FF FF FF C2/67E5: FF FF FF FF C2/67E9: FF FF FF FF C2/67ED: FF FF FF FF C2/67F1: FF FF FF FF C2/67F5: FF FF FF FF C2/67F9: FF FF FF FF C2/67FD: FF FF FF C2/6800: 4C C2/6801: 13 68 ORA ($68,S),Y C2/6803: 4C 0C 68 JMP $680C C2/6806: 4C 1A 68 JMP $681A C2/6809: 4C 21 68 JMP $6821 C2/680C: 20 28 68 JSR $6828 C2/680F: 5C 00 50 7E JMP $7E5000 C2/6813: 20 28 68 JSR $6828 C2/6816: 5C 03 50 7E JMP $7E5003 C2/681A: 20 28 68 JSR $6828 C2/681D: 5C 06 50 7E JMP $7E5006 C2/6821: 20 28 68 JSR $6828 C2/6824: 5C 09 50 7E JMP $7E5009 C2/6828: 08 PHP C2/6829: C2 30 REP #$30 C2/682B: 48 PHA C2/682C: DA PHX C2/682D: 5A PHY C2/682E: 8B PHB C2/682F: 0B PHD C2/6830: C2 10 REP #$10 C2/6832: E2 20 SEP #$20 C2/6834: A9 00 48 LDA #$4800 C2/6837: AB PLB C2/6838: A2 00 LDX #$00 C2/683A: 00 DA BRK $DA C2/683C: 2B PLD C2/683D: A2 00 LDX #$00 C2/683F: 00 86 BRK $86 C2/6841: 00 A9 BRK $A9 C2/6843: 7E 8D 83 ROR $838D,X C2/6846: 21 A0 AND ($A0,X) C2/6848: 6C 68 84 JMP ($8468) C2/684B: F3 A9 SBC ($A9,S),Y C2/684D: C2 85 REP #$85 C2/684F: F5 A0 SBC $A0,X C2/6851: 00 50 BRK $50 C2/6853: 84 F6 STY $F6 C2/6855: A9 7E 85 LDA #$857E C2/6858: F8 SED C2/6859: 8B PHB C2/685A: A9 7E 48 LDA #$487E C2/685D: AB PLB C2/685E: 22 6D FF C2 JSR $C2FF6D C2/6862: AB PLB C2/6863: C2 30 REP #$30 C2/6865: 2B PLD C2/6866: AB PLB C2/6867: 7A PLY C2/6868: FA PLX C2/6869: 68 PLA C2/686A: 28 PLP C2/686B: 60 RTS (Compressed data - format explained in Function C2/FF6D) (Runs through C2/8A5F. See http://novaliaspirit.99k.org/ff6/docs.html for what this, mostly code and some data, looks like decompressed.) C2/686C: F4 21 (block is 8692 bytes in length, including this size and the control bytes) C2/686E: FF (control byte. all 8 bits are set, indicating that the next 8 values to read are all bytes of data meant to be copied to output buffer.) C2/686F: 4C C2/6870: 0C C2/6871: 50 C2/6872: 4C C2/6873: F3 C2/6874: 57 C2/6875: 4C C2/6876: C4 C2/6877: FF (next control byte) C2/6878: 69 C2/6879: 4C C2/687A: F2 C2/687B: 6C C2/687C: 08 C2/687D: C2 C2/687E: 30 C2/687F: 48 C2/6880: FF (control byte) C2/6881: DA C2/6882: 5A C2/6883: 8B C2/6884: 0B C2/6885: 20 C2/6886: 2F C2/6887: 50 C2/6888: 20 C2/6889: FF (control byte) C2/688A: 7F C2/688B: 50 C2/688C: 20 C2/688D: F7 C2/688E: 50 C2/688F: 20 C2/6890: A8 C2/6891: 50 C2/6892: FF (control byte) C2/6893: 20 C2/6894: 43 C2/6895: 50 C2/6896: 20 C2/6897: 4E C2/6898: 50 C2/6899: C2 C2/689A: 30 C2/689B: FF (control byte) C2/689C: 2B C2/689D: AB C2/689E: 7A C2/689F: FA C2/68A0: 68 C2/68A1: 28 C2/68A2: 6B C2/68A3: E2 C2/68A4: FF (control byte) C2/68A5: 20 C2/68A6: A9 C2/68A7: 7E C2/68A8: 48 C2/68A9: AB C2/68AA: A2 C2/68AB: 00 C2/68AC: 00 C2/68AD: FB (control byte. all bits but Bit 2 are set. that means that the first 5 next values to read are all bytes of data meant to be copied to output buffer, as are the last 2. however, the 6th value read is a 2-byte value that yields both a pointer earlier into our output buffer, and a quantity of bytes to copy within that buffer. again, the format is explained in Function C2/FF6D.) C2/68AE: DA C2/68AF: 2B C2/68B0: 13 C2/68B1: 00 C2/68B2: 86 C2/68B3: 00 20 (not normal input data, but a pointer+quantity indicating bytes to read from elsewhere in output block, and copy to current position in output block.) C2/68B5: 62 (normal data bytes again) C2/68B6: 50 C2/68B7: FF (control byte) C2/68B8: 60 C2/68B9: A9 C2/68BA: F0 C2/68BB: 8F C2/68BC: 00 C2/68BD: 13 C2/68BE: 00 C2/68BF: 22 C2/68C0: FF 04 00 C2/68C3: C5 60 C2/68C5: A9 8F 8F C2/68C8: 00 FF C2/68CA: 21 00 C2/68CC: 7B C2/68CD: 8F 00 42 00 C2/68D1: 8F FD 0B 35 C2/68D5: 00 0C C2/68D7: 42 00 C2/68D9: 60 C2/68DA: A9 5C FF C2/68DD: 8D 00 15 C2/68E0: 8D 04 15 C2/68E3: A2 33 C2/68E5: FF 72 8E 01 C2/68E9: 15 A2 C2/68EB: 64 72 C2/68ED: 8E FF 05 C2/68F0: 15 A9 C2/68F2: 7E 8D 03 C2/68F5: 15 8D C2/68F7: FF 07 15 60 C2/68FB: 20 11 77 C2/68FE: 7B C2/68FF: 20 FF 93 C2/6902: 50 20 C2/6904: 15 78 C2/6906: 20 4F 78 C2/6909: FF 20 85 74 C2/690D: 20 FA 78 C2/6910: 60 C2/6911: 8F DF 02 13 C2/6915: 00 A9 C2/6917: 10 23 C2/6919: 08 C2/691A: A9 02 FB C2/691D: 8F 01 25 20 C2/6921: 7B C2/6922: A5 19 C2/6924: 30 18 C2/6926: FF 0A AA FC C2/692A: DF 50 A5 06 C2/692E: 89 FF 80 C2/6931: D0 08 C2/6933: 20 0F 75 C2/6936: 20 FD FF C2/6939: 71 80 C2/693B: E8 C2/693C: A9 FF 8D C2/693F: 00 02 C2/6941: FF A0 0F 00 C2/6945: 84 15 C2/6947: A9 00 A0 C2/694A: FF A0 55 20 C2/694E: DC 74 A4 C2/6951: 15 F0 C2/6953: FE 95 28 C2/6956: F4 60 AE C2/6959: 51 80 C2/695B: 52 97 C2/695D: FF 52 A6 52 C2/6961: E0 52 C2/6963: EC 52 3F C2/6966: FF 53 77 53 C2/696A: 8A C2/696B: 53 9C C2/696D: 53 B5 C2/696F: D7 53 C2/6971: BC 53 86 C2/6974: 08 C2/6975: 0D 8B 00 C2/6978: 31 51 C2/697A: FA C2/697B: 96 20 C2/697D: EE A3 B0 C2/6980: 7B C2/6981: A8 C2/6982: 85 19 C2/6984: 84 F7 C2/6986: 25 84 C2/6988: 27 6A C2/698A: 08 C2/698B: 4E 50 60 C2/698E: 55 FF C2/6990: 51 A5 C2/6992: 51 00 C2/6994: 00 63 C2/6996: 10 BD C2/6998: DF 77 00 00 C2/699C: FF 7F 1B 99 C2/69A0: 20 06 FF C2/69A3: 53 A2 C2/69A5: 00 30 C2/69A7: A0 65 C2/69A9: 74 20 C2/69AB: AF 24 73 A2 C2/69AF: 20 38 31 C2/69B2: 31 42 C2/69B4: 39 43 BF C2/69B7: 7B C2/69B8: A9 01 20 C2/69BB: 3A C2/69BC: 73 36 C2/69BE: 09 45 D9 C2/69C1: 74 57 C2/69C3: 19 40 01 C2/69C6: 35 51 C2/69C8: 57 11 C2/69CA: A0 00 C2/69CC: FF 01 84 25 C2/69D0: A0 2C C2/69D2: 01 84 C2/69D4: 15 FF C2/69D6: E6 19 C2/69D8: A9 0F 85 C2/69DB: 32 60 C2/69DD: A4 FF C2/69DF: 15 D0 C2/69E1: 04 A9 C2/69E3: FF 85 19 60 C2/69E7: 16 48 C2/69E9: 09 63 7B C2/69EC: 3C 09 40 C2/69EF: 53 09 C2/69F1: 3C 09 37 C2/69F4: 49 55 C3 C2/69F7: 91 11 C2/69F9: C0 38 29 C2/69FC: 40 C2/69FD: 38 C2/69FE: 29 60 38 C2/6A01: 29 E5 E0 C2/6A04: 38 C2/6A05: 29 A0 38 C2/6A08: 29 B1 01 C2/6A0B: 03 7C C2/6A0D: A9 09 04 C2/6A10: 59 09 BA C2/6A13: 01 23 C2/6A15: E2 21 C2/6A17: C3 01 C2/6A19: EC 29 CC C2/6A1C: 01 D9 C2/6A1E: 43 E2 C2/6A20: 21 D5 C2/6A22: 01 E3 C2/6A24: 7B C2/6A25: E3 11 C2/6A27: A9 01 1B C2/6A2A: A0 39 C2/6A2C: AC 08 A0 C2/6A2F: 3C A5 00 C2/6A32: 7C 19 14 C2/6A35: 02 FD C2/6A37: C8 C2/6A38: AC 08 C2 C2/6A3B: 20 A9 40 C2/6A3E: 30 9D C2/6A40: 53 01 C2/6A42: 37 0D C2/6A44: 00 28 C2/6A46: 3A C2/6A47: 60 C2/6A48: 33 72 C2/6A4A: C0 33 1A C2/6A4D: 7E 82 09 C2/6A50: 12 E6 C2/6A52: 19 A0 43 C2/6A55: 04 A6 C2/6A57: 00 97 C2/6A59: FF 8F 05 73 C2/6A5D: 00 FF C2/6A5F: 61 00 C2/6A61: 82 09 0A C2/6A64: 9F 20 97 78 C2/6A68: A0 1E C2/6A6A: 1E 12 82 C2/6A6D: 09 35 66 C2/6A70: A8 C2/6A71: 00 C5 C2/6A73: 53 AD C2/6A75: 00 A8 C2/6A77: 00 31 C2/6A79: 54 8D 1A C2/6A7C: 79 AF 94 C2/6A7F: 0A C2/6A80: 36 09 C2/6A82: 83 7B C2/6A84: A9 02 64 C2/6A87: 21 4D C2/6A89: A3 56 C2/6A8B: 19 A0 4A C2/6A8E: 79 11 82 C2/6A91: 09 07 62 C2/6A94: 02 F1 C2/6A96: F0 A5 C2/6A98: 00 82 C2/6A9A: 09 7B 01 C2/6A9D: A0 C0 C2/6A9F: 03 84 C2/6AA1: D1 15 C2/6AA3: 33 09 C2/6AA5: 52 19 C2/6AA7: E4 09 C2/6AA9: 60 C2/6AAA: A8 C2/6AAB: 00 DB C2/6AAD: 76 BE C2/6AAF: 2C 1A 5C C2/6AB2: 7A C2/6AB3: 9D 00 35 C2/6AB6: 0D 00 40 C2/6AB9: FF 9D 01 33 C2/6ABD: A9 A0 9D C2/6AC0: 01 34 C2/6AC2: 4A C2/6AC3: E4 42 C2/6AC5: 5F F0 22 90 C2/6AC9: F8 C2/6ACA: 2A C2/6ACB: 82 09 33 C2/6ACE: 62 02 0E C2/6AD1: 73 01 C2/6AD3: 15 A2 C2/6AD5: 00 8E C2/6AD7: 09 A6 22 C2/6ADA: 2A C2/6ADB: 13 E4 C2/6ADD: 11 C4 C2/6ADF: 37 01 C2/6AE1: 2C 03 08 C2/6AE4: 64 21 C2/6AE6: 42 23 C2/6AE8: 82 09 0E C2/6AEB: A9 EB 40 C2/6AEE: 04 20 C2/6AF0: 0B C2/6AF1: 01 A5 C2/6AF3: 00 20 C2/6AF5: BD 5C FE LDA $FE5C,X C2/6AF8: 82 09 0D BRL $C07804 C2/6AFB: E6 19 INC $19 C2/6AFD: 64 31 STZ $31 C2/6AFF: A9 80 CF LDA #$CF80 C2/6B02: 85 33 STA $33 C2/6B04: A0 A0 LDY #$A0 C2/6B06: D2 02 CMP ($02) C2/6B08: 82 09 08 BRL $C07314 C2/6B0B: A0 FD LDY #$FD C2/6B0D: E0 B8 CPX #$B8 C2/6B0F: 1A INC C2/6B10: A5 18 LDA $18 C2/6B12: 29 03 D0 AND #$D003 C2/6B15: 06 2F ASL $2F C2/6B17: C2 20 REP #$20 C2/6B19: E6 27 INC $27 C2/6B1B: 5B TCD C2/6B1C: 1A INC C2/6B1D: 02 81 COP $81 C2/6B1F: 02 87 COP $87 C2/6B21: 09 FD 7B ORA #$7BFD C2/6B24: A0 00 LDY #$00 C2/6B26: 60 RTS C2/6B27: AA TAX C2/6B28: 7C C9 53 JMP ($53C9,X) C2/6B2B: CD FF 53 CMP $53FF C2/6B2E: D5 53 CMP $53,X C2/6B30: A6 1D LDX $1D C2/6B32: FE 00 3A INC $3A00,X C2/6B35: FF 9E 01 37 SBC $37019E,X C2/6B39: A5 33 LDA $33 C2/6B3B: 30 56 BMI $6B93 C2/6B3D: A6 FF LDX $FF C2/6B3F: 1D 7B A8 ORA $A87B,X C2/6B42: 9E 01 38 STZ $3801,X C2/6B45: A6 1D LDX $1D C2/6B47: FF BD 01 37 SBC $3701BD,X C2/6B4B: 18 CLC C2/6B4C: 7D 01 38 ADC $3801,X C2/6B4F: 20 FF A5 JSR $A5FF C2/6B52: 54 48 AF MVN $48,$AF C2/6B55: 12 42 ORA ($42) C2/6B57: 00 29 BRK $29 C2/6B59: 7F 40 F0 F8 ADC $F8F040,X C2/6B5D: A9 08 8F LDA #$8F08 C2/6B60: 1B TCS C2/6B61: 30 08 BMI $6B6B C2/6B63: BE D6 03 LDX $03D6,Y C2/6B66: 68 PLA C2/6B67: 8F 1C 21 00 STA $00211C C2/6B6B: DF 0B A6 FF CMP $FFA60B,X C2/6B6F: 1D C2 20 ORA $20C2,X C2/6B72: AF 35 21 00 LDA $002135 C2/6B76: 99 EF 80 STA $80EF,Y C2/6B79: 41 E2 EOR ($E2,X) C2/6B7B: 20 BE 0B JSR $0BBE C2/6B7E: 38 SEC C2/6B7F: 18 CLC C2/6B80: 69 DF 04 ADC #$04DF C2/6B83: 9D 01 38 STA $3801,X C2/6B86: C8 INY C2/6B87: FF 03 C0 C0 SBC $C0C003,X C2/6B8B: FF 00 D0 B6 SBC $B6D000,X C2/6B8F: FE 01 37 INC $3701,X C2/6B92: 38 SEC C2/6B93: 60 RTS C2/6B94: FD 18 A2 SBC $A218,X C2/6B97: 03 35 ORA $35,S C2/6B99: 54 39 54 MVN $39,$54 C2/6B9C: 41 54 EOR ($54,X) C2/6B9E: D6 AB DEC $AB,X C2/6BA0: 1B TCS C2/6BA1: 00 39 BRK $39 C2/6BA3: B3 03 LDA ($03,S),Y C2/6BA5: 5B TCD C2/6BA6: B7 0B LDA [$0B],Y C2/6BA8: A9 10 F4 LDA #$F410 C2/6BAB: FC 03 BE JSR ($BE03,X) C2/6BAE: 9B TXY C2/6BAF: 0A ASL C2/6BB0: D5 C3 CMP $C3,X C2/6BB2: 00 45 BRK $45 C2/6BB4: 99 02 F5 STA $F502,Y C2/6BB7: 45 F2 EOR $F2 C2/6BB9: 93 B3 STA ($B3,S),Y C2/6BBB: 08 PHP C2/6BBC: 24 18 BIT $18 C2/6BBE: 69 40 EB ADC #$EB40 C2/6BC1: FF A5 00 EB SBC $EB00A5,X C2/6BC5: AA TAX C2/6BC6: BF 6D FE C2 LDA $C2FE6D,X C2/6BCA: BE A2 03 LDX $03A2,Y C2/6BCD: B3 54 LDA ($54,S),Y C2/6BCF: B7 54 LDA [$54],Y C2/6BD1: C1 16 CMP ($16,X) C2/6BD3: 1C A9 FB TRB $FBA9 C2/6BD6: 01 9D ORA ($9D,X) C2/6BD8: 1D 04 18 ORA $1804,X C2/6BDB: 29 01 F0 AND #$F001 C2/6BDE: 0F DE BE 03 ORA $03BEDE C2/6BE2: 00 39 BRK $39 C2/6BE4: C9 40 B2 CMP #$B240 C2/6BE7: 00 DA BRK $DA C2/6BE9: 54 F7 FE MVN $F7,$FE C2/6BEC: 00 39 BRK $39 C2/6BEE: 0B PHD C2/6BEF: 0C A9 40 TSB $40A9 C2/6BF2: 8F 05 DD 42 STA $42DD05 C2/6BF6: 31 00 AND ($00),Y C2/6BF8: 04 42 TSB $42 C2/6BFA: 00 A7 BRK $A7 C2/6BFC: 04 8F TSB $8F C2/6BFE: 06 F7 ASL $F7 C2/6C00: 42 00 WDM $00 C2/6C02: EA NOP C2/6C03: CA DEX C2/6C04: 0C 64 F2 TSB $F264 C2/6C07: A0 FC LDY #$FC C2/6C09: FF 00 64 E2 SBC $E26400,X C2/6C0D: 64 E9 STZ $E9 C2/6C0F: 64 EA STZ $EA C2/6C11: AF 7F 15 42 LDA $42157F C2/6C15: 00 85 BRK $85 C2/6C17: E8 INX C2/6C18: AF 14 DC 04 LDA $04DC14 C2/6C1C: FD E7 A7 SBC $A7E7,X C2/6C1F: 04 C5 TSB $C5 C2/6C21: E2 90 SEP #$90 C2/6C23: 02 80 COP $80 C2/6C25: 07 FE ORA [$FE] C2/6C27: 2F 02 00 01 AND $010002 C2/6C2B: 80 0C BRA $6C39 C2/6C2D: 7B TDC C2/6C2E: A5 EA LDA $EA C2/6C30: FF 38 E5 E2 SBC $E2E538,X C2/6C34: C2 20 REP #$20 C2/6C36: 49 FF FF EOR #$FFFF C2/6C39: FF 1A 99 FA SBC $FA991A,X C2/6C3D: 3D A5 E7 AND $E7A5,X C2/6C40: 18 CLC C2/6C41: 65 FF ADC $FF C2/6C43: E9 85 E9 SBC #$E985 C2/6C46: E2 20 SEP #$20 C2/6C48: E6 E2 INC $E2 C2/6C4A: 88 DEY C2/6C4B: F6 10 INC $10,X C2/6C4D: 05 D0 ORA $D0 C2/6C4F: D0 A2 BNE $6BF3 C2/6C51: 03 3D ORA $3D,S C2/6C53: 55 41 EOR $41,X C2/6C55: 55 FF EOR $FF,X C2/6C57: 59 55 A0 EOR $A055,Y C2/6C5A: FF FF 84 10 SBC $1084FF,X C2/6C5E: A0 FF LDY #$FF C2/6C60: 40 RTI C2/6C61: 00 84 BRK $84 C2/6C63: 0E A9 7F ASL $7FA9 C2/6C66: 85 14 STA $14 C2/6C68: F2 5F SBC ($5F) C2/6C6A: 0B PHD C2/6C6B: 27 AB AND [$AB] C2/6C6D: 13 86 ORA ($86,S),Y C2/6C6F: 13 36 ORA ($36,S),Y C2/6C71: C2 20 REP #$20 C2/6C73: A5 FF LDA $FF C2/6C75: 27 C9 AND [$C9] C2/6C77: 1F 01 F0 2F ORA $2FF001,X C2/6C7B: C9 00 FF CMP #$FF00 C2/6C7E: 01 B0 ORA ($B0,X) C2/6C80: 24 29 BIT $29 C2/6C82: 07 00 ORA [$00] C2/6C84: D0 1F BNE $6CA5 C2/6C86: FF A5 27 38 SBC $3827A5,X C2/6C8A: E9 08 00 SBC #$0008 C2/6C8D: 29 F8 FF AND #$FFF8 C2/6C90: FF 0A 0A 0A SBC $0A0A0A,X C2/6C94: 18 CLC C2/6C95: 69 C0 23 ADC #$23C0 C2/6C98: DB STP C2/6C99: 85 12 STA $12 C2/6C9B: 50 45 BVC $6CE2 C2/6C9D: 85 10 STA $10 C2/6C9F: 8E 0B 38 STX $380B C2/6CA2: 60 RTS C2/6CA3: F3 E2 SBC ($E2,S),Y C2/6CA5: 20 1F 15 JSR $151F C2/6CA8: 0D 0C A4 ORA $A40C C2/6CAB: 55 A8 EOR $A8,X C2/6CAD: 55 4B EOR $4B,X C2/6CAF: B2 55 LDA ($55) C2/6CB1: 95 1C STA $1C,X C2/6CB3: 0F F8 02 B0 ORA $B002F8 C2/6CB7: 00 0C BRK $0C C2/6CB9: BE 0B FF LDX $FF0B,Y C2/6CBC: 33 85 AND ($85,S),Y C2/6CBE: 32 DE AND ($DE) C2/6CC0: 01 33 ORA ($33,X) C2/6CC2: 38 SEC C2/6CC3: 60 RTS C2/6CC4: FA PLX C2/6CC5: 70 03 BVS $6CCA C2/6CC7: 32 0D AND ($0D) C2/6CC9: 0C CC 55 TSB $55CC C2/6CCC: D2 55 CMP ($55) C2/6CCE: EB XBA C2/6CCF: 73 55 ADC ($55,S),Y C2/6CD1: 20 B6 03 JSR $03B6 C2/6CD4: 97 0C STA [$0C],Y C2/6CD6: 80 9D BRA $6C75 C2/6CD8: 00 3C BRK $3C C2/6CDA: 05 F7 ORA $F7 C2/6CDC: A9 3E 56 LDA #$563E C2/6CDF: F1 12 SBC ($12),Y C2/6CE1: 20 5F 75 JSR $755F C2/6CE4: 38 SEC C2/6CE5: FD 60 A5 SBC $A560,X C2/6CE8: 0C 36 F0 TSB $F036 C2/6CEB: 17 C9 ORA [$C9],Y C2/6CED: 01 F0 ORA ($F0,X) C2/6CEF: BF 07 A6 1D LDA $1DA607,X C2/6CF3: DE 00 36 DEC $3600,X C2/6CF6: 9E 05 02 STZ $0205,X C2/6CF9: F7 A0 SBC [$A0],Y C2/6CFB: F9 56 AD SBC $AD56,Y C2/6CFE: 00 E6 BRK $E6 C2/6D00: 36 80 ROL $80,X C2/6D02: ED 7F BD SBC $BD7F C2/6D05: 01 3B ORA ($3B,X) C2/6D07: C9 FE D0 CMP #$D0FE C2/6D0A: 03 AD ORA $AD,S C2/6D0C: 03 AB ORA $AB,S C2/6D0E: C2 20 REP #$20 C2/6D10: C0 03 AA CPY #$AA03 C2/6D13: C2 05 REP #$05 C2/6D15: 75 C6 ADC $C6,X C2/6D17: 05 20 ORA $20 C2/6D19: F8 SED C2/6D1A: B5 0B LDA $0B,X C2/6D1C: B7 05 LDA [$05],Y C2/6D1E: 9A TXS C2/6D1F: 0C 3A 4C TSB $4C3A C2/6D22: DC 55 7B JMP [$7B55] C2/6D25: FF E6 34 A5 SBC $A534E6,X C2/6D29: 18 CLC C2/6D2A: 18 CLC C2/6D2B: 65 34 ADC $34 C2/6D2D: AA TAX C2/6D2E: FF BF 00 FD SBC $FD00BF,X C2/6D32: C0 60 23 CPY #$2360 C2/6D35: 7C 01 DF JMP ($DF01,X) C2/6D38: 59 56 02 EOR $0256,Y C2/6D3B: D9 56 1E CMP $1E56,Y C2/6D3E: 26 79 ROL $79 C2/6D40: 56 FF LSR $FF,X C2/6D42: 02 99 COP $99 C2/6D44: 56 03 LSR $03,X C2/6D46: B9 56 04 LDA $0456,Y C2/6D49: D9 FF 56 CMP $56FF,Y C2/6D4C: FE 63 10 INC $1063,X C2/6D4F: DE 66 5B DEC $5B66,X C2/6D52: 56 FF LSR $FF,X C2/6D54: B4 45 LDY $45,X C2/6D56: 2E 35 08 ROL $0835 C2/6D59: 31 E8 AND ($E8),Y C2/6D5B: 2C FF C7 BIT $C7FF C2/6D5E: 28 PLP C2/6D5F: A6 24 LDX $24 C2/6D61: A5 1C LDA $1C C2/6D63: 84 18 STY $18 C2/6D65: FF 64 14 63 SBC $631464,X C2/6D69: 10 BB BPL $6D26 C2/6D6B: 21 36 AND ($36,X) C2/6D6D: 11 FF ORA ($FF),Y C2/6D6F: 7F 73 00 00 ADC $000073,X C2/6D73: 39 52 D7 AND $D752,Y C2/6D76: 45 DF EOR $DF C2/6D78: 51 39 EOR ($39),Y C2/6D7A: EC 2C E7 CPX $E72C C2/6D7D: 44 16 85 MVP $16,$85 C2/6D80: 20 EF 84 JSR $84EF C2/6D83: 18 CLC C2/6D84: 84 14 STY $14 C2/6D86: 4D 2E 7B EOR $7B2E C2/6D89: 5A PHY C2/6D8A: 00 FF BRK $FF C2/6D8C: 00 94 BRK $94 C2/6D8E: 3D 53 35 AND $3553,X C2/6D91: EE 2C AA INC $AA2C C2/6D94: 1B TCS C2/6D95: 24 A5 BIT $A5 C2/6D97: 66 06 ROR $06 C2/6D99: 64 1C STZ $1C C2/6D9B: 4D 0E 89 EOR $890E C2/6D9E: 1E 51 0E ASL $0E51,X C2/6DA1: FF D6 45 00 SBC $0045D6,X C2/6DA5: 00 AA BRK $AA C2/6DA7: 20 A7 20 JSR $20A7 C2/6DAA: CF 85 1C 43 CMP $431C85 C2/6DAE: 18 CLC C2/6DAF: 89 2E 89 BIT #$892E C2/6DB2: 4E CC 24 LSR $24CC C2/6DB5: F8 SED C2/6DB6: 13 09 ORA ($09,S),Y C2/6DB8: B9 9E 51 LDA $519E,Y C2/6DBB: 0E 63 10 ASL $1063 C2/6DBE: AA TAX C2/6DBF: 7C FD 9F JMP ($9FFD,X) C2/6DC2: 56 01 LSR $01,X C2/6DC4: 57 36 EOR [$36],Y C2/6DC6: 57 AB EOR [$AB],Y C2/6DC8: 13 FE ORA ($FE,S),Y C2/6DCA: 05 29 ORA $29 C2/6DCC: 5F 03 F0 37 EOR $37F003,X C2/6DD0: 0A ASL C2/6DD1: AA TAX C2/6DD2: F1 05 SBC ($05),Y C2/6DD4: 46 DE LSR $DE C2/6DD6: 06 2E ASL $2E C2/6DD8: F1 12 SBC ($12),Y C2/6DDA: E2 20 SEP #$20 C2/6DDC: DA PHX C2/6DDD: FE 05 FA INC $FA05,X C2/6DE0: F8 SED C2/6DE1: 02 FB COP $FB C2/6DE3: 16 77 ASL $77,X C2/6DE5: 29 7F 69 AND #$697F C2/6DE8: 28 PLP C2/6DE9: 04 34 TSB $34 C2/6DEB: A6 1D LDX $1D C2/6DED: C4 05 CPY $05 C2/6DEF: BC BE 0B LDY $0BBE,X C2/6DF2: E9 05 F0 SBC #$F005 C2/6DF5: 05 20 ORA $20 C2/6DF7: 8D C6 05 STA $05C6 C2/6DFA: 18 CLC C2/6DFB: FF 60 00 00 SBC $000060,X C2/6DFF: 4E 57 66 LSR $6657 C2/6E02: 57 4E EOR [$4E],Y C2/6E04: FF 57 7F 57 SBC $577F57,X C2/6E08: 01 7E ORA ($7E,X) C2/6E0A: 57 01 EOR [$01],Y C2/6E0C: 84 6A STY $6A C2/6E0E: 2D 17 91 AND $9117 C2/6E11: 2D 17 9E AND $9E17 C2/6E14: 2D 0F FE AND $FE0F C2/6E17: AB PLB C2/6E18: 2D 17 D5 AND $D517 C2/6E1B: B0 2D BCS $6E4A C2/6E1D: 17 BD ORA [$BD],Y C2/6E1F: 2D 17 CA AND $CA17 C2/6E22: 3F 17 00 01 AND $010017,X C2/6E26: DF 08 00 4C CMP $4C0008,X C2/6E2A: 35 03 AND $03,X C2/6E2C: 24 07 BIT $07 C2/6E2E: 35 10 AND $10,X C2/6E30: FF 00 60 35 SBC $356000,X C2/6E34: 08 PHP C2/6E35: 10 62 BPL $6E99 C2/6E37: 35 03 AND $03,X C2/6E39: F7 08 SBC [$08],Y C2/6E3B: 00 64 BRK $64 C2/6E3D: 6A ROR C2/6E3E: 07 66 ORA [$66] C2/6E40: 35 08 AND $08,X C2/6E42: 20 D5 68 JSR $68D5 C2/6E45: 6E 0F 6A ROR $6A0F C2/6E48: 6A ROR C2/6E49: 07 6C ORA [$6C] C2/6E4B: 77 07 ADC [$07],Y C2/6E4D: 6E 35 FE ROR $FE35 C2/6E50: 5D 0F 75 EOR $750F,X C2/6E53: 03 10 ORA $10,S C2/6E55: 00 4E BRK $4E C2/6E57: 75 08 ADC $08,X C2/6E59: 97 00 STA [$00],Y C2/6E5B: 60 RTS C2/6E5C: 75 6B ADC $6B,X C2/6E5E: 07 75 ORA [$75] C2/6E60: 6F 0F 96 07 ADC $07960F C2/6E64: 66 A9 ROR $A9 C2/6E66: 75 78 ADC $78,X C2/6E68: 07 9A ORA [$9A] C2/6E6A: 0F 6A 96 07 ORA $07966A C2/6E6E: 6C A3 07 JMP ($07A3) C2/6E71: 6E FF 75 ROR $75FF C2/6E74: 40 RTI C2/6E75: A8 TAY C2/6E76: 40 RTI C2/6E77: 70 B0 BVS $6E29 C2/6E79: 48 PHA C2/6E7A: 68 PLA C2/6E7B: FF A8 70 68 SBC $6870A8,X C2/6E7F: 60 RTS C2/6E80: A8 TAY C2/6E81: 80 D0 BRA $6E53 C2/6E83: 88 DEY C2/6E84: FF 58 90 A8 SBC $A89058,X C2/6E88: 98 TYA C2/6E89: 88 DEY C2/6E8A: 50 58 BVC $6EE4 C2/6E8C: 70 FF BVS $6E8D C2/6E8E: 60 RTS C2/6E8F: 90 60 BCC $6EF1 C2/6E91: 10 78 BPL $6F0B C2/6E93: 08 PHP C2/6E94: C2 30 REP #$30 C2/6E96: FF 48 DA 5A SBC $5ADA48,X C2/6E9A: 8B PHB C2/6E9B: 0B PHD C2/6E9C: 20 2F 50 JSR $502F C2/6E9F: FF 20 13 58 SBC $581320,X C2/6EA3: 20 72 58 JSR $5872 C2/6EA6: 20 43 FD JSR $FD43 C2/6EA9: 50 0B BVC $6EB6 C2/6EAB: 01 C2 ORA ($C2,X) C2/6EAD: 30 2B BMI $6EDA C2/6EAF: AB PLB C2/6EB0: 7A PLY C2/6EB1: FA PLX C2/6EB2: 77 68 ADC [$68],Y C2/6EB4: 28 PLP C2/6EB5: 6B RTL C2/6EB6: 5D 00 20 EOR $2000,X C2/6EB9: 3C 58 69 BIT $6958,X C2/6EBC: 02 F2 COP $F2 C2/6EBE: 72 38 ADC ($38) C2/6EC0: 04 7D TSB $7D C2/6EC2: 28 PLP C2/6EC3: 64 38 STZ $38 C2/6EC5: FF 61 60 8B SBC $8B6061,X C2/6EC9: FF A9 00 48 SBC $4800A9,X C2/6ECD: AB PLB C2/6ECE: A9 03 8D LDA #$8D03 C2/6ED1: 01 FF ORA ($FF,X) C2/6ED3: 21 A6 AND ($A6,X) C2/6ED5: 00 8E BRK $8E C2/6ED7: 02 21 COP $21 C2/6ED9: A9 07 FF LDA #$FF07 C2/6EDC: 8D 05 21 STA $2105 C2/6EDF: A9 78 8D LDA #$8D78 C2/6EE2: 07 21 ORA [$21] C2/6EE4: FF A9 7C 8D SBC $8D7CA9,X C2/6EE8: 08 PHP C2/6EE9: 21 A9 AND ($A9,X) C2/6EEB: 74 8D STZ $8D,X C2/6EED: FF 09 21 8D SBC $8D2109,X C2/6EF1: 0A ASL C2/6EF2: 21 A9 AND ($A9,X) C2/6EF4: 22 8D FF 0B JSR $0BFF8D C2/6EF8: 21 A9 AND ($A9,X) C2/6EFA: 77 8D ADC [$8D],Y C2/6EFC: 0C 21 7B TSB $7B21 C2/6EFF: 6F 8D 1A 21 ADC $211A8D C2/6F03: AB PLB C2/6F04: 85 30 STA $30 C2/6F06: AD 58 90 LDA $9058 C2/6F09: F8 SED C2/6F0A: FE B2 38 INC $38B2,X C2/6F0D: 22 0C 00 EE JSR $EE000C C2/6F11: 60 RTS C2/6F12: B5 58 LDA $58,X C2/6F14: FF 4C 5A 66 SBC $665A4C,X C2/6F18: 5A PHY C2/6F19: 70 5A BVS $6F75 C2/6F1B: 20 70 EF JSR $EF70 C2/6F1E: 5C 20 5D 5B JMP $5B5D20 C2/6F22: 1A INC C2/6F23: 10 22 BPL $6F47 C2/6F25: 09 00 FF ORA #$FF00 C2/6F28: EE 22 03 INC $0322 C2/6F2B: 00 EE BRK $EE C2/6F2D: AB PLB C2/6F2E: 20 45 51 JSR $5145 C2/6F31: 5C 08 01 28 JMP $280108 C2/6F35: 0B PHD C2/6F36: 43 61 EOR $61,S C2/6F38: 60 RTS C2/6F39: 4A LSR C2/6F3A: 29 80 4A AND #$4A80 C2/6F3D: 29 F1 A0 AND #$A0F1 C2/6F40: 4A LSR C2/6F41: 29 37 79 AND #$7937 C2/6F44: BA TSX C2/6F45: B9 A9 68 LDA $68A9,Y C2/6F48: 85 39 STA $39 C2/6F4A: FF A9 48 85 SBC $8548A9,X C2/6F4E: 3A DEC C2/6F4F: A9 78 85 LDA #$8578 C2/6F52: 3B TSC C2/6F53: EF A9 C0 85 SBC $85C0A9 C2/6F57: 3C 70 03 BIT $0370,X C2/6F5A: 3D A9 90 AND $90A9,X C2/6F5D: FF 85 3E 64 SBC $643E85,X C2/6F61: 29 64 2A AND #$2A64 C2/6F64: A0 38 LDY #$38 C2/6F66: 7F 00 84 2B ADC $2B8400,X C2/6F6A: 64 37 STZ $37 C2/6F6C: 64 38 STZ $38 C2/6F6E: 72 00 ADC ($00) C2/6F70: 7B TDC C2/6F71: C0 5F 77 CPY #$775F C2/6F74: 00 7B BRK $7B C2/6F76: 20 08 5B JSR $5B08 C2/6F79: B1 02 LDA ($02),Y C2/6F7B: 32 36 AND ($36) C2/6F7D: 01 02 ORA ($02,X) C2/6F7F: 35 01 AND $01,X C2/6F81: 33 0B AND ($0B,S),Y C2/6F83: 90 64 BCC $6FE9 C2/6F85: B1 12 LDA ($12),Y C2/6F87: BF 08 40 46 LDA $464008,X C2/6F8B: 01 A7 ORA ($A7,X) C2/6F8D: 12 C9 ORA ($C9) C2/6F8F: 00 46 BRK $46 C2/6F91: 01 05 ORA ($05,X) C2/6F93: 1A INC C2/6F94: 44 11 06 MVP $11,$06 C2/6F97: 3B TSC C2/6F98: 13 BF ORA ($BF,S),Y C2/6F9A: 31 A0 AND ($A0),Y C2/6F9C: 70 64 BVS $7002 C2/6F9E: A9 03 A8 LDA #$A803 C2/6FA1: 22 10 24 52 JSR $522410 C2/6FA5: 21 ED AND ($ED,X) C2/6FA7: 00 30 BRK $30 C2/6FA9: 52 21 EOR ($21) C2/6FAB: C3 01 CMP $01,S C2/6FAD: 50 52 BVC $7001 C2/6FAF: 21 FF AND ($FF,X) C2/6FB1: 39 B2 72 AND $72B2,Y C2/6FB4: 00 27 BRK $27 C2/6FB6: 30 09 BMI $6FC1 C2/6FB8: 72 00 ADC ($00) C2/6FBA: ED 5A 8D SBC $8D5A C2/6FBD: 1A INC C2/6FBE: 92 DE STA ($DE) C2/6FC0: B1 09 LDA ($09),Y C2/6FC2: 7B TDC C2/6FC3: 9D 01 39 STA $3901,X C2/6FC6: 9A TXS C2/6FC7: 0C 36 A9 TSB $A936 C2/6FCA: F9 5A 9C SBC $9C5A,Y C2/6FCD: 04 2F TSB $2F C2/6FCF: 02 A0 COP $A0 C2/6FD1: FF 9D 00 38 SBC $38009D,X C2/6FD5: 50 F4 BVC $6FCB C2/6FD7: 02 B6 COP $B6 C2/6FD9: 21 9A AND ($9A,X) C2/6FDB: 04 BF TSB $BF C2/6FDD: 01 0A ORA ($0A,X) C2/6FDF: 03 0E ORA $0E,S C2/6FE1: 28 PLP C2/6FE2: C8 INY C2/6FE3: 19 55 60 ORA $6055,Y C2/6FE6: CF 61 02 BE CMP $BE0261 C2/6FEA: 09 07 03 ORA #$0307 C2/6FED: 0E 2D C8 ASL $C82D C2/6FF0: 19 FD 80 ORA $80FD,Y C2/6FF3: CF 19 E6 19 CMP $19E619 C2/6FF7: A9 01 85 LDA #$8501 C2/6FFA: 32 76 AND ($76) C2/6FFC: 63 00 ADC $00,S C2/6FFE: A0 CA LDY #$CA C2/7000: 6F 08 0F 85 ADC $850F08 C2/7004: 32 5D AND ($5D) C2/7006: 2A ROL C2/7007: 9B TXY C2/7008: E4 0C CPX $0C C2/700A: 70 10 BVS $701C C2/700C: E2 5C SEP #$5C C2/700E: 77 00 ADC [$00],Y C2/7010: 64 03 STZ $03 C2/7012: 20 E3 79 JSR $79E3 C2/7015: 5A PHY C2/7016: 92 23 STA ($23) C2/7018: 40 RTI C2/7019: 0A ASL C2/701A: 9A TXS C2/701B: 33 A5 AND ($A5,S),Y C2/701D: 3F 8F DF 1F AND $1FDF8F,X C2/7021: 21 00 AND ($00,X) C2/7023: A5 40 LDA $40 C2/7025: 59 12 41 EOR $4112,Y C2/7028: 8F E5 20 5B STA $5B20E5 C2/702C: 02 42 COP $42 C2/702E: 65 0A ADC $0A C2/7030: A5 05 LDA $05 C2/7032: 96 5A STX $5A,Y C2/7034: 9C DF 5A STZ $5ADF C2/7037: AF 5A C6 5A LDA $5AC65A C2/703B: AB PLB C2/703C: 13 7B ORA ($7B,S),Y C2/703E: BD BF 01 LDA $01BF,X C2/7041: 39 A8 B9 AND $B9A8,Y C2/7044: 3C 00 FD BIT $FD00,X C2/7047: 02 9E COP $9E C2/7049: 19 00 0E ORA $0E00,Y C2/704C: 07 CB ORA [$CB] C2/704E: 05 D0 ORA $D0 C2/7050: 0B PHD C2/7051: AD 03 A7 LDA $A703 C2/7054: 04 B7 TSB $B7 C2/7056: 05 D3 ORA $D3 C2/7058: 38 SEC C2/7059: 60 RTS C2/705A: D6 15 DEC $15,X C2/705C: C9 1D 1E CMP #$1E1D C2/705F: F1 05 SBC ($05),Y C2/7061: 00 34 BRK $34 C2/7063: FF 18 7D 00 SBC $007D18,X C2/7067: 38 SEC C2/7068: 9D 00 34 STA $3400,X C2/706B: E2 FD SEP #$FD C2/706D: 20 7F 12 JSR $127F C2/7070: BD 01 34 LDA $3401,X C2/7073: 99 3C 00 STA $003C,Y C2/7076: FA PLX C2/7077: D6 15 DEC $15,X C2/7079: 18 CLC C2/707A: 85 1B STA $1B C2/707C: 08 PHP C2/707D: C2 20 REP #$20 C2/707F: C6 41 DEC $41 C2/7081: F9 C6 8F SBC $8FC6,Y C2/7084: 03 86 ORA $86,S C2/7086: 03 3F ORA $3F,S C2/7088: D0 05 BNE $708F C2/708A: A4 2B LDY $2B C2/708C: 7F C8 84 2B ADC $2B84C8,X C2/7090: 38 SEC C2/7091: 60 RTS C2/7092: 85 F4 STA $F4 C2/7094: 59 05 5F EOR $5F05,Y C2/7097: 85 F3 STA $F3 C2/7099: A4 00 LDY $00 C2/709B: 5A PHY C2/709C: DB STP C2/709D: 05 7E ORA $7E C2/709F: 30 09 BMI $70AA C2/70A1: EB XBA C2/70A2: A5 F4 LDA $F4 C2/70A4: 9C 0C F3 STZ $F30C C2/70A7: BE 01 7A LDX $7A01,Y C2/70AA: C2 20 REP #$20 C2/70AC: B7 B9 LDA [$B9],Y C2/70AE: 45 5B EOR $5B C2/70B0: BF 15 C8 C8 LDA $C8C815,X C2/70B4: 05 0B ORA $0B C2/70B6: 01 FD ORA ($FD,X) C2/70B8: 37 0E AND [$0E],Y C2/70BA: 1B TCS C2/70BB: 38 SEC C2/70BC: C8 INY C2/70BD: C0 18 00 CPY #$0018 C2/70C0: D0 7F BNE $7141 C2/70C2: CD 60 31 CMP $3160 C2/70C5: 60 RTS C2/70C6: 04 F8 TSB $F8 C2/70C8: 54 23 07 MVN $23,$07 C2/70CB: FF 21 61 FD SBC $FD6121,X C2/70CF: E0 90 CPX #$90 C2/70D1: 61 FB ADC ($FB,X) C2/70D3: E0 9F CPX #$9F C2/70D5: 7F 60 04 08 ADC $080460,X C2/70D9: D0 34 BNE $710F C2/70DB: 03 1A ORA $1A,S C2/70DD: 18 CLC C2/70DE: 17 FF ORA [$FF],Y C2/70E0: 8D 2C 21 STA $212C C2/70E3: A9 02 8D LDA #$8D02 C2/70E6: 2D 21 FF AND $FF21 C2/70E9: A9 E0 8D LDA #$8DE0 C2/70EC: 32 21 AND ($21) C2/70EE: 9C 20 43 STZ $4320 C2/70F1: FF A9 32 8D SBC $8D32A9,X C2/70F5: 21 43 AND ($43,X) C2/70F7: A0 23 LDY #$23 C2/70F9: 5C FF 8C 22 JMP $228CFF C2/70FD: 43 A9 EOR $A9,S C2/70FF: 7E 8D 24 ROR $248D,X C2/7102: 43 FF EOR $FF,S C2/7104: 8D 27 43 STA $4327 C2/7107: 9C 30 43 STZ $4330 C2/710A: A9 05 FF LDA #$FF05 C2/710D: 8D 31 43 STA $4331 C2/7110: A0 40 LDY #$40 C2/7112: 5C 8C 32 FE JMP $FE328C C2/7116: 5C 0B 34 43 JMP $43340B C2/711A: 8D 37 43 STA $4337 C2/711D: A9 01 FF LDA #$FF01 C2/7120: 8D 40 43 STA $4340 C2/7123: A9 30 8D LDA #$8D30 C2/7126: 41 43 EOR ($43,X) C2/7128: DF A0 0E 5C CMP $5C0EA0,X C2/712C: 8C 42 5C STY $5C42 C2/712F: 0B PHD C2/7130: 44 43 FF MVP $43,$FF C2/7133: 8D 47 43 STA $4347 C2/7136: 8D 54 43 STA $4354 C2/7139: 8D 57 FD STA $FD57 C2/713C: 43 45 EOR $45,S C2/713E: 03 50 ORA $50,S C2/7140: 43 A9 EOR $A9,S C2/7142: 11 8D ORA ($8D),Y C2/7144: 51 FF EOR ($FF),Y C2/7146: 43 A0 EOR $A0,S C2/7148: 01 5C ORA ($5C,X) C2/714A: 8C 52 43 STY $4352 C2/714D: A9 FF 43 LDA #$43FF C2/7150: 8D 60 43 STA $4360 C2/7153: A9 1B 8D LDA #$8D1B C2/7156: 61 BF ADC ($BF,X) C2/7158: 43 A0 EOR $A0,S C2/715A: 15 5C ORA $5C,X C2/715C: 8C 62 5C STY $5C62 C2/715F: 0B PHD C2/7160: 64 F7 STZ $F7 C2/7162: 43 8D EOR $8D,S C2/7164: 67 A8 ADC [$A8] C2/7166: 0B PHD C2/7167: 70 43 BVS $71AC C2/7169: A9 1D FF LDA #$FF1D C2/716C: 8D 71 43 STA $4371 C2/716F: A0 1C LDY #$1C C2/7171: 5C 8C 72 FE JMP $FE728C C2/7175: 5C 0B 74 43 JMP $43740B C2/7179: 8D 77 43 STA $4377 C2/717C: A9 FC FF LDA #$FFFC C2/717F: 04 31 TSB $31 C2/7181: AB PLB C2/7182: 60 RTS C2/7183: 27 00 AND [$00] C2/7185: 00 10 BRK $10 C2/7187: FE E0 2B INC $2BE0,X C2/718A: 00 54 BRK $54 C2/718C: 82 04 01 BRL $C07293 C2/718F: 80 81 BRA $7112 C2/7191: FF 00 E4 A0 SBC $A0E400,X C2/7195: 3C FB 30 BIT $30FB,X C2/7198: 3E 00 FF ROL $FF00,X C2/719B: E4 20 CPX $20 C2/719D: 40 RTI C2/719E: FB XCE C2/719F: B0 41 BCS $71E2 C2/71A1: 00 54 BRK $54 C2/71A3: FF E0 01 ED SBC $ED01E0,X C2/71A7: 01 EB ORA ($EB,X) C2/71A9: 01 EA ORA ($EA,X) C2/71AB: 02 FF COP $FF C2/71AD: E9 03 E8 SBC #$E803 C2/71B0: 04 E7 TSB $E7 C2/71B2: 05 E6 ORA $E6 C2/71B4: 06 FF ASL $FF C2/71B6: E5 07 SBC $07 C2/71B8: E4 08 CPX $08 C2/71BA: E3 0C SBC $0C,S C2/71BC: E2 0F SEP #$0F C2/71BE: FF E1 1E E0 SBC $E01EE1,X C2/71C2: 00 54 BRK $54 C2/71C4: 09 01 07 ORA #$0701 C2/71C7: EF 00 7B AA SBC $AA7B00 C2/71CB: A8 TAY C2/71CC: AB PLB C2/71CD: 0A ASL C2/71CE: 03 99 ORA $99,S C2/71D0: 00 FF BRK $FF C2/71D2: 3D BD 80 AND $80BD,X C2/71D5: 06 99 ASL $99 C2/71D7: 80 40 BRA $7219 C2/71D9: C8 INY C2/71DA: 6F C8 BD C0 ADC $C0BDC8 C2/71DE: 04 2B TSB $2B C2/71E0: 0C 40 08 TSB $0840 C2/71E3: 31 14 AND ($14),Y C2/71E5: FF E8 E8 E0 SBC $E0E8E8,X C2/71E9: C0 01 D0 CPY #$D001 C2/71EC: DD E2 FF CMP $FFE2,X C2/71EF: 20 60 A0 JSR $A060 C2/71F2: 00 01 BRK $01 C2/71F4: 84 3F STY $3F C2/71F6: A0 FF LDY #$FF C2/71F8: 80 00 BRA $71FA C2/71FA: 84 41 STY $41 C2/71FC: 84 25 STY $25 C2/71FE: 7B TDC C2/71FF: A8 TAY C2/7200: FF 84 27 64 SBC $642784,X C2/7204: 72 64 ADC ($64) C2/7206: 73 64 ADC ($64,S),Y C2/7208: 74 FF STZ $FF,X C2/720A: A0 E0 LDY #$E0 C2/720C: 00 84 BRK $84 C2/720E: 87 A0 STA [$A0] C2/7210: 00 40 BRK $40 C2/7212: 7F 84 8B A0 ADC $A08B84,X C2/7216: 00 00 BRK $00 C2/7218: 84 8D STY $8D C2/721A: 1F 0D 7F 8F ORA $8F7F0D,X C2/721E: 20 B1 5C JSR $5CB1 C2/7221: A0 40 LDY #$40 C2/7223: 74 22 STZ $22,X C2/7225: 05 BF ORA $BF C2/7227: 00 44 BRK $44 C2/7229: 84 12 STY $12 C2/722B: A9 7E 2B LDA #$2B7E C2/722E: 05 80 ORA $80 C2/7230: FF 02 84 0E SBC $0E8402,X C2/7234: 60 RTS C2/7235: 7B TDC C2/7236: AA TAX C2/7237: 9E 00 FF STZ $FF00,X C2/723A: 44 E8 E0 MVP $E8,$E0 C2/723D: 80 02 BRA $7241 C2/723F: D0 F7 BNE $7238 C2/7241: 60 RTS C2/7242: 72 72 ADC ($72) C2/7244: 00 C6 BRK $C6 C2/7246: 39 0A CA AND $CA0A,Y C2/7249: 0A ASL C2/724A: 01 D0 ORA ($D0,X) C2/724C: 0B PHD C2/724D: 9A TXS C2/724E: 19 B6 CE ORA $CEB6,Y C2/7251: 00 80 BRK $80 C2/7253: 09 9A 09 ORA #$099A C2/7256: 98 TYA C2/7257: 64 CE STZ $CE C2/7259: 00 38 BRK $38 C2/725B: 7E A5 05 ROR $05A5,X C2/725E: E6 5C INC $5C C2/7260: EA NOP C2/7261: 5C FC 5C 7A JMP $7A5CFC C2/7265: 12 86 ORA ($86) C2/7267: BA TSX C2/7268: 05 47 ORA $47 C2/726A: 5D BF 2D EOR $2DBF,X C2/726D: 14 1F TRB $1F C2/726F: A7 0C LDA [$0C] C2/7271: DB STP C2/7272: 00 00 BRK $00 C2/7274: 94 47 STY $47,X C2/7276: 19 14 1F ORA $1F14,Y C2/7279: 20 E1 1C JSR $1CE1 C2/727C: 65 DC ADC $DC C2/727E: 01 EB ORA ($EB,X) C2/7280: 34 FE BIT $FE,X C2/7282: FF F0 18 20 SBC $2018F0,X C2/7286: 93 75 STA ($75,S),Y C2/7288: E2 10 SEP #$10 C2/728A: BD FB 00 LDA $00FB,X C2/728D: 3B TSC C2/728E: 25 04 AND $04 C2/7290: B1 EB LDA ($EB),Y C2/7292: 85 E7 STA $E7 C2/7294: C2 ED REP #$ED C2/7296: 10 C2 BPL $725A C2/7298: 05 8B ORA $8B C2/729A: 5E C7 0A LSR $0AC7,X C2/729D: 98 TYA C2/729E: 65 01 ADC $01 C2/72A0: FF A5 65 8B SBC $8B65A5,X C2/72A4: 19 5E 01 ORA $015E,Y C2/72A7: BC 65 FB LDY $FB65,X C2/72AA: 01 C9 ORA ($C9,X) C2/72AC: 29 15 ED AND #$ED15 C2/72AF: 65 01 ADC $01 C2/72B1: 01 66 ORA ($66,X) C2/72B3: 5E 2A 0D LSR $0D2A,X C2/72B6: 21 66 AND ($66,X) C2/72B8: 01 36 ORA ($36,X) C2/72BA: 3B TSC C2/72BB: 2D 5D 3B AND $3B5D C2/72BE: 15 EF ORA $EF,X C2/72C0: 7E 66 01 ROR $0166,X C2/72C3: 88 DEY C2/72C4: 3B TSC C2/72C5: 15 9A ORA $9A,X C2/72C7: 66 01 ROR $01 C2/72C9: BD AD 3B LDA $3BAD,X C2/72CC: 15 C1 ORA $C1,X C2/72CE: 66 01 ROR $01 C2/72D0: D4 3B PEI $3B C2/72D2: 15 F7 ORA $F7,X C2/72D4: AF 66 01 09 LDA $090166 C2/72D8: 67 69 ADC [$69] C2/72DA: 25 2E AND $2E C2/72DC: 71 15 ADC ($15),Y C2/72DE: 54 F7 67 MVN $F7,$67 C2/72E1: 01 66 ORA ($66,X) C2/72E3: 71 15 ADC ($15),Y C2/72E5: 8D 67 01 STA $0167 C2/72E8: A3 DE LDA $DE,S C2/72EA: 71 15 ADC ($15),Y C2/72EC: C4 67 CPY $67 C2/72EE: 01 DA ORA ($DA,X) C2/72F0: 71 15 ADC ($15),Y C2/72F2: F0 67 BEQ $735B C2/72F4: F7 01 SBC [$01],Y C2/72F6: 05 68 ORA $68 C2/72F8: 2A ROL C2/72F9: 0D 15 68 ORA $6815 C2/72FC: 01 31 ORA ($31,X) C2/72FE: 5E 9E 15 LSR $159E,X C2/7301: 46 68 LSR $68 C2/7303: 01 61 ORA ($61,X) C2/7305: A7 2D LDA [$2D] C2/7307: 94 A7 STY $A7,X C2/7309: 2D 7D CA AND $CA7D C2/730C: 9E 15 F5 STZ $F515,X C2/730F: 68 PLA C2/7310: 01 12 ORA ($12,X) C2/7312: 69 2A 0D ADC #$0D2A C2/7315: EF 25 69 01 SBC $016925 C2/7319: 41 CB EOR ($CB,X) C2/731B: 15 55 ORA $55,X C2/731D: 69 01 BD ADC #$BD01 C2/7320: 68 PLA C2/7321: CB WAI C2/7322: 15 7A ORA $7A,X C2/7324: 69 01 8D ADC #$8D01 C2/7327: CB WAI C2/7328: 15 A5 ORA $A5,X C2/732A: F7 69 SBC [$69],Y C2/732C: 01 B4 ORA ($B4,X) C2/732E: CB WAI C2/732F: 15 19 ORA $19,X C2/7331: 5E FE 46 LSR $46FE,X C2/7334: 8B PHB C2/7335: 44 01 F9 MVP $01,$F9 C2/7338: BD FE F9 LDA $F9FE,X C2/733B: FD 1B FE SBC $FE1B,X C2/733E: 31 66 AND ($66),Y C2/7340: 00 FF BRK $FF C2/7342: A6 00 LDX $00 C2/7344: 9B TXY C2/7345: C2 20 REP #$20 C2/7347: B2 E7 LDA ($E7) C2/7349: 85 FF STA $FF C2/734B: EB XBA C2/734C: E6 E7 INC $E7 C2/734E: E6 E7 INC $E7 C2/7350: E2 20 SEP #$20 C2/7352: B1 FF LDA ($FF),Y C2/7354: E7 85 SBC [$85] C2/7356: 43 C8 EOR $C8,S C2/7358: 7B TDC C2/7359: B1 E7 LDA ($E7),Y C2/735B: C8 INY C2/735C: 7F 20 DF 5E ADC $5EDF20,X C2/7360: B1 E7 LDA ($E7),Y C2/7362: F0 17 BEQ $737B C2/7364: 19 07 FF ORA $FF07,Y C2/7367: 14 C9 TRB $C9 C2/7369: FF F0 19 5A SBC $5A19F0,X C2/736D: 9B TXY C2/736E: 91 DF STA ($DF),Y C2/7370: EB XBA C2/7371: E8 INX C2/7372: 9B TXY C2/7373: A5 43 LDA $43 C2/7375: 92 06 STA ($06) C2/7377: 7A PLY C2/7378: C8 INY C2/7379: FF 80 E5 60 SBC $60E580,X C2/737D: C2 21 REP #$21 C2/737F: A9 80 00 LDA #$0080 C2/7382: AF 85 E0 80 LDA $80E085 C2/7386: 07 A0 ORA [$A0] C2/7388: 06 40 ASL $40 C2/738A: A4 06 LDY $06 C2/738C: A5 DF LDA $DF C2/738E: EB XBA C2/738F: 65 E0 ADC $E0 C2/7391: 85 EB STA $EB C2/7393: B7 02 LDA [$02],Y C2/7395: AA TAX C2/7396: C8 INY C2/7397: FF 80 C7 DA SBC $DAC780,X C2/739B: 5A PHY C2/739C: 0A ASL C2/739D: 0A ASL C2/739E: AA TAX C2/739F: BD FF 07 LDA $07FF,X C2/73A2: 5F 49 FF 8D EOR $8DFF49,X C2/73A6: 02 5C COP $5C C2/73A8: BD BD 08 LDA $08BD,X C2/73AB: C4 0E CPY $0E C2/73AD: 05 5C ORA $5C C2/73AF: BD 09 C4 LDA $C409,X C2/73B2: 0E 08 F7 ASL $F708 C2/73B5: 5C BD 0A C4 JMP $C40ABD C2/73B9: 0E 0B 5C ASL $5C0B C2/73BC: 7A PLY C2/73BD: FA PLX C2/73BE: 04 23 TSB $23 C2/73C0: 07 E5 ORA [$E5] C2/73C2: 0E 04 EA ASL $EA04 C2/73C5: 06 E8 ASL $E8 C2/73C7: 16 E9 ASL $E9,X C2/73C9: 06 EB ASL $EB C2/73CB: 06 ED ASL $ED C2/73CD: 06 FC ASL $FC C2/73CF: EB XBA C2/73D0: 16 EB ASL $EB,X C2/73D2: 06 A5 ASL $A5 C2/73D4: 1F C9 77 B0 ORA $B077C9,X C2/73D8: 3F 6F A9 40 AND $40A96F,X C2/73DC: 14 33 TRB $33 C2/73DE: 72 00 ADC ($00) C2/73E0: DB STP C2/73E1: 76 BA ROR $BA,X C2/73E3: 09 76 CB ORA #$CB76 C2/73E6: 02 07 COP $07 C2/73E8: 0A ASL C2/73E9: 25 04 AND $04 C2/73EB: B9 6E 5F LDA $5F6E,Y C2/73EE: 08 PHP C2/73EF: 13 FF ORA ($FF,S),Y C2/73F1: DA PHX C2/73F2: 20 30 56 JSR $5630 C2/73F5: FA PLX C2/73F6: 9D 01 33 STA $3301,X C2/73F9: A7 29 LDA [$29] C2/73FB: 0F 1A 19 03 ORA $03191A C2/73FF: 28 PLP C2/7400: 27 34 AND [$34] C2/7402: 12 02 ORA ($02) C2/7404: 29 FD 03 AND #$03FD C2/7407: 32 07 AND ($07) C2/7409: 37 9D AND [$9D],Y C2/740B: 00 37 BRK $37 C2/740D: 38 SEC C2/740E: 60 RTS C2/740F: FF B4 63 B7 SBC $B763B4,X C2/7413: 63 BA ADC $BA,S C2/7415: 63 BD ADC $BD,S C2/7417: 63 DF ADC $DF,S C2/7419: C0 63 C3 CPY #$C363 C2/741C: 63 C6 ADC $C6,S C2/741E: 4F 07 AA 7C EOR $7CAA07 C2/7422: 3F 82 5F 86 AND $865F82,X C2/7426: 5F 98 5F 7A EOR $7A5F98,X C2/742A: 12 D7 ORA ($D7) C2/742C: 04 FE TSB $FE C2/742E: 80 02 BRA $7432 C2/7430: 18 CLC C2/7431: 7D 01 3B ADC $3B01,X C2/7434: 9D 01 3B STA $3B01,X C2/7437: 77 A6 ADC [$A6],Y C2/7439: 1D 7B 97 ORA $977B,X C2/743C: 02 A8 COP $A8 C2/743E: A5 37 LDA $37 C2/7440: 6F 07 BF 37 ADC $37BF07 C2/7444: BB TYX C2/7445: 75 39 ADC $39,X C2/7447: A6 1D LDX $1D C2/7449: 2D 07 A5 AND $A507 C2/744C: BD 38 6F LDA $6F38,X C2/744F: 07 38 ORA [$38] C2/7451: BB TYX C2/7452: 75 3C ADC $3C,X C2/7454: 86 0F STX $0F C2/7456: 34 F7 BIT $F7,X C2/7458: 20 8D 75 JSR $758D C2/745B: BE 0C C4 LDX $C40C,Y C2/745E: 5F C8 5F D9 EOR $D95FC8,X C2/7462: DF 63 1F CB CMP $CB1F63,X C2/7466: 01 27 ORA ($27,X) C2/7468: 60 RTS C2/7469: 08 PHP C2/746A: 13 A9 ORA ($A9,S),Y C2/746C: 08 PHP C2/746D: 76 73 ROR $73,X C2/746F: 07 9E ORA [$9E] C2/7471: 00 75 BRK $75 C2/7473: 07 20 ORA [$20] C2/7475: EF 5F 78 07 SBC $07785F C2/7479: BB TYX C2/747A: 3B TSC C2/747B: A8 TAY C2/747C: 16 05 ASL $05,X C2/747E: 38 SEC C2/747F: 38 SEC C2/7480: 60 RTS C2/7481: AB PLB C2/7482: 0A ASL C2/7483: 35 DC AND $DC,X C2/7485: B4 0E LDY $0E,X C2/7487: F0 0C BEQ $7495 C2/7489: FF D0 08 BA SBC $BA08D0,X C2/748D: 07 20 ORA [$20] C2/748F: 1B TCS C2/7490: 27 60 AND [$60] C2/7492: 80 F1 BRA $7485 C2/7494: F0 04 BEQ $749A C2/7496: 92 0A STA ($0A) C2/7498: 3B TSC C2/7499: EA NOP C2/749A: 07 E0 ORA [$E0] C2/749C: 0F DF E1 DE ORA $DEE1DF C2/74A0: 01 3B ORA ($3B,X) C2/74A2: 60 RTS C2/74A3: C2 17 REP #$17 C2/74A5: C8 INY C2/74A6: B1 FD LDA ($FD),Y C2/74A8: EB XBA C2/74A9: 73 07 ADC ($07,S),Y C2/74AB: 60 RTS C2/74AC: 01 04 ORA ($04,X) C2/74AE: 02 08 COP $08 C2/74B0: 01 FE ORA ($FE,X) C2/74B2: EB XBA C2/74B3: 0E FF 40 ASL $40FF C2/74B6: 60 RTS C2/74B7: 04 45 TSB $45 C2/74B9: 60 RTS C2/74BA: 10 EF BPL $74AB C2/74BC: 4A LSR C2/74BD: 60 RTS C2/74BE: 04 4F TSB $4F C2/74C0: 13 08 ORA ($08,S),Y C2/74C2: FF 01 90 BF SBC $BF9001,X C2/74C6: 27 84 AND [$84] C2/74C8: 30 01 BMI $74CB C2/74CA: 90 26 BCC $74F2 C2/74CC: 21 08 AND ($08,X) C2/74CE: 27 FB AND [$FB] C2/74D0: 84 70 STY $70 C2/74D2: 23 08 AND $08,S C2/74D4: 70 5D BVS $7533 C2/74D6: 60 RTS C2/74D7: 14 6E TRB $6E C2/74D9: FE 33 08 INC $0833,X C2/74DC: FF 04 90 08 SBC $089004,X C2/74E0: 6C 30 A0 JMP ($A030) C2/74E3: FF 08 6E 30 SBC $306E08,X C2/74E7: 90 18 BCC $7501 C2/74E9: 80 30 BRA $751B C2/74EB: A0 FF LDY #$FF C2/74ED: 18 CLC C2/74EE: 82 30 04 BRL $C07921 C2/74F1: 98 TYA C2/74F2: 08 PHP C2/74F3: 6C 70 FF JMP ($FF70) C2/74F6: 88 DEY C2/74F7: 08 PHP C2/74F8: 6E 70 98 ROR $9870 C2/74FB: 18 CLC C2/74FC: 80 70 BRA $756E C2/74FE: FF 88 18 82 SBC $821888,X C2/7502: 70 9A BVS $749E C2/7504: 60 RTS C2/7505: 08 PHP C2/7506: A3 FF LDA $FF,S C2/7508: 60 RTS C2/7509: 04 AC TSB $AC C2/750B: 60 RTS C2/750C: 04 B5 TSB $B5 C2/750E: 60 RTS C2/750F: 04 EF TSB $EF C2/7511: BE 60 08 LDX $0860,Y C2/7514: C7 61 CMP [$61] C2/7516: 28 PLP C2/7517: B5 60 LDA $60,X C2/7519: FF FF 02 80 SBC $8002FF,X C2/751D: 08 PHP C2/751E: 60 RTS C2/751F: 30 80 BMI $74A1 C2/7521: 18 CLC C2/7522: 62 AF 30 PER $C0A5D4 C2/7525: 02 80 COP $80 C2/7527: 09 7B 00 ORA #$007B C2/752A: 19 7F 10 ORA $107F,Y C2/752D: 64 AA STZ $AA C2/752F: 85 00 STA $00 C2/7531: 66 80 ROR $80 C2/7533: 00 08 BRK $08 C2/7535: 8D 00 18 STA $1800 C2/7538: 91 10 STA ($10),Y C2/753A: 68 PLA C2/753B: F2 7C SBC ($7C) C2/753D: 00 6A BRK $6A C2/753F: 80 08 BRA $7549 C2/7541: 9F 00 19 6A STA $6A1900,X C2/7545: 30 0F BMI $7556 C2/7547: FF 61 08 18 SBC $180861,X C2/754B: 61 04 ADC ($04,X) C2/754D: FD 60 04 SBC $0460,X C2/7550: FF 06 61 04 SBC $046106,X C2/7554: EB XBA C2/7555: 60 RTS C2/7556: 08 PHP C2/7557: F4 60 FE PEA $FE60 C2/755A: B3 20 LDA ($20,S),Y C2/755C: 06 61 ASL $61 C2/755E: FF 02 A0 08 SBC $08A002,X C2/7562: 60 RTS C2/7563: FF 70 A0 18 SBC $18A070,X C2/7567: 62 70 02 PER $C077DA C2/756A: A0 09 LDY #$09 C2/756C: AA TAX C2/756D: CC 00 19 CPY $1900 C2/7570: D0 10 BNE $7582 C2/7572: 64 D6 STZ $D6 C2/7574: 00 66 BRK $66 C2/7576: D1 00 CMP ($00),Y C2/7578: 08 PHP C2/7579: 2A ROL C2/757A: DE 00 18 DEC $1800,X C2/757D: E2 10 SEP #$10 C2/757F: 68 PLA C2/7580: CD 00 6A CMP $6A00 C2/7583: D1 08 CMP ($08),Y C2/7585: F0 00 BEQ $7587 C2/7587: FF 19 6A 70 SBC $706A19,X C2/758B: 3F 61 04 48 AND $480461,X C2/758F: 61 FF ADC ($FF,X) C2/7591: 04 51 TSB $51 C2/7593: 61 04 ADC ($04,X) C2/7595: 5A PHY C2/7596: 61 04 ADC ($04,X) C2/7598: 63 FF ADC $FF,S C2/759A: 61 04 ADC ($04,X) C2/759C: 6C 61 08 JMP ($0861) C2/759F: 75 61 ADC $61,X C2/75A1: 04 EF TSB $EF C2/75A3: 7E 61 04 ROR $0461,X C2/75A6: 87 15 STA [$15] C2/75A8: 09 FF 02 ORA #$02FF C2/75AB: 90 FF BCC $75AC C2/75AD: 3F 40 30 90 AND $903040,X C2/75B1: 4F 42 30 02 EOR $023042 C2/75B5: 6B RTL C2/75B6: 90 3D BCC $75F5 C2/75B8: 20 01 4D JSR $4D01 C2/75BB: 24 09 BIT $09 C2/75BD: 3F 44 21 01 AND $012144,X C2/75C1: D5 46 CMP $46,X C2/75C3: 25 01 AND $01 C2/75C5: 3E 32 01 ROL $0132,X C2/75C8: 4E 36 09 LSR $0936 C2/75CB: 3D 48 D2 AND $D248,X C2/75CE: 2A ROL C2/75CF: 01 4A ORA ($4A,X) C2/75D1: 37 09 AND [$09],Y C2/75D3: 44 01 4E MVP $01,$4E C2/75D6: 48 PHA C2/75D7: 09 3D 4C ORA #$4C3D C2/75DA: 52 2A EOR ($2A) C2/75DC: 01 4E ORA ($4E,X) C2/75DE: 2E 09 56 ROL $5609 C2/75E1: 01 4F ORA ($4F,X) C2/75E3: 5A PHY C2/75E4: 09 41 56 ORA #$5641 C2/75E7: 01 FF ORA ($FF,X) C2/75E9: 51 4E EOR ($4E),Y C2/75EB: 30 AE BMI $759B C2/75ED: 61 08 ADC ($08,X) C2/75EF: B7 61 LDA [$61],Y C2/75F1: FF 04 C0 61 SBC $61C004,X C2/75F5: 04 C9 TSB $C9 C2/75F7: 61 04 ADC ($04,X) C2/75F9: D2 FF CMP ($FF) C2/75FB: 61 04 ADC ($04,X) C2/75FD: DB STP C2/75FE: 61 04 ADC ($04,X) C2/7600: E4 61 CPX $61 C2/7602: 04 CF TSB $CF C2/7604: ED 61 04 SBC $0461 C2/7607: F6 84 INC $84,X C2/7609: 09 C8 00 ORA #$00C8 C2/760C: 3E 48 EF ROL $EF48,X C2/760F: 70 A0 BVS $75B1 C2/7611: 4E 4A D1 LSR $D14A C2/7614: 00 3D BRK $3D C2/7616: 4C 70 57 JMP $5770 C2/7619: A0 4D LDY #$4D C2/761B: 4E D1 00 LSR $00D1 C2/761E: 3F 98 01 4F AND $4F0198,X C2/7622: 9C 09 55 STZ $5509 C2/7625: 41 98 EOR ($98,X) C2/7627: 01 51 ORA ($51,X) C2/7629: 9C 11 40 STZ $4011 C2/762C: A2 01 LDX #$01 C2/762E: 42 94 WDM $94 C2/7630: 09 5A B3 ORA #$B35A C2/7633: 01 4D ORA ($4D,X) C2/7635: B7 09 LDA [$09],Y C2/7637: 3F 44 A2 01 AND $01A244,X C2/763B: 46 D1 LSR $D1 C2/763D: 00 D5 BRK $D5 C2/763F: 3E C5 01 ROL $01C5,X C2/7642: 4E C9 09 LSR $09C9 C2/7645: 3D 8F 01 AND $018F,X C2/7648: 4D 4A FF EOR $FF4A C2/764B: 70 20 BVS $766D C2/764D: A8 TAY C2/764E: 7A PLY C2/764F: C2 21 REP #$21 C2/7651: AF 66 BF DA LDA $DABF66 C2/7655: DF 69 00 DB CMP $DB0069,X C2/7659: 85 75 STA $75 C2/765B: 06 AF ASL $AF C2/765D: FD 68 E4 SBC $E468,X C2/7660: 01 DF ORA ($DF,X) C2/7662: 85 E9 STA $E9 C2/7664: A0 00 LDY #$00 C2/7666: 98 TYA C2/7667: FF 84 EB A9 SBC $A9EB84,X C2/766B: 7F 85 ED A0 ADC $A0ED85,X C2/766F: 00 BF BRK $BF C2/7671: 08 PHP C2/7672: 84 EF STY $EF C2/7674: 20 CC 62 JSR $62CC C2/7677: E0 01 CPX #$01 C2/7679: 5D AA E4 EOR $E4AA,X C2/767C: 09 E3 E9 ORA #$E9E3 C2/767F: 11 5F ORA ($5F),Y C2/7681: EF 29 A0 F8 SBC $F8A029 C2/7685: 71 60 ADC ($60),Y C2/7687: EA NOP C2/7688: E4 39 CPX $39 C2/768A: 62 EF 29 PER $C0A07C C2/768D: A8 TAY C2/768E: F8 SED C2/768F: 59 64 E4 EOR $E464,Y C2/7692: 64 FF STZ $FF C2/7694: E5 A9 SBC $A9 C2/7696: 80 85 BRA $761D C2/7698: ED A2 00 SBC $00A2 C2/769B: 98 TYA C2/769C: FF A9 7F 20 SBC $207FA9,X C2/76A0: 48 PHA C2/76A1: 63 20 ADC $20,S C2/76A3: DD 62 DF CMP $DF62,X C2/76A6: A0 00 LDY #$00 C2/76A8: B8 CLV C2/76A9: 84 E7 STY $E7 C2/76AB: FA PLX C2/76AC: 01 E9 ORA ($E9,X) C2/76AE: 64 D7 STZ $D7 C2/76B0: ED 64 EE SBC $EE64 C2/76B3: 69 0C EB ADC #$EB0C C2/76B6: 6E 04 20 ROR $2004 C2/76B9: 18 CLC C2/76BA: BF 7A A2 80 LDA $80A27A,X C2/76BE: 00 86 BRK $86 C2/76C0: E4 56 CPX $56 C2/76C2: 1A INC C2/76C3: A8 TAY C2/76C4: F2 5D SBC ($5D) C2/76C6: CA DEX C2/76C7: 20 7A 02 JSR $027A C2/76CA: CC 07 A4 CPY $A407 C2/76CD: 00 B7 BRK $B7 C2/76CF: E7 FF SBC [$FF] C2/76D1: 97 EB STA [$EB],Y C2/76D3: C8 INY C2/76D4: C8 INY C2/76D5: C4 EF CPY $EF C2/76D7: D0 F6 BNE $76CF C2/76D9: F6 4B INC $4B,X C2/76DB: 04 7B TSB $7B C2/76DD: AA TAX C2/76DE: CD 07 FB CMP $FB07 C2/76E1: 62 A8 E8 PER $C05F8C C2/76E4: BD E8 BF LDA $BFE8,X C2/76E7: 02 85 COP $85 C2/76E9: E7 E8 SBC [$E8] C2/76EB: E8 INX C2/76EC: 26 0F ROL $0F C2/76EE: 1B TCS C2/76EF: 7F 63 FA E0 ADC $E0FA63,X C2/76F3: 20 00 D0 JSR $D000 C2/76F6: E5 E4 SBC $E4 C2/76F8: 1E EB 04 ASL $04EB,X C2/76FB: 40 RTI C2/76FC: E9 03 80 SBC #$8003 C2/76FF: E9 06 C0 SBC #$C006 C2/7702: 00 00 BRK $00 C2/7704: FF 08 00 20 SBC $200008,X C2/7708: 00 0C BRK $0C C2/770A: 40 RTI C2/770B: 20 00 FB JSR $FB00 C2/770E: 08 PHP C2/770F: 80 EC BRA $76FD C2/7711: 02 C0 COP $C0 C2/7713: 20 8B A9 JSR $A98B C2/7716: 7F EE 3E 03 ADC $033EEE,X C2/771A: 20 85 E0 JSR $E085 C2/771D: FE 02 E1 INC $E102,X C2/7720: A6 E7 LDX $E7 C2/7722: BF B9 C0 0B LDA $0BC0B9,X C2/7726: 9D 00 B8 STA $B800,X C2/7729: 43 04 EOR $04,S C2/772B: C6 FF DEC $FF C2/772D: E1 D0 SBC ($D0,X) C2/772F: F3 C2 SBC ($C2,S),Y C2/7731: 21 A5 AND ($A5,X) C2/7733: E7 69 SBC [$69] C2/7735: FB XCE C2/7736: 00 01 BRK $01 C2/7738: E9 09 C6 SBC #$C609 C2/773B: E0 D0 CPX #$D0 C2/773D: DE AB DF DEC $DFAB,X C2/7740: 60 RTS C2/7741: 85 E9 STA $E9 C2/7743: 86 E7 STX $E7 C2/7745: F9 12 7B SBC $7B12,Y C2/7748: AA TAX C2/7749: FF A9 08 85 SBC $8508A9,X C2/774D: E6 C2 INC $C2 C2/774F: 20 A0 10 JSR $10A0 C2/7752: FF 00 A7 E7 SBC $E7A700,X C2/7756: 85 F1 STA $F1 C2/7758: B7 E7 LDA [$E7],Y C2/775A: 85 FF STA $FF C2/775C: EF 7B E2 20 SBC $20E27B C2/7760: A0 08 LDY #$08 C2/7762: 00 7B BRK $7B C2/7764: FF 06 F0 2A SBC $2AF006,X C2/7768: 06 EF ASL $EF C2/776A: 2A ROL C2/776B: 06 F2 ASL $F2 C2/776D: FF 2A 06 F1 SBC $F1062A,X C2/7771: 2A ROL C2/7772: 29 0F F0 AND #$F00F C2/7775: 12 FF ORA ($FF) C2/7777: 85 E0 STA $E0 C2/7779: DA PHX C2/777A: A6 E4 LDX $E4 C2/777C: BF B8 64 F7 LDA $F764B8,X C2/7780: 7E FA 0A ROR $0AFA,X C2/7783: 63 03 ADC $03,S C2/7785: 29 30 05 AND #$0530 C2/7788: E0 FF CPX #$FF C2/778A: 9D 01 B8 STA $B801,X C2/778D: E8 INX C2/778E: E8 INX C2/778F: 88 DEY C2/7790: D0 D5 BNE $7767 C2/7792: FF A4 E7 C8 SBC $C8E7A4,X C2/7796: C8 INY C2/7797: 84 E7 STY $E7 C2/7799: C6 E6 DEC $E6 C2/779B: FF D0 B8 C2 SBC $C2B8D0,X C2/779F: 20 E6 E4 JSR $E4E6 C2/77A2: A5 E7 LDA $E7 C2/77A4: BF 18 69 10 LDA $106918,X C2/77A8: 00 85 BRK $85 C2/77AA: E7 42 SBC [$42] C2/77AC: 03 C6 ORA $C6,S C2/77AE: FF ED D0 A1 SBC $A1D0ED,X C2/77B2: AB PLB C2/77B3: 60 RTS C2/77B4: C9 63 FE CMP #$FE63 C2/77B7: FF CE 63 FE SBC $FE63CE,X C2/77BB: D3 63 CMP ($63,S),Y C2/77BD: FE D8 63 INC $63D8,X C2/77C0: FF FE DD 63 SBC $63DDFE,X C2/77C4: FE EE 63 INC $63EE,X C2/77C7: FE F7 7F INC $7FF7,X C2/77CA: 63 FE ADC $FE,S C2/77CC: 01 00 ORA ($00,X) C2/77CE: 00 86 BRK $86 C2/77D0: 72 A7 ADC ($A7) C2/77D2: 03 DB ORA $DB,S C2/77D4: 87 76 STA [$76] C2/77D6: A7 03 LDA [$03] C2/77D8: 88 DEY C2/77D9: 78 SEI C2/77DA: A7 03 LDA [$03] C2/77DC: 89 7A DF BIT #$DF7A C2/77DF: 04 08 TSB $08 C2/77E1: 08 PHP C2/77E2: 87 72 STA [$72] C2/77E4: A8 TAY C2/77E5: 03 36 ORA $36,S C2/77E7: 00 FF BRK $FF C2/77E9: 10 86 BPL $7771 C2/77EB: 78 SEI C2/77EC: 20 00 86 JSR $8600 C2/77EF: 32 02 AND ($02) C2/77F1: BE B7 03 LDX $03B7,Y C2/77F4: 76 10 ROR $10,X C2/77F6: 08 PHP C2/77F7: 89 76 CC BIT #$CC76 C2/77FA: 03 86 ORA $86,S C2/77FC: FF 7A 30 08 SBC $08307A,X C2/7800: 86 38 STX $38 C2/7802: 00 00 BRK $00 C2/7804: FF FF 7F F6 SBC $F67FFF,X C2/7808: 62 E6 20 PER $C098F1 C2/780B: 00 00 BRK $00 C2/780D: 9C FF 73 STZ $73FF C2/7810: 51 4E EOR ($4E),Y C2/7812: 83 14 STA $14,S C2/7814: 00 00 BRK $00 C2/7816: 0B PHD C2/7817: FF 46 CA 3D SBC $3DCA46,X C2/781B: 48 PHA C2/781C: 29 69 2D AND #$2D69 C2/781F: 49 DF 29 EOR #$29DF C2/7822: 6A ROR C2/7823: 35 08 AND $08,X C2/7825: 20 FC 1B JSR $1BFC C2/7828: CD 35 FF CMP $FF35 C2/782B: AB PLB C2/782C: 31 70 AND ($70),Y C2/782E: 56 6F LSR $6F,X C2/7830: 56 4E LSR $4E,X C2/7832: 52 FE EOR ($FE) C2/7834: EE 1B 27 INC $271B C2/7837: 25 C6 AND $C6 C2/7839: 14 0D TRB $0D C2/783B: 4A LSR C2/783C: E7 FD SBC [$FD] C2/783E: 1C 08 1C TRB $1C08 C2/7841: AC 39 69 LDY $6939 C2/7844: 2D 27 25 AND $2527 C2/7847: FE 08 2C INC $2C08,X C2/784A: 8A TXA C2/784B: 35 6A AND $6A,X C2/784D: 31 69 AND ($69),Y C2/784F: 2D 48 9B AND $9B48 C2/7852: 29 49 F5 AND #$F549 C2/7855: 03 0D ORA $0D,S C2/7857: 4A LSR C2/7858: FC 2B FC JSR ($FC2B,X) C2/785B: 0B PHD C2/785C: 6F FE 09 04 ADC $0409FE C2/7860: 00 00 BRK $00 C2/7862: EF 41 8C 31 SBC $318C41 C2/7866: 28 PLP C2/7867: FF 2D 07 25 SBC $25072D,X C2/786B: E7 1C SBC [$1C] C2/786D: C6 18 DEC $18 C2/786F: 8B PHB C2/7870: FF 41 69 39 SBC $396941,X C2/7874: 06 2D ASL $2D C2/7876: C5 24 CMP $24 C2/7878: 8A TXA C2/7879: F7 3D SBC [$3D],Y C2/787B: 26 31 ROL $31 C2/787D: FC 1B 00 JSR ($001B,X) C2/7880: 00 D2 BRK $D2 C2/7882: 62 FB 90 PER $C00980 C2/7885: 5A PHY C2/7886: 0C 0C 76 TSB $760C C2/7889: 15 2E ORA $2E,X C2/788B: 00 42 BRK $42 C2/788D: FF 0C 41 08 SBC $08410C,X C2/7891: CD 45 6A CMP $6A45 C2/7894: 3D 28 FF AND $FF28,X C2/7897: 35 28 AND $28,X C2/7899: 25 E7 AND $E7 C2/789B: 2C E6 24 BIT $24E6 C2/789E: C5 FF CMP $FF C2/78A0: 20 C5 18 JSR $18C5 C2/78A3: A3 18 LDA $18,S C2/78A5: 83 14 STA $14,S C2/78A7: 63 AF ADC $AF,S C2/78A9: 10 00 BPL $78AB C2/78AB: 01 02 ORA ($02,X) C2/78AD: 31 1E AND ($1E),Y C2/78AF: 02 9F COP $9F C2/78B1: 14 03 TRB $03 C2/78B3: 17 02 ORA [$02],Y C2/78B5: 03 03 ORA $03,S C2/78B7: 9F 1C 02 98 STA $98021C,X C2/78BB: 1C A9 2C TRB $2CA9 C2/78BE: AE FC 74 LDX $74FC C2/78C1: DF FC EC 4C CMP $4CECFC,X C2/78C5: 05 0E ORA $0E C2/78C7: 25 03 AND $03 C2/78C9: 03 03 ORA $03,S C2/78CB: 14 15 TRB $15 C2/78CD: 40 RTI C2/78CE: 1B TCS C2/78CF: 2D 0C 1D AND $1D0C C2/78D2: 1C 4D A8 TRB $A84D C2/78D5: 0C 2D 75 TSB $752D C2/78D8: 3B TSC C2/78D9: 1D 04 EC ORA $EC04,X C2/78DC: DC FD 00 JMP [$00FD] C2/78DF: 9F 04 58 44 STA $445804,X C2/78E3: 24 00 BIT $00 C2/78E5: 2C 2E FF BIT $FF2E C2/78E8: 2B PLD C2/78E9: 20 31 1F JSR $1F31 C2/78EC: 21 2E AND ($2E,X) C2/78EE: 00 CE BRK $CE C2/78F0: FF 44 20 00 SBC $002044,X C2/78F4: 09 0A 13 ORA #$130A C2/78F7: 10 0F BPL $7908 C2/78F9: FF 10 03 16 SBC $160310,X C2/78FD: 01 14 ORA ($14,X) C2/78FF: 02 0C COP $0C C2/7901: 02 BF COP $BF C2/7903: 08 PHP C2/7904: 16 04 ASL $04,X C2/7906: 09 0A 00 ORA #$000A C2/7909: 76 05 ROR $05,X C2/790B: 01 FF ORA ($FF,X) C2/790D: 20 25 2E JSR $2E25 C2/7910: 21 1F AND ($1F,X) C2/7912: 30 2B BMI $793F C2/7914: 2E FF 00 ROL $00FF C2/7917: D0 44 BNE $795D C2/7919: 20 01 1A JSR $1A01 C2/791C: 10 14 BPL $7932 C2/791E: FF 09 0A 0F SBC $0F0A09,X C2/7922: 10 13 BPL $7937 C2/7924: 0A ASL C2/7925: 01 0C ORA ($0C,X) C2/7927: 7F 0A 15 02 ADC $02150A,X C2/792B: 14 06 TRB $06 C2/792D: FE 01 87 INC $8701,X C2/7930: 0D FF 1A ORA $1AFF C2/7933: 16 0C ASL $0C,X C2/7935: 0A ASL C2/7936: 01 0A ORA ($0A,X) C2/7938: 15 10 ORA $10,X C2/793A: FF 16 00 50 SBC $500016,X C2/793E: 44 24 02 MVP $24,$02 C2/7941: 29 1D F7 AND #$F71D C2/7944: 25 2A AND $2A C2/7946: 01 7A ORA ($7A,X) C2/7948: 05 23 ORA $23 C2/794A: 2E 1D 29 ROL $291D C2/794D: DD 29 80 CMP $8029,X C2/7950: 05 D2 ORA $D2 C2/7952: 44 20 98 MVP $20,$98 C2/7955: 04 0C TSB $0C C2/7957: 06 DF ASL $DF C2/7959: 0F 01 0F 02 ORA $020F01 C2/795D: 13 B6 ORA ($B6,S),Y C2/795F: 05 FE ORA $FE C2/7961: 0C A9 0A TSB $0AA9 C2/7964: AB PLB C2/7965: 15 AA ORA $AA,X C2/7967: 1D 0A CA ORA $CA0A,X C2/796A: 0D 03 D7 ORA $D703 C2/796D: 05 2C ORA $2C C2/796F: E7 24 SBC [$24] C2/7971: 25 1F AND $1F C2/7973: 9D 3D 83 STA $833D,X C2/7976: 05 03 ORA $03 C2/7978: 15 06 ORA $06,X C2/797A: 7F 15 14 16 ADC $161415,X C2/797E: 1A INC C2/797F: 02 01 COP $01 C2/7981: 15 91 ORA $91,X C2/7983: 05 F3 ORA $F3 C2/7985: 09 02 AD ORA #$AD02 C2/7988: 05 4C ORA $4C C2/798A: 06 0C ASL $0C C2/798C: 02 1B COP $1B C2/798E: 16 97 ASL $97,X C2/7990: 0C 10 01 TSB $0110 C2/7993: AD 05 03 LDA $0305 C2/7996: 1C 06 DE TRB $DE06 C2/7999: 0D 00 FE ORA $FE00 C2/799C: BC 05 05 LDY $0505,X C2/799F: 06 10 ASL $10 C2/79A1: 01 0E ORA ($0E,X) C2/79A3: 0A ASL C2/79A4: 0F FA A4 04 ORA $04A4FA C2/79A8: FE 18 2E INC $2E18,X C2/79AB: 0F 10 0E 16 ORA $160E10 C2/79AF: 13 F7 ORA ($F7,S),Y C2/79B1: 02 00 COP $00 C2/79B3: 5A PHY C2/79B4: 77 05 ADC [$05],Y C2/79B6: 29 31 2F AND #$2F31 C2/79B9: 25 F9 AND $F9 C2/79BB: 1F 3A 16 8B ORA $8B163A,X C2/79BF: 0D 10 01 ORA $0110 C2/79C2: 16 06 ASL $06,X C2/79C4: 0E ED 02 ASL $02ED C2/79C7: 1A INC C2/79C8: 06 00 ASL $00 C2/79CA: 52 00 EOR ($00) C2/79CC: 06 25 ASL $25 C2/79CE: 29 1D FF AND #$FF1D C2/79D1: 23 21 AND $21,S C2/79D3: 01 20 ORA ($20,X) C2/79D5: 21 2F AND ($2F,X) C2/79D7: 25 23 AND $23 C2/79D9: C9 2A 80 CMP #$802A C2/79DC: 05 A7 ORA $A7 C2/79DE: 05 03 ORA $03 C2/79E0: AB PLB C2/79E1: 15 20 ORA $20,X C2/79E3: 0E 01 02 ASL $0201 C2/79E6: EF 0E 02 0F SBC $0F020E C2/79EA: 10 77 BPL $7A63 C2/79EC: 0E 04 1E ASL $1E04 C2/79EF: 1D FF 30 ORA $30FF,X C2/79F2: 30 28 BMI $7A1C C2/79F4: 21 01 AND ($01,X) C2/79F6: 2C 28 1D BIT $1D28 C2/79F9: 1D 2A 87 ORA $872A,X C2/79FC: 26 04 ROL $04 C2/79FE: 1A INC C2/79FF: 02 1B COP $1B C2/7A01: 06 C2 ASL $C2 C2/7A03: 0D 24 06 ORA $0624 C2/7A06: EB XBA C2/7A07: 06 03 ASL $03 C2/7A09: BA TSX C2/7A0A: 05 02 ORA $02 C2/7A0C: F0 2D BEQ $7A3B C2/7A0E: 10 10 BPL $7A20 C2/7A10: 15 FD ORA $FD,X C2/7A12: 02 77 COP $77 C2/7A14: 0E 05 22 ASL $2205 C2/7A17: 25 21 AND $21 C2/7A19: 28 PLP C2/7A1A: 20 B4 A9 JSR $A9B4 C2/7A1D: 36 83 ROL $83,X C2/7A1F: 05 05 ORA $05 C2/7A21: AB PLB C2/7A22: 15 09 ORA $09,X C2/7A24: 0A ASL C2/7A25: 30 06 BMI $7A2D C2/7A27: 0E 3F 02 ASL $023F C2/7A2A: 06 0C ASL $0C C2/7A2C: 02 18 COP $18 C2/7A2E: 02 29 COP $29 C2/7A30: 06 E3 ASL $E3 C2/7A32: 0D 3E B6 ORA $B63E C2/7A35: 05 01 ORA $01 C2/7A37: 06 15 ASL $15 C2/7A39: 10 09 BPL $7A44 C2/7A3B: 82 0D 98 BRL $C0124B C2/7A3E: 0C 7F 14 TSB $147F C2/7A41: 02 15 COP $15 C2/7A43: 10 13 BPL $7A58 C2/7A45: 16 01 ASL $01,X C2/7A47: 1A INC C2/7A48: 06 69 ASL $69 C2/7A4A: 0B PHD C2/7A4B: 28 PLP C2/7A4C: 06 40 ASL $40 C2/7A4E: 0E 15 F3 ASL $F315 C2/7A51: 15 0C ORA $0C,X C2/7A53: 06 2E ASL $2E C2/7A55: 06 7E ASL $7E C2/7A57: D3 16 CMP ($16,S),Y C2/7A59: 06 21 ASL $21 C2/7A5B: 32 21 AND ($21) C2/7A5D: 2A ROL C2/7A5E: 30 DE BMI $7A3E C2/7A60: 4E FB 06 LSR $06FB C2/7A63: 01 19 ORA ($19,X) C2/7A65: 0F 0C 02 14 ORA $14020C C2/7A69: 02 01 COP $01 C2/7A6B: 59 07 1C EOR $1C07,Y C2/7A6E: 07 ED ORA [$ED] C2/7A70: 0D 06 0A ORA $0A06 C2/7A73: 4B PHK C2/7A74: 07 06 ORA [$06] C2/7A76: F4 06 D6 PEA $D606 C2/7A79: 1A INC C2/7A7A: 06 09 ASL $09 C2/7A7C: 02 59 COP $59 C2/7A7E: 06 4E ASL $4E C2/7A80: 33 0F AND ($0F,S),Y C2/7A82: 22 22 04 A1 JSR $A10422 C2/7A86: 05 D3 ORA $D3 C2/7A88: 65 06 ADC $06 C2/7A8A: 87 0D STA [$0D] C2/7A8C: F4 0D 66 PEA $660D C2/7A8F: 0F ED 05 13 ORA $1305ED C2/7A93: 0F 12 CC 16 ORA $16CC12 C2/7A97: 08 PHP C2/7A98: 90 07 BCC $7AA1 C2/7A9A: 6A ROR C2/7A9B: 0F 05 A3 2E ORA $2EA305 C2/7A9F: D5 3D CMP $3D,X C2/7AA1: E7 0E SBC [$0E] C2/7AA3: 8C C7 06 STY $06C7 C2/7AA6: 87 0D STA [$0D] C2/7AA8: 01 1A ORA ($1A,X) C2/7AAA: 99 06 94 STA $9406,Y C2/7AAD: 1D FF 0D ORA $0DFF,X C2/7AB0: 2F 27 2B 31 AND $312B27 C2/7AB4: 2A ROL C2/7AB5: DD 06 D5 CMP $D506,X C2/7AB8: 3D D4 15 AND $15D4,X C2/7ABB: 06 46 ASL $46 C2/7ABD: 06 1C ASL $1C C2/7ABF: 16 0F ASL $0F,X C2/7AC1: 91 05 STA ($05),Y C2/7AC3: 10 00 BPL $7AC5 C2/7AC5: 48 PHA C2/7AC6: CC 05 6F CPY $6F05 C2/7AC9: 27 03 AND [$03] C2/7ACB: 36 8A ROL $8A,X C2/7ACD: 83 46 STA $46,S C2/7ACF: 02 87 COP $87 C2/7AD1: 0D 0C 73 ORA $730C C2/7AD4: 0E 8F 05 ASL $058F C2/7AD7: 90 05 BCC $7ADE C2/7AD9: 0A ASL C2/7ADA: 23 00 AND $00,S C2/7ADC: 4A LSR C2/7ADD: A0 06 LDY #$06 C2/7ADF: D9 1E FE CMP $FE1E,Y C2/7AE2: 8F 03 20 1E STA $1E2003 C2/7AE6: 17 07 ORA [$07],Y C2/7AE8: DA PHX C2/7AE9: 72 16 ADC ($16) C2/7AEB: 10 29 BPL $7B16 C2/7AED: 06 1A ASL $1A C2/7AEF: 16 5C ASL $5C,X C2/7AF1: 17 0F ORA [$0F],Y C2/7AF3: 02 E3 COP $E3 C2/7AF5: 10 13 BPL $7B0A C2/7AF7: FB XCE C2/7AF8: 06 8B ASL $8B C2/7AFA: 0D C1 1D ORA $1DC1 C2/7AFD: 0C 06 05 TSB $0506 C2/7B00: F5 02 SBC $02,X C2/7B02: 82 0D 07 BRL $C08212 C2/7B05: 48 PHA C2/7B06: 07 10 ORA [$10] C2/7B08: 0E 10 06 ASL $0610 C2/7B0B: C5 01 CMP $01 C2/7B0D: 47 06 EOR [$06] C2/7B0F: 1B TCS C2/7B10: F9 26 EF SBC $EF26,Y C2/7B13: 07 B2 ORA [$B2] C2/7B15: 05 15 ORA $15 C2/7B17: 02 35 COP $35 C2/7B19: 0F 91 05 FE ORA $FE0591 C2/7B1D: 20 0E 0E JSR $0E0E C2/7B20: 0A ASL C2/7B21: 96 05 STX $05,Y C2/7B23: 32 36 AND ($36) C2/7B25: 71 CC ADC ($CC),Y C2/7B27: A8 TAY C2/7B28: 05 AD ORA $AD C2/7B2A: 0D 9B 08 ORA $089B C2/7B2D: 13 10 ORA ($10,S),Y C2/7B2F: 16 BE ASL $BE,X C2/7B31: 06 21 ASL $21 C2/7B33: 0E 1E 08 ASL $081E C2/7B36: FB XCE C2/7B37: 0E C7 36 ASL $36C7 C2/7B3A: BA TSX C2/7B3B: 00 16 BRK $16 C2/7B3D: 6F 00 F3 07 ADC $07F300 C2/7B41: FF 00 29 2B SBC $2B2900,X C2/7B45: 2A ROL C2/7B46: 2F 30 21 2E AND $2E2130 C2/7B4A: A0 FD LDY #$FD C2/7B4C: 7F 3B 0E 92 ADC $920E3B,X C2/7B50: 06 F3 ASL $F3 C2/7B52: 15 1D ORA $1D,X C2/7B54: 20 46 D6 JSR $D646 C2/7B57: 06 2B ASL $2B C2/7B59: C3 1E CMP $1E,S C2/7B5B: 26 FA ROL $FA C2/7B5D: 97 E7 STA [$E7],Y C2/7B5F: 0E 2C 0E ASL $0E2C C2/7B62: BF 17 10 09 LDA $091017,X C2/7B66: F8 SED C2/7B67: F8 SED C2/7B68: 0E 77 16 ASL $1677 C2/7B6B: D2 1F CMP ($1F) C2/7B6D: 21 2A AND ($2A,X) C2/7B6F: 23 25 AND $25,S C2/7B71: 2A ROL C2/7B72: 7D 21 DC ADC $DC21,X C2/7B75: 1D 03 06 ORA $0603,X C2/7B78: 0A ASL C2/7B79: 0B PHD C2/7B7A: 0A ASL C2/7B7B: E8 INX C2/7B7C: 05 F8 ORA $F8 C2/7B7E: 98 TYA C2/7B7F: 00 58 BRK $58 C2/7B81: 0E 78 0E ASL $0E78 C2/7B84: 2E 21 29 ROL $2921 C2/7B87: 1D 27 BA ORA $BA27,X C2/7B8A: A8 TAY C2/7B8B: 3E D6 15 ROL $15D6,X C2/7B8E: 06 18 ASL $18 C2/7B90: 06 0A ASL $0A C2/7B92: 46 06 LSR $06 C2/7B94: 01 C5 ORA ($C5,X) C2/7B96: 0D 28 06 ORA $0628 C2/7B99: 02 F1 COP $F1 C2/7B9B: 0E C6 05 ASL $05C6 C2/7B9E: 99 0D 03 STA $030D,Y C2/7BA1: 30 3F BMI $7BE2 C2/7BA3: 2E 1D 2A ROL $2A1D C2/7BA6: 2F 28 1D A3 AND $A31D28 C2/7BAA: 0D 6B 09 ORA $096B C2/7BAD: FF 15 06 05 SBC $050615,X C2/7BB1: 01 18 ORA ($18,X) C2/7BB3: 10 10 BPL $7BC5 C2/7BB5: 0D FF 14 ORA $14FF C2/7BB8: 06 1A ASL $1A C2/7BBA: 00 08 BRK $08 C2/7BBC: C2 30 REP #$30 C2/7BBE: 48 PHA C2/7BBF: FF DA 5A 8B SBC $8B5ADA,X C2/7BC3: 0B PHD C2/7BC4: 20 2F 50 JSR $502F C2/7BC7: 20 FF E1 JSR $E1FF C2/7BCA: 69 20 10 ADC #$1020 C2/7BCD: 6A ROR C2/7BCE: 20 4E 50 JSR $504E C2/7BD1: FF C2 30 2B SBC $2B30C2,X C2/7BD5: AB PLB C2/7BD6: 7A PLY C2/7BD7: FA PLX C2/7BD8: 68 PLA C2/7BD9: 28 PLP C2/7BDA: FF 6B 20 11 SBC $11206B,X C2/7BDE: 77 20 ADC [$20],Y C2/7BE0: F4 69 20 PEA $2069 C2/7BE3: FF 15 78 20 SBC $207815,X C2/7BE7: 4F 78 20 85 EOR $852078 C2/7BEB: 74 7F STZ $7F,X C2/7BED: 20 E5 6B JSR $6BE5 C2/7BF0: 60 RTS C2/7BF1: 8B PHB C2/7BF2: A9 00 FC LDA #$FC00 C2/7BF5: 02 FF COP $FF C2/7BF7: 03 8D ORA $8D,S C2/7BF9: 01 21 ORA ($21,X) C2/7BFB: A6 00 LDX $00 C2/7BFD: 8E 02 FF STX $FF02 C2/7C00: 21 A9 AND ($A9,X) C2/7C02: 07 8D ORA [$8D] C2/7C04: 05 21 ORA $21 C2/7C06: 7B TDC C2/7C07: A9 FF 80 LDA #$80FF C2/7C0A: 8D 1A 21 STA $211A C2/7C0D: AB PLB C2/7C0E: 60 RTS C2/7C0F: 7B TDC C2/7C10: A5 FF LDA $FF C2/7C12: 19 30 0D ORA $0D30,Y C2/7C15: 0A ASL C2/7C16: AA TAX C2/7C17: FC 3C 6A JSR ($6A3C,X) C2/7C1A: FF 20 0F 75 SBC $750F20,X C2/7C1E: 20 FD 71 JSR $71FD C2/7C21: 80 EE BRA $7C11 C2/7C23: FF A0 0F 00 SBC $000FA0,X C2/7C27: 84 15 STY $15 C2/7C29: A9 00 A0 LDA #$A000 C2/7C2C: FF A0 55 20 SBC $2055A0,X C2/7C30: DC 74 A4 JMP [$A474] C2/7C33: 15 F0 ORA $F0,X C2/7C35: FD 08 F8 SBC $F808,X C2/7C38: 21 F4 AND ($F4,X) C2/7C3A: 60 RTS C2/7C3B: 48 PHA C2/7C3C: 6A ROR C2/7C3D: 87 6A STA [$6A] C2/7C3F: FF 9E 6A AD SBC $AD6A9E,X C2/7C43: 6A ROR C2/7C44: BC 6A C6 LDY $C66A,X C2/7C47: 6A ROR C2/7C48: FF 20 C3 6B SBC $6BC320,X C2/7C4C: A2 00 LDX #$00 C2/7C4E: 31 A0 AND ($A0),Y C2/7C50: 65 7F ADC $7F C2/7C52: 74 20 STZ $20,X C2/7C54: 24 73 BIT $73 C2/7C56: A2 00 LDX #$00 C2/7C58: 30 2C BMI $7C86 C2/7C5A: 2A ROL C2/7C5B: FF 31 A0 D2 SBC $D2A031,X C2/7C5F: 6C A9 02 JMP ($02A9) C2/7C62: 20 3A D8 JSR $D83A C2/7C65: 31 12 AND ($12),Y C2/7C67: 3F 22 05 02 AND $020522,X C2/7C6B: 8C 6B 0A STY $0A6B C2/7C6E: 02 E6 COP $E6 C2/7C70: 19 EF A9 ORA $A9EF,Y C2/7C73: 0F 85 32 37 ORA $373285 C2/7C77: 03 84 ORA $84,S C2/7C79: 15 60 ORA $60,X C2/7C7B: FF A4 15 D0 SBC $D015A4,X C2/7C7F: 0F E6 19 A0 ORA $A019E6 C2/7C83: 58 CLI C2/7C84: 75 02 ADC $02,X C2/7C86: 03 12 ORA $12,S C2/7C88: 18 CLC C2/7C89: 55 0A EOR $0A,X C2/7C8B: 20 CF 6A JSR $6ACF C2/7C8E: 64 0A STZ $0A C2/7C90: A5 07 LDA $07 C2/7C92: 69 02 3C ADC #$3C02 C2/7C95: 02 02 COP $02 C2/7C97: 78 SEI C2/7C98: 42 01 WDM $01 C2/7C9A: 84 3A STY $3A C2/7C9C: 02 FB COP $FB C2/7C9E: E6 19 INC $19 C2/7CA0: 78 SEI C2/7CA1: 0A ASL C2/7CA2: A9 FF 85 LDA #$85FF C2/7CA5: 19 7B FF ORA $FF7B,Y C2/7CA8: 8D 00 02 STA $0200 C2/7CAB: 60 RTS C2/7CAC: A5 3F LDA $3F C2/7CAE: 8F 1F EF 21 STA $21EF1F C2/7CB2: 00 A5 BRK $A5 C2/7CB4: 40 RTI C2/7CB5: AF 12 41 8F LDA $8F4112 C2/7CB9: 20 BA B1 JSR $B1BA C2/7CBC: 02 42 COP $42 C2/7CBE: BB TYX C2/7CBF: 12 44 ORA ($44) C2/7CC1: 8F 1B B1 02 STA $02B11B C2/7CC5: 45 AE EOR $AE C2/7CC7: C7 12 CMP [$12] C2/7CC9: 46 8F LSR $8F C2/7CCB: 1C B1 02 TRB $02B1 C2/7CCE: 47 D3 EOR [$D3] C2/7CD0: 12 48 ORA ($48) C2/7CD2: EB XBA C2/7CD3: 8F 1D B1 02 STA $02B11D C2/7CD7: 49 DF 12 EOR #$12DF C2/7CDA: 4A LSR C2/7CDB: 8F 1E FA B1 STA $B1FA1E C2/7CDF: 02 4B COP $4B C2/7CE1: EB XBA C2/7CE2: 0A ASL C2/7CE3: 60 RTS C2/7CE4: AA TAX C2/7CE5: 7C 1C 6B JMP ($6B1C,X) C2/7CE8: FF 20 6B 51 SBC $516B20,X C2/7CEC: 6B RTL C2/7CED: A6 1D LDX $1D C2/7CEF: FE 00 FF INC $FF00,X C2/7CF2: 3A DEC C2/7CF3: A9 80 8F LDA #$8F80 C2/7CF6: 30 21 BMI $7D19 C2/7CF8: 00 A9 BRK $A9 C2/7CFA: 77 57 ADC [$57],Y C2/7CFC: 8F 31 07 03 STA $030731 C2/7D00: 17 8F ORA [$8F],Y C2/7D02: 2C 0D 13 BIT $130D C2/7D05: FD 2D 07 SBC $072D,X C2/7D08: 03 88 ORA $88,S C2/7D0A: 9D 01 33 STA $3301,X C2/7D0D: A9 20 FF LDA #$FF20 C2/7D10: 9D 02 33 STA $3302,X C2/7D13: A9 42 9D LDA #$9D42 C2/7D16: 01 34 ORA ($34,X) C2/7D18: FE 20 03 INC $0320,X C2/7D1B: 00 36 BRK $36 C2/7D1D: A6 1D LDX $1D C2/7D1F: BD 00 36 LDA $3600,X C2/7D22: FF D0 2F BD SBC $BD2FD0,X C2/7D26: 01 33 ORA ($33,X) C2/7D28: C9 97 B0 CMP #$B097 C2/7D2B: FF 07 8F 32 SBC $328F07,X C2/7D2F: 21 00 AND ($00,X) C2/7D31: FE 01 33 INC $3301,X C2/7D34: DF BD 02 33 CMP $3302BD,X C2/7D38: C9 8F 3B CMP #$3B8F C2/7D3B: 23 02 AND $02,S C2/7D3D: 33 9F AND ($9F,S),Y C2/7D3F: BD 01 34 LDA $3401,X C2/7D42: C9 91 3B CMP #$3B91 C2/7D45: 2B PLD C2/7D46: 29 1B DE AND #$DE1B C2/7D49: FF 00 36 38 SBC $383600,X C2/7D4D: 60 RTS C2/7D4E: 20 9D 6B JSR $6B9D C2/7D51: A5 FF LDA $FF C2/7D53: 18 CLC C2/7D54: 29 07 D0 AND #$D007 C2/7D57: 06 C2 ASL $C2 C2/7D59: 20 E6 FF JSR $FFE6 C2/7D5C: 27 E2 AND [$E2] C2/7D5E: 20 38 60 JSR $6038 C2/7D61: A5 19 LDA $19 C2/7D63: C9 7F 03 CMP #$037F C2/7D66: F0 0A BEQ $7D72 C2/7D68: C9 04 F0 CMP #$F004 C2/7D6B: 0F 6D 03 F7 ORA $F7036D C2/7D6F: 01 D0 ORA ($D0,X) C2/7D71: 08 PHP C2/7D72: 73 03 ADC ($03,S),Y C2/7D74: 44 E6 4A MVP $E6,$4A C2/7D77: E2 E3 SEP #$E3 C2/7D79: 20 60 8B JSR $8B60 C2/7D7C: 13 8E ORA ($8E,S),Y C2/7D7E: 03 8F ORA $8F,S C2/7D80: 13 A0 ORA ($A0,S),Y C2/7D82: 40 RTI C2/7D83: 00 FF BRK $FF C2/7D85: 84 3F STY $3F C2/7D87: A0 20 LDY #$20 C2/7D89: 00 84 BRK $84 C2/7D8B: 41 A0 EOR ($A0,X) C2/7D8D: FF A0 FF 84 SBC $84FFA0,X C2/7D91: 25 A0 AND $A0 C2/7D93: C0 FF 84 CPY #$84FF C2/7D96: 7F 27 7B A8 ADC $A87B27,X C2/7D9A: 84 46 STY $46 C2/7D9C: 84 48 STY $48 C2/7D9E: 91 0A STA ($0A),Y C2/7DA0: FF 44 84 4A SBC $4A8444,X C2/7DA4: 60 RTS C2/7DA5: A0 96 LDY #$96 C2/7DA7: 4E 84 FF LSR $FF84 C2/7DAA: F3 A9 SBC ($A9,S),Y C2/7DAC: D9 85 F5 CMP $F585,Y C2/7DAF: A0 00 LDY #$00 C2/7DB1: 00 FF BRK $FF C2/7DB3: 84 F6 STY $F6 C2/7DB5: A9 7F 85 LDA #$857F C2/7DB8: F8 SED C2/7DB9: 22 6D EB FF JSR $FFEB6D C2/7DBD: C2 CC REP #$CC C2/7DBF: 0B PHD C2/7DC0: E7 D1 SBC [$D1] C2/7DC2: 03 E9 ORA $E9,S C2/7DC4: A0 00 LDY #$00 C2/7DC6: F7 98 SBC [$98],Y C2/7DC8: 84 EB STY $EB C2/7DCA: D1 03 CMP ($03),Y C2/7DCC: ED A0 C0 SBC $C0A0 C2/7DCF: 07 FF ORA [$FF] C2/7DD1: 84 EF STY $EF C2/7DD3: 20 CC 62 JSR $62CC C2/7DD6: A9 40 85 LDA #$8540 C2/7DD9: FF ED A2 00 SBC $00A2ED,X C2/7DDD: 98 TYA C2/7DDE: A9 7F 20 LDA #$207F C2/7DE1: 7A PLY C2/7DE2: 7F 6C 20 3D ADC $3D206C,X C2/7DE6: 6C A0 00 JMP ($00A0) C2/7DE9: B8 CLV C2/7DEA: DC 1B FF JMP [$FF1B] C2/7DED: 64 ED STZ $ED C2/7DEF: 64 EE STZ $EE C2/7DF1: A0 00 LDY #$00 C2/7DF3: 20 84 DD JSR $DD84 C2/7DF6: EB XBA C2/7DF7: CC 03 20 CPY $2003 C2/7DFA: 18 CLC C2/7DFB: 7A PLY C2/7DFC: D1 01 CMP ($01),Y C2/7DFE: 7F 48 FF AB ADC $ABFF48,X C2/7E02: 7B TDC C2/7E03: AA TAX C2/7E04: 9D 00 B8 STA $B800,X C2/7E07: E8 INX C2/7E08: E8 INX C2/7E09: DF E0 00 20 CMP $2000E0,X C2/7E0D: D0 F6 BNE $7E05 C2/7E0F: B5 03 LDA $03,X C2/7E11: E7 A9 SBC [$A9] C2/7E13: FF 0A 85 E0 SBC $E0850A,X C2/7E17: A9 20 85 LDA #$8520 C2/7E1A: E1 A6 SBC ($A6,X) C2/7E1C: EF E7 B9 C0 SBC $C0B9E7 C2/7E20: 07 22 ORA [$22] C2/7E22: 04 C8 TSB $C8 C2/7E24: E8 INX C2/7E25: E8 INX C2/7E26: FF C6 E1 D0 SBC $D0E1C6,X C2/7E2A: F3 C2 SBC ($C2,S),Y C2/7E2C: 21 A5 AND ($A5,X) C2/7E2E: E7 FF SBC [$FF] C2/7E30: 69 00 01 ADC #$0100 C2/7E33: 85 E7 STA $E7 C2/7E35: E2 20 SEP #$20 C2/7E37: C6 FF DEC $FF C2/7E39: E0 D0 CPX #$D0 C2/7E3B: DE AB 60 DEC $60AB,X C2/7E3E: 85 E9 STA $E9 C2/7E40: 86 FD STX $FD C2/7E42: E7 1B SBC [$1B] C2/7E44: 24 A9 BIT $A9 C2/7E46: 08 PHP C2/7E47: 85 E6 STA $E6 C2/7E49: C2 20 REP #$20 C2/7E4B: FE 5F 02 INC $025F,X C2/7E4E: A7 E7 LDA [$E7] C2/7E50: 85 F1 STA $F1 C2/7E52: B7 E7 LDA [$E7],Y C2/7E54: 85 FF STA $FF C2/7E56: EF 7B E2 20 SBC $20E27B C2/7E5A: A0 08 LDY #$08 C2/7E5C: 00 7B BRK $7B C2/7E5E: FF 06 F0 2A SBC $2AF006,X C2/7E62: 06 EF ASL $EF C2/7E64: 2A ROL C2/7E65: 06 F2 ASL $F2 C2/7E67: FF 2A 06 F1 SBC $F1062A,X C2/7E6B: 2A ROL C2/7E6C: 29 0F F0 AND #$F00F C2/7E6F: 00 FB BRK $FB C2/7E71: 9D 01 24 STA $2401,X C2/7E74: 04 88 TSB $88 C2/7E76: D0 E7 BNE $7E5F C2/7E78: A4 E7 LDY $E7 C2/7E7A: FF C8 C8 84 SBC $84C8C8,X C2/7E7E: E7 C6 SBC [$C6] C2/7E80: E6 D0 INC $D0 C2/7E82: CA DEX C2/7E83: FF C2 20 A5 SBC $A520C2,X C2/7E87: E7 18 SBC [$18] C2/7E89: 69 10 00 ADC #$0010 C2/7E8C: FB XCE C2/7E8D: 85 E7 STA $E7 C2/7E8F: 74 04 STZ $04,X C2/7E91: C6 ED DEC $ED C2/7E93: D0 B5 BNE $7E4A C2/7E95: AB PLB C2/7E96: FF 60 2F 5E SBC $5E2F60,X C2/7E9A: 76 3E ROR $3E,X C2/7E9C: 8E 29 0A STX $0A29 C2/7E9F: FF 21 C8 1C SBC $1CC821,X C2/7EA3: 86 14 STX $14 C2/7EA5: 64 14 STZ $14 C2/7EA7: 43 BF EOR $BF,S C2/7EA9: 10 23 BPL $7ECE C2/7EAB: 0C 22 04 TSB $0422 C2/7EAE: 00 C4 BRK $C4 C2/7EB0: 34 A4 BIT $A4,X C2/7EB2: 7D 18 A2 ADC $A218,X C2/7EB5: 49 0F 6D EOR #$6D0F C2/7EB8: 20 47 6D JSR $6D47 C2/7EBB: B3 69 LDA ($69,S),Y C2/7EBD: DB STP C2/7EBE: 22 6D C5 39 JSR $39C56D C2/7EC2: FB XCE C2/7EC3: 6F D1 41 A9 ADC $A941D1 C2/7EC7: 82 FF 8D BRL $C00CC9 C2/7ECA: 30 21 BMI $7EED C2/7ECC: A9 50 8D LDA #$8D50 C2/7ECF: 31 21 AND ($21),Y C2/7ED1: FF A9 17 8D SBC $8D17A9,X C2/7ED5: 2C 21 A9 BIT $A921 C2/7ED8: 01 8D ORA ($8D,X) C2/7EDA: BF 2D 21 A9 LDA $A9212D,X C2/7EDE: E0 8D CPX #$8D C2/7EE0: 32 EB AND ($EB) C2/7EE2: 41 73 EOR ($73,X) C2/7EE4: FD 6D F8 SBC $F86D,X C2/7EE7: F9 7D 6D SBC $6D7D,Y C2/7EEA: 27 6E AND [$6E] C2/7EEC: 41 6E EOR ($6E,X) C2/7EEE: FF 74 6E 81 SBC $816E74,X C2/7EF2: 6E 64 34 ROR $3464 C2/7EF5: A9 80 AB LDA #$AB80 C2/7EF8: 85 35 STA $35 C2/7EFA: 32 3A AND ($3A) C2/7EFC: 80 2B BRA $7F29 C2/7EFE: 2A ROL C2/7EFF: A0 2B LDY #$2B C2/7F01: 42 7D WDM $7D C2/7F03: 27 71 AND [$71] C2/7F05: A9 04 43 LDA #$4304 C2/7F08: 0A ASL C2/7F09: 6B RTL C2/7F0A: 05 BD ORA $BD C2/7F0C: 81 25 STA ($25,X) C2/7F0E: 74 05 STZ $05,X C2/7F10: 7D DD 81 ADC $81DD,X C2/7F13: 1D A9 02 ORA $02A9,X C2/7F16: A0 FD LDY #$FD C2/7F18: 6E 56 02 ROR $0256 C2/7F1B: FF C2 20 A9 SBC $A920C2,X C2/7F1F: 7A PLY C2/7F20: 70 9D BVS $7EBF C2/7F22: 00 35 BRK $35 C2/7F24: FF A9 FC FF SBC $FFFCA9,X C2/7F28: 9D 00 38 STA $3800,X C2/7F2B: A9 04 7F LDA #$7F04 C2/7F2E: 00 9D BRK $9D C2/7F30: 00 37 BRK $37 C2/7F32: A9 68 01 LDA #$0168 C2/7F35: 2C 03 2F BIT $2F03 C2/7F38: E2 20 SEP #$20 C2/7F3A: A9 72 1D LDA #$1D72 C2/7F3D: 0B PHD C2/7F3E: 80 27 BRA $7F67 C2/7F40: 0B PHD C2/7F41: 9E 3D 39 STZ $393D,X C2/7F44: A6 A9 LDX $A9 C2/7F46: 15 B4 ORA $B4,X C2/7F48: 0D 38 A9 ORA $A938 C2/7F4B: FE AF 05 INC $05AF,X C2/7F4E: B8 CLV C2/7F4F: 3D A5 50 AND $50A5,X C2/7F52: 1D 0B A0 ORA $A00B,X C2/7F55: 27 03 AND [$03] C2/7F57: 59 22 B4 EOR $B422,Y C2/7F5A: 61 42 ADC ($42,X) C2/7F5C: 38 SEC C2/7F5D: F5 04 SBC $04,X C2/7F5F: 03 12 ORA $12,S C2/7F61: 8A TXA C2/7F62: A1 0D LDA ($0D,X) C2/7F64: 20 97 6F JSR $6F97 C2/7F67: 20 8B 4C JSR $4C8B C2/7F6A: 6F 64 0A 28 ADC $280A64 C2/7F6E: 69 02 00 ADC #$0002 C2/7F71: 0E 32 1A ASL $1A32 C2/7F74: A9 01 08 LDA #$0801 C2/7F77: 84 25 STY $25 C2/7F79: 2E 2E 74 ROL $742E C2/7F7C: 15 30 ORA $30,X C2/7F7E: 16 18 ASL $18,X C2/7F80: 3E 9D 0A ROL $0A9D,X C2/7F83: 19 1E FE ORA $FE1E,Y C2/7F86: A4 32 LDY $32 C2/7F88: AA TAX C2/7F89: 7C 8E 6E JMP ($6E8E,X) C2/7F8C: 92 6E STA ($6E) C2/7F8E: 97 F9 STA [$F9],Y C2/7F90: 6E FE 12 ROR $12FE C2/7F93: 2F 1B 39 BC AND $BC391B C2/7F97: 00 39 BRK $39 C2/7F99: 5A PHY C2/7F9A: D6 05 DEC $05,X C2/7F9C: 02 DB COP $DB C2/7F9E: 76 56 ROR $56,X C2/7FA0: 02 7A COP $7A C2/7FA2: A5 05 LDA $05 C2/7FA4: 19 71 BE ORA $BE71,Y C2/7FA7: AA TAX C2/7FA8: 05 E2 ORA $E2 C2/7FAA: 20 B9 E9 JSR $E9B9 C2/7FAD: 6E 1D 03 ROR $031D C2/7FB0: C8 INY C2/7FB1: FE 93 16 INC $1693,X C2/7FB4: 34 C8 BIT $C8,X C2/7FB6: C0 14 00 CPY #$0014 C2/7FB9: F0 16 BEQ $7FD1 C2/7FBB: FF A6 1D C2 SBC $C21DA6,X C2/7FBF: 20 98 9D JSR $9D98 C2/7FC2: 00 39 BRK $39 C2/7FC4: 62 BF 05 PER $C08586 C2/7FC7: 10 2C BPL $7FF5 C2/7FC9: 13 65 ORA ($65,S),Y C2/7FCB: 13 6A ORA ($6A,S),Y C2/7FCD: 0D 9D 71 ORA $719D C2/7FD0: 70 05 BVS $7FD7 C2/7FD2: FF 18 60 70 SBC $706018,X C2/7FD6: 9D 74 A0 STA $A074,X C2/7FD9: 78 SEI C2/7FDA: 9E FF 7C STZ $7CFF,X C2/7FDD: 9D 80 9C STA $9C80,X C2/7FE0: 84 9F STY $9F C2/7FE2: 88 DEY C2/7FE3: A0 FF LDY #$FF C2/7FE5: 8C 9F 90 STY $909F C2/7FE8: A4 94 LDY $94 C2/7FEA: A5 AA LDA $AA C2/7FEC: 7C BF 01 JMP ($01BF,X) C2/7FEF: 6F 05 6F 15 ADC $156F05 C2/7FF3: 6F FE 12 20 ADC $2012FE C2/7FF7: DB STP C2/7FF8: 5F 75 A5 05 EOR $05A575,X C2/7FFC: 94 02 STY $02,X C2/7FFE: AB PLB C2/7FFF: 06 A6 ASL $A6 C2/8001: 1D EE 7C ORA $7CEE,X C2/8004: 06 F0 ASL $F0 C2/8006: 2B PLD C2/8007: BC 32 03 LDY $0332,X C2/800A: 17 C2 ORA [$C2],Y C2/800C: 21 FF AND ($FF,X) C2/800E: BD 00 33 LDA $3300,X C2/8011: 7D 00 37 ADC $3700,X C2/8014: 9D 00 FF STA $FF00,X C2/8017: 33 BD AND ($BD,S),Y C2/8019: 00 34 BRK $34 C2/801B: 18 CLC C2/801C: 7D 00 38 ADC $3800,X C2/801F: FF 9D 00 34 SBC $34009D,X C2/8023: E2 20 SEP #$20 C2/8025: C2 20 REP #$20 C2/8027: DE DB 00 DEC $00DB,X C2/802A: 39 31 03 AND $0331,Y C2/802D: F0 03 BEQ $8032 C2/802F: 65 03 ADC $03 C2/8031: E2 20 SEP #$20 C2/8033: F7 20 SBC [$20],Y C2/8035: 8D 75 68 STA $6875 C2/8038: 03 83 ORA $83,S C2/803A: 6F 29 1F 5B ADC $5B1F29 C2/803E: D0 27 BNE $8067 C2/8040: 05 02 ORA $02 C2/8042: 5A PHY C2/8043: 70 A2 BVS $7FE7 C2/8045: 1D F6 A9 ORA $A9F6,X C2/8048: 0D F7 E2 ORA $E2F7 C2/804B: 20 DA 2A JSR $2ADA C2/804E: 0F 03 0A A8 ORA $A80A03 C2/8052: FA PLX C2/8053: B7 B9 LDA [$B9],Y C2/8055: 7B TDC C2/8056: 6F 1D 03 B9 ADC $B9031D C2/805A: 7C 4E 07 JMP ($074E,X) C2/805D: 34 FF BIT $FF,X C2/805F: 60 RTS C2/8060: 72 9A ADC ($9A) C2/8062: 7A PLY C2/8063: 92 62 STA ($62) C2/8065: AA TAX C2/8066: 52 FF EOR ($FF) C2/8068: BA TSX C2/8069: 7B TDC C2/806A: E6 34 INC $34 C2/806C: A5 34 LDA $34 C2/806E: AA TAX C2/806F: BF DF 00 FD LDA $FD00DF,X C2/8073: C0 85 35 CPY #$3585 C2/8076: 66 17 ROR $17 C2/8078: 65 35 ADC $35 C2/807A: AE 29 17 LDX $1729 C2/807D: 07 D0 ORA [$D0] C2/807F: 2A ROL C2/8080: 31 47 AND ($47),Y C2/8082: DA PHX C2/8083: 3D 3F FA AND $FA3F,X C2/8086: 4F 29 3F 69 EOR $693F29 C2/808A: 68 PLA C2/808B: 1D 03 8E ORA $8E03,X C2/808E: 2F 98 55 0F AND $0F5598 C2/8092: 4A LSR C2/8093: 2A ROL C2/8094: 0F 0F 7A 57 ORA $577A0F C2/8098: 42 8D WDM $8D C2/809A: 1E 8E 1F ASL $1F8E,X C2/809D: 1F 95 47 5D ORA $5D4795,X C2/80A1: 1F A1 1F A0 ORA $A01FA1,X C2/80A5: 00 E9 BRK $E9 C2/80A7: C6 03 DEC $03 C2/80A9: EC CA AB CPX $ABCA C2/80AC: 16 0B ASL $0B,X C2/80AE: 14 E0 TRB $E0 C2/80B0: 0F 12 0C 30 ORA $300C12 C2/80B4: 17 04 ORA [$04],Y C2/80B6: FC 0F 06 JSR ($060F,X) C2/80B9: 44 5D 07 MVP $5D,$07 C2/80BC: 12 2C ORA ($2C) C2/80BE: A0 E0 LDY #$E0 C2/80C0: 16 F2 ASL $F2,X C2/80C2: 4F 0D 12 0C EOR $0C120D C2/80C6: FD 60 17 SBC $1760,X C2/80C9: 0C AA 7C TSB $7CAA C2/80CC: 5E 70 62 LSR $6270,X C2/80CF: 70 F3 BVS $80C4 C2/80D1: 6A ROR C2/80D2: 70 E3 BVS $80B7 C2/80D4: 2E 2F 03 ROL $032F C2/80D7: 01 3B ORA ($3B,X) C2/80D9: C9 FE FB CMP #$FBFE C2/80DC: F0 05 BEQ $80E3 C2/80DE: 25 17 AND $17 C2/80E0: 18 CLC C2/80E1: 60 RTS C2/80E2: 7D 70 FE ADC $FE70,X C2/80E5: FF 0A 90 00 SBC $00900A,X C2/80E9: 12 38 ORA ($38) C2/80EB: A0 00 LDY #$00 C2/80ED: 14 FF TRB $FF C2/80EF: 38 SEC C2/80F0: B0 00 BCS $80F2 C2/80F2: 16 38 ASL $38,X C2/80F4: 80 10 BRA $8106 C2/80F6: 30 FF BMI $80F7 C2/80F8: 38 SEC C2/80F9: 90 10 BCC $810B C2/80FB: 32 38 AND ($38) C2/80FD: A0 10 LDY #$10 C2/80FF: 34 FF BIT $FF,X C2/8101: 38 SEC C2/8102: B0 10 BCS $8114 C2/8104: 36 38 ROL $38,X C2/8106: 80 20 BRA $8128 C2/8108: 50 FF BVC $8109 C2/810A: 38 SEC C2/810B: 90 20 BCC $812D C2/810D: 52 38 EOR ($38) C2/810F: A0 20 LDY #$20 C2/8111: 54 FF 38 MVN $FF,$38 C2/8114: A9 70 FE LDA #$FE70 C2/8117: 0C 80 18 TSB $1880 C2/811A: 10 AF BPL $80CB C2/811C: 38 SEC C2/811D: 90 00 BCC $811F C2/811F: 18 CLC C2/8120: 5F 00 1A 63 EOR $631A00,X C2/8124: 00 1C BRK $1C C2/8126: AF 38 C0 00 LDA $00C038 C2/812A: 1E 6B 00 ASL $006B,X C2/812D: 38 SEC C2/812E: 6F 00 3A BE ADC $BE3A00 C2/8132: 73 00 ADC ($00,S),Y C2/8134: 3C 38 C0 BIT $C038,X C2/8137: 10 3E BPL $8177 C2/8139: 7F 00 5A FF ADC $FF5A00,X C2/813D: 38 SEC C2/813E: B0 20 BCS $8160 C2/8140: 5C 38 C0 20 JMP $20C038 C2/8144: 5E FF 38 LSR $38FF,X C2/8147: E7 70 SBC [$70] C2/8149: 08 PHP C2/814A: EC 70 08 CPX $0870 C2/814D: F1 7F SBC ($7F),Y C2/814F: 70 08 BVS $8159 C2/8151: E6 70 INC $70 C2/8153: FE 00 01 INC $0100,X C2/8156: C4 04 CPY $04 C2/8158: F5 3A SBC $3A,X C2/815A: C5 00 CMP $00 C2/815C: 01 C9 ORA ($C9,X) C2/815E: 08 PHP C2/815F: 02 3A COP $3A C2/8161: 02 71 COP $71 C2/8163: DF 08 07 71 CMP $710708,X C2/8167: 08 PHP C2/8168: 0C D8 08 TSB $08D8 C2/816B: FE 01 FF INC $FF01,X C2/816E: 04 04 TSB $04 C2/8170: 03 3A ORA $3A,S C2/8172: 01 02 ORA ($02,X) C2/8174: 02 04 COP $04 C2/8176: FF 3A 03 00 SBC $00033A,X C2/817A: 00 05 BRK $05 C2/817C: 3A DEC C2/817D: 08 PHP C2/817E: 00 FF BRK $FF C2/8180: 06 3A ASL $3A C2/8182: 00 08 BRK $08 C2/8184: 07 3A ORA [$3A] C2/8186: 2E 71 FF ROL $FF71 C2/8189: 08 PHP C2/818A: 33 71 AND ($71,S),Y C2/818C: 08 PHP C2/818D: 38 SEC C2/818E: 71 08 ADC ($08),Y C2/8190: 3D 5C FB AND $FB5C,X C2/8193: 10 FA BPL $818F C2/8195: 00 2E BRK $2E C2/8197: 71 FF ADC ($FF),Y C2/8199: C5 00 CMP $00 C2/819B: 08 PHP C2/819C: C9 08 F5 CMP #$F508 C2/819F: 09 C9 08 ORA #$08C9 C2/81A2: 0A ASL C2/81A3: C9 08 0B CMP #$0B08 C2/81A6: 3A DEC C2/81A7: 51 71 EOR ($71),Y C2/81A9: FF 08 56 71 SBC $715608,X C2/81AD: 08 PHP C2/81AE: 5F 71 08 6C EOR $6C0871,X C2/81B2: BA TSX C2/81B3: 27 09 AND [$09] C2/81B5: FE C5 00 INC $00C5,X C2/81B8: 0C 3A 02 TSB $023A C2/81BB: 30 09 BMI $81C6 C2/81BD: 08 PHP C2/81BE: 73 00 ADC ($00,S),Y C2/81C0: 0D E9 08 ORA $08E9 C2/81C3: 37 19 AND [$19],Y C2/81C5: 10 00 BPL $81C7 C2/81C7: 0E 3C 59 ASL $593C C2/81CA: FF 18 00 0F SBC $0F0018,X C2/81CE: 3A DEC C2/81CF: E7 1C SBC [$1C] C2/81D1: BD 7B FF LDA $FF7B,X C2/81D4: 7A PLY C2/81D5: 77 58 ADC [$58],Y C2/81D7: 77 17 ADC [$17],Y C2/81D9: 73 D4 ADC ($D4,S),Y C2/81DB: 6E FF 8F ROR $8FFF C2/81DE: 66 4D ROR $4D C2/81E0: 62 E8 59 PER $C0DBCB C2/81E3: 86 4D STX $4D C2/81E5: FF 25 3D E3 SBC $E33D25,X C2/81E9: 30 A3 BMI $818E C2/81EB: 24 82 BIT $82 C2/81ED: 1C FF 62 TRB $62FF C2/81F0: 18 CLC C2/81F1: 42 10 WDM $10 C2/81F3: 00 00 BRK $00 C2/81F5: BF 26 FF FF LDA $FFFF26,X C2/81F9: 01 95 ORA ($95,X) C2/81FB: 42 32 WDM $32 C2/81FD: 36 11 ROL $11,X C2/81FF: 32 FF AND ($FF) C2/8201: F0 2D BEQ $8230 C2/8203: CF 29 AE 21 CMP $21AE29 C2/8207: 8D 1D FF STA $FF1D C2/820A: 4B PHK C2/820B: 19 09 15 ORA $1509,Y C2/820E: C8 INY C2/820F: 10 A6 BPL $81B7 C2/8211: 0C 87 59 TSB $5987 C2/8214: 01 B2 ORA ($B2,X) C2/8216: C4 04 CPY $04 C2/8218: 89 09 81 BIT #$8109 C2/821B: 99 89 09 STA $0989,Y C2/821E: 00 C7 BRK $C7 C2/8220: 00 7F BRK $7F C2/8222: 47 7D EOR [$7D] C2/8224: 09 97 19 ORA #$1997 C2/8227: C6 79 DEC $79 C2/8229: A9 81 FF LDA #$FF81 C2/822C: 8F 00 42 00 STA $004200 C2/8230: 85 17 STA $17 C2/8232: 58 CLI C2/8233: A5 FF LDA $FF C2/8235: 17 D0 ORA [$D0],Y C2/8237: FC 78 A5 JSR ($A578,X) C2/823A: 32 8F AND ($8F) C2/823C: 00 FE BRK $FE C2/823E: B1 02 LDA ($02),Y C2/8240: 31 8F AND ($8F),Y C2/8242: 0C 42 00 TSB $0042 C2/8245: 20 1B FD JSR $FD1B C2/8248: 72 93 ADC ($93) C2/824A: 03 A5 ORA $A5,S C2/824C: 08 PHP C2/824D: 49 FF FF EOR #$FFFF C2/8250: 25 FF AND $FF C2/8252: 04 85 TSB $85 C2/8254: 06 A4 ASL $A4 C2/8256: 04 84 TSB $84 C2/8258: 08 PHP C2/8259: AF E5 18 DF LDA $DF18E5 C2/825D: 01 04 ORA ($04,X) C2/825F: 91 03 STA ($03),Y C2/8261: D0 2C BNE $828F C2/8263: E2 20 SEP #$20 C2/8265: AD FB 10 LDA $10FB C2/8268: 42 01 WDM $01 C2/826A: 0D A2 00 ORA $00A2 C2/826D: 00 DA BRK $DA C2/826F: 2B PLD C2/8270: 7F A5 17 F0 ADC $F017A5,X C2/8274: 0C 20 65 TSB $6520 C2/8277: 72 44 ADC ($44) C2/8279: 05 FF ORA $FF C2/827B: 03 88 ORA $88,S C2/827D: 84 15 STY $15 C2/827F: E6 18 INC $18 C2/8281: 64 17 STZ $17 C2/8283: FE E4 2C INC $2CE4,X C2/8286: 40 RTI C2/8287: 40 RTI C2/8288: 9C 0C 42 STZ $420C C2/828B: 9C 0B FF STZ $FF0B C2/828E: 42 A5 WDM $A5 C2/8290: 25 8D AND $8D C2/8292: 0D 21 A5 ORA $A521 C2/8295: 26 7E ROL $7E C2/8297: 4B PHK C2/8298: 0A ASL C2/8299: 27 8D AND [$8D] C2/829B: 0E 21 A5 ASL $A521 C2/829E: 28 PLP C2/829F: 55 0A EOR $0A,X C2/82A1: BF 29 8D 0F LDA $0F8D29,X C2/82A5: 21 A5 AND ($A5,X) C2/82A7: 2A ROL C2/82A8: 5F 0A 2B DF EOR $DF2B0A,X C2/82AC: 8D 10 21 STA $2110 C2/82AF: A5 2C LDA $2C C2/82B1: 69 0A 2D ADC #$2D0A C2/82B4: 8D EF 11 STA $11EF C2/82B7: 21 A5 AND ($A5,X) C2/82B9: 2E 73 0A ROL $0A73 C2/82BC: 2F 8D 12 F7 AND $F7128D C2/82C0: 21 A5 AND ($A5,X) C2/82C2: 30 7D BMI $8341 C2/82C4: 02 20 COP $20 C2/82C6: B0 72 BCS $833A C2/82C8: 20 FF FE JSR $FEFF C2/82CB: 72 4C ADC ($4C) C2/82CD: D5 72 CMP $72,X C2/82CF: A6 00 LDX $00 C2/82D1: 8E FF 02 STX $02FF C2/82D4: 21 8A AND ($8A,X) C2/82D6: 8D 04 43 STA $4304 C2/82D9: A9 02 FF LDA #$FF02 C2/82DC: 8D 00 43 STA $4300 C2/82DF: A9 04 8D LDA #$8D04 C2/82E2: 01 43 ORA ($43,X) C2/82E4: FF A0 00 03 SBC $0300A0,X C2/82E8: 8C 02 43 STY $4302 C2/82EB: A0 20 LDY #$20 C2/82ED: EF 02 8C 05 SBC $058C02 C2/82F1: 43 19 EOR $19,S C2/82F3: 05 0B ORA $0B C2/82F5: 42 60 WDM $60 C2/82F7: FF A4 10 C0 SBC $C010A4,X C2/82FB: FF FF F0 21 SBC $21F0FF,X C2/82FF: 8C 69 16 STY $1669 C2/8302: 18 CLC C2/8303: 0D 9A 02 ORA $029A C2/8306: 18 CLC C2/8307: 9E 02 A4 STZ $A402,X C2/830A: 12 A4 ORA ($A4) C2/830C: 02 DB COP $DB C2/830E: A5 14 LDA $14 C2/8310: 94 02 STY $02,X C2/8312: A4 0E LDY $0E C2/8314: AA TAX C2/8315: 32 A5 AND ($A5) C2/8317: 00 57 BRK $57 C2/8319: 8D 21 21 STA $2121 C2/831C: 97 1A STA [$1A],Y C2/831E: 22 9E 12 30 JSR $30129E C2/8322: A4 02 LDY $02 C2/8324: DB STP C2/8325: A9 7E 94 LDA #$947E C2/8328: 02 A0 COP $A0 C2/832A: 00 A9 BRK $A9 C2/832C: 3A DEC C2/832D: 86 E7 STX $E7 C2/832F: FF 84 EB A4 SBC $A4EB84,X C2/8333: 00 C2 BRK $C2 C2/8335: 20 B1 EB JSR $EBB1 C2/8338: 7D 91 94 ADC $9491,X C2/833B: 04 C0 TSB $C0 C2/833D: 20 00 D0 JSR $D000 C2/8340: F5 91 SBC $91,X C2/8342: 03 49 ORA $49,S C2/8344: 48 PHA C2/8345: 02 0B COP $0B C2/8347: 31 0F AND ($0F),Y C2/8349: 73 36 ADC ($36,S),Y C2/834B: 07 96 ORA [$96] C2/834D: 07 39 ORA [$39] C2/834F: 9D 0C E6 STA $E60C,X C2/8352: 07 07 ORA [$07] C2/8354: A5 EB LDA $EB C2/8356: 11 17 ORA ($17),Y C2/8358: 37 08 AND [$08],Y C2/835A: 73 62 ADC ($62,S),Y C2/835C: 73 BF ADC ($BF,S),Y C2/835E: 71 73 ADC ($73),Y C2/8360: A6 1D LDX $1D C2/8362: A9 1F B2 LDA #$B21F C2/8365: 06 9E ASL $9E C2/8367: DB STP C2/8368: 01 36 ORA ($36,X) C2/836A: 72 06 ADC ($06) C2/836C: 38 SEC C2/836D: 60 RTS C2/836E: 75 0E ADC $0E,X C2/8370: 39 D0 6F AND $6FD0,Y C2/8373: 2B PLD C2/8374: BD 01 39 LDA $3901,X C2/8377: AB PLB C2/8378: 06 C2 ASL $C2 C2/837A: 20 01 07 JSR $0701 C2/837D: DB STP C2/837E: 85 E0 STA $E0 C2/8380: 0A ASL C2/8381: 07 85 ORA [$85] C2/8383: E3 1B SBC $1B,S C2/8385: 07 85 ORA [$85] C2/8387: F1 FF SBC ($FF),Y C2/8389: 20 A8 73 JSR $73A8 C2/838C: E2 20 SEP #$20 C2/838E: AE 1D 00 LDX $001D C2/8391: 7A PLY C2/8392: 1B TCS C2/8393: 0F 05 B7 06 ORA $06B705 C2/8397: D0 02 BNE $839B C2/8399: 18 CLC C2/839A: 60 RTS C2/839B: 18 CLC C2/839C: 07 FE ORA [$FE] C2/839E: BA TSX C2/839F: 06 10 ASL $10 C2/83A1: 00 A4 BRK $A4 C2/83A3: 00 B1 BRK $B1 C2/83A5: E0 85 CPX #$85 C2/83A7: FF E7 B1 E3 SBC $E3B1E7,X C2/83AB: 85 E9 STA $E9 C2/83AD: 20 C2 73 JSR $73C2 C2/83B0: FF A5 E7 91 SBC $91E7A5,X C2/83B4: E0 C8 CPX #$C8 C2/83B6: C8 INY C2/83B7: CA DEX C2/83B8: D0 FF BNE $83B9 C2/83BA: EC 60 A5 CPX $A560 C2/83BD: E7 29 SBC [$29] C2/83BF: 1F 00 85 F7 ORA $F78500,X C2/83C3: EB XBA C2/83C4: A5 E9 LDA $E9 C2/83C6: A2 03 LDX #$03 C2/83C8: 38 SEC C2/83C9: E5 EB SBC $EB C2/83CB: F0 FF BEQ $83CC C2/83CD: 0C 90 08 TSB $0890 C2/83D0: C5 F1 CMP $F1 C2/83D2: 90 06 BCC $83DA C2/83D4: E6 DF INC $DF C2/83D6: EB XBA C2/83D7: 80 02 BRA $83DB C2/83D9: C6 EB DEC $EB C2/83DB: A0 03 LDY #$03 C2/83DD: E0 03 CPX #$03 C2/83DF: FB XCE C2/83E0: 85 ED STA $ED C2/83E2: A7 03 LDA [$03] C2/83E4: E0 03 CPX #$03 C2/83E6: 38 SEC C2/83E7: E5 ED SBC $ED C2/83E9: FF F0 1C 90 SBC $901CF0,X C2/83ED: 12 0A ORA ($0A) C2/83EF: 0A ASL C2/83F0: 0A ASL C2/83F1: EB XBA C2/83F2: FE B3 03 INC $03B3,X C2/83F5: 12 18 ORA ($18) C2/83F7: A5 ED LDA $ED C2/83F9: 69 20 00 ADC #$0020 C2/83FC: FF 85 ED 80 SBC $80ED85,X C2/8400: 08 PHP C2/8401: A5 ED LDA $ED C2/8403: 38 SEC C2/8404: E9 BC DC SBC #$DCBC C2/8407: 0B PHD C2/8408: A0 03 LDY #$03 C2/840A: 00 7C BRK $7C C2/840C: 85 EF STA $EF C2/840E: A7 03 LDA [$03] C2/8410: 00 FF BRK $FF C2/8412: 7C 38 E5 JMP ($E538,X) C2/8415: EF F0 1F 90 SBC $901FF0 C2/8419: 15 7F ORA $7F,X C2/841B: E2 20 SEP #$20 C2/841D: EB XBA C2/841E: 4A LSR C2/841F: 4A LSR C2/8420: C2 20 REP #$20 C2/8422: D4 1B PEI $1B C2/8424: BF EF 69 00 LDA $0069EF,X C2/8428: 04 85 TSB $85 C2/842A: EF E0 03 EF SBC $EF03E0 C2/842E: FB XCE C2/842F: 38 SEC C2/8430: E9 0C 0C SBC #$0C0C C2/8433: A5 EB LDA $EB C2/8435: 05 ED ORA $ED C2/8437: 05 FF ORA $FF C2/8439: EF 85 E7 60 SBC $60E785 C2/843D: 00 00 BRK $00 C2/843F: FF 7F F8 25 SBC $25F87F,X C2/8443: CC C6 91 CPY $91C6 C2/8446: C6 41 DEC $41 C2/8448: A6 00 LDX $00 C2/844A: 86 1D STX $1D C2/844C: 86 FF STX $FF C2/844E: 1F C2 20 20 ORA $2020C2,X C2/8452: B7 74 LDA [$74],Y C2/8454: E2 10 SEP #$10 C2/8456: FF 7B AA 9E SBC $9EAA7B,X C2/845A: 00 32 BRK $32 C2/845C: 9E 00 3A STZ $3A00,X C2/845F: FF 9E 00 3C SBC $3C009E,X C2/8463: 9E 00 33 STZ $3300,X C2/8466: 9E 00 FF STZ $FF00,X C2/8469: 34 9E BIT $9E,X C2/846B: 00 37 BRK $37 C2/846D: 9E 00 38 STZ $3800,X C2/8470: 9E FF 00 STZ $00FF,X C2/8473: 39 E8 E8 AND $E8E8,Y C2/8476: E0 00 CPX #$00 C2/8478: D0 E2 BNE $845C C2/847A: FE 14 07 INC $0714,X C2/847D: 10 60 BPL $84DF C2/847F: 7B TDC C2/8480: AA TAX C2/8481: A9 01 E0 LDA #$E001 C2/8484: 7F 9D 00 03 ADC $03009D,X C2/8488: E8 INX C2/8489: E8 INX C2/848A: A9 01 DD LDA #$DD01 C2/848D: 05 DE ORA $DE C2/848F: 9C 04 E0 STZ $E004 C2/8492: 00 02 BRK $02 C2/8494: D0 05 BNE $849B C2/8496: 03 98 ORA $98,S C2/8498: 99 FB 00 STA $00FB,Y C2/849B: 05 0E ORA $0E C2/849D: 1B TCS C2/849E: F6 60 INC $60,X C2/84A0: 20 E9 74 JSR $74E9 C2/84A3: FF E2 20 A5 SBC $A520E2,X C2/84A7: 1D 9D 01 ORA $019D,X C2/84AA: 3C E6 EB BIT $EBE6,X C2/84AD: 1F 60 1C 03 ORA $031C60,X C2/84B1: EB XBA C2/84B2: D0 03 BNE $84B7 C2/84B4: 0A ASL C2/84B5: 0A ASL C2/84B6: C2 7F REP #$7F C2/84B8: 20 AA BD JSR $BDAA C2/84BB: 00 32 BRK $32 C2/84BD: D0 05 BNE $84C4 C2/84BF: AA TAX C2/84C0: 06 FB ASL $FB C2/84C2: 32 60 AND ($60) C2/84C4: 8A TXA C2/84C5: 0C 01 D0 TSB $D001 C2/84C8: EF CA CA FE SBC $FECACA C2/84CC: D8 CLD C2/84CD: 0C 80 FE TSB $FE80 C2/84D0: 60 RTS C2/84D1: A2 00 LDX #$00 C2/84D3: 03 86 ORA $86,S C2/84D5: FF 0A A2 00 SBC $00A20A,X C2/84D9: 05 86 ORA $86 C2/84DB: 0C A9 03 TSB $03A9 C2/84DE: FF 85 23 64 SBC $642385,X C2/84E2: 24 A2 BIT $A2 C2/84E4: 80 00 BRA $84E6 C2/84E6: 86 F3 STX $F3 C2/84E8: 21 A6 AND ($A6,X) C2/84EA: 07 03 ORA [$03] C2/84EC: D3 04 CMP ($04,S),Y C2/84EE: F0 22 BEQ $8512 C2/84F0: 86 1D STX $1D C2/84F2: FF DA 85 1B SBC $1B85DA,X C2/84F6: E2 20 SEP #$20 C2/84F8: 7B TDC C2/84F9: BD 00 EF LDA $EF00,X C2/84FC: 3A DEC C2/84FD: 0A ASL C2/84FE: 20 5C EA JSR $EA5C C2/8501: 06 FA ASL $FA C2/8503: B0 0E BCS $8513 C2/8505: EE 72 44 INC $4472 C2/8508: 39 C6 1F AND $1FC6,Y C2/850B: DD 1C D2 CMP $D21C,X C2/850E: 20 8F FD JSR $FD8F C2/8511: 76 35 ROR $35,X C2/8513: 03 6C ORA $6C,S C2/8515: 1B TCS C2/8516: 00 7B BRK $7B C2/8518: 9D 00 FD STA $FD00,X C2/851B: 3B TSC C2/851C: 5C 0B 35 85 JMP $85350B C2/8520: EB XBA C2/8521: E2 20 SEP #$20 C2/8523: A0 FF LDY #$FF C2/8525: 02 00 COP $00 C2/8527: B1 EB LDA ($EB),Y C2/8529: 9D 01 3B STA $3B01,X C2/852C: 60 RTS C2/852D: FF DA 20 93 SBC $9320DA,X C2/8531: 75 E2 ADC $E2,X C2/8533: 10 BD BPL $84F2 C2/8535: 00 FB BRK $FB C2/8537: 3B TSC C2/8538: A8 TAY C2/8539: 08 PHP C2/853A: 0B PHD C2/853B: C2 10 REP #$10 C2/853D: A8 TAY C2/853E: E2 20 SEP #$20 C2/8540: 35 FA AND $FA,X C2/8542: C2 06 REP #$06 C2/8544: 60 RTS C2/8545: 54 05 4C MVN $05,$4C C2/8548: DA PHX C2/8549: 47 00 EOR [$00] C2/854B: 06 0B ASL $0B C2/854D: FC 43 25 JSR ($2543,X) C2/8550: 4A LSR C2/8551: 18 CLC C2/8552: 22 C9 FF D0 JSR $D0FFC9 C2/8556: 08 PHP C2/8557: 9E 7F 00 STZ $007F,X C2/855A: 3B TSC C2/855B: 20 CA 75 JSR $75CA C2/855E: 80 ED BRA $854D C2/8560: 4A LSR C2/8561: 00 3B BRK $3B C2/8563: D0 0E BNE $8573 C2/8565: 59 05 18 EOR $1805,Y C2/8568: 69 03 3E ADC #$3E03 C2/856B: 05 8C ORA $8C C2/856D: 0D 33 DA ORA $DA33 C2/8570: DE 50 05 DEC $0550,X C2/8573: 57 1D EOR [$1D],Y C2/8575: C8 INY C2/8576: C8 INY C2/8577: 4D 15 92 EOR $9215 C2/857A: 04 F2 TSB $F2 C2/857C: 57 3D EOR [$3D],Y C2/857E: 85 0D STA $0D C2/8580: 03 90 ORA $90,S C2/8582: 0C A4 00 TSB $00A4 C2/8585: A5 21 LDA $21 C2/8587: FF F0 6A B1 SBC $B16AF0,X C2/858B: E7 85 SBC [$85] C2/858D: E6 F0 INC $F0 C2/858F: 64 FD STZ $FD C2/8591: C8 INY C2/8592: D0 05 BNE $8599 C2/8594: E0 10 CPX #$10 C2/8596: 12 7B ORA ($7B) C2/8598: A5 23 LDA $23 C2/859A: FF AA BD 8B SBC $8BBDAA,X C2/859E: 76 18 ROR $18,X C2/85A0: 65 24 ADC $24 C2/85A2: 85 FF STA $FF C2/85A4: 24 92 BIT $92 C2/85A6: 0C A6 1D TSB $1DA6 C2/85A9: 80 04 BRA $85AF C2/85AB: A5 DE LDA $DE C2/85AD: E8 INX C2/85AE: 05 A5 ORA $A5 C2/85B0: E0 29 CPX #$29 C2/85B2: 7F 61 03 01 ADC $010361,X C2/85B6: 3A DEC C2/85B7: BF 89 01 F0 LDA $F00189,X C2/85BB: 0D 64 E1 ORA $E164 C2/85BE: F9 01 E0 SBC $E001,Y C2/85C1: DF 38 E5 25 CMP $25E538,X C2/85C5: 85 E0 STA $E0 C2/85C7: 23 07 AND $07,S C2/85C9: 5D 76 EF EOR $EF76,X C2/85CC: C6 23 DEC $23 C2/85CE: 10 0A BPL $85DA C2/85D0: F7 1C SBC [$1C],Y C2/85D2: C2 20 REP #$20 C2/85D4: E6 DD INC $DD C2/85D6: 0C 02 0E TSB $0E02 C2/85D9: 92 0A STA ($0A) C2/85DB: E6 23 INC $23 C2/85DD: 06 A5 ASL $A5 C2/85DF: E2 FE SEP #$FE C2/85E1: 22 1E E2 20 JSR $20E21E C2/85E5: C6 21 DEC $21 C2/85E7: F0 04 BEQ $85ED C2/85E9: C6 FF DEC $FF C2/85EB: E6 D0 INC $D0 C2/85ED: 9D 60 A5 STA $A560,X C2/85F0: E0 18 CPX #$18 C2/85F2: 7D 71 01 ADC $0171,X C2/85F5: 60 RTS C2/85F6: 03 D6 ORA $D6,S C2/85F8: 05 3D ORA $3D C2/85FA: 06 34 ASL $34 C2/85FC: 85 E1 STA $E1 C2/85FE: D6 0D DEC $0D,X C2/8600: FB XCE C2/8601: E2 C8 SEP #$C8 C2/8603: F9 0D 02 SBC $020D,Y C2/8606: F0 06 BEQ $860E C2/8608: B1 E7 LDA ($E7),Y C2/860A: EF 09 40 80 SBC $804009 C2/860E: 02 44 COP $44 C2/8610: 0E 00 3C ASL $3C00 C2/8613: 85 FF STA $FF C2/8615: E3 C8 SBC $C8,S C2/8617: 60 RTS C2/8618: 80 20 BRA $863A C2/861A: 08 PHP C2/861B: 02 A4 COP $A4 C2/861D: BF 21 F0 10 LDA $10F021,X C2/8621: A2 FC LDX #$FC C2/8623: 01 97 ORA ($97,X) C2/8625: 1C CA E2 TRB $E2CA C2/8628: 7A PLY C2/8629: 06 88 ASL $88 C2/862B: B7 04 LDA [$04],Y C2/862D: 71 FD ADC ($FD),Y C2/862F: 93 95 STA ($95,S),Y C2/8631: AA TAX C2/8632: 7C DF DF JMP ($DFDF,X) C2/8635: 76 E3 ROR $E3,X C2/8637: 76 EB ROR $EB,X C2/8639: 76 E3 ROR $E3,X C2/863B: 2E A5 33 ROL $33A5 C2/863E: 3F 89 40 D0 AND $D04089,X C2/8642: 1E A6 1D ASL $1DA6,X C2/8645: FF A6 51 20 SBC $2051A6,X C2/8649: FD 8B 1E SBC $1E8B,X C2/864C: 0A ASL C2/864D: 7B TDC C2/864E: A8 TAY C2/864F: 8C 81 21 STY $2181 C2/8652: 8C EF 02 STY $02EF C2/8655: 21 8D AND ($8D,X) C2/8657: 04 FB TSB $FB C2/8659: 16 06 ASL $06,X C2/865B: 21 8D AND ($8D,X) C2/865D: A3 0C LDA $0C,S C2/865F: 42 AF WDM $AF C2/8661: 02 4B COP $4B C2/8663: 02 0B COP $0B C2/8665: 0F 0E 10 17 ORA $17100E C2/8669: 0F AA 16 17 ORA $1716AA C2/866D: 10 1C BPL $868B C2/866F: 17 11 ORA [$11],Y C2/8671: 22 17 12 28 JSR $281217 C2/8675: 17 13 ORA [$13],Y C2/8677: F2 2E SBC ($2E) C2/8679: 17 14 ORA [$14],Y C2/867B: 34 0F BIT $0F,X C2/867D: BA TSX C2/867E: 02 8C COP $8C C2/8680: 18 CLC C2/8681: 21 8D AND ($8D,X) C2/8683: DB STP C2/8684: 1A INC C2/8685: 21 DE AND ($DE,X) C2/8687: 02 8D COP $8D C2/8689: 22 46 17 23 JSR $231746 C2/868D: 21 FF AND ($FF,X) C2/868F: 8D 24 21 STA $2124 C2/8692: 8D 25 21 STA $2125 C2/8695: 8D 26 FF STA $FF26 C2/8698: 21 8D AND ($8D,X) C2/869A: 28 PLP C2/869B: 21 8D AND ($8D,X) C2/869D: 27 21 AND [$21] C2/869F: 8D FF 29 STA $29FF C2/86A2: 21 8D AND ($8D,X) C2/86A4: 2A ROL C2/86A5: 21 8D AND ($8D,X) C2/86A7: 2B PLD C2/86A8: 21 FF AND ($FF,X) C2/86AA: 8D 2E 21 STA $212E C2/86AD: 8D 2F 21 STA $212F C2/86B0: 8D 33 FF STA $FF33 C2/86B3: 21 8D AND ($8D,X) C2/86B5: 00 42 BRK $42 C2/86B7: 8D 02 42 STA $4202 C2/86BA: 8D EF 03 STA $03EF C2/86BD: 42 8D WDM $8D C2/86BF: 04 79 TSB $79 C2/86C1: 17 05 ORA [$05],Y C2/86C3: 42 8D WDM $8D C2/86C5: EF 06 42 8D SBC $8D4206 C2/86C9: 07 85 ORA [$85] C2/86CB: 17 08 ORA [$08],Y C2/86CD: 42 8D WDM $8D C2/86CF: F5 09 SBC $09,X C2/86D1: 8E 17 0A STX $0A17 C2/86D4: 07 17 ORA [$17] C2/86D6: 0C 42 A9 TSB $A942 C2/86D9: 63 E3 ADC $E3,S C2/86DB: 8D 01 01 STA $0101 C2/86DE: 05 90 ORA $90 C2/86E0: 02 D6 COP $D6 C2/86E2: 02 05 COP $05 C2/86E4: 21 A9 AND ($A9,X) C2/86E6: FF 03 8D 07 SBC $078D03,X C2/86EA: 21 A9 AND ($A9,X) C2/86EC: 11 8D ORA ($8D),Y C2/86EE: 08 PHP C2/86EF: FF 21 A9 19 SBC $19A921,X C2/86F3: 8D 09 21 STA $2109 C2/86F6: 8D 0A BF STA $BF0A C2/86F9: 21 A9 AND ($A9,X) C2/86FB: 23 8D AND $8D,S C2/86FD: 0B PHD C2/86FE: 21 E6 AND ($E6,X) C2/8700: 02 0C COP $0C C2/8702: FF 21 A9 80 SBC $80A921,X C2/8706: 8D 15 21 STA $2115 C2/8709: A9 FF F7 LDA #$F7FF C2/870C: 8D 01 42 STA $4201 C2/870F: F1 02 SBC ($02),Y C2/8711: 83 21 STA $21,S C2/8713: A9 1F D7 LDA #$D71F C2/8716: 8D 2C 21 STA $212C C2/8719: 9C 02 2D STZ $2D02 C2/871C: E0 0A CPX #$0A C2/871E: 30 21 BMI $8741 C2/8720: FF A9 42 8D SBC $8D42A9,X C2/8724: 31 21 AND ($21),Y C2/8726: A9 E0 8D LDA #$8DE0 C2/8729: FF 32 21 AB SBC $AB2132,X C2/872D: 60 RTS C2/872E: 7B TDC C2/872F: A8 TAY C2/8730: 84 25 STY $25 C2/8732: FF 84 27 84 SBC $842784,X C2/8736: 29 84 2B AND #$2B84 C2/8739: 84 2D STY $2D C2/873B: FF 84 2F 84 SBC $842F84,X C2/873F: 15 84 ORA $84,X C2/8741: 04 84 TSB $84 C2/8743: 06 FF ASL $FF C2/8745: 84 08 STY $08 C2/8747: 85 33 STA $33 C2/8749: 85 18 STA $18 C2/874B: 85 19 STA $19 C2/874D: FF 85 1A 85 SBC $851A85,X C2/8751: 17 85 ORA [$85],Y C2/8753: 31 85 AND ($85),Y C2/8755: 32 FF AND ($FF) C2/8757: 85 36 STA $36 C2/8759: 84 12 STY $12 C2/875B: 84 0E STY $0E C2/875D: A9 7E FF LDA #$FF7E C2/8760: 85 14 STA $14 C2/8762: A0 FF LDY #$FF C2/8764: FF 84 10 20 SBC $201084,X C2/8768: DF 64 78 20 CMP $207864,X C2/876C: 70 78 BVS $87E6 C2/876E: F8 SED C2/876F: 01 7B ORA ($7B,X) C2/8771: 8F FF 16 21 STA $2116FF C2/8775: 00 A8 BRK $A8 C2/8777: 8F 18 21 00 STA $002118 C2/877B: 3F C8 C0 00 AND $00C0C8,X C2/877F: 80 D0 BRA $8751 C2/8781: F6 35 INC $35,X C2/8783: 03 70 ORA $70,S C2/8785: 0C 7F 3D TSB $3D7F C2/8788: E8 INX C2/8789: E0 80 CPX #$80 C2/878B: 0A ASL C2/878C: D0 F7 BNE $8785 C2/878E: 2C 08 FF BIT $FF08 C2/8791: AA TAX C2/8792: A9 1F 01 LDA #$011F C2/8795: 9D 02 3D STA $3D02,X C2/8798: E8 INX C2/8799: BE 58 00 LDX $0058,Y C2/879C: E0 80 CPX #$80 C2/879E: 03 D0 ORA $D0,S C2/87A0: F4 95 04 PEA $0495 C2/87A3: 00 F7 BRK $F7 C2/87A5: 01 9D ORA ($9D,X) C2/87A7: FC 57 18 JSR ($1857,X) C2/87AA: 04 01 TSB $01 C2/87AC: D0 F4 BNE $87A2 C2/87AE: FC 35 03 JSR ($0335,X) C2/87B1: EF 16 A9 43 SBC $43A916 C2/87B5: 8D 20 43 STA $4320 C2/87B8: 8D EF 30 STA $30EF C2/87BB: 43 8D EOR $8D,S C2/87BD: 40 RTI C2/87BE: F0 0A BEQ $87CA C2/87C0: 24 43 BIT $43 C2/87C2: 8D EF 34 STA $34EF C2/87C5: 43 8D EOR $8D,S C2/87C7: 44 F0 0A MVP $F0,$0A C2/87CA: 27 43 AND [$43] C2/87CC: 8D FF 37 STA $37FF C2/87CF: 43 8D EOR $8D,S C2/87D1: 47 43 EOR [$43] C2/87D3: A9 0D 8D LDA #$8D0D C2/87D6: FF 21 43 A0 SBC $A04321,X C2/87DA: E4 78 CPX $78 C2/87DC: 8C 22 43 STY $4322 C2/87DF: FF A9 0F 8D SBC $8D0FA9,X C2/87E3: 31 43 AND ($43),Y C2/87E5: A0 EB LDY #$EB C2/87E7: 78 SEI C2/87E8: F7 8C SBC [$8C],Y C2/87EA: 32 43 AND ($43) C2/87EC: B2 07 LDA ($07) C2/87EE: 41 43 EOR ($43,X) C2/87F0: A0 F2 LDY #$F2 C2/87F2: FF 78 8C 42 SBC $428C78,X C2/87F6: 43 A9 EOR $A9,S C2/87F8: 1C 04 31 TRB $3104 C2/87FB: FF AB 60 E4 SBC $E460AB,X C2/87FF: 00 3D BRK $3D C2/8801: FB XCE C2/8802: 90 3E BCC $8842 C2/8804: FF 00 E4 80 SBC $80E400,X C2/8808: 40 RTI C2/8809: FB XCE C2/880A: 10 42 BPL $884E C2/880C: 00 FF BRK $FF C2/880E: E4 00 CPX $00 C2/8810: 44 FB 90 MVP $FB,$90 C2/8813: 45 00 EOR $00 C2/8815: 68 PLA C2/8816: FF 20 01 7A SBC $7A0120,X C2/881A: A0 30 LDY #$30 C2/881C: 79 84 E7 ADC $E784,Y C2/881F: EF A9 7F 85 SBC $857FA9 C2/8823: E9 F6 02 SBC #$02F6 C2/8826: 84 EB STY $EB C2/8828: A0 FF LDY #$FF C2/882A: 00 14 BRK $14 C2/882C: 84 ED STY $ED C2/882E: A0 00 LDY #$00 C2/8830: 19 20 F5 ORA $F520,Y C2/8833: 18 CLC C2/8834: DA PHX C2/8835: 00 7B BRK $7B C2/8837: DE 20 B0 DEC $B020,X C2/883A: 06 84 ASL $84 C2/883C: EB XBA C2/883D: 7F 64 ED 64 ADC $64ED64,X C2/8841: EE A0 00 INC $00A0 C2/8844: 20 F1 08 JSR $08F1 C2/8847: 5B TCD C2/8848: E0 81 CPX #$81 C2/884A: DE 48 80 DEC $8048,X C2/884D: 00 EC BRK $EC C2/884F: 08 PHP C2/8850: 11 F1 ORA ($F1),Y C2/8852: 08 PHP C2/8853: AB PLB C2/8854: C0 1B DE CPY #$DE1B C2/8857: 28 PLP C2/8858: 18 CLC C2/8859: 00 29 BRK $29 C2/885B: 00 22 BRK $22 C2/885D: 11 33 ORA ($33),Y C2/885F: EA NOP C2/8860: DE 28 42 DEC $4228,X C2/8863: 00 29 BRK $29 C2/8865: 40 RTI C2/8866: F1 00 SBC ($00),Y C2/8868: 7B TDC C2/8869: AA TAX C2/886A: C2 FF REP #$FF C2/886C: 20 BF E1 JSR $E1BF C2/886F: DA PHX C2/8870: DF 18 69 00 CMP $006918,X C2/8874: BF DB 85 E7 LDA $E785DB,X C2/8878: E8 INX C2/8879: E8 INX C2/887A: E2 58 SEP #$58 C2/887C: 11 69 ORA ($69),Y C2/887E: 55 DF EOR $DF,X C2/8880: E2 08 SEP #$08 C2/8882: 20 00 29 JSR $2900 C2/8885: 30 09 BMI $8890 C2/8887: 11 83 ORA ($83),Y C2/8889: DE 28 B5 DEC $B528,X C2/888C: 08 PHP C2/888D: 00 29 BRK $29 C2/888F: 28 PLP C2/8890: F1 00 SBC ($00),Y C2/8892: 20 33 0B JSR $0B33 C2/8895: 01 8B ORA ($8B,X) C2/8897: 56 DE LSR $DE,X C2/8899: 48 PHA C2/889A: 77 07 ADC [$07],Y C2/889C: EC 08 05 CPX $0508 C2/889F: 09 11 8D ORA #$8D11 C2/88A2: DE 20 DB DEC $DB20,X C2/88A5: 10 11 BPL $88B8 C2/88A7: 00 21 BRK $21 C2/88A9: 70 67 BVS $8912 C2/88AB: F1 08 SBC ($08),Y C2/88AD: F0 9E BEQ $884D C2/88AF: D6 DE DEC $DE,X C2/88B1: 20 B8 0F JSR $0FB8 C2/88B4: E7 08 SBC [$08] C2/88B6: 70 C7 BVS $887F C2/88B8: 01 60 ORA ($60,X) C2/88BA: A0 FF LDY #$FF C2/88BC: 00 F0 BRK $F0 C2/88BE: 84 F3 STY $F3 C2/88C0: A9 D8 85 LDA #$85D8 C2/88C3: F5 F6 SBC $F6,X C2/88C5: 37 01 AND [$01],Y C2/88C7: 84 F6 STY $F6 C2/88C9: E0 00 CPX #$00 C2/88CB: F8 SED C2/88CC: 22 6D FF F5 JSR $F5FF6D C2/88D0: C2 4D REP #$4D C2/88D2: 00 98 BRK $98 C2/88D4: 30 08 BMI $88DE C2/88D6: 7B TDC C2/88D7: A8 TAY C2/88D8: B7 E7 LDA [$E7],Y C2/88DA: F7 18 SBC [$18],Y C2/88DC: 65 ED ADC $ED C2/88DE: 35 10 AND $10,X C2/88E0: C8 INY C2/88E1: C4 EB CPY $EB C2/88E3: D0 7D BNE $8962 C2/88E5: F1 35 SBC ($35),Y C2/88E7: 03 C2 ORA $C2,S C2/88E9: 20 A9 00 JSR $00A9 C2/88EC: 04 30 TSB $30 C2/88EE: 08 PHP C2/88EF: 3F 20 4C 7A AND $7A4C20,X C2/88F3: A9 00 0C LDA #$0C00 C2/88F6: 16 22 ASL $22,X C2/88F8: 3F 08 AF A8 AND $A8AF08,X C2/88FC: A9 77 07 LDA #$0777 C2/88FF: 35 20 AND $20,X C2/8901: 04 B7 TSB $B7 C2/8903: 04 62 TSB $62 C2/8905: BF 7A FE 97 LDA $97FE7A,X C2/8909: 7A PLY C2/890A: FE 0D 60 INC $600D,X C2/890D: 04 33 TSB $33 C2/890F: FF 10 00 02 SBC $020010,X C2/8913: 33 20 AND ($20,S),Y C2/8915: 00 04 BRK $04 C2/8917: 33 FF AND ($FF,S),Y C2/8919: 30 00 BMI $891B C2/891B: 06 33 ASL $33 C2/891D: 40 RTI C2/891E: 00 08 BRK $08 C2/8920: 33 FF AND ($FF,S),Y C2/8922: 58 CLI C2/8923: 00 2A BRK $2A C2/8925: 33 68 AND ($68,S),Y C2/8927: 00 2C BRK $2C C2/8929: 33 FF AND ($FF,S),Y C2/892B: 78 SEI C2/892C: 00 2E BRK $2E C2/892E: 33 00 AND ($00,S),Y C2/8930: 10 20 BPL $8952 C2/8932: 33 FF AND ($FF,S),Y C2/8934: 10 10 BPL $8946 C2/8936: 22 33 20 10 JSR $102033 C2/893A: 24 33 BIT $33 C2/893C: FF 30 10 26 SBC $261030,X C2/8940: 33 40 AND ($40,S),Y C2/8942: 10 28 BPL $896C C2/8944: 33 AF AND ($AF,S),Y C2/8946: 04 00 TSB $00 C2/8948: 10 40 BPL $898A C2/894A: 64 02 STZ $02 C2/894C: 42 68 WDM $68 C2/894E: 02 44 COP $44 C2/8950: B6 6C LDX $6C,Y C2/8952: 02 46 COP $46 C2/8954: 33 D8 AND ($D8,S),Y C2/8956: 08 PHP C2/8957: 40 RTI C2/8958: 09 DE 28 ORA #$28DE C2/895B: B0 F6 BCS $8953 C2/895D: 1B TCS C2/895E: 03 7F ORA $7F,S C2/8960: 85 ED STA $ED C2/8962: 00 04 BRK $04 C2/8964: 84 EF STY $EF C2/8966: 20 43 CC JSR $CC43 C2/8969: 62 E8 09 PER $C09354 C2/896C: DF 18 8A 02 CMP $028A18,X C2/8970: 01 21 ORA ($21,X) C2/8972: 64 22 STZ $22 C2/8974: 11 75 ORA ($75),Y C2/8976: 53 DE EOR ($DE,S),Y C2/8978: 28 PLP C2/8979: 22 49 49 A0 JSR $A04949 C2/897D: C0 23 81 CPY #$8123 C2/8980: 41 F4 EOR ($F4,X) C2/8982: 6F 09 ED 00 ADC $00ED09 C2/8986: 7C 93 09 JMP ($0993,X) C2/8989: 2A ROL C2/898A: 7B TDC C2/898B: A0 C0 LDY #$C0 C2/898D: 8D 75 DE STA $DE75 C2/8990: 20 70 03 JSR $0370 C2/8993: 00 29 BRK $29 C2/8995: DA PHX C2/8996: 11 11 ORA ($11),Y C2/8998: 0A ASL C2/8999: 7C 7E 30 JMP ($307E,X) C2/899C: 08 PHP C2/899D: A2 20 LDX #$20 C2/899F: 02 A9 COP $A9 C2/89A1: 87 3E STA [$3E] C2/89A3: 35 08 AND $08,X C2/89A5: E7 CA SBC [$CA] C2/89A7: D0 F9 BNE $89A2 C2/89A9: 72 00 ADC ($00) C2/89AB: 58 CLI C2/89AC: 0C E8 24 TSB $24E8 C2/89AF: 86 FF STX $FF C2/89B1: 20 63 10 JSR $1063 C2/89B4: BD 77 5C LDA $5C77,X C2/89B7: 4B PHK C2/89B8: FA PLX C2/89B9: FF 2A 00 00 SBC $00002A,X C2/89BD: 76 26 ROR $26,X C2/89BF: D4 21 PEI $21 C2/89C1: B2 FF LDA ($FF) C2/89C3: 15 00 ORA $00,X C2/89C5: 00 EB BRK $EB C2/89C7: 0C 88 10 TSB $1088 C2/89CA: 63 FE ADC $FE,S C2/89CC: 3E FB 10 ROL $10FB,X C2/89CF: 9F 6F 5F 57 STA $575F6F,X C2/89D3: FF 46 FF 7E SBC $7EFF46,X C2/89D7: 36 1E ROL $1E,X C2/89D9: 26 19 ROL $19 C2/89DB: 32 BB AND ($BB) C2/89DD: 21 FF AND ($FF,X) C2/89DF: 9B TXY C2/89E0: 15 76 ORA $76,X C2/89E2: 1D 36 11 ORA $1136,X C2/89E5: F1 10 SBC ($10),Y C2/89E7: 7F B0 08 AD ADC $AD08B0,X C2/89EB: 08 PHP C2/89EC: 8B PHB C2/89ED: 08 PHP C2/89EE: 50 60 BVC $8A50 C2/89F0: 04 FC TSB $FC C2/89F2: 29 0B 58 AND #$580B C2/89F5: 0C 1E 26 TSB $261E C2/89F8: 9B TXY C2/89F9: 15 F1 ORA $F1,X C2/89FB: 10 E6 BPL $89E3 C2/89FD: 4E 6C 08 LSR $086C C2/8A00: 21 41 AND ($41,X) C2/8A02: 1B TCS C2/8A03: 89 AB 00 BIT #$00AB C2/8A06: 00 C6 BRK $C6 C2/8A08: FF 1C A5 1C SBC $1CA51C,X C2/8A0C: 85 1C STA $1C C2/8A0E: 84 18 STY $18 C2/8A10: 64 F9 STZ $F9 C2/8A12: 14 A7 TRB $A7 C2/8A14: 0B PHD C2/8A15: A7 3B LDA [$3B] C2/8A17: 5B TCD C2/8A18: 56 B4 LSR $B4,X C2/8A1A: 45 2E EOR $2E C2/8A1C: DF 35 00 00 CMP $000035,X C2/8A20: DE 66 DB DEC $DB66,X C2/8A23: 1B TCS C2/8A24: 08 PHP C2/8A25: 31 7F AND ($7F),Y C2/8A27: E8 INX C2/8A28: 2C C7 28 BIT $28C7 C2/8A2B: A6 24 LDX $24 C2/8A2D: A5 C8 LDA $C8 C2/8A2F: 23 BF AND $BF,S C2/8A31: BB TYX C2/8A32: 21 36 AND ($36,X) C2/8A34: 11 7F ORA ($7F),Y C2/8A36: 73 E1 ADC ($E1,S),Y C2/8A38: BB TYX C2/8A39: 7F FD 73 1B ADC $1B73FD,X C2/8A3D: 0C 00 00 TSB $0000 C2/8A40: 7E 36 36 ROR $3636,X C2/8A43: 11 FF ORA ($FF),Y C2/8A45: 42 0C WDM $0C C2/8A47: 41 08 EOR ($08,X) C2/8A49: CD 45 6A CMP $6A45 C2/8A4C: 3D FF 28 AND $28FF,X C2/8A4F: 35 28 AND $28,X C2/8A51: 25 E7 AND $E7 C2/8A53: 2C E6 24 BIT $24E6 C2/8A56: 7F C5 20 C5 ADC $C520C5,X C2/8A5A: 18 CLC C2/8A5B: A3 18 LDA $18,S C2/8A5D: 83 CC STA $CC,S C2/8A5F: 03 C2/8A60: FF C2/8A61: FF FF FF FF SBC $FFFFFF,X C2/8A65: FF FF FF FF SBC $FFFFFF,X C2/8A69: FF FF FF FF SBC $FFFFFF,X C2/8A6D: FF FF FF 80 SBC $80FFFF,X C2/8A71: 04 3C TSB $3C C2/8A73: 90 04 BCC $8A79 C2/8A75: 3C 90 04 BIT $0490,X C2/8A78: 3C 10 04 BIT $0410,X C2/8A7B: 1E 50 04 ASL $0450,X C2/8A7E: 1E 40 04 ASL $0440,X C2/8A81: 1E C0 04 ASL $04C0,X C2/8A84: 3C 40 04 BIT $0440,X C2/8A87: 3C 00 04 BIT $0400,X C2/8A8A: 3C 00 84 BIT $8400,X C2/8A8D: 1E 10 84 ASL $8410,X C2/8A90: 1E 10 04 ASL $0410,X C2/8A93: 78 SEI C2/8A94: 00 04 BRK $04 C2/8A96: 1E 00 84 ASL $8400,X C2/8A99: 3C 00 04 BIT $0400,X C2/8A9C: B4 00 LDY $00,X C2/8A9E: 04 B4 TSB $B4 C2/8AA0: 00 04 BRK $04 C2/8AA2: B4 00 LDY $00,X C2/8AA4: 04 B4 TSB $B4 C2/8AA6: 00 04 BRK $04 C2/8AA8: B4 00 LDY $00,X C2/8AAA: 04 B4 TSB $B4 C2/8AAC: 00 44 BRK $44 C2/8AAE: 1E 00 C4 ASL $C400,X C2/8AB1: 3C 00 44 BIT $4400,X C2/8AB4: 3C 00 04 BIT $0400,X C2/8AB7: 3C 00 05 BIT $0500,X C2/8ABA: 3C 20 04 BIT $0420,X C2/8ABD: 78 SEI C2/8ABE: 80 04 BRA $8AC4 C2/8AC0: 3C 00 04 BIT $0400,X C2/8AC3: B4 00 LDY $00,X C2/8AC5: 04 FE TSB $FE C2/8AC7: 90 00 BCC $8AC9 C2/8AC9: B4 10 LDY $10,X C2/8ACB: 04 B4 TSB $B4 C2/8ACD: 50 04 BVC $8AD3 C2/8ACF: 1E 40 04 ASL $0440,X C2/8AD2: B4 00 LDY $00,X C2/8AD4: 04 B4 TSB $B4 C2/8AD6: 00 04 BRK $04 C2/8AD8: FE C0 08 INC $08C0,X C2/8ADB: 3C C0 08 BIT $08C0,X C2/8ADE: 3C 00 08 BIT $0800,X C2/8AE1: B4 00 LDY $00,X C2/8AE3: 08 PHP C2/8AE4: B4 00 LDY $00,X C2/8AE6: 08 PHP C2/8AE7: B4 20 LDY $20,X C2/8AE9: 00 1E BRK $1E C2/8AEB: 40 RTI C2/8AEC: 04 1E TSB $1E C2/8AEE: 80 04 BRA $8AF4 C2/8AF0: 3C 20 02 BIT $0220,X C2/8AF3: 61 00 ADC ($00,X) C2/8AF5: 82 46 00 BRL $C08B3E C2/8AF8: 02 FE COP $FE C2/8AFA: 00 08 BRK $08 C2/8AFC: B4 00 LDY $00,X C2/8AFE: 08 PHP C2/8AFF: B4 00 LDY $00,X C2/8B01: 08 PHP C2/8B02: B4 00 LDY $00,X C2/8B04: 08 PHP C2/8B05: 0A ASL C2/8B06: 00 08 BRK $08 C2/8B08: 78 SEI C2/8B09: C0 08 5A CPY #$5A08 C2/8B0C: 40 RTI C2/8B0D: 08 PHP C2/8B0E: 14 00 TRB $00 C2/8B10: 08 PHP C2/8B11: B4 00 LDY $00,X C2/8B13: 08 PHP C2/8B14: B4 00 LDY $00,X C2/8B16: 08 PHP C2/8B17: B4 00 LDY $00,X C2/8B19: 08 PHP C2/8B1A: B4 10 LDY $10,X C2/8B1C: 08 PHP C2/8B1D: 1E 00 08 ASL $0800,X C2/8B20: B4 00 LDY $00,X C2/8B22: 08 PHP C2/8B23: B4 00 LDY $00,X C2/8B25: 08 PHP C2/8B26: B4 00 LDY $00,X C2/8B28: 08 PHP C2/8B29: B4 00 LDY $00,X C2/8B2B: 08 PHP C2/8B2C: B4 20 LDY $20,X C2/8B2E: 08 PHP C2/8B2F: 0A ASL C2/8B30: 60 RTS C2/8B31: 08 PHP C2/8B32: 1E 00 08 ASL $0800,X C2/8B35: FE 00 01 INC $0100,X C2/8B38: FE 00 04 INC $0400,X C2/8B3B: FE 00 08 INC $0800,X C2/8B3E: B4 00 LDY $00,X C2/8B40: 08 PHP C2/8B41: FE 90 08 INC $0890,X C2/8B44: FE 89 8B INC $8B89,X C2/8B47: 08 PHP C2/8B48: 91 8B STA ($8B),Y C2/8B4A: 08 PHP C2/8B4B: 99 8B 08 STA $088B,Y C2/8B4E: A1 8B LDA ($8B,X) C2/8B50: 08 PHP C2/8B51: A1 8B LDA ($8B,X) C2/8B53: FF 89 8B 08 SBC $088B89,X C2/8B57: 91 8B STA ($8B),Y C2/8B59: 08 PHP C2/8B5A: 99 8B 08 STA $088B,Y C2/8B5D: A9 8B 08 LDA #$088B C2/8B60: 81 8B STA ($8B,X) C2/8B62: FE 89 8B INC $8B89,X C2/8B65: 08 PHP C2/8B66: 91 8B STA ($8B),Y C2/8B68: 08 PHP C2/8B69: 99 8B 08 STA $088B,Y C2/8B6C: A1 8B LDA ($8B,X) C2/8B6E: 08 PHP C2/8B6F: A1 8B LDA ($8B,X) C2/8B71: FF 89 8B 08 SBC $088B89,X C2/8B75: 91 8B STA ($8B),Y C2/8B77: 08 PHP C2/8B78: 99 8B 08 STA $088B,Y C2/8B7B: A1 8B LDA ($8B,X) C2/8B7D: 08 PHP C2/8B7E: A1 8B LDA ($8B,X) C2/8B80: FF 1C 00 06 SBC $06001C,X C2/8B84: 00 C8 BRK $C8 C2/8B86: 0B PHD C2/8B87: D9 3A 1C CMP $1C3A,Y C2/8B8A: 00 06 BRK $06 C2/8B8C: 00 E4 BRK $E4 C2/8B8E: 0B PHD C2/8B8F: D9 3A 1C CMP $1C3A,Y C2/8B92: 00 06 BRK $06 C2/8B94: 00 48 BRK $48 C2/8B96: 0D D9 3A ORA $3AD9 C2/8B99: 1C 00 06 TRB $0600 C2/8B9C: 00 64 BRK $64 C2/8B9E: 0D D9 3A ORA $3AD9 C2/8BA1: 1C 00 06 TRB $0600 C2/8BA4: 00 C8 BRK $C8 C2/8BA6: 0E D9 3A ASL $3AD9 C2/8BA9: 1C 00 06 TRB $0600 C2/8BAC: 00 E4 BRK $E4 C2/8BAE: 0E D9 3A ASL $3AD9 C2/8BB1: BA TSX C2/8BB2: 8B PHB C2/8BB3: 02 D3 COP $D3 C2/8BB5: 8B PHB C2/8BB6: 02 D3 COP $D3 C2/8BB8: 8B PHB C2/8BB9: FF 06 80 00 SBC $008006,X C2/8BBD: 0C 32 90 TSB $9032 C2/8BC0: 00 0E BRK $0E C2/8BC2: 32 80 AND ($80) C2/8BC4: 10 20 BPL $8BE6 C2/8BC6: 32 90 AND ($90) C2/8BC8: 10 22 BPL $8BEC C2/8BCA: 32 08 AND ($08) C2/8BCC: 18 CLC C2/8BCD: 6C 32 18 JMP ($1832) C2/8BD0: 18 CLC C2/8BD1: 7C 32 06 JMP ($0632,X) C2/8BD4: 80 00 BRA $8BD6 C2/8BD6: 0C 32 90 TSB $9032 C2/8BD9: 00 0E BRK $0E C2/8BDB: 32 80 AND ($80) C2/8BDD: 10 20 BPL $8BFF C2/8BDF: 32 90 AND ($90) C2/8BE1: 10 22 BPL $8C05 C2/8BE3: 32 08 AND ($08) C2/8BE5: 18 CLC C2/8BE6: 6D 32 18 ADC $1832 C2/8BE9: 18 CLC C2/8BEA: 7D 32 01 ADC $0132,X C2/8BED: 8C 2B 0A STY $0A2B C2/8BF0: 8C 2B 13 STY $132B C2/8BF3: 8C 2B 1C STY $1C2B C2/8BF6: 8C 2B 13 STY $132B C2/8BF9: 8C 2B 0A STY $0A2B C2/8BFC: 8C 2B 01 STY $012B C2/8BFF: 8C FF 02 STY $02FF C2/8C02: 00 00 BRK $00 C2/8C04: 70 32 BVS $8C38 C2/8C06: 08 PHP C2/8C07: 00 71 BRK $71 C2/8C09: 32 02 AND ($02) C2/8C0B: 00 00 BRK $00 C2/8C0D: 72 32 ADC ($32) C2/8C0F: 08 PHP C2/8C10: 00 73 BRK $73 C2/8C12: 32 02 AND ($02) C2/8C14: 00 00 BRK $00 C2/8C16: 74 32 STZ $32,X C2/8C18: 08 PHP C2/8C19: 00 75 BRK $75 C2/8C1B: 32 02 AND ($02) C2/8C1D: 00 00 BRK $00 C2/8C1F: 76 32 ROR $32,X C2/8C21: 08 PHP C2/8C22: 00 77 BRK $77 C2/8C24: 32 2E AND ($2E) C2/8C26: 8C 02 47 STY $4702 C2/8C29: 8C 02 47 STY $4702 C2/8C2C: 8C FF 06 STY $06FF C2/8C2F: 90 00 BCC $8C31 C2/8C31: 0C 72 80 TSB $8072 C2/8C34: 00 0E BRK $0E C2/8C36: 72 90 ADC ($90) C2/8C38: 10 20 BPL $8C5A C2/8C3A: 72 80 ADC ($80) C2/8C3C: 10 22 BPL $8C60 C2/8C3E: 72 10 ADC ($10) C2/8C40: 18 CLC C2/8C41: 6C 72 00 JMP ($0072) C2/8C44: 18 CLC C2/8C45: 7C 72 06 JMP ($0672,X) C2/8C48: 90 00 BCC $8C4A C2/8C4A: 0C 72 80 TSB $8072 C2/8C4D: 00 0E BRK $0E C2/8C4F: 72 90 ADC ($90) C2/8C51: 10 20 BPL $8C73 C2/8C53: 72 80 ADC ($80) C2/8C55: 10 22 BPL $8C79 C2/8C57: 72 10 ADC ($10) C2/8C59: 18 CLC C2/8C5A: 6D 72 00 ADC $0072 C2/8C5D: 18 CLC C2/8C5E: 7D 72 63 ADC $6372,X C2/8C61: 8C FE 1E STY $1EFE C2/8C64: B0 38 BCS $8C9E C2/8C66: 00 36 BRK $36 C2/8C68: B0 48 BCS $8CB2 C2/8C6A: 02 36 COP $36 C2/8C6C: B0 58 BCS $8CC6 C2/8C6E: 04 36 TSB $36 C2/8C70: C0 38 00 CPY #$0038 C2/8C73: 76 C0 ROR $C0,X C2/8C75: 48 PHA C2/8C76: 02 76 COP $76 C2/8C78: C0 58 04 CPY #$0458 C2/8C7B: 76 B0 ROR $B0,X C2/8C7D: 00 C0 BRK $C0 C2/8C7F: 70 A0 BVS $8C21 C2/8C81: 00 C2 BRK $C2 C2/8C83: 70 90 BVS $8C15 C2/8C85: 00 C4 BRK $C4 C2/8C87: 70 B0 BVS $8C39 C2/8C89: 10 C6 BPL $8C51 C2/8C8B: 70 A0 BVS $8C2D C2/8C8D: 10 C8 BPL $8C57 C2/8C8F: 70 90 BVS $8C21 C2/8C91: 10 CA BPL $8C5D C2/8C93: 70 B0 BVS $8C45 C2/8C95: 20 CC 70 JSR $70CC C2/8C98: A0 20 LDY #$20 C2/8C9A: CE 70 B0 DEC $B070 C2/8C9D: 30 E0 BMI $8C7F C2/8C9F: 70 28 BVS $8CC9 C2/8CA1: 30 E2 BMI $8C85 C2/8CA3: 70 90 BVS $8C35 C2/8CA5: 20 E3 70 JSR $70E3 C2/8CA8: 88 DEY C2/8CA9: 28 PLP C2/8CAA: E6 70 INC $70 C2/8CAC: C0 00 C0 CPY #$C000 C2/8CAF: 30 D0 BMI $8C81 C2/8CB1: 00 C2 BRK $C2 C2/8CB3: 30 E0 BMI $8C95 C2/8CB5: 00 C4 BRK $C4 C2/8CB7: 30 C0 BMI $8C79 C2/8CB9: 10 C6 BPL $8C81 C2/8CBB: 30 D0 BMI $8C8D C2/8CBD: 10 C8 BPL $8C87 C2/8CBF: 30 E0 BMI $8CA1 C2/8CC1: 10 CA BPL $8C8D C2/8CC3: 30 C0 BMI $8C85 C2/8CC5: 20 CC 30 JSR $30CC C2/8CC8: D0 20 BNE $8CEA C2/8CCA: CE 30 C0 DEC $C030 C2/8CCD: 30 E0 BMI $8CAF C2/8CCF: 30 50 BMI $8D21 C2/8CD1: 30 E2 BMI $8CB5 C2/8CD3: 30 E0 BMI $8CB5 C2/8CD5: 20 E3 30 JSR $30E3 C2/8CD8: E8 INX C2/8CD9: 28 PLP C2/8CDA: E6 30 INC $30 C2/8CDC: DF 8C FE 04 CMP $04FE8C,X C2/8CE0: 00 00 BRK $00 C2/8CE2: 08 PHP C2/8CE3: 32 08 AND ($08) C2/8CE5: 00 09 BRK $09 C2/8CE7: 32 00 AND ($00) C2/8CE9: 08 PHP C2/8CEA: 18 CLC C2/8CEB: 32 08 AND ($08) C2/8CED: 08 PHP C2/8CEE: 19 32 F9 ORA $F932,Y C2/8CF1: 8C 01 0A STY $0A01 C2/8CF4: 8D 01 0A STA $0A01 C2/8CF7: 8D FF 04 STA $04FF C2/8CFA: 00 00 BRK $00 C2/8CFC: 0A ASL C2/8CFD: 32 08 AND ($08) C2/8CFF: 00 0B BRK $0B C2/8D01: 32 00 AND ($00) C2/8D03: 08 PHP C2/8D04: 1A INC C2/8D05: 32 08 AND ($08) C2/8D07: 08 PHP C2/8D08: 1B TCS C2/8D09: 32 00 AND ($00) C2/8D0B: 1A INC C2/8D0C: 8D 06 23 STA $2306 C2/8D0F: 8D 06 2C STA $2C06 C2/8D12: 8D 06 35 STA $3506 C2/8D15: 8D 06 0A STA $0A06 C2/8D18: 8D FE 02 STA $02FE C2/8D1B: 80 00 BRA $8D1D C2/8D1D: 40 RTI C2/8D1E: 3E 90 00 ROL $0090,X C2/8D21: 42 3E WDM $3E C2/8D23: 02 80 COP $80 C2/8D25: 00 44 BRK $44 C2/8D27: 3E 90 00 ROL $0090,X C2/8D2A: 46 3E LSR $3E C2/8D2C: 02 80 COP $80 C2/8D2E: 00 48 BRK $48 C2/8D30: 3E 90 00 ROL $0090,X C2/8D33: 4A LSR C2/8D34: 3E 02 80 ROL $8002,X C2/8D37: 00 4C BRK $4C C2/8D39: 3E 90 00 ROL $0090,X C2/8D3C: 4E 3E 4D LSR $4D3E C2/8D3F: 8D 01 5E STA $5E01 C2/8D42: 8D 01 6F STA $6F01 C2/8D45: 8D 01 80 STA $8001 C2/8D48: 8D 01 80 STA $8001 C2/8D4B: 8D FF 04 STA $04FF C2/8D4E: 80 00 BRA $8D50 C2/8D50: 80 30 BRA $8D82 C2/8D52: 90 00 BCC $8D54 C2/8D54: 82 30 80 BRL $C00D87 C2/8D57: 10 A0 BPL $8CF9 C2/8D59: 30 90 BMI $8CEB C2/8D5B: 10 A2 BPL $8CFF C2/8D5D: 30 04 BMI $8D63 C2/8D5F: 80 00 BRA $8D61 C2/8D61: 84 30 STY $30 C2/8D63: 90 00 BCC $8D65 C2/8D65: 86 30 STX $30 C2/8D67: 80 10 BRA $8D79 C2/8D69: A4 30 LDY $30 C2/8D6B: 90 10 BCC $8D7D C2/8D6D: A6 30 LDX $30 C2/8D6F: 04 80 TSB $80 C2/8D71: 00 88 BRK $88 C2/8D73: 30 90 BMI $8D05 C2/8D75: 00 8A BRK $8A C2/8D77: 30 80 BMI $8CF9 C2/8D79: 10 A8 BPL $8D23 C2/8D7B: 30 90 BMI $8D0D C2/8D7D: 10 AA BPL $8D29 C2/8D7F: 30 04 BMI $8D85 C2/8D81: 80 00 BRA $8D83 C2/8D83: 8C 30 90 STY $9030 C2/8D86: 00 8E BRK $8E C2/8D88: 30 80 BMI $8D0A C2/8D8A: 10 AC BPL $8D38 C2/8D8C: 30 90 BMI $8D1E C2/8D8E: 10 AE BPL $8D3E C2/8D90: 30 A0 BMI $8D32 C2/8D92: 8D 01 B1 STA $B101 C2/8D95: 8D 01 C2 STA $C201 C2/8D98: 8D 01 D3 STA $D301 C2/8D9B: 8D 01 D3 STA $D301 C2/8D9E: 8D FF 04 STA $04FF C2/8DA1: 90 00 BCC $8DA3 C2/8DA3: 80 70 BRA $8E15 C2/8DA5: 80 00 BRA $8DA7 C2/8DA7: 82 70 90 BRL $C01E1A C2/8DAA: 10 A0 BPL $8D4C C2/8DAC: 70 80 BVS $8D2E C2/8DAE: 10 A2 BPL $8D52 C2/8DB0: 70 04 BVS $8DB6 C2/8DB2: 90 00 BCC $8DB4 C2/8DB4: 84 70 STY $70 C2/8DB6: 80 00 BRA $8DB8 C2/8DB8: 86 70 STX $70 C2/8DBA: 90 10 BCC $8DCC C2/8DBC: A4 70 LDY $70 C2/8DBE: 80 10 BRA $8DD0 C2/8DC0: A6 70 LDX $70 C2/8DC2: 04 90 TSB $90 C2/8DC4: 00 88 BRK $88 C2/8DC6: 70 80 BVS $8D48 C2/8DC8: 00 8A BRK $8A C2/8DCA: 70 90 BVS $8D5C C2/8DCC: 10 A8 BPL $8D76 C2/8DCE: 70 80 BVS $8D50 C2/8DD0: 10 AA BPL $8D7C C2/8DD2: 70 04 BVS $8DD8 C2/8DD4: 90 00 BCC $8DD6 C2/8DD6: 8C 70 80 STY $8070 C2/8DD9: 00 8E BRK $8E C2/8DDB: 70 90 BVS $8D6D C2/8DDD: 10 AC BPL $8D8B C2/8DDF: 70 80 BVS $8D61 C2/8DE1: 10 AE BPL $8D91 C2/8DE3: 70 3B BVS $8E20 C2/8DE5: 8E 40 3E STX $3E40 C2/8DE8: 8E 00 41 STX $4100 C2/8DEB: 8E 4C 44 STX $444C C2/8DEE: 8E 8C 47 STX $478C C2/8DF1: 8E 38 4A STX $4A38 C2/8DF4: 8E 68 4D STX $4D68 C2/8DF7: 8E 60 50 STX $5060 C2/8DFA: 8E 00 53 STX $5300 C2/8DFD: 8E 30 56 STX $5630 C2/8E00: 8E 98 59 STX $5998 C2/8E03: 8E 2C 5C STX $5C2C C2/8E06: 8E 90 5F STX $5F90 C2/8E09: 8E 48 62 STX $6248 C2/8E0C: 8E 00 65 STX $6500 C2/8E0F: 8E 48 68 STX $6848 C2/8E12: 8E 00 6B STX $6B00 C2/8E15: 8E 48 6E STX $6E48 C2/8E18: 8E 00 71 STX $7100 C2/8E1B: 8E 38 74 STX $7438 C2/8E1E: 8E 78 77 STX $7778 C2/8E21: 8E 6C 7A STX $7A6C C2/8E24: 8E 00 7D STX $7D00 C2/8E27: 8E 6C 80 STX $806C C2/8E2A: 8E 00 83 STX $8300 C2/8E2D: 8E 68 86 STX $8668 C2/8E30: 8E 00 89 STX $8900 C2/8E33: 8E 64 8C STX $8C64 C2/8E36: 8E 00 8F STX $8F00 C2/8E39: 8E FE 98 STX $98FE C2/8E3C: 8E FE 5A STX $5AFE C2/8E3F: 8F FE 09 8F STA $8F09FE C2/8E43: FE 5A 8F INC $8F5A,X C2/8E46: FE 5B 8F INC $8F5B,X C2/8E49: FE 80 8F INC $8F80,X C2/8E4C: FE CD 8F INC $8FCD,X C2/8E4F: FE 5A 8F INC $8F5A,X C2/8E52: FE 02 90 INC $9002,X C2/8E55: FE 53 90 INC $9053,X C2/8E58: FE 88 90 INC $9088,X C2/8E5B: FE 53 90 INC $9053,X C2/8E5E: FE D9 90 INC $90D9,X C2/8E61: FE 5A 8F INC $8F5A,X C2/8E64: FE 32 91 INC $9132,X C2/8E67: FE 5A 8F INC $8F5A,X C2/8E6A: FE 93 91 INC $9193,X C2/8E6D: FE 5A 8F INC $8F5A,X C2/8E70: FE F4 91 INC $91F4,X C2/8E73: FE 29 92 INC $9229,X C2/8E76: FE 6E 92 INC $926E,X C2/8E79: FE 5A 8F INC $8F5A,X C2/8E7C: FE 8B 92 INC $928B,X C2/8E7F: FE 5A 8F INC $8F5A,X C2/8E82: FE A8 92 INC $92A8,X C2/8E85: FE 5A 8F INC $8F5A,X C2/8E88: FE CD 92 INC $92CD,X C2/8E8B: FE 5A 8F INC $8F5A,X C2/8E8E: FE 02 00 INC $0002,X C2/8E91: 00 2A BRK $2A C2/8E93: 33 08 AND ($08,S),Y C2/8E95: 00 2B BRK $2B C2/8E97: 33 1C AND ($1C,S),Y C2/8E99: 80 00 BRA $8E9B C2/8E9B: 76 31 ROR $31,X C2/8E9D: 00 10 BRK $10 C2/8E9F: 2C 31 08 BIT $0831 C2/8EA2: 10 2D BPL $8ED1 C2/8EA4: 31 10 AND ($10),Y C2/8EA6: 08 PHP C2/8EA7: 04 31 TSB $31 C2/8EA9: 10 10 BPL $8EBB C2/8EAB: 14 31 TRB $31 C2/8EAD: 18 CLC C2/8EAE: 08 PHP C2/8EAF: 21 31 AND ($31,X) C2/8EB1: 18 CLC C2/8EB2: 10 31 BPL $8EE5 C2/8EB4: 31 20 AND ($20),Y C2/8EB6: 08 PHP C2/8EB7: 21 31 AND ($31,X) C2/8EB9: 20 10 31 JSR $3110 C2/8EBC: 31 28 AND ($28),Y C2/8EBE: 08 PHP C2/8EBF: 00 31 BRK $31 C2/8EC1: 28 PLP C2/8EC2: 10 10 BPL $8ED4 C2/8EC4: 31 B8 AND ($B8),Y C2/8EC6: 00 42 BRK $42 C2/8EC8: 31 38 AND ($38),Y C2/8ECA: 10 62 BPL $8F2E C2/8ECC: 31 40 AND ($40),Y C2/8ECE: 10 63 BPL $8F33 C2/8ED0: 31 48 AND ($48),Y C2/8ED2: 08 PHP C2/8ED3: 21 31 AND ($31,X) C2/8ED5: 48 PHA C2/8ED6: 10 31 BPL $8F09 C2/8ED8: 31 50 AND ($50),Y C2/8EDA: 08 PHP C2/8EDB: 00 31 BRK $31 C2/8EDD: 50 10 BVC $8EEF C2/8EDF: 10 31 BPL $8F12 C2/8EE1: 58 CLI C2/8EE2: 08 PHP C2/8EE3: 0D 31 58 ORA $5831 C2/8EE6: 10 1D BPL $8F05 C2/8EE8: 31 60 AND ($60),Y C2/8EEA: 08 PHP C2/8EEB: 05 31 ORA $31 C2/8EED: 60 RTS C2/8EEE: 10 15 BPL $8F05 C2/8EF0: 31 68 AND ($68),Y C2/8EF2: 08 PHP C2/8EF3: 0E 31 68 ASL $6831 C2/8EF6: 10 1E BPL $8F16 C2/8EF8: 31 70 AND ($70),Y C2/8EFA: 08 PHP C2/8EFB: 21 31 AND ($31,X) C2/8EFD: 70 10 BVS $8F0F C2/8EFF: 31 31 AND ($31),Y C2/8F01: 78 SEI C2/8F02: 08 PHP C2/8F03: 03 31 ORA $31,S C2/8F05: 78 SEI C2/8F06: 10 13 BPL $8F1B C2/8F08: 31 14 AND ($14),Y C2/8F0A: 80 00 BRA $8F0C C2/8F0C: 4E 31 00 LSR $0031 C2/8F0F: 10 6E BPL $8F7F C2/8F11: 31 08 AND ($08),Y C2/8F13: 10 6F BPL $8F84 C2/8F15: 31 10 AND ($10),Y C2/8F17: 08 PHP C2/8F18: 0E 31 10 ASL $1031 C2/8F1B: 10 1E BPL $8F3B C2/8F1D: 31 18 AND ($18),Y C2/8F1F: 08 PHP C2/8F20: 02 31 COP $31 C2/8F22: 18 CLC C2/8F23: 10 12 BPL $8F37 C2/8F25: 31 20 AND ($20),Y C2/8F27: 08 PHP C2/8F28: 0A ASL C2/8F29: 31 20 AND ($20),Y C2/8F2B: 10 1A BPL $8F47 C2/8F2D: 31 28 AND ($28),Y C2/8F2F: 08 PHP C2/8F30: 04 31 TSB $31 C2/8F32: 28 PLP C2/8F33: 10 14 BPL $8F49 C2/8F35: 31 B8 AND ($B8),Y C2/8F37: 00 44 BRK $44 C2/8F39: 31 38 AND ($38),Y C2/8F3B: 10 64 BPL $8FA1 C2/8F3D: 31 40 AND ($40),Y C2/8F3F: 10 65 BPL $8FA6 C2/8F41: 31 48 AND ($48),Y C2/8F43: 08 PHP C2/8F44: 0E 31 48 ASL $4831 C2/8F47: 10 1E BPL $8F67 C2/8F49: 31 50 AND ($50),Y C2/8F4B: 08 PHP C2/8F4C: 0B PHD C2/8F4D: 31 50 AND ($50),Y C2/8F4F: 10 1B BPL $8F6C C2/8F51: 31 58 AND ($58),Y C2/8F53: 08 PHP C2/8F54: 04 31 TSB $31 C2/8F56: 58 CLI C2/8F57: 10 14 BPL $8F6D C2/8F59: 31 00 AND ($00),Y C2/8F5B: 09 80 00 ORA #$0080 C2/8F5E: 44 31 00 MVP $31,$00 C2/8F61: 10 64 BPL $8FC7 C2/8F63: 31 08 AND ($08),Y C2/8F65: 10 65 BPL $8FCC C2/8F67: 31 10 AND ($10),Y C2/8F69: 08 PHP C2/8F6A: 28 PLP C2/8F6B: 31 10 AND ($10),Y C2/8F6D: 10 38 BPL $8FA7 C2/8F6F: 31 18 AND ($18),Y C2/8F71: 08 PHP C2/8F72: 00 31 BRK $31 C2/8F74: 18 CLC C2/8F75: 10 10 BPL $8F87 C2/8F77: 31 20 AND ($20),Y C2/8F79: 08 PHP C2/8F7A: 0D 31 20 ORA $2031 C2/8F7D: 10 1D BPL $8F9C C2/8F7F: 31 13 AND ($13),Y C2/8F81: 80 00 BRA $8F83 C2/8F83: 4C 31 00 JMP $0031 C2/8F86: 10 6C BPL $8FF4 C2/8F88: 31 08 AND ($08),Y C2/8F8A: 10 6D BPL $8FF9 C2/8F8C: 31 10 AND ($10),Y C2/8F8E: 08 PHP C2/8F8F: 00 31 BRK $31 C2/8F91: 10 10 BPL $8FA3 C2/8F93: 10 31 BPL $8FC6 C2/8F95: 18 CLC C2/8F96: 08 PHP C2/8F97: 21 31 AND ($31,X) C2/8F99: 18 CLC C2/8F9A: 10 31 BPL $8FCD C2/8F9C: 31 20 AND ($20),Y C2/8F9E: 08 PHP C2/8F9F: 00 31 BRK $31 C2/8FA1: 20 10 10 JSR $1010 C2/8FA4: 31 28 AND ($28),Y C2/8FA6: 08 PHP C2/8FA7: 0C 31 28 TSB $2831 C2/8FAA: 10 1C BPL $8FC8 C2/8FAC: 31 30 AND ($30),Y C2/8FAE: 08 PHP C2/8FAF: 0E 31 30 ASL $3031 C2/8FB2: 10 1E BPL $8FD2 C2/8FB4: 31 38 AND ($38),Y C2/8FB6: 08 PHP C2/8FB7: 0D 31 38 ORA $3831 C2/8FBA: 10 1D BPL $8FD9 C2/8FBC: 31 40 AND ($40),Y C2/8FBE: 08 PHP C2/8FBF: 03 31 ORA $31,S C2/8FC1: 40 RTI C2/8FC2: 10 13 BPL $8FD7 C2/8FC4: 31 48 AND ($48),Y C2/8FC6: 08 PHP C2/8FC7: 04 31 TSB $31 C2/8FC9: 48 PHA C2/8FCA: 10 14 BPL $8FE0 C2/8FCC: 31 0D AND ($0D),Y C2/8FCE: 80 00 BRA $8FD0 Data? // C2/8FD0: 74 31 00 10 C2/8FD4: 3E 31 08 10 C2/8FD8: 3F 31 10 08 C2/8FDC: 07 31 10 10 C2/8FE0: 17 31 18 08 C2/8FE4: 00 31 18 10 C2/8FE8: 10 31 20 08 C2/8FEC: 03 31 20 10 C2/8FF0: 13 31 28 08 C2/8FF4: 0E 31 28 10 C2/8FF8: 1E 31 30 08 C2/8FFC: 26 31 30 10 C2/8FFE: 30 10 BMI ??? C2/9000: 36 31 ROL $31,X C2/9002: 14 80 TRB $80 C2/9004: 00 48 BRK $48 C2/9006: 31 00 AND ($00),Y C2/9008: 10 68 BPL $9072 C2/900A: 31 08 AND ($08),Y C2/900C: 10 69 BPL $9077 C2/900E: 31 10 AND ($10),Y C2/9010: 08 PHP C2/9011: 03 31 ORA $31,S C2/9013: 10 10 BPL $9025 C2/9015: 13 31 ORA ($31,S),Y C2/9017: 18 CLC C2/9018: 08 PHP C2/9019: 06 31 ASL $31 C2/901B: 18 CLC C2/901C: 10 16 BPL $9034 C2/901E: 31 20 AND ($20),Y C2/9020: 08 PHP C2/9021: 00 31 BRK $31 C2/9023: 20 10 10 JSR $1010 C2/9026: 31 28 AND ($28),Y C2/9028: 08 PHP C2/9029: 21 31 AND ($31,X) C2/902B: 28 PLP C2/902C: 10 31 BPL $905F C2/902E: 31 B8 AND ($B8),Y C2/9030: 00 72 BRK $72 C2/9032: 31 38 AND ($38),Y C2/9034: 10 3C BPL $9072 C2/9036: 31 40 AND ($40),Y C2/9038: 10 3D BPL $9077 C2/903A: 31 48 AND ($48),Y C2/903C: 08 PHP C2/903D: 0E 31 48 ASL $4831 C2/9040: 10 1E BPL $9060 C2/9042: 31 50 AND ($50),Y C2/9044: 08 PHP C2/9045: 0D 31 50 ORA $5031 C2/9048: 10 1D BPL $9067 C2/904A: 31 58 AND ($58),Y C2/904C: 08 PHP C2/904D: 08 PHP C2/904E: 31 58 AND ($58),Y C2/9050: 10 18 BPL $906A C2/9052: 31 0D AND ($0D),Y C2/9054: 80 00 BRA $9056 C2/9056: 4A LSR C2/9057: 31 00 AND ($00),Y C2/9059: 10 6A BPL $90C5 C2/905B: 31 08 AND ($08),Y C2/905D: 10 6B BPL $90CA C2/905F: 31 10 AND ($10),Y C2/9061: 08 PHP C2/9062: 08 PHP C2/9063: 31 10 AND ($10),Y C2/9065: 10 18 BPL $907F C2/9067: 31 18 AND ($18),Y C2/9069: 08 PHP C2/906A: 06 31 ASL $31 C2/906C: 18 CLC C2/906D: 10 16 BPL $9085 C2/906F: 31 20 AND ($20),Y C2/9071: 08 PHP C2/9072: 00 31 BRK $31 C2/9074: 20 10 10 JSR $1010 C2/9077: 31 28 AND ($28),Y C2/9079: 08 PHP C2/907A: 21 31 AND ($31,X) C2/907C: 28 PLP C2/907D: 10 31 BPL $90B0 C2/907F: 31 30 AND ($30),Y C2/9081: 08 PHP C2/9082: 0E 31 30 ASL $3031 C2/9085: 10 1E BPL $90A5 C2/9087: 31 14 AND ($14),Y C2/9089: 80 00 BRA $908B C2/908B: 74 31 STZ $31,X C2/908D: 00 10 BRK $10 C2/908F: 3E 31 08 ROL $0831,X C2/9092: 10 3F BPL $90D3 C2/9094: 31 10 AND ($10),Y C2/9096: 08 PHP C2/9097: 00 31 BRK $31 C2/9099: 10 10 BPL $90AB C2/909B: 10 31 BPL $90CE C2/909D: 18 CLC C2/909E: 08 PHP C2/909F: 01 31 ORA ($31,X) C2/90A1: 18 CLC C2/90A2: 10 11 BPL $90B5 C2/90A4: 31 20 AND ($20),Y C2/90A6: 08 PHP C2/90A7: 08 PHP C2/90A8: 31 20 AND ($20),Y C2/90AA: 10 18 BPL $90C4 C2/90AC: 31 28 AND ($28),Y C2/90AE: 08 PHP C2/90AF: 0D 31 28 ORA $2831 C2/90B2: 10 1D BPL $90D1 C2/90B4: 31 B8 AND ($B8),Y C2/90B6: 00 72 BRK $72 C2/90B8: 31 38 AND ($38),Y C2/90BA: 10 3C BPL $90F8 C2/90BC: 31 40 AND ($40),Y C2/90BE: 10 3D BPL $90FD C2/90C0: 31 48 AND ($48),Y C2/90C2: 08 PHP C2/90C3: 04 31 TSB $31 C2/90C5: 48 PHA C2/90C6: 10 14 BPL $90DC C2/90C8: 31 50 AND ($50),Y C2/90CA: 08 PHP C2/90CB: 0D 31 50 ORA $5031 C2/90CE: 10 1D BPL $90ED C2/90D0: 31 58 AND ($58),Y C2/90D2: 08 PHP C2/90D3: 04 31 TSB $31 C2/90D5: 58 CLI C2/90D6: 10 14 BPL $90EC C2/90D8: 31 16 AND ($16),Y C2/90DA: 80 00 BRA $90DC C2/90DC: 44 31 00 MVP $31,$00 C2/90DF: 10 64 BPL $9145 C2/90E1: 31 08 AND ($08),Y C2/90E3: 10 65 BPL $914A C2/90E5: 31 10 AND ($10),Y C2/90E7: 08 PHP C2/90E8: 04 31 TSB $31 C2/90EA: 10 10 BPL $90FC C2/90EC: 14 31 TRB $31 C2/90EE: 18 CLC C2/90EF: 08 PHP C2/90F0: 0B PHD C2/90F1: 31 18 AND ($18),Y C2/90F3: 10 1B BPL $9110 C2/90F5: 31 20 AND ($20),Y C2/90F7: 08 PHP C2/90F8: 04 31 TSB $31 C2/90FA: 20 10 14 JSR $1410 C2/90FD: 31 28 AND ($28),Y C2/90FF: 08 PHP C2/9100: 22 31 28 10 JSR $102831 C2/9104: 32 31 AND ($31) C2/9106: B8 CLV C2/9107: 00 44 BRK $44 C2/9109: 31 38 AND ($38),Y C2/910B: 10 64 BPL $9171 C2/910D: 31 40 AND ($40),Y C2/910F: 10 65 BPL $9176 C2/9111: 31 48 AND ($48),Y C2/9113: 08 PHP C2/9114: 07 31 ORA [$31] C2/9116: 48 PHA C2/9117: 10 17 BPL $9130 C2/9119: 31 50 AND ($50),Y C2/911B: 08 PHP C2/911C: 04 31 TSB $31 C2/911E: 50 10 BVC $9130 C2/9120: 14 31 TRB $31 C2/9122: 58 CLI C2/9123: 08 PHP C2/9124: 21 31 AND ($31,X) C2/9126: 58 CLI C2/9127: 10 31 BPL $915A C2/9129: 31 60 AND ($60),Y C2/912B: 08 PHP C2/912C: 04 31 TSB $31 C2/912E: 60 RTS C2/912F: 10 14 BPL $9145 C2/9131: 31 18 AND ($18),Y C2/9133: 80 00 BRA $9135 C2/9135: 74 31 STZ $31,X C2/9137: 00 10 BRK $10 C2/9139: 3E 31 08 ROL $0831,X C2/913C: 10 3F BPL $917D C2/913E: 31 10 AND ($10),Y C2/9140: 08 PHP C2/9141: 23 31 AND $31,S C2/9143: 10 10 BPL $9155 C2/9145: 33 31 AND ($31,S),Y C2/9147: 18 CLC C2/9148: 08 PHP C2/9149: 21 31 AND ($31,X) C2/914B: 18 CLC C2/914C: 10 31 BPL $917F C2/914E: 31 20 AND ($20),Y C2/9150: 08 PHP C2/9151: 00 31 BRK $31 C2/9153: 20 10 10 JSR $1010 C2/9156: 31 28 AND ($28),Y C2/9158: 08 PHP C2/9159: 06 31 ASL $31 C2/915B: 28 PLP C2/915C: 10 16 BPL $9174 C2/915E: 31 30 AND ($30),Y C2/9160: 08 PHP C2/9161: 0E 31 30 ASL $3031 C2/9164: 10 1E BPL $9184 C2/9166: 31 C0 AND ($C0),Y C2/9168: 00 70 BRK $70 C2/916A: 31 40 AND ($40),Y C2/916C: 10 3A BPL $91A8 C2/916E: 31 48 AND ($48),Y C2/9170: 10 3B BPL $91AD C2/9172: 31 50 AND ($50),Y C2/9174: 08 PHP C2/9175: 00 31 BRK $31 C2/9177: 50 10 BVC $9189 C2/9179: 10 31 BPL $91AC C2/917B: 58 CLI C2/917C: 08 PHP C2/917D: 06 31 ASL $31 C2/917F: 58 CLI C2/9180: 10 16 BPL $9198 C2/9182: 31 60 AND ($60),Y C2/9184: 08 PHP C2/9185: 24 31 BIT $31 C2/9187: 60 RTS C2/9188: 10 34 BPL $91BE C2/918A: 31 68 AND ($68),Y C2/918C: 08 PHP C2/918D: 22 31 68 10 JSR $106831 C2/9191: 32 31 AND ($31) C2/9193: 18 CLC C2/9194: 80 00 BRA $9196 C2/9196: 72 31 ADC ($31) C2/9198: 00 10 BRK $10 C2/919A: 3C 31 08 BIT $0831,X C2/919D: 10 3D BPL $91DC C2/919F: 31 10 AND ($10),Y C2/91A1: 08 PHP C2/91A2: 04 31 TSB $31 C2/91A4: 10 10 BPL $91B6 C2/91A6: 14 31 TRB $31 C2/91A8: 18 CLC C2/91A9: 08 PHP C2/91AA: 0B PHD C2/91AB: 31 18 AND ($18),Y C2/91AD: 10 1B BPL $91CA C2/91AF: 31 20 AND ($20),Y C2/91B1: 08 PHP C2/91B2: 0C 31 20 TSB $2031 C2/91B5: 10 1C BPL $91D3 C2/91B7: 31 B0 AND ($B0),Y C2/91B9: 00 40 BRK $40 C2/91BB: 31 30 AND ($30),Y C2/91BD: 10 60 BPL $921F C2/91BF: 31 38 AND ($38),Y C2/91C1: 10 61 BPL $9224 C2/91C3: 31 40 AND ($40),Y C2/91C5: 08 PHP C2/91C6: 21 31 AND ($31,X) C2/91C8: 40 RTI C2/91C9: 10 31 BPL $91FC C2/91CB: 31 48 AND ($48),Y C2/91CD: 08 PHP C2/91CE: 21 31 AND ($31,X) C2/91D0: 48 PHA C2/91D1: 10 31 BPL $9204 C2/91D3: 31 50 AND ($50),Y C2/91D5: 08 PHP C2/91D6: 0E 31 50 ASL $5031 C2/91D9: 10 1E BPL $91F9 C2/91DB: 31 58 AND ($58),Y C2/91DD: 08 PHP C2/91DE: 26 31 ROL $31 C2/91E0: 58 CLI C2/91E1: 10 36 BPL $9219 C2/91E3: 31 60 AND ($60),Y C2/91E5: 08 PHP C2/91E6: 0D 31 60 ORA $6031 C2/91E9: 10 1D BPL $9208 C2/91EB: 31 68 AND ($68),Y C2/91ED: 08 PHP C2/91EE: 28 PLP C2/91EF: 31 68 AND ($68),Y C2/91F1: 10 38 BPL $922B C2/91F3: 31 0D AND ($0D),Y C2/91F5: 80 00 BRA $91F7 C2/91F7: 74 31 STZ $31,X C2/91F9: 00 10 BRK $10 C2/91FB: 3E 31 08 ROL $0831,X C2/91FE: 10 3F BPL $923F C2/9200: 31 10 AND ($10),Y C2/9202: 08 PHP C2/9203: 04 31 TSB $31 C2/9205: 10 10 BPL $9217 C2/9207: 14 31 TRB $31 C2/9209: 18 CLC C2/920A: 08 PHP C2/920B: 23 31 AND $31,S C2/920D: 18 CLC C2/920E: 10 33 BPL $9243 C2/9210: 31 20 AND ($20),Y C2/9212: 08 PHP C2/9213: 29 31 20 AND #$2031 C2/9216: 10 39 BPL $9251 C2/9218: 31 28 AND ($28),Y C2/921A: 08 PHP C2/921B: 04 31 TSB $31 C2/921D: 28 PLP C2/921E: 10 14 BPL $9234 C2/9220: 31 30 AND ($30),Y C2/9222: 08 PHP C2/9223: 21 31 AND ($31,X) C2/9225: 30 10 BMI $9237 C2/9227: 31 31 AND ($31),Y C2/9229: 11 80 ORA ($80),Y C2/922B: 00 4C BRK $4C C2/922D: 31 00 AND ($00),Y C2/922F: 10 6C BPL $929D C2/9231: 31 08 AND ($08),Y C2/9233: 10 6D BPL $92A2 C2/9235: 31 10 AND ($10),Y C2/9237: 08 PHP C2/9238: 00 31 BRK $31 C2/923A: 10 10 BPL $924C C2/923C: 10 31 BPL $926F C2/923E: 18 CLC C2/923F: 08 PHP C2/9240: 01 31 ORA ($31,X) C2/9242: 18 CLC C2/9243: 10 11 BPL $9256 C2/9245: 31 20 AND ($20),Y C2/9247: 08 PHP C2/9248: 01 31 ORA ($31,X) C2/924A: 20 10 11 JSR $1110 C2/924D: 31 28 AND ($28),Y C2/924F: 08 PHP C2/9250: 08 PHP C2/9251: 31 28 AND ($28),Y C2/9253: 10 18 BPL $926D C2/9255: 31 30 AND ($30),Y C2/9257: 08 PHP C2/9258: 00 31 BRK $31 C2/925A: 30 10 BMI $926C C2/925C: 10 31 BPL $928F C2/925E: 38 SEC C2/925F: 08 PHP C2/9260: 0D 31 38 ORA $3831 C2/9263: 10 1D BPL $9282 C2/9265: 31 40 AND ($40),Y C2/9267: 08 PHP C2/9268: 08 PHP C2/9269: 31 40 AND ($40),Y C2/926B: 10 18 BPL $9285 C2/926D: 31 07 AND ($07),Y C2/926F: 80 00 BRA $9271 C2/9271: 70 31 BVS $92A4 C2/9273: 00 10 BRK $10 C2/9275: 3A DEC C2/9276: 31 08 AND ($08),Y C2/9278: 10 3B BPL $92B5 C2/927A: 31 10 AND ($10),Y C2/927C: 08 PHP C2/927D: 0E 31 10 ASL $1031 C2/9280: 10 1E BPL $92A0 C2/9282: 31 18 AND ($18),Y C2/9284: 08 PHP C2/9285: 06 31 ASL $31 C2/9287: 18 CLC C2/9288: 10 16 BPL $92A0 C2/928A: 31 07 AND ($07),Y C2/928C: 80 00 BRA $928E C2/928E: 4C 31 00 JMP $0031 C2/9291: 10 6C BPL $92FF C2/9293: 31 08 AND ($08),Y C2/9295: 10 6D BPL $9304 C2/9297: 31 10 AND ($10),Y C2/9299: 08 PHP C2/929A: 00 31 BRK $31 C2/929C: 10 10 BPL $92AE C2/929E: 10 31 BPL $92D1 C2/92A0: 18 CLC C2/92A1: 08 PHP C2/92A2: 24 31 BIT $31 C2/92A4: 18 CLC C2/92A5: 10 34 BPL $92DB C2/92A7: 31 09 AND ($09),Y C2/92A9: 80 00 BRA $92AB C2/92AB: 4C 31 00 JMP $0031 C2/92AE: 10 6C BPL $931C C2/92B0: 31 08 AND ($08),Y C2/92B2: 10 6D BPL $9321 C2/92B4: 31 10 AND ($10),Y C2/92B6: 08 PHP C2/92B7: 0E 31 10 ASL $1031 C2/92BA: 10 1E BPL $92DA C2/92BC: 31 18 AND ($18),Y C2/92BE: 08 PHP C2/92BF: 06 31 ASL $31 C2/92C1: 18 CLC C2/92C2: 10 16 BPL $92DA C2/92C4: 31 20 AND ($20),Y C2/92C6: 08 PHP C2/92C7: 0E 31 20 ASL $2031 C2/92CA: 10 1E BPL $92EA C2/92CC: 31 0B AND ($0B),Y C2/92CE: 80 00 BRA $92D0 C2/92D0: 78 SEI C2/92D1: 31 00 AND ($00),Y C2/92D3: 10 2E BPL $9303 C2/92D5: 31 08 AND ($08),Y C2/92D7: 10 2F BPL $9308 C2/92D9: 31 10 AND ($10),Y C2/92DB: 08 PHP C2/92DC: 0C 31 10 TSB $1031 C2/92DF: 10 1C BPL $92FD C2/92E1: 31 18 AND ($18),Y C2/92E3: 08 PHP C2/92E4: 00 31 BRK $31 C2/92E6: 18 CLC C2/92E7: 10 10 BPL $92F9 C2/92E9: 31 20 AND ($20),Y C2/92EB: 08 PHP C2/92EC: 21 31 AND ($31,X) C2/92EE: 20 10 31 JSR $3110 C2/92F1: 31 28 AND ($28),Y C2/92F3: 08 PHP C2/92F4: 0E 31 28 ASL $2831 C2/92F7: 10 1E BPL $9317 C2/92F9: 31 F7 AND ($F7),Y C2/92FB: 93 06 STA ($06,S),Y C2/92FD: 82 94 06 BRL $C09994 C2/9300: C6 93 DEC $93 C2/9302: 06 8D ASL $8D C2/9304: 93 06 STA ($06,S),Y C2/9306: 54 93 06 MVN $93,$06 C2/9309: 27 93 AND [$93] C2/930B: 06 54 ASL $54 C2/930D: 93 06 STA ($06,S),Y C2/930F: 8D 93 06 STA $0693 C2/9312: C6 93 DEC $93 C2/9314: 06 82 ASL $82 C2/9316: 94 06 STY $06,X C2/9318: F7 93 SBC [$93],Y C2/931A: 06 20 ASL $20 C2/931C: 94 06 STY $06,X C2/931E: 61 94 ADC ($94,X) C2/9320: 0C 20 94 TSB $9420 C2/9323: 06 20 ASL $20 C2/9325: 94 FF STY $FF,X C2/9327: 0B PHD C2/9328: 10 00 BPL $932A C2/932A: 02 34 COP $34 C2/932C: 98 TYA C2/932D: 00 03 BRK $03 C2/932F: 34 88 BIT $88,X C2/9331: 08 PHP C2/9332: 11 34 ORA ($34),Y C2/9334: 98 TYA C2/9335: 10 23 BPL $935A C2/9337: 34 28 BIT $28,X C2/9339: 08 PHP C2/933A: 15 34 ORA $34,X C2/933C: 00 18 BRK $18 C2/933E: 30 34 BMI $9374 C2/9340: 08 PHP C2/9341: 18 CLC C2/9342: 31 34 AND ($34),Y C2/9344: 10 18 BPL $935E C2/9346: 32 34 AND ($34) C2/9348: 08 PHP C2/9349: 20 01 34 JSR $3401 C2/934C: 10 20 BPL $936E C2/934E: 05 34 ORA $34 C2/9350: 18 CLC C2/9351: 20 06 34 JSR $3406 C2/9354: 0E 10 00 ASL $0010 C2/9357: 07 34 ORA [$34] C2/9359: 08 PHP C2/935A: 08 PHP C2/935B: 16 34 ASL $34,X C2/935D: 10 08 BPL $9367 C2/935F: 17 34 ORA [$34],Y C2/9361: 88 DEY C2/9362: 10 26 BPL $938A C2/9364: 34 00 BIT $00,X C2/9366: 18 CLC C2/9367: 35 34 AND $34,X C2/9369: 08 PHP C2/936A: 20 09 34 JSR $3409 C2/936D: 10 20 BPL $938F C2/936F: 0C 34 18 TSB $1834 C2/9372: 20 07 F4 JSR $F407 C2/9375: 20 18 16 JSR $1618 C2/9378: F4 18 18 PEA $1818 C2/937B: 17 F4 ORA [$F4],Y C2/937D: 98 TYA C2/937E: 08 PHP C2/937F: 26 F4 ROL $F4 C2/9381: 28 PLP C2/9382: 08 PHP C2/9383: 35 F4 AND $F4,X C2/9385: 20 00 09 JSR $0900 C2/9388: F4 18 00 PEA $0018 C2/938B: 0C F4 0E TSB $0EF4 C2/938E: 18 CLC C2/938F: 00 08 BRK $08 C2/9391: 34 18 BIT $18,X C2/9393: 08 PHP C2/9394: 18 CLC C2/9395: 34 20 BIT $20,X C2/9397: 08 PHP C2/9398: 19 34 18 ORA $1834,Y C2/939B: 10 28 BPL $93C5 C2/939D: 34 20 BIT $20,X C2/939F: 10 29 BPL $93CA C2/93A1: 34 18 BIT $18,X C2/93A3: 18 CLC C2/93A4: 38 SEC C2/93A5: 34 18 BIT $18,X C2/93A7: 20 20 34 JSR $3420 C2/93AA: 10 20 BPL $93CC C2/93AC: 08 PHP C2/93AD: F4 10 18 PEA $1810 C2/93B0: 18 CLC C2/93B1: F4 08 18 PEA $1808 C2/93B4: 19 F4 10 ORA $10F4,Y C2/93B7: 10 28 BPL $93E1 C2/93B9: F4 08 10 PEA $1008 C2/93BC: 29 F4 10 AND #$10F4 C2/93BF: 08 PHP C2/93C0: 38 SEC C2/93C1: F4 10 00 PEA $0010 C2/93C4: 20 F4 0C JSR $0CF4 C2/93C7: 10 00 BPL $93C9 C2/93C9: 0A ASL C2/93CA: 34 10 BIT $10,X C2/93CC: 08 PHP C2/93CD: 1A INC C2/93CE: 34 10 BIT $10,X C2/93D0: 10 2A BPL $93FC C2/93D2: 34 08 BIT $08,X C2/93D4: 18 CLC C2/93D5: 39 34 10 AND $1034,Y C2/93D8: 18 CLC C2/93D9: 3A DEC C2/93DA: 34 10 BIT $10,X C2/93DC: 20 25 34 JSR $3425 C2/93DF: 18 CLC C2/93E0: 20 0A F4 JSR $F40A C2/93E3: 18 CLC C2/93E4: 18 CLC C2/93E5: 1A INC C2/93E6: F4 18 10 PEA $1018 C2/93E9: 2A ROL C2/93EA: F4 20 08 PEA $0820 C2/93ED: 39 F4 18 AND $18F4,Y C2/93F0: 08 PHP C2/93F1: 3A DEC C2/93F2: F4 18 00 PEA $0018 C2/93F5: 25 F4 AND $F4 C2/93F7: 0A ASL C2/93F8: 18 CLC C2/93F9: 00 0B BRK $0B C2/93FB: 34 18 BIT $18,X C2/93FD: 08 PHP C2/93FE: 1B TCS C2/93FF: 34 18 BIT $18,X C2/9401: 10 2B BPL $942E C2/9403: 34 18 BIT $18,X C2/9405: 18 CLC C2/9406: 3B TSC C2/9407: 34 18 BIT $18,X C2/9409: 20 1C 34 JSR $341C C2/940C: 10 20 BPL $942E C2/940E: 0B PHD C2/940F: F4 10 18 PEA $1810 C2/9412: 1B TCS C2/9413: F4 10 10 PEA $1010 C2/9416: 2B PLD C2/9417: F4 10 08 PEA $0810 C2/941A: 3B TSC C2/941B: F4 10 00 PEA $0010 C2/941E: 1C F4 10 TRB $10F4 C2/9421: 10 00 BPL $9423 C2/9423: 0D 34 10 ORA $1034 C2/9426: 08 PHP C2/9427: 1D 34 08 ORA $0834,X C2/942A: 10 2C BPL $9458 C2/942C: 34 10 BIT $10,X C2/942E: 10 2D BPL $945D C2/9430: 34 08 BIT $08,X C2/9432: 18 CLC C2/9433: 3C 34 10 BIT $1034,X C2/9436: 18 CLC C2/9437: 3D 34 08 AND $0834,X C2/943A: 20 40 34 JSR $3440 C2/943D: 10 20 BPL $945F C2/943F: 41 34 EOR ($34,X) C2/9441: 18 CLC C2/9442: 20 0D F4 JSR $F40D C2/9445: 18 CLC C2/9446: 18 CLC C2/9447: 1D F4 20 ORA $20F4,X C2/944A: 10 2C BPL $9478 C2/944C: F4 18 10 PEA $1018 C2/944F: 2D F4 20 AND $20F4 C2/9452: 08 PHP C2/9453: 3C F4 18 BIT $18F4,X C2/9456: 08 PHP C2/9457: 3D F4 20 AND $20F4,X C2/945A: 00 40 BRK $40 C2/945C: F4 18 00 PEA $0018 C2/945F: 41 F4 EOR ($F4,X) C2/9461: 08 PHP C2/9462: 98 TYA C2/9463: 00 0E BRK $0E C2/9465: 34 98 BIT $98,X C2/9467: 10 2E BPL $9497 C2/9469: 34 28 BIT $28,X C2/946B: 08 PHP C2/946C: 43 34 EOR $34,S C2/946E: 18 CLC C2/946F: 20 42 34 JSR $3442 C2/9472: 88 DEY C2/9473: 18 CLC C2/9474: 0E F4 88 ASL $88F4 C2/9477: 08 PHP C2/9478: 2E F4 00 ROL $00F4 C2/947B: 18 CLC C2/947C: 43 F4 EOR $F4,S C2/947E: 10 00 BPL $9480 C2/9480: 42 F4 WDM $F4 C2/9482: 05 12 ORA $12 C2/9484: 00 00 BRK $00 C2/9486: 34 12 BIT $12,X C2/9488: 08 PHP C2/9489: 10 34 BPL $94BF C2/948B: 12 10 ORA ($10) C2/948D: 10 34 BPL $94C3 C2/948F: 12 18 ORA ($18) C2/9491: 10 34 BPL $94C7 C2/9493: 12 20 ORA ($20) C2/9495: 10 34 BPL $94CB C2/9497: A9 94 B4 LDA #$B494 C2/949A: A9 94 B4 LDA #$B494 C2/949D: A9 94 B4 LDA #$B494 C2/94A0: CA DEX C2/94A1: 94 10 STY $10,X C2/94A3: F7 94 SBC [$94],Y C2/94A5: 40 RTI C2/94A6: F7 94 SBC [$94],Y C2/94A8: FE 08 80 INC $8008,X C2/94AB: 08 PHP C2/94AC: 00 38 BRK $38 C2/94AE: 10 08 BPL $94B8 C2/94B0: 02 38 COP $38 C2/94B2: 10 10 BPL $94C4 C2/94B4: 12 38 ORA ($38) C2/94B6: 18 CLC C2/94B7: 10 13 BPL $94CC C2/94B9: 38 SEC C2/94BA: 80 18 BRA $94D4 C2/94BC: 04 38 TSB $38 C2/94BE: 10 18 BPL $94D8 C2/94C0: 06 38 ASL $38 C2/94C2: 10 20 BPL $94E4 C2/94C4: 16 38 ASL $38,X C2/94C6: 18 CLC C2/94C7: 18 CLC C2/94C8: 03 38 ORA $38,S C2/94CA: 0B PHD C2/94CB: 80 08 BRA $94D5 C2/94CD: 00 38 BRK $38 C2/94CF: 90 00 BCC $94D1 C2/94D1: 07 38 ORA [$38] C2/94D3: 10 10 BPL $94E5 C2/94D5: 12 38 ORA ($38) C2/94D7: 80 18 BRA $94F1 C2/94D9: 04 38 TSB $38 C2/94DB: 10 18 BPL $94F5 C2/94DD: 06 38 ASL $38 C2/94DF: 10 20 BPL $9501 C2/94E1: 16 38 ASL $38,X C2/94E3: 18 CLC C2/94E4: 18 CLC C2/94E5: 03 38 ORA $38,S C2/94E7: 20 00 09 JSR $0900 C2/94EA: 38 SEC C2/94EB: 20 08 19 JSR $1908 C2/94EE: 38 SEC C2/94EF: 18 CLC C2/94F0: 10 0A BPL $94FC C2/94F2: 38 SEC C2/94F3: 20 10 0B JSR $0B10 C2/94F6: 38 SEC C2/94F7: 11 00 ORA ($00),Y C2/94F9: 08 PHP C2/94FA: 00 38 BRK $38 C2/94FC: 08 PHP C2/94FD: 08 PHP C2/94FE: 01 38 ORA ($38,X) C2/9500: 00 10 BRK $10 C2/9502: 10 38 BPL $953C C2/9504: 80 18 BRA $951E C2/9506: 04 38 TSB $38 C2/9508: 10 18 BPL $9522 C2/950A: 06 38 ASL $38 C2/950C: 10 20 BPL $952E C2/950E: 16 38 ASL $38,X C2/9510: 18 CLC C2/9511: 18 CLC C2/9512: 03 38 ORA $38,S C2/9514: 08 PHP C2/9515: 10 1A BPL $9531 C2/9517: 38 SEC C2/9518: 10 10 BPL $952A C2/951A: 1B TCS C2/951B: 38 SEC C2/951C: 10 00 BPL $951E C2/951E: 0C 38 18 TSB $1838 C2/9521: 00 0D BRK $0D C2/9523: 38 SEC C2/9524: 10 08 BPL $952E C2/9526: 0E 38 18 ASL $1838 C2/9529: 08 PHP C2/952A: 0F 38 20 00 ORA $002038 C2/952E: 09 38 20 ORA #$2038 C2/9531: 08 PHP C2/9532: 19 38 18 ORA $1838,Y C2/9535: 10 0A BPL $9541 C2/9537: 38 SEC C2/9538: 20 10 0B JSR $0B10 C2/953B: 38 SEC C2/953C: C6 18 DEC $18 C2/953E: 4D 66 6E EOR $6E66 C2/9541: 6A ROR C2/9542: 90 6A BCC $95AE C2/9544: B1 6A LDA ($6A),Y C2/9546: D2 6E CMP ($6E) C2/9548: F3 6E SBC ($6E,S),Y C2/954A: 15 73 ORA $73,X C2/954C: 36 73 ROL $73,X C2/954E: 37 73 AND [$73],Y C2/9550: 58 CLI C2/9551: 77 7A ADC [$7A],Y C2/9553: 77 9B ADC [$9B],Y C2/9555: 77 BC ADC [$BC],Y C2/9557: 7B TDC C2/9558: DD 7B FF CMP $FF7B,X C2/955B: 7F 00 00 5F ADC $5F0000,X C2/955F: 5F 38 4D 92 EOR $924D38,X C2/9563: 24 8E BIT $8E C2/9565: 18 CLC C2/9566: 68 PLA C2/9567: 0C 45 0C TSB $0C45 C2/956A: 00 00 BRK $00 C2/956C: 00 00 BRK $00 C2/956E: 23 04 AND $04,S C2/9570: 23 04 AND $04,S C2/9572: 23 04 AND $04,S C2/9574: 23 04 AND $04,S C2/9576: 23 04 AND $04,S C2/9578: 23 04 AND $04,S C2/957A: 23 04 AND $04,S C2/957C: 00 00 BRK $00 C2/957E: 45 0C EOR $0C C2/9580: 68 PLA C2/9581: 0C 8E 18 TSB $188E C2/9584: 92 24 STA ($24) C2/9586: 38 SEC C2/9587: 4D 5F 5F EOR $5F5F C2/958A: 00 00 BRK $00 C2/958C: 00 00 BRK $00 C2/958E: 00 00 BRK $00 C2/9590: 00 00 BRK $00 C2/9592: 00 00 BRK $00 C2/9594: 00 00 BRK $00 C2/9596: 00 00 BRK $00 C2/9598: 00 00 BRK $00 C2/959A: 00 00 BRK $00 C2/959C: EA NOP C2/959D: 59 FF 7F EOR $7FFF,Y C2/95A0: 7B TDC C2/95A1: 5F B6 46 11 EOR $1146B6,X C2/95A5: 32 8D AND ($8D) C2/95A7: 25 29 AND $29 C2/95A9: 21 E6 AND ($E6,X) C2/95AB: 1C A2 18 TRB $18A2 C2/95AE: 5B TCD C2/95AF: 37 34 AND [$34],Y C2/95B1: 0E 6D 01 ASL $016D C2/95B4: BD 77 F7 LDA $F777,X C2/95B7: 66 72 ROR $72 C2/95B9: 5E EA 59 LSR $59EA,X C2/95BC: 00 00 BRK $00 C2/95BE: FF 7F 7B 5F SBC $5F7B7F,X C2/95C2: B6 46 LDX $46,Y C2/95C4: 11 32 ORA ($32),Y C2/95C6: 8D 25 29 STA $2925 C2/95C9: 21 E6 AND ($E6,X) C2/95CB: 1C A2 18 TRB $18A2 C2/95CE: 5B TCD C2/95CF: 37 34 AND [$34],Y C2/95D1: 0E 6D 01 ASL $016D C2/95D4: BD 77 F7 LDA $F777,X C2/95D7: 66 72 ROR $72 C2/95D9: 5E EA 59 LSR $59EA,X C2/95DC: 00 00 BRK $00 C2/95DE: 64 08 STZ $08 C2/95E0: 91 19 STA ($19),Y C2/95E2: EB XBA C2/95E3: 10 87 BPL $956C C2/95E5: 0C 53 36 TSB $3653 C2/95E8: 8E 29 FF STX $FF29 C2/95EB: 67 9C ADC [$9C] C2/95ED: 16 13 ASL $13,X C2/95EF: 67 4C ADC [$4C] C2/95F1: 66 41 ROR $41 C2/95F3: 49 C1 30 EOR #$30C1 C2/95F6: 82 24 61 BRL $C0F71D C2/95F9: 1C 61 18 TRB $1861 C2/95FC: 00 00 BRK $00 C2/95FE: DE 7B BE DEC $BE7B,X C2/9601: 77 BD ADC [$BD],Y C2/9603: 77 9C ADC [$9C],Y C2/9605: 73 7C ADC ($7C,S),Y C2/9607: 73 5A ADC ($5A,S),Y C2/9609: 6F 39 6B F7 ADC $F76B39 C2/960D: 66 93 ROR $93 C2/960F: 5E AA 5D LSR $5DAA,X C2/9612: 46 5D LSR $5D C2/9614: 00 00 BRK $00 C2/9616: 00 00 BRK $00 C2/9618: 00 00 BRK $00 C2/961A: FF 7F 00 00 SBC $00007F,X C2/961E: 0F 2E CC 25 ORA $25CC2E C2/9622: CB WAI C2/9623: 25 AA AND $AA C2/9625: 21 89 AND ($89,X) C2/9627: 21 48 AND ($48,X) C2/9629: 19 47 19 ORA $1947,Y C2/962C: E5 10 SBC $10 C2/962E: 0C 11 90 TSB $9011 C2/9631: 3A DEC C2/9632: 6F 3A 4F 36 ADC $364F3A C2/9636: 4E 32 2D LSR $2D32 C2/9639: 32 0F AND ($0F) C2/963B: 2E 00 00 ROL $0000 C2/963E: 8F 5E 41 49 STA $49415E C2/9642: C1 30 CMP ($30,X) C2/9644: 82 24 61 BRL $C0F76B C2/9647: 1C D2 31 TRB $31D2 C2/964A: 6F 29 EA 18 ADC $18EA29 C2/964E: CC 25 AA CPY $AA25 C2/9651: 21 6F AND ($6F,X) C2/9653: 3A DEC C2/9654: 4F 36 4E 32 EOR $324E36 C2/9658: 2D 32 0F AND $0F32 C2/965B: 2E 00 00 ROL $0000 C2/965E: 99 46 57 STA $5746,Y C2/9661: 42 36 WDM $36 C2/9663: 3E 15 3A ROL $3A15,X C2/9666: F4 35 D2 PEA $D235 C2/9669: 31 6F AND ($6F),Y C2/966B: 29 EA 18 AND #$18EA C2/966E: CC 25 90 CPY $9025 C2/9671: 3A DEC C2/9672: 6F 3A 4F 36 ADC $364F3A C2/9676: 4E 32 2D LSR $2D32 C2/9679: 32 0F AND ($0F) C2/967B: 2E 00 00 ROL $0000 C2/967E: 1C 57 35 TRB $3557 C2/9681: 3A DEC C2/9682: 90 25 BCC $96A9 C2/9684: 0C 15 A8 TSB $A815 C2/9687: 08 PHP C2/9688: 66 04 ROR $04 C2/968A: 00 00 BRK $00 C2/968C: 00 38 BRK $38 C2/968E: 00 38 BRK $38 C2/9690: 00 38 BRK $38 C2/9692: 00 38 BRK $38 C2/9694: 00 38 BRK $38 C2/9696: 00 38 BRK $38 C2/9698: 00 38 BRK $38 C2/969A: 00 38 BRK $38 C2/969C: 00 00 BRK $00 C2/969E: 1C 57 98 TRB $9857 C2/96A1: 46 14 LSR $14 C2/96A3: 36 D2 ROL $D2,X C2/96A5: 2D 6F 21 AND $216F C2/96A8: 4E 1D 2D LSR $2D1D C2/96AB: 19 EB 10 ORA $10EB,Y C2/96AE: C9 0C A8 CMP #$A80C C2/96B1: 08 PHP C2/96B2: 87 08 STA [$08] C2/96B4: 66 08 ROR $08 C2/96B6: 45 04 EOR $04 C2/96B8: 23 04 AND $04,S C2/96BA: 00 00 BRK $00 C2/96BC: 00 00 BRK $00 C2/96BE: 1C 57 1C TRB $1C57 C2/96C1: 57 14 EOR [$14],Y C2/96C3: 36 14 ROL $14,X C2/96C5: 36 6F ROL $6F,X C2/96C7: 21 6F AND ($6F,X) C2/96C9: 21 2D AND ($2D,X) C2/96CB: 19 EB 10 ORA $10EB,Y C2/96CE: EB XBA C2/96CF: 10 87 BPL $9658 C2/96D1: 08 PHP C2/96D2: 87 08 STA [$08] C2/96D4: 45 04 EOR $04 C2/96D6: 23 04 AND $04,S C2/96D8: 23 04 AND $04,S C2/96DA: 00 00 BRK $00 C2/96DC: 00 00 BRK $00 C2/96DE: 1C 57 98 TRB $9857 C2/96E1: 46 14 LSR $14 C2/96E3: 36 D2 ROL $D2,X C2/96E5: 2D 90 25 AND $2590 C2/96E8: 0C 15 A8 TSB $A815 C2/96EB: 08 PHP C2/96EC: 00 38 BRK $38 C2/96EE: 00 38 BRK $38 C2/96F0: 00 38 BRK $38 C2/96F2: 00 38 BRK $38 C2/96F4: 00 38 BRK $38 C2/96F6: 00 38 BRK $38 C2/96F8: 00 38 BRK $38 C2/96FA: 00 38 BRK $38 C2/96FC: 00 00 BRK $00 C2/96FE: 52 4A EOR ($4A) C2/9700: EF 3D 6B 2D SBC $2D6B3D C2/9704: 29 25 C6 AND #$C625 C2/9707: 18 CLC C2/9708: 63 08 ADC $08,S C2/970A: 20 00 00 JSR $0000 C2/970D: 38 SEC C2/970E: 00 38 BRK $38 C2/9710: 00 38 BRK $38 C2/9712: 00 38 BRK $38 C2/9714: 00 38 BRK $38 C2/9716: 00 38 BRK $38 C2/9718: 00 38 BRK $38 C2/971A: 00 38 BRK $38 C2/971C: 00 00 BRK $00 C2/971E: 1C 57 98 TRB $9857 C2/9721: 46 14 LSR $14 C2/9723: 36 D2 ROL $D2,X C2/9725: 2D 90 25 AND $2590 C2/9728: 90 25 BCC $974F C2/972A: 0C 15 0C TSB $0C15 C2/972D: 15 A8 ORA $A8,X C2/972F: 08 PHP C2/9730: A8 TAY C2/9731: 08 PHP C2/9732: A8 TAY C2/9733: 08 PHP C2/9734: A8 TAY C2/9735: 08 PHP C2/9736: A8 TAY C2/9737: 08 PHP C2/9738: A8 TAY C2/9739: 08 PHP C2/973A: A8 TAY C2/973B: 08 PHP C2/973C: 00 00 BRK $00 C2/973E: C7 18 CMP [$18] C2/9740: FE 16 FE INC $FE16,X C2/9743: 16 00 ASL $00,X C2/9745: 00 FE BRK $FE C2/9747: 16 5A ASL $5A,X C2/9749: 22 C7 18 00 JSR $0018C7 C2/974D: 00 60 BRK $60 C2/974F: C4 00 CPY $00 C2/9751: 00 FF BRK $FF C2/9753: 7F 00 00 FF ADC $FF0000,X C2/9757: 7F B4 56 60 ADC $6056B4,X C2/975B: 4C 00 00 JMP $0000 C2/975E: FF 7F 60 4C SBC $4C607F,X C2/9762: FF 7F 00 00 SBC $00007F,X C2/9766: 00 00 BRK $00 C2/9768: 00 00 BRK $00 C2/976A: 00 00 BRK $00 C2/976C: 00 00 BRK $00 C2/976E: 00 00 BRK $00 C2/9770: 00 00 BRK $00 C2/9772: 00 00 BRK $00 C2/9774: 00 00 BRK $00 C2/9776: 1C 57 98 TRB $9857 C2/9779: 46 14 LSR $14 C2/977B: 36 D2 ROL $D2,X C2/977D: 2D 6F 21 AND $216F C2/9780: 4E 1D 0C LSR $0C1D C2/9783: 15 EB ORA $EB,X C2/9785: 10 C9 BPL $9750 C2/9787: 0C A8 08 TSB $08A8 C2/978A: 87 08 STA [$08] C2/978C: 66 08 ROR $08 C2/978E: 45 04 EOR $04 C2/9790: 23 04 AND $04,S C2/9792: 00 00 BRK $00 C2/9794: 00 00 BRK $00 C2/9796: FF 7F 9C 63 SBC $639C7F,X C2/979A: B6 46 LDX $46,Y C2/979C: 11 32 ORA ($32),Y C2/979E: 8D 21 29 STA $2921 C2/97A1: 19 E8 1C ORA $1CE8,Y C2/97A4: C6 1C DEC $1C C2/97A6: A4 18 LDY $18 C2/97A8: 82 10 00 BRL $C097BB C2/97AB: 00 00 BRK $00 C2/97AD: 00 00 BRK $00 C2/97AF: 00 22 BRK $22 C2/97B1: 04 93 TSB $93 C2/97B3: 62 00 00 PER $C097B6 C2/97B6: 64 08 STZ $08 C2/97B8: 91 19 STA ($19),Y C2/97BA: EB XBA C2/97BB: 10 87 BPL $9744 C2/97BD: 0C 53 36 TSB $3653 C2/97C0: 8E 29 FF STX $FF29 C2/97C3: 67 9C ADC [$9C] C2/97C5: 16 13 ASL $13,X C2/97C7: 67 4C ADC [$4C] C2/97C9: 66 41 ROR $41 C2/97CB: 49 1F 7C EOR #$7C1F C2/97CE: 1F 7C 61 1C ORA $1C617C,X C2/97D2: 1F 7C 00 00 ORA $00007C,X C2/97D6: 31 36 AND ($36),Y C2/97D8: EF 31 8C 29 SBC $298C31 C2/97DC: 91 19 STA ($19),Y C2/97DE: 2D 19 EA AND $EA19 C2/97E1: 14 A7 TRB $A7 C2/97E3: 10 85 BPL $976A C2/97E5: 0C 64 08 TSB $0864 C2/97E8: 5B TCD C2/97E9: 37 34 AND [$34],Y C2/97EB: 0E 6D 01 ASL $016D C2/97EE: 1F 7C 1F 7C ORA $7C1F7C,X C2/97F2: 43 08 EOR $08,S C2/97F4: 00 00 BRK $00 C2/97F6: 9C 77 9B STZ $9B77 C2/97F9: 63 B5 ADC $B5,S C2/97FB: 46 31 LSR $31 C2/97FD: 36 EF ROL $EF,X C2/97FF: 31 8C AND ($8C),Y C2/9801: 29 29 1D AND #$1D29 C2/9804: E7 18 SBC [$18] C2/9806: A6 14 LDX $14 C2/9808: 65 0C ADC $0C C2/980A: 44 0C 91 MVP $0C,$91 C2/980D: 19 EB 10 ORA $10EB,Y C2/9810: 87 0C STA [$0C] C2/9812: 1F 7C 00 00 ORA $00007C,X C2/9816: FF 7F 18 67 SBC $67187F,X C2/981A: 30 4E BMI $986A C2/981C: 49 35 61 EOR #$6135 C2/981F: 1C 26 29 TRB $2926 C2/9822: 26 29 ROL $29 C2/9824: 26 29 ROL $29 C2/9826: 26 29 ROL $29 C2/9828: 26 29 ROL $29 C2/982A: 26 29 ROL $29 C2/982C: 26 29 ROL $29 C2/982E: 26 29 ROL $29 C2/9830: 26 29 ROL $29 C2/9832: 26 29 ROL $29 C2/9834: 02 00 COP $00 C2/9836: 64 08 STZ $08 C2/9838: 91 19 STA ($19),Y C2/983A: EB XBA C2/983B: 10 87 BPL $97C4 C2/983D: 0C FF 7F TSB $7FFF C2/9840: F6 6A INC $6A,X C2/9842: 0D 46 67 ORA $6746 C2/9845: 2D 36 67 AND $6736 C2/9848: 4F 4E 48 35 EOR $35484E C2/984C: E4 14 CPX $14 C2/984E: 1F 7C 61 1C ORA $1C617C,X C2/9852: 1F 7C 00 01 ORA $01007C,X C2/9856: 02 03 COP $03 C2/9858: 04 05 TSB $05 C2/985A: 06 07 ASL $07 C2/985C: 10 11 BPL $986F C2/985E: 12 13 ORA ($13) C2/9860: 14 15 TRB $15 C2/9862: 16 17 ASL $17,X C2/9864: 08 PHP C2/9865: 09 0A 0B ORA #$0B0A C2/9868: 0C 0D 0E TSB $0E0D C2/986B: 0F 18 19 1A ORA $1A1918 C2/986F: 1B TCS C2/9870: 1C 1D 1E TRB $1E1D C2/9873: 1F 20 21 22 ORA $222120,X C2/9877: 23 24 AND $24,S C2/9879: 25 26 AND $26 C2/987B: 27 30 AND [$30] C2/987D: 31 32 AND ($32),Y C2/987F: 33 34 AND ($34,S),Y C2/9881: 35 36 AND $36,X C2/9883: 37 28 AND [$28],Y C2/9885: 29 2A 2B AND #$2B2A C2/9888: 2C 2D 2E BIT $2E2D C2/988B: 2F 38 39 3A AND $3A3938 C2/988F: 3B TSC C2/9890: 3C 3D 3E BIT $3E3D,X C2/9893: 3F 89 9D 60 AND $609D89,X C2/9897: 88 DEY C2/9898: CF 9D 38 98 CMP $98389D C2/989C: 15 9E ORA $9E,X C2/989E: 80 98 BRA $9838 C2/98A0: 89 9D 60 BIT #$609D C2/98A3: 88 DEY C2/98A4: 2D 9F 40 AND $409F C2/98A7: 98 TYA C2/98A8: 73 9F ADC ($9F,S),Y C2/98AA: 90 98 BCC $9844 C2/98AC: B9 9F 4C LDA $4C9F,Y C2/98AF: AC FF 9F LDY $9FFF C2/98B2: 94 AC STY $AC,X C2/98B4: CF 9D 44 88 CMP $88449D C2/98B8: 15 9E ORA $9E,X C2/98BA: 6C 88 45 JMP ($4588) C2/98BD: A0 58 LDY #$58 C2/98BF: 98 TYA C2/98C0: 8B PHB C2/98C1: A0 78 LDY #$78 C2/98C3: 98 TYA C2/98C4: D1 A0 CMP ($A0),Y C2/98C6: 48 PHA C2/98C7: AC 17 A1 LDY $A117 C2/98CA: 88 DEY C2/98CB: AC 5B 9E LDY $9E5B C2/98CE: 40 RTI C2/98CF: 88 DEY C2/98D0: A1 9E LDA ($9E,X) C2/98D2: 80 88 BRA $985C C2/98D4: 5D A1 3C EOR $3CA1,X C2/98D7: 98 TYA C2/98D8: A3 A1 LDA $A1,S C2/98DA: 7C 98 E9 JMP ($E998,X) C2/98DD: A1 48 LDA ($48,X) C2/98DF: AC 2F A2 LDY $A22F C2/98E2: 80 AC BRA $9890 C2/98E4: 5B TCD C2/98E5: 9E 40 88 STZ $8840,X C2/98E8: A1 9E LDA ($9E,X) C2/98EA: 80 88 BRA $9874 C2/98EC: 75 A2 ADC $A2,X C2/98EE: 50 98 BVC $9888 C2/98F0: BB TYX C2/98F1: A2 80 LDX #$80 C2/98F3: 98 TYA C2/98F4: 01 A3 ORA ($A3,X) C2/98F6: 48 PHA C2/98F7: AC 47 A3 LDY $A347 C2/98FA: 88 DEY C2/98FB: AC E7 9E LDY $9EE7 C2/98FE: 6C 88 8D JMP ($8D88) C2/9901: A3 4C LDA $4C,S C2/9903: 98 TYA C2/9904: D3 A3 CMP ($A3,S),Y C2/9906: 7C 98 BD JMP ($BD98,X) C2/9909: A5 50 LDA $50 C2/990B: 88 DEY C2/990C: 03 A6 ORA $A6,S C2/990E: 80 88 BRA $9898 C2/9910: 19 A4 44 ORA $44A4,Y C2/9913: 98 TYA C2/9914: 5F A4 94 98 EOR $9894A4,X C2/9918: 49 A6 48 EOR #$48A6 C2/991B: 88 DEY C2/991C: 8F A6 80 88 STA $8880A6 C2/9920: A5 A4 LDA $A4 C2/9922: 44 98 EB MVP $98,$EB C2/9925: A4 8C LDY $8C C2/9927: 98 TYA C2/9928: 31 A5 AND ($A5),Y C2/992A: 4C AC 77 JMP $77AC C2/992D: A5 94 LDA $94 C2/992F: AC A1 9E LDY $9EA1 C2/9932: 4C 88 CF JMP $CF88 C2/9935: 9D 7C 88 STA $887C,X C2/9938: E7 9E SBC [$9E] C2/993A: 3C 98 2D BIT $2D98,X C2/993D: 9F 8C 98 73 STA $73988C,X C2/9941: 9F 58 AC B9 STA $B9AC58,X C2/9945: 9F 88 AC FF STA $FFAC88,X C2/9949: 9F 50 C0 45 STA $45C050,X C2/994D: A0 88 LDY #$88 C2/994F: C0 89 9D CPY #$9D89 C2/9952: 4C 88 CF JMP $CF88 C2/9955: 9D 7C 88 STA $887C,X C2/9958: 8B PHB C2/9959: A0 48 LDY #$48 C2/995B: 98 TYA C2/995C: D1 A0 CMP ($A0),Y C2/995E: 88 DEY C2/995F: 98 TYA C2/9960: 17 A1 ORA [$A1],Y C2/9962: 3C AC 5D BIT $5DAC,X C2/9965: A1 7C LDA ($7C,X) C2/9967: AC 15 9E LDY $9E15 C2/996A: 3C 88 5B BIT $5B88,X C2/996D: 9E 74 88 STZ $8874,X C2/9970: A3 A1 LDA $A1,S C2/9972: 48 PHA C2/9973: 98 TYA C2/9974: E9 A1 88 SBC #$88A1 C2/9977: 98 TYA C2/9978: 2F A2 4C AC AND $AC4CA2 C2/997C: 75 A2 ADC $A2,X C2/997E: 8C AC 8F STY $8FAC C2/9981: A6 3C LDX $3C C2/9983: 88 DEY C2/9984: 5B TCD C2/9985: 9E 74 88 STZ $8874,X C2/9988: BB TYX C2/9989: A2 3C LDX #$3C C2/998B: 98 TYA C2/998C: 01 A3 ORA ($A3,X) C2/998E: 7C 98 89 JMP ($8998,X) C2/9991: 9D 40 88 STA $8840,X C2/9994: CF 9D 70 88 CMP $88709D C2/9998: B9 9F 54 LDA $549F,Y C2/999B: 98 TYA C2/999C: FF 9F 8C 98 SBC $988C9F,X C2/99A0: 15 9E ORA $9E,X C2/99A2: 24 88 BIT $88 C2/99A4: 5B TCD C2/99A5: 9E 5C 88 STZ $885C,X C2/99A8: A1 9E LDA ($9E,X) C2/99AA: 9C 88 45 STZ $4588 C2/99AD: A0 40 LDY #$40 C2/99AF: 98 TYA C2/99B0: 8B PHB C2/99B1: A0 90 LDY #$90 C2/99B3: 98 TYA C2/99B4: E7 9E SBC [$9E] C2/99B6: 28 PLP C2/99B7: 88 DEY C2/99B8: 5B TCD C2/99B9: 9E 58 88 STZ $8858,X C2/99BC: A1 9E LDA ($9E,X) C2/99BE: 98 TYA C2/99BF: 88 DEY C2/99C0: D1 A0 CMP ($A0),Y C2/99C2: 44 98 17 MVP $98,$17 C2/99C5: A1 8C LDA ($8C,X) C2/99C7: 98 TYA C2/99C8: 5D A1 4C EOR $4CA1,X C2/99CB: AC A3 A1 LDY $A1A3 C2/99CE: 8C AC E9 STY $E9AC C2/99D1: A1 48 LDA ($48,X) C2/99D3: C0 2F A2 CPY #$A22F C2/99D6: 90 C0 BCC $9998 C2/99D8: E7 9E SBC [$9E] C2/99DA: 28 PLP C2/99DB: 88 DEY C2/99DC: 5B TCD C2/99DD: 9E 58 88 STZ $8858,X C2/99E0: A1 9E LDA ($9E,X) C2/99E2: 98 TYA C2/99E3: 88 DEY C2/99E4: 75 A2 ADC $A2,X C2/99E6: 4C 98 BB JMP $BB98 C2/99E9: A2 7C LDX #$7C C2/99EB: 98 TYA C2/99EC: 01 A3 ORA ($A3,X) C2/99EE: 50 AC BVC $999C C2/99F0: 47 A3 EOR [$A3] C2/99F2: 80 AC BRA $99A0 C2/99F4: 8D A3 3C STA $3CA3 C2/99F7: C0 D3 A3 CPY #$A3D3 C2/99FA: 8C C0 E7 STY $E7C0 C2/99FD: 9E 28 88 STZ $8828,X C2/9A00: 5B TCD C2/9A01: 9E 58 88 STZ $8858,X C2/9A04: A1 9E LDA ($9E,X) C2/9A06: 98 TYA C2/9A07: 88 DEY C2/9A08: 31 A5 AND ($A5),Y C2/9A0A: 38 SEC C2/9A0B: 98 TYA C2/9A0C: 5F A4 88 98 EOR $9888A4,X C2/9A10: A5 A4 LDA $A4 C2/9A12: 44 AC EB MVP $AC,$EB C2/9A15: A4 8C LDY $8C C2/9A17: AC 19 A4 LDY $A419 C2/9A1A: 40 RTI C2/9A1B: C0 BD A5 CPY #$A5BD C2/9A1E: 90 C0 BCC $99E0 C2/9A20: 2D 9F 1C AND $1C9F C2/9A23: 88 DEY C2/9A24: 5B TCD C2/9A25: 9E 5C 88 STZ $885C,X C2/9A28: A1 9E LDA ($9E,X) C2/9A2A: 9C 88 03 STZ $0388 C2/9A2D: A6 48 LDX $48 C2/9A2F: 98 TYA C2/9A30: 8B PHB C2/9A31: A0 88 LDY #$88 C2/9A33: 98 TYA C2/9A34: 73 9F ADC ($9F,S),Y C2/9A36: 24 88 BIT $88 C2/9A38: 5B TCD C2/9A39: 9E 5C 88 STZ $885C,X C2/9A3C: A1 9E LDA ($9E,X) C2/9A3E: 9C 88 49 STZ $4988 C2/9A41: A6 44 LDX $44 C2/9A43: 98 TYA C2/9A44: 8F A6 8C 98 STA $988CA6 C2/9A48: 89 9D 48 BIT #$489D C2/9A4B: 88 DEY C2/9A4C: CF 9D 78 88 CMP $88789D C2/9A50: B9 9F 4C LDA $4C9F,Y C2/9A53: 98 TYA C2/9A54: FF 9F 74 98 SBC $98749F,X C2/9A58: 89 9D 50 BIT #$509D C2/9A5B: 88 DEY C2/9A5C: 15 9E ORA $9E,X C2/9A5E: 80 88 BRA $99E8 C2/9A60: 45 A0 EOR $A0 C2/9A62: 4C 98 8B JMP $8B98 C2/9A65: A0 84 LDY #$84 C2/9A67: 98 TYA C2/9A68: D1 A0 CMP ($A0),Y C2/9A6A: 40 RTI C2/9A6B: AC 17 A1 LDY $A117 C2/9A6E: 90 AC BCC $9A1C C2/9A70: 89 9D 50 BIT #$509D C2/9A73: 88 DEY C2/9A74: 15 9E ORA $9E,X C2/9A76: 80 88 BRA $9A00 C2/9A78: 5D A1 40 EOR $40A1,X C2/9A7B: 98 TYA C2/9A7C: A3 A1 LDA $A1,S C2/9A7E: 88 DEY C2/9A7F: 98 TYA C2/9A80: E9 A1 54 SBC #$54A1 C2/9A83: AC 2F A2 LDY $A22F C2/9A86: 7C AC 5B JMP ($5BAC,X) C2/9A89: 9E 48 88 STZ $8848,X C2/9A8C: A1 9E LDA ($9E,X) C2/9A8E: 80 88 BRA $9A18 C2/9A90: 75 A2 ADC $A2,X C2/9A92: 5C 94 BB A2 JMP $A2BB94 C2/9A96: 94 94 STY $94,X C2/9A98: 01 A3 ORA ($A3,X) C2/9A9A: 60 RTS C2/9A9B: A8 TAY C2/9A9C: 47 A3 EOR [$A3] C2/9A9E: 88 DEY C2/9A9F: A8 TAY C2/9AA0: ED A7 58 SBC $58A7 C2/9AA3: BC 61 A7 LDY $A761,X C2/9AA6: 54 C8 A7 MVN $C8,$A7 C2/9AA9: A7 74 LDA [$74] C2/9AAB: C8 INY C2/9AAC: E7 9E SBC [$9E] C2/9AAE: 44 88 CF MVP $88,$CF C2/9AB1: 9D 7C 88 STA $887C,X C2/9AB4: 8D A3 3C STA $3CA3 C2/9AB7: 98 TYA C2/9AB8: D3 A3 CMP ($A3,S),Y C2/9ABA: 84 98 STY $98 C2/9ABC: 19 A4 50 ORA $50A4,Y C2/9ABF: AC 5F A4 LDY $A45F C2/9AC2: 88 DEY C2/9AC3: AC E7 9E LDY $9EE7 C2/9AC6: 44 88 CF MVP $88,$CF C2/9AC9: 9D 7C 88 STA $887C,X C2/9ACC: A5 A4 LDA $A4 C2/9ACE: 40 RTI C2/9ACF: 98 TYA C2/9AD0: EB XBA C2/9AD1: A4 88 LDY $88 C2/9AD3: 98 TYA C2/9AD4: 31 A5 AND ($A5),Y C2/9AD6: 48 PHA C2/9AD7: AC 77 A5 LDY $A577 C2/9ADA: 80 AC BRA $9A88 C2/9ADC: 2D 9F 38 AND $389F C2/9ADF: 88 DEY C2/9AE0: 73 9F ADC ($9F,S),Y C2/9AE2: 88 DEY C2/9AE3: 88 DEY C2/9AE4: 49 A6 4C EOR #$4CA6 C2/9AE7: 98 TYA C2/9AE8: 8F A6 84 98 STA $9884A6 C2/9AEC: D5 A6 CMP $A6,X C2/9AEE: 40 RTI C2/9AEF: AC 1B A7 LDY $A71B C2/9AF2: 80 AC BRA $9AA0 C2/9AF4: 89 9D 40 BIT #$409D C2/9AF7: 40 RTI C2/9AF8: CF 9D 68 40 CMP $40689D C2/9AFC: 73 9F ADC ($9F,S),Y C2/9AFE: 60 RTS C2/9AFF: 54 B9 9F MVN $B9,$9F C2/9B02: 60 RTS C2/9B03: 60 RTS C2/9B04: FF 9F 60 6C SBC $6C609F,X C2/9B08: 45 A0 EOR $A0 C2/9B0A: 60 RTS C2/9B0B: 78 SEI C2/9B0C: 8B PHB C2/9B0D: A0 60 LDY #$60 C2/9B0F: 84 D1 STY $D1 C2/9B11: A0 60 LDY #$60 C2/9B13: 90 17 BCC $9B2C C2/9B15: A1 60 LDA ($60,X) C2/9B17: 9C 5D A1 STZ $A15D C2/9B1A: 60 RTS C2/9B1B: A8 TAY C2/9B1C: 15 9E ORA $9E,X C2/9B1E: 3C 40 5B BIT $5B40,X C2/9B21: 9E 7C 40 STZ $407C,X C2/9B24: A1 9E LDA ($9E,X) C2/9B26: B4 40 LDY $40,X C2/9B28: A3 A1 LDA $A1,S C2/9B2A: 60 RTS C2/9B2B: 54 E9 A1 MVN $E9,$A1 C2/9B2E: 60 RTS C2/9B2F: 60 RTS C2/9B30: 2F A2 60 6C AND $6C60A2 C2/9B34: 91 A9 STA ($A9),Y C2/9B36: 60 RTS C2/9B37: 84 39 STY $39 C2/9B39: B1 60 LDA ($60),Y C2/9B3B: 90 7F BCC $9BBC C2/9B3D: B1 60 LDA ($60),Y C2/9B3F: 9C C5 B1 STZ $B1C5 C2/9B42: 60 RTS C2/9B43: A8 TAY C2/9B44: 75 A2 ADC $A2,X C2/9B46: 60 RTS C2/9B47: 54 BB A2 MVN $BB,$A2 C2/9B4A: 60 RTS C2/9B4B: 60 RTS C2/9B4C: 01 A3 ORA ($A3,X) C2/9B4E: 60 RTS C2/9B4F: 6C 47 A3 JMP ($A347) C2/9B52: 60 RTS C2/9B53: 78 SEI C2/9B54: 8D A3 60 STA $60A3 C2/9B57: 84 D3 STY $D3 C2/9B59: A3 60 LDA $60,S C2/9B5B: 90 19 BCC $9B76 C2/9B5D: A4 60 LDY $60 C2/9B5F: 9C 0B B2 STZ $B20B C2/9B62: 60 RTS C2/9B63: A8 TAY C2/9B64: 51 B2 EOR ($B2),Y C2/9B66: 60 RTS C2/9B67: B4 97 LDY $97,X C2/9B69: B2 60 LDA ($60) C2/9B6B: 54 DD B2 MVN $DD,$B2 C2/9B6E: 60 RTS C2/9B6F: 60 RTS C2/9B70: 23 B3 AND $B3,S C2/9B72: 60 RTS C2/9B73: 6C 69 B3 JMP ($B369) C2/9B76: 60 RTS C2/9B77: 78 SEI C2/9B78: 5F A4 60 84 EOR $8460A4,X C2/9B7C: A5 A4 LDA $A4 C2/9B7E: 60 RTS C2/9B7F: 90 C7 BCC $9B48 C2/9B81: B4 60 LDY $60,X C2/9B83: A8 TAY C2/9B84: 0D B5 60 ORA $60B5 C2/9B87: B4 EB LDY $EB,X C2/9B89: A4 60 LDY $60 C2/9B8B: 54 31 A5 MVN $31,$A5 C2/9B8E: 60 RTS C2/9B8F: 60 RTS C2/9B90: 77 A5 ADC [$A5],Y C2/9B92: 60 RTS C2/9B93: 6C BD A5 JMP ($A5BD) C2/9B96: 60 RTS C2/9B97: 78 SEI C2/9B98: 03 A6 ORA $A6,S C2/9B9A: 60 RTS C2/9B9B: 84 49 STY $49 C2/9B9D: A6 60 LDX $60 C2/9B9F: 90 8F BCC $9B30 C2/9BA1: A6 60 LDX $60 C2/9BA3: 54 D5 A6 MVN $D5,$A6 C2/9BA6: 60 RTS C2/9BA7: 60 RTS C2/9BA8: 21 B0 AND ($B0,X) C2/9BAA: 60 RTS C2/9BAB: 6C 67 B0 JMP ($B067) C2/9BAE: 60 RTS C2/9BAF: 78 SEI C2/9BB0: AD B0 60 LDA $60B0 C2/9BB3: 84 7D STY $7D C2/9BB5: AE 60 54 LDX $5460 C2/9BB8: C3 AE CMP $AE,S C2/9BBA: 60 RTS C2/9BBB: 60 RTS C2/9BBC: 09 AF 60 ORA #$60AF C2/9BBF: 6C D7 A9 JMP ($A9D7) C2/9BC2: 60 RTS C2/9BC3: 78 SEI C2/9BC4: 1D AA 60 ORA $60AA,X C2/9BC7: 84 63 STY $63 C2/9BC9: AA TAX C2/9BCA: 60 RTS C2/9BCB: 90 EF BCC $9BBC C2/9BCD: AA TAX C2/9BCE: 60 RTS C2/9BCF: 9C 35 AB STZ $AB35 C2/9BD2: 60 RTS C2/9BD3: A8 TAY C2/9BD4: 7B TDC C2/9BD5: AB PLB C2/9BD6: 60 RTS C2/9BD7: B4 ED LDY $ED,X C2/9BD9: A7 60 LDA [$60] C2/9BDB: 6C 33 A8 JMP ($A833) C2/9BDE: 60 RTS C2/9BDF: 78 SEI C2/9BE0: 79 A8 60 ADC $60A8,Y C2/9BE3: 84 BF STY $BF C2/9BE5: A8 TAY C2/9BE6: 60 RTS C2/9BE7: 90 05 BCC $9BEE C2/9BE9: A9 60 9C LDA #$9C60 C2/9BEC: 4B PHK C2/9BED: A9 60 A8 LDA #$A860 C2/9BF0: DB STP C2/9BF1: AF 60 6C 21 LDA $216C60 C2/9BF5: B0 60 BCS $9C57 C2/9BF7: 78 SEI C2/9BF8: 67 B0 ADC [$B0] C2/9BFA: 60 RTS C2/9BFB: 84 1B STY $1B C2/9BFD: A7 60 LDA [$60] C2/9BFF: 90 61 BCC $9C62 C2/9C01: A7 60 LDA [$60] C2/9C03: 9C A7 A7 STZ $A7A7 C2/9C06: 60 RTS C2/9C07: A8 TAY C2/9C08: C1 AB CMP ($AB,X) C2/9C0A: 54 6C 07 MVN $6C,$07 C2/9C0D: AC 5C 78 LDY $785C C2/9C10: 4D AC 58 EOR $58AC C2/9C13: 84 F1 STY $F1 C2/9C15: AD 60 90 LDA $9060 C2/9C18: D9 AC 58 CMP $58AC,Y C2/9C1B: 9C 1F AD STZ $AD1F C2/9C1E: 58 CLI C2/9C1F: 6C 65 AD JMP ($AD65) C2/9C22: 54 78 AB MVN $78,$AB C2/9C25: AD 4C 84 LDA $844C C2/9C28: 93 AC STA ($AC,S),Y C2/9C2A: 44 90 37 MVP $90,$37 C2/9C2D: AE 4C 9C LDX $9C4C C2/9C30: 7D AE 48 ADC $48AE,X C2/9C33: 6C C3 AE JMP ($AEC3) C2/9C36: 50 78 BVC $9CB0 C2/9C38: 09 AF 58 ORA #$58AF C2/9C3B: 84 4F STY $4F C2/9C3D: AF 48 90 95 LDA $959048 C2/9C41: AF 58 9C A1 LDA $A19C58 C2/9C45: 9F CF 9D AA STA $AA9DCF,X C2/9C49: 9F 15 9E BD STA $BD9E15,X C2/9C4D: 9F 2D 9F C7 STA $C79F2D,X C2/9C51: 9F 73 9F CE STA $CE9F73,X C2/9C55: 9F B9 9F D7 STA $D79FB9,X C2/9C59: 9F FF 9F EC STA $EC9FFF,X C2/9C5D: 9F 45 A0 F0 STA $F0A045,X C2/9C61: 9F 8B A0 F7 STA $F7A08B,X C2/9C65: 9F D1 A0 FF STA $FFA0D1,X C2/9C69: 9F 17 A1 17 STA $17A117,X C2/9C6D: A0 5D LDY #$5D C2/9C6F: A1 1F LDA ($1F,X) C2/9C71: A0 A3 LDY #$A3 C2/9C73: A1 29 LDA ($29,X) C2/9C75: A0 E9 LDY #$E9 C2/9C77: A1 30 LDA ($30,X) C2/9C79: A0 2F LDY #$2F C2/9C7B: A2 38 LDX #$38 C2/9C7D: A0 75 LDY #$75 C2/9C7F: A2 3E LDX #$3E C2/9C81: A0 BB LDY #$BB C2/9C83: A2 17 LDX #$17 C2/9C85: A0 01 LDY #$01 C2/9C87: A3 45 LDA $45,S C2/9C89: A0 47 LDY #$47 C2/9C8B: A3 52 LDA $52,S C2/9C8D: A0 8D LDY #$8D C2/9C8F: A3 58 LDA $58,S C2/9C91: A0 D3 LDY #$D3 C2/9C93: A3 6D LDA $6D,S C2/9C95: A0 19 LDY #$19 C2/9C97: A4 77 LDY $77 C2/9C99: A0 5F LDY #$5F C2/9C9B: A4 8C LDY $8C C2/9C9D: A0 A5 LDY #$A5 C2/9C9F: A4 95 LDY $95 C2/9CA1: A0 EB LDY #$EB C2/9CA3: A4 9C LDY $9C C2/9CA5: A0 31 LDY #$31 C2/9CA7: A5 A5 LDA $A5 C2/9CA9: A0 77 LDY #$77 C2/9CAB: A5 B0 LDA $B0 C2/9CAD: A0 E7 LDY #$E7 C2/9CAF: 9E BA A0 STZ $A0BA,X C2/9CB2: 2D 9F C2 AND $C29F C2/9CB5: A0 73 LDY #$73 C2/9CB7: 9F C8 A0 B9 STA $B9A0C8,X C2/9CBB: 9F CD A0 FF STA $FFA0CD,X C2/9CBF: 9F D4 A0 45 STA $45A0D4,X C2/9CC3: A0 E0 LDY #$E0 C2/9CC5: A0 8B LDY #$8B C2/9CC7: A0 E8 LDY #$E8 C2/9CC9: A0 D1 LDY #$D1 C2/9CCB: A0 EF LDY #$EF C2/9CCD: A0 17 LDY #$17 C2/9CCF: A1 F7 LDA ($F7,X) C2/9CD1: A0 5D LDY #$5D C2/9CD3: A1 08 LDA ($08,X) C2/9CD5: A1 A3 LDA ($A3,X) C2/9CD7: A1 10 LDA ($10,X) C2/9CD9: A1 E9 LDA ($E9,X) C2/9CDB: A1 17 LDA ($17,X) C2/9CDD: A1 2F LDA ($2F,X) C2/9CDF: A2 1F LDX #$1F C2/9CE1: A1 75 LDA ($75,X) C2/9CE3: A2 25 LDX #$25 C2/9CE5: A1 BB LDA ($BB,X) C2/9CE7: A2 2D LDX #$2D C2/9CE9: A1 01 LDA ($01,X) C2/9CEB: A3 3D LDA $3D,S C2/9CED: A1 B9 LDA ($B9,X) C2/9CEF: 9F 44 A1 FF STA $FFA144,X C2/9CF3: 9F 52 A1 45 STA $45A152,X C2/9CF7: A0 5C LDY #$5C C2/9CF9: A1 8B LDA ($8B,X) C2/9CFB: A0 63 LDY #$63 C2/9CFD: A1 D1 LDA ($D1,X) C2/9CFF: A0 6C LDY #$6C C2/9D01: A1 17 LDA ($17,X) C2/9D03: A1 73 LDA ($73,X) C2/9D05: A1 5D LDA ($5D,X) C2/9D07: A1 7B LDA ($7B,X) C2/9D09: A1 A3 LDA ($A3,X) C2/9D0B: A1 81 LDA ($81,X) C2/9D0D: A1 E9 LDA ($E9,X) C2/9D0F: A1 8A LDA ($8A,X) C2/9D11: A1 2F LDA ($2F,X) C2/9D13: A2 90 LDX #$90 C2/9D15: A1 75 LDA ($75,X) C2/9D17: A2 96 LDX #$96 C2/9D19: A1 BB LDA ($BB,X) C2/9D1B: A2 9E LDX #$9E C2/9D1D: A1 01 LDA ($01,X) C2/9D1F: A3 A4 LDA $A4,S C2/9D21: A1 47 LDA ($47,X) C2/9D23: A3 AB LDA $AB,S C2/9D25: A1 8D LDA ($8D,X) C2/9D27: A3 B5 LDA $B5,S C2/9D29: A1 D3 LDA ($D3,X) C2/9D2B: A3 BD LDA $BD,S C2/9D2D: A1 31 LDA ($31,X) C2/9D2F: A5 C7 LDA $C7 C2/9D31: A1 5F LDA ($5F,X) C2/9D33: A4 D0 LDY $D0 C2/9D35: A1 A5 LDA ($A5,X) C2/9D37: A4 D9 LDY $D9 C2/9D39: A1 EB LDA ($EB,X) C2/9D3B: A4 E0 LDY $E0 C2/9D3D: A1 19 LDA ($19,X) C2/9D3F: A4 EA LDY $EA C2/9D41: A1 BD LDA ($BD,X) C2/9D43: A5 F9 LDA $F9 C2/9D45: A1 03 LDA ($03,X) C2/9D47: A6 08 LDX $08 C2/9D49: A2 49 LDX #$49 C2/9D4B: A6 11 LDX $11 C2/9D4D: A2 8F LDX #$8F C2/9D4F: A6 21 LDX $21 C2/9D51: A2 B9 LDX #$B9 C2/9D53: 9F 26 A2 FF STA $FFA226,X C2/9D57: 9F 2F A2 45 STA $45A22F,X C2/9D5B: A0 36 LDY #$36 C2/9D5D: A2 8B LDX #$8B C2/9D5F: A0 3D LDY #$3D C2/9D61: A2 D1 LDX #$D1 C2/9D63: A0 47 LDY #$47 C2/9D65: A2 17 LDX #$17 C2/9D67: A1 4E LDA ($4E,X) C2/9D69: A2 5D LDX #$5D C2/9D6B: A1 57 LDA ($57,X) C2/9D6D: A2 A3 LDX #$A3 C2/9D6F: A1 5F LDA ($5F,X) C2/9D71: A2 E9 LDX #$E9 C2/9D73: A1 64 LDA ($64,X) C2/9D75: A2 2F LDX #$2F C2/9D77: A2 72 LDX #$72 C2/9D79: A2 75 LDX #$75 C2/9D7B: A2 79 LDX #$79 C2/9D7D: A2 BB LDX #$BB C2/9D7F: A2 7C LDX #$7C C2/9D81: A2 01 LDX #$01 C2/9D83: A3 81 LDA $81,S C2/9D85: A2 47 LDX #$47 C2/9D87: A3 85 LDA $85,S C2/9D89: A2 61 LDX #$61 C2/9D8B: A7 89 LDA [$89] C2/9D8D: A2 A7 LDX #$A7 C2/9D8F: A7 98 LDA [$98] C2/9D91: A2 8D LDX #$8D C2/9D93: A3 A1 LDA $A1,S C2/9D95: A2 D3 LDX #$D3 C2/9D97: A3 AA LDA $AA,S C2/9D99: A2 19 LDX #$19 C2/9D9B: A4 B1 LDY $B1 C2/9D9D: A2 5F LDX #$5F C2/9D9F: A4 B7 LDY $B7 C2/9DA1: A2 A5 LDX #$A5 C2/9DA3: A4 C0 LDY $C0 C2/9DA5: A2 EB LDX #$EB C2/9DA7: A4 C8 LDY $C8 C2/9DA9: A2 31 LDX #$31 C2/9DAB: A5 CF LDA $CF C2/9DAD: A2 77 LDX #$77 C2/9DAF: A5 E1 LDA $E1 C2/9DB1: A2 49 LDX #$49 C2/9DB3: A6 E8 LDX $E8 C2/9DB5: A2 8F LDX #$8F C2/9DB7: A6 EF LDX $EF C2/9DB9: A2 D5 LDX #$D5 C2/9DBB: A6 F7 LDX $F7 C2/9DBD: A2 1B LDX #$1B C2/9DBF: A7 98 LDA [$98] C2/9DC1: 9F 89 9D B4 STA $B49D89,X C2/9DC5: 9F 89 9D DC STA $DC9D89,X C2/9DC9: 9F CF 9D E1 STA $E19DCF,X C2/9DCD: 9F 15 9E 06 STA $069E15,X C2/9DD1: A0 5B LDY #$5B C2/9DD3: 9E 0E A0 STZ $A00E,X C2/9DD6: A1 9E LDA ($9E,X) C2/9DD8: 4C A0 E7 JMP $E7A0 C2/9DDB: 9E 60 A0 STZ $A060,X C2/9DDE: BD A5 66 LDA $66A5,X C2/9DE1: A0 03 LDY #$03 C2/9DE3: A6 7D LDX $7D C2/9DE5: A0 49 LDY #$49 C2/9DE7: A6 84 LDX $84 C2/9DE9: A0 8F LDY #$8F C2/9DEB: A6 AA LDX $AA C2/9DED: A0 A1 LDY #$A1 C2/9DEF: 9E DA A0 STZ $A0DA,X C2/9DF2: 89 9D 84 BIT #$849D C2/9DF5: A0 CF LDY #$CF C2/9DF7: 9D 01 A1 STA $A101,X C2/9DFA: 15 9E ORA $9E,X C2/9DFC: E1 9F SBC ($9F,X) C2/9DFE: 5B TCD C2/9DFF: 9E 7D A0 STZ $A07D,X C2/9E02: 8F A6 37 A1 STA $A137A6 C2/9E06: 89 9D E1 BIT #$E19D C2/9E09: 9F CF 9D 01 STA $019DCF,X C2/9E0D: A1 15 LDA ($15,X) C2/9E0F: 9E 06 A0 STZ $A006,X C2/9E12: 5B TCD C2/9E13: 9E 49 A1 STZ $A149,X C2/9E16: A1 9E LDA ($9E,X) C2/9E18: AA TAX C2/9E19: A0 E7 LDY #$E7 C2/9E1B: 9E F1 A1 STZ $A1F1,X C2/9E1E: 2D 9F 01 AND $019F C2/9E21: A2 73 LDX #$73 C2/9E23: 9F 37 A1 89 STA $89A137,X C2/9E27: 9D 18 A2 STA $A218,X C2/9E2A: CF 9D 01 A1 CMP $A1019D C2/9E2E: 15 9E ORA $9E,X C2/9E30: 6B RTL C2/9E31: A2 5B LDX #$5B C2/9E33: 9E 84 A0 STZ $A084,X C2/9E36: A1 9E LDA ($9E,X) C2/9E38: 91 A2 STA ($A2),Y C2/9E3A: E7 9E SBC [$9E] C2/9E3C: D7 A2 CMP [$A2],Y C2/9E3E: 2D 9F 98 AND $989F C2/9E41: 9F 73 9F 4F STA $4F9F73,X C2/9E45: A6 ED LDX $ED C2/9E47: A7 00 LDA [$00] C2/9E49: A3 89 LDA $89,S C2/9E4B: 9D 05 A3 STA $A305,X C2/9E4E: CF 9D 59 A3 CMP $A3599D C2/9E52: 15 9E ORA $9E,X C2/9E54: 61 A3 ADC ($A3,X) C2/9E56: 5B TCD C2/9E57: 9E 68 A3 STZ $A368,X C2/9E5A: A1 9E LDA ($9E,X) C2/9E5C: 11 A3 ORA ($A3),Y C2/9E5E: 73 9F ADC ($9F,S),Y C2/9E60: 1C A3 B9 TRB $B9A3 C2/9E63: 9F 24 A3 FF STA $FFA324,X C2/9E67: 9F 2C A3 45 STA $45A32C,X C2/9E6B: A0 35 LDY #$35 C2/9E6D: A3 8B LDA $8B,S C2/9E6F: A0 3E LDY #$3E C2/9E71: A3 D1 LDA $D1,S C2/9E73: A0 46 LDY #$46 C2/9E75: A3 17 LDA $17,S C2/9E77: A1 50 LDA ($50,X) C2/9E79: A3 5D LDA $5D,S C2/9E7B: A1 6B LDA ($6B,X) C2/9E7D: A3 A3 LDA $A3,S C2/9E7F: A1 76 LDA ($76,X) C2/9E81: A3 E9 LDA $E9,S C2/9E83: A1 82 LDA ($82,X) C2/9E85: A3 2F LDA $2F,S C2/9E87: A2 8E LDX #$8E C2/9E89: A3 75 LDA $75,S C2/9E8B: A2 97 LDX #$97 C2/9E8D: A3 BB LDA $BB,S C2/9E8F: A2 A0 LDX #$A0 C2/9E91: A3 01 LDA $01,S C2/9E93: A3 A9 LDA $A9,S C2/9E95: A3 47 LDA $47,S C2/9E97: A3 B5 LDA $B5,S C2/9E99: A3 8D LDA $8D,S C2/9E9B: A3 BE LDA $BE,S C2/9E9D: A3 D3 LDA $D3,S C2/9E9F: A3 C8 LDA $C8,S C2/9EA1: A3 19 LDA $19,S C2/9EA3: A4 08 LDY $08 C2/9EA5: A4 5F LDY $5F C2/9EA7: A4 0F LDY $0F C2/9EA9: A4 A5 LDY $A5 C2/9EAB: A4 18 LDY $18 C2/9EAD: A4 EB LDY $EB C2/9EAF: A4 21 LDY $21 C2/9EB1: A4 31 LDY $31 C2/9EB3: A5 2D LDA $2D C2/9EB5: A4 77 LDY $77 C2/9EB7: A5 36 LDA $36 C2/9EB9: A4 BD LDY $BD C2/9EBB: A5 41 LDA $41 C2/9EBD: A4 03 LDY $03 C2/9EBF: A6 4A LDX $4A C2/9EC1: A4 49 LDY $49 C2/9EC3: A6 51 LDX $51 C2/9EC5: A4 8F LDY $8F C2/9EC7: A6 59 LDX $59 C2/9EC9: A4 D5 LDY $D5 C2/9ECB: A6 1C LDX $1C C2/9ECD: A5 7D LDA $7D C2/9ECF: AE 27 A5 LDX $A527 C2/9ED2: C3 AE CMP $AE,S C2/9ED4: 30 A5 BMI $9E7B C2/9ED6: 09 AF 39 ORA #$39AF C2/9ED9: A5 D7 LDA $D7 C2/9EDB: A9 43 A5 LDA #$A543 C2/9EDE: 1D AA 4F ORA $4FAA,X C2/9EE1: A5 63 LDA $63 C2/9EE3: AA TAX C2/9EE4: 58 CLI C2/9EE5: A5 EF LDA $EF C2/9EE7: AA TAX C2/9EE8: 61 A5 ADC ($A5,X) C2/9EEA: 35 AB AND $AB,X C2/9EEC: 6B RTL C2/9EED: A5 7B LDA $7B C2/9EEF: AB PLB C2/9EF0: F5 A4 SBC $A4,X C2/9EF2: 91 A9 STA ($A9),Y C2/9EF4: 66 A4 ROR $A4 C2/9EF6: 21 B0 AND ($B0,X) C2/9EF8: 6F A4 67 B0 ADC $B067A4 C2/9EFC: 7C A4 AD JMP ($ADA4,X) C2/9EFF: B0 FE BCS $9EFF C2/9F01: A4 39 LDY $39 C2/9F03: B1 08 LDA ($08),Y C2/9F05: A5 7F LDA $7F C2/9F07: B1 11 LDA ($11),Y C2/9F09: A5 C5 LDA $C5 C2/9F0B: B1 D1 LDA ($D1),Y C2/9F0D: A3 0B LDA $0B,S C2/9F0F: B2 DC LDA ($DC) C2/9F11: A3 51 LDA $51,S C2/9F13: B2 E4 LDA ($E4) C2/9F15: A3 97 LDA $97,S C2/9F17: B2 EF LDA ($EF) C2/9F19: A3 DD LDA $DD,S C2/9F1B: B2 F7 LDA ($F7) C2/9F1D: A3 23 LDA $23,S C2/9F1F: B3 FF LDA ($FF,S),Y C2/9F21: A3 69 LDA $69,S C2/9F23: B3 3C LDA ($3C,S),Y C2/9F25: A6 C7 LDX $C7 C2/9F27: B4 48 LDY $48,X C2/9F29: A6 0D LDX $0D C2/9F2B: B5 A4 LDA $A4,X C2/9F2D: A4 1B LDY $1B C2/9F2F: A7 AB LDA [$AB] C2/9F31: A4 61 LDY $61 C2/9F33: A7 B2 LDA [$B2] C2/9F35: A4 A7 LDY $A7 C2/9F37: A7 86 LDA [$86] C2/9F39: A4 DB LDY $DB C2/9F3B: AF 92 A4 21 LDA $21A492 C2/9F3F: B0 9C BCS $9EDD C2/9F41: A4 67 LDY $67 C2/9F43: B0 BB BCS $9F00 C2/9F45: A4 ED LDY $ED C2/9F47: A7 C4 LDA [$C4] C2/9F49: A4 33 LDY $33 C2/9F4B: A8 TAY C2/9F4C: CF A4 79 A8 CMP $A879A4 C2/9F50: D6 A4 DEC $A4,X C2/9F52: BF A8 E1 A4 LDA $A4E1A8,X C2/9F56: 05 A9 ORA $A9 C2/9F58: EA NOP C2/9F59: A4 4B LDY $4B C2/9F5B: A9 75 A5 LDA #$A575 C2/9F5E: C1 AB CMP ($AB,X) C2/9F60: 83 A5 STA $A5,S C2/9F62: 07 AC ORA [$AC] C2/9F64: 8F A5 4D AC STA $AC4DA5 C2/9F68: 9C A5 93 STZ $93A5 C2/9F6B: AC AC A5 LDY $A5AC C2/9F6E: D9 AC B9 CMP $B9AC,Y C2/9F71: A5 1F LDA $1F C2/9F73: AD C4 A5 LDA $A5C4 C2/9F76: 65 AD ADC $AD C2/9F78: D0 A5 BNE $9F1F C2/9F7A: AB PLB C2/9F7B: AD DE A5 LDA $A5DE C2/9F7E: F1 AD SBC ($AD),Y C2/9F80: E9 A5 37 SBC #$37A5 C2/9F83: AE F7 A5 LDX $A5F7 C2/9F86: 7D AE 07 ADC $07AE,X C2/9F89: A6 C3 LDX $C3 C2/9F8B: AE 15 A6 LDX $A615 C2/9F8E: 09 AF 21 ORA #$21AF C2/9F91: A6 4F LDX $4F C2/9F93: AF 31 A6 95 LDA $95A631 C2/9F97: AF EF F1 EE LDA $EEF1EF C2/9F9B: E3 F4 SBC $F4,S C2/9F9D: E2 E4 SEP #$E4 C2/9F9F: F1 00 SBC ($00),Y C2/9FA1: 4E 60 82 LSR $8260 C2/9FA4: 6C 6A 6C JMP ($6C6A) C2/9FA7: 42 88 WDM $88 C2/9FA9: 00 84 BRK $84 C2/9FAB: 40 RTI C2/9FAC: 64 40 STZ $40 C2/9FAE: 4C 88 44 JMP $4488 C2/9FB1: 4E 60 00 LSR $0060 C2/9FB4: E3 E8 SBC $E8,S C2/9FB6: F1 E4 SBC ($E4),Y C2/9FB8: E2 F3 SEP #$F3 C2/9FBA: EE F1 00 INC $00F1 C2/9FBD: A0 6C LDY #$6C C2/9FBF: 84 4E STY $4E C2/9FC1: 60 RTS C2/9FC2: 6A ROR C2/9FC3: 6C 82 60 JMP ($6082) C2/9FC6: 00 64 BRK $64 C2/9FC8: 60 RTS C2/9FC9: 86 40 STX $40 C2/9FCB: 84 48 STY $48 C2/9FCD: 00 4E BRK $4E C2/9FCF: 60 RTS C2/9FD0: 82 6C A0 BRL $C0403F C2/9FD3: 88 DEY C2/9FD4: 64 60 STZ $60 C2/9FD6: 00 60 BRK $60 C2/9FD8: 86 6C STX $6C C2/9FDA: 88 DEY C2/9FDB: 00 EC BRK $EC C2/9FDD: E0 E8 CPX #$E8 C2/9FDF: ED 00 EF SBC $EF00 C2/9FE2: F1 EE SBC ($EE),Y C2/9FE4: E6 F1 INC $F1 C2/9FE6: E0 EC CPX #$EC C2/9FE8: EC E4 F1 CPX $F1E4 C2/9FEB: 00 64 BRK $64 C2/9FED: 48 PHA C2/9FEE: 6A ROR C2/9FEF: 00 6A BRK $6A C2/9FF1: 40 RTI C2/9FF2: 82 60 86 BRL $C02655 C2/9FF5: 40 RTI C2/9FF6: 00 64 BRK $64 C2/9FF8: 60 RTS C2/9FF9: A0 6C LDY #$6C C2/9FFB: 84 4E STY $4E C2/9FFD: 60 RTS C2/9FFE: 00 A0 BRK $A0 C2/A000: 6C 84 4E JMP ($4E84) C2/A003: 60 RTS C2/A004: 60 RTS C2/A005: 00 E6 BRK $E6 C2/A007: F1 E0 SBC ($E0),Y C2/A009: EF E7 E8 E2 SBC $E2E8E7 C2/A00D: 00 E3 BRK $E3 C2/A00F: E8 INX C2/A010: F1 E4 SBC ($E4),Y C2/A012: E2 F3 SEP #$F3 C2/A014: EE F1 00 INC $00F1 C2/A017: 86 48 STX $48 C2/A019: 86 84 STX $84 C2/A01B: 88 DEY C2/A01C: A0 40 LDY #$40 C2/A01E: 00 86 BRK $86 C2/A020: 40 RTI C2/A021: 64 40 STZ $40 C2/A023: 4E 40 84 LSR $8440 C2/A026: 4E 60 00 LSR $0060 C2/A029: 64 40 STZ $40 C2/A02B: A2 88 LDX #$88 C2/A02D: 64 6C STZ $6C C2/A02F: 00 84 BRK $84 C2/A031: 4E 60 42 LSR $4260 C2/A034: 88 DEY C2/A035: A0 40 LDY #$40 C2/A037: 00 4E BRK $4E C2/A039: 60 RTS C2/A03A: 46 48 LSR $48 C2/A03C: 6C 00 68 JMP ($6800) C2/A03F: 60 RTS C2/A040: 6A ROR C2/A041: 40 RTI C2/A042: 42 40 WDM $40 C2/A044: 00 6A BRK $6A C2/A046: 6C 68 88 JMP ($8868) C2/A049: 82 40 00 BRL $C0A08C C2/A04C: EC F4 F2 CPX $F2F4 C2/A04F: E8 INX C2/A050: E2 00 SEP #$00 C2/A052: 6A ROR C2/A053: 6C 42 88 JMP ($8842) C2/A056: 6C 00 88 JMP ($8800) C2/A059: 48 PHA C2/A05A: 68 PLA C2/A05B: 40 RTI C2/A05C: 86 84 STX $84 C2/A05E: 88 DEY C2/A05F: 00 E8 BRK $E8 C2/A061: EC E0 E6 CPX $E6E0 C2/A064: E4 00 CPX $00 C2/A066: E3 E4 SBC $E4,S C2/A068: F2 E8 SBC ($E8) C2/A06A: E6 ED INC $ED C2/A06C: 00 A0 BRK $A0 C2/A06E: 6C 84 4E JMP ($4E84) C2/A071: 60 RTS C2/A072: 86 40 STX $40 C2/A074: 64 40 STZ $40 C2/A076: 00 40 BRK $40 C2/A078: 68 PLA C2/A079: 40 RTI C2/A07A: 6A ROR C2/A07B: 6C 00 E1 JMP ($E100) C2/A07E: E0 F3 CPX #$F3 C2/A080: F3 EB SBC ($EB,S),Y C2/A082: E4 00 CPX $00 C2/A084: EF EB E0 ED SBC $EDE0EB C2/A088: ED E4 F1 SBC $F1E4 C2/A08B: 00 A0 BRK $A0 C2/A08D: 40 RTI C2/A08E: 84 88 STY $88 C2/A090: A0 88 LDY #$88 C2/A092: 64 60 STZ $60 C2/A094: 00 4E BRK $4E C2/A096: 40 RTI C2/A097: 84 48 STY $48 C2/A099: 42 48 WDM $48 C2/A09B: 00 40 BRK $40 C2/A09D: 64 60 STZ $60 C2/A09F: A0 6C LDY #$6C C2/A0A1: 84 4E STY $4E C2/A0A3: 60 RTS C2/A0A4: 00 6C BRK $6C C2/A0A6: 6C 86 40 JMP ($4086) C2/A0A9: 00 E5 BRK $E5 C2/A0AB: E8 INX C2/A0AC: E4 EB CPX $EB C2/A0AE: E3 00 SBC $00,S C2/A0B0: A0 6C LDY #$6C C2/A0B2: 84 4E STY $4E C2/A0B4: 60 RTS C2/A0B5: 4E 60 64 LSR $6460 C2/A0B8: 6C 00 68 JMP ($6800) C2/A0BB: 40 RTI C2/A0BC: 48 PHA C2/A0BD: 64 40 STZ $40 C2/A0BF: 8C 40 00 STY $0040 C2/A0C2: 64 48 STZ $48 C2/A0C4: 60 RTS C2/A0C5: 86 40 STX $40 C2/A0C7: 00 48 BRK $48 C2/A0C9: 86 6C STX $6C C2/A0CB: 4E 00 84 LSR $8400 C2/A0CE: 40 RTI C2/A0CF: 86 6C STX $6C C2/A0D1: 82 88 00 BRL $C0A15C C2/A0D4: 86 84 STX $84 C2/A0D6: 88 DEY C2/A0D7: 62 60 00 PER $C0A13A C2/A0DA: E4 F5 CPX $F5 C2/A0DC: E4 ED CPX $ED C2/A0DE: F3 00 SBC ($00,S),Y C2/A0E0: 86 84 STX $84 C2/A0E2: 88 DEY C2/A0E3: 64 40 STZ $40 C2/A0E5: 84 40 STY $40 C2/A0E7: 00 4A BRK $4A C2/A0E9: 88 DEY C2/A0EA: 62 60 86 PER $C0274D C2/A0ED: 40 RTI C2/A0EE: 00 64 BRK $64 C2/A0F0: 48 PHA C2/A0F1: 60 RTS C2/A0F2: 84 88 STY $88 C2/A0F4: 64 48 STZ $48 C2/A0F6: 00 68 BRK $68 C2/A0F8: 40 RTI C2/A0F9: 86 84 STX $84 C2/A0FB: 88 DEY C2/A0FC: 4E 40 82 LSR $8240 C2/A0FF: 40 RTI C2/A100: 00 E4 BRK $E4 C2/A102: E5 E5 SBC $E5 C2/A104: E4 E2 CPX $E2 C2/A106: F3 00 SBC ($00,S),Y C2/A108: 4E 60 82 LSR $8260 C2/A10B: 6C 84 4E JMP ($4E84) C2/A10E: 60 RTS C2/A10F: 00 4E BRK $4E C2/A111: 40 RTI C2/A112: 82 40 86 BRL $C02755 C2/A115: 40 RTI C2/A116: 00 84 BRK $84 C2/A118: 40 RTI C2/A119: 86 6C STX $6C C2/A11B: 84 4E STY $4E C2/A11D: 60 RTS C2/A11E: 00 6C BRK $6C C2/A120: 4C 40 86 JMP $8640 C2/A123: 40 RTI C2/A124: 00 40 BRK $40 C2/A126: 64 60 STZ $60 C2/A128: 4E 60 82 LSR $8260 C2/A12B: 6C 00 A0 JMP ($A000) C2/A12E: 40 RTI C2/A12F: 68 PLA C2/A130: 40 RTI C2/A131: 4C 88 44 JMP $4488 C2/A134: 4E 60 00 LSR $0060 C2/A137: F2 EE SBC ($EE) C2/A139: F4 ED E3 PEA $E3ED C2/A13C: 00 68 BRK $68 C2/A13E: 60 RTS C2/A13F: 6A ROR C2/A140: 6C 82 88 JMP ($8882) C2/A143: 00 40 BRK $40 C2/A145: 64 40 STZ $40 C2/A147: 6C 00 E3 JMP ($E300) C2/A14A: E4 F2 CPX $F2 C2/A14C: E8 INX C2/A14D: E6 ED INC $ED C2/A14F: E4 F1 CPX $F1 C2/A151: 00 4E BRK $4E C2/A153: 60 RTS C2/A154: 82 6C 64 BRL $C005C3 C2/A157: 40 RTI C2/A158: 86 84 STX $84 C2/A15A: 88 DEY C2/A15B: 00 84 BRK $84 C2/A15D: 40 RTI C2/A15E: 84 40 STY $40 C2/A160: 64 60 STZ $60 C2/A162: 00 86 BRK $86 C2/A164: 40 RTI C2/A165: 64 40 STZ $40 C2/A167: 4E 40 82 LSR $8240 C2/A16A: 88 DEY C2/A16B: 00 68 BRK $68 C2/A16D: 40 RTI C2/A16E: 86 84 STX $84 C2/A170: 88 DEY C2/A171: 6C 00 A0 JMP ($A000) C2/A174: 88 DEY C2/A175: 88 DEY C2/A176: 84 88 STY $88 C2/A178: 64 48 STZ $48 C2/A17A: 00 6A BRK $6A C2/A17C: 40 RTI C2/A17D: 6C 82 40 JMP ($4082) C2/A180: 00 6A BRK $6A C2/A182: 6C 42 88 JMP ($8842) C2/A185: A0 88 LDY #$88 C2/A187: 64 60 STZ $60 C2/A189: 00 60 BRK $60 C2/A18B: 64 48 STZ $48 C2/A18D: 46 40 LSR $40 C2/A18F: 00 86 BRK $86 C2/A191: 6C 68 6C JMP ($6C68) C2/A194: 48 PHA C2/A195: 00 60 BRK $60 C2/A197: 6A ROR C2/A198: 40 RTI C2/A199: A2 40 LDX #$40 C2/A19B: 8C 40 00 STY $0040 C2/A19E: 64 40 STZ $40 C2/A1A0: 6C 82 60 JMP ($6082) C2/A1A3: 00 86 BRK $86 C2/A1A5: 40 RTI C2/A1A6: 6A ROR C2/A1A7: 40 RTI C2/A1A8: 64 40 STZ $40 C2/A1AA: 00 86 BRK $86 C2/A1AC: 40 RTI C2/A1AD: 64 40 STZ $40 C2/A1AF: 68 PLA C2/A1B0: 60 RTS C2/A1B1: 44 4E 60 MVP $4E,$60 C2/A1B4: 00 84 BRK $84 C2/A1B6: 4E 60 42 LSR $4260 C2/A1B9: 88 DEY C2/A1BA: A0 40 LDY #$40 C2/A1BC: 00 84 BRK $84 C2/A1BE: 60 RTS C2/A1BF: 6A ROR C2/A1C0: 60 RTS C2/A1C1: 86 60 STX $60 C2/A1C3: 82 6C 88 BRL $C02A32 C2/A1C6: 00 4E BRK $4E C2/A1C8: 40 RTI C2/A1C9: 68 PLA C2/A1CA: 40 RTI C2/A1CB: 84 40 STY $40 C2/A1CD: 64 40 STZ $40 C2/A1CF: 00 40 BRK $40 C2/A1D1: 64 60 STZ $60 C2/A1D3: A0 6C LDY #$6C C2/A1D5: 84 4E STY $4E C2/A1D7: 60 RTS C2/A1D8: 00 68 BRK $68 C2/A1DA: 40 RTI C2/A1DB: 84 88 STY $88 C2/A1DD: 46 40 LSR $40 C2/A1DF: 00 4E BRK $4E C2/A1E1: 60 RTS C2/A1E2: 46 48 LSR $48 C2/A1E4: 86 6C STX $6C C2/A1E6: 84 4E STY $4E C2/A1E8: 60 RTS C2/A1E9: 00 64 BRK $64 C2/A1EB: 48 PHA C2/A1EC: A2 88 LDX #$88 C2/A1EE: 64 40 STZ $40 C2/A1F0: 00 EC BRK $EC C2/A1F2: EE ED F2 INC $F2ED C2/A1F5: F3 E4 SBC ($E4,S),Y C2/A1F7: F1 00 SBC ($00),Y C2/A1F9: 4E 60 86 LSR $8660 C2/A1FC: 6C 84 4E JMP ($4E84) C2/A1FF: 60 RTS C2/A200: 00 EE BRK $EE C2/A202: E1 E9 SBC ($E9,X) C2/A204: E4 E2 CPX $E2 C2/A206: F3 00 SBC ($00,S),Y C2/A208: 64 40 STZ $40 C2/A20A: A2 88 LDX #$88 C2/A20C: 4E 60 82 LSR $8260 C2/A20F: 6C 00 6C JMP ($6C00) C2/A212: 4E 64 40 LSR $4064 C2/A215: 8C 40 00 STY $0040 C2/A218: E4 ED CPX $ED C2/A21A: E6 E8 INC $E8 C2/A21C: ED E4 E4 SBC $E4E4 C2/A21F: F1 00 SBC ($00),Y C2/A221: 48 PHA C2/A222: 60 RTS C2/A223: 62 60 00 PER $C0A286 C2/A226: 6A ROR C2/A227: 40 RTI C2/A228: 64 40 STZ $40 C2/A22A: 68 PLA C2/A22B: 88 DEY C2/A22C: 82 40 00 BRL $C0A26F C2/A22F: 64 40 STZ $40 C2/A231: A2 88 LDX #$88 C2/A233: 68 PLA C2/A234: 60 RTS C2/A235: 00 68 BRK $68 C2/A237: 60 RTS C2/A238: 86 6C STX $6C C2/A23A: 68 PLA C2/A23B: 48 PHA C2/A23C: 00 A0 BRK $A0 C2/A23E: 6C 84 4E JMP ($4E84) C2/A241: 60 RTS C2/A242: 86 40 STX $40 C2/A244: 64 40 STZ $40 C2/A246: 00 4E BRK $4E C2/A248: 60 RTS C2/A249: 82 6C 86 BRL $C028B8 C2/A24C: 40 RTI C2/A24D: 00 A0 BRK $A0 C2/A24F: 40 RTI C2/A250: 84 88 STY $88 C2/A252: 68 PLA C2/A253: 40 RTI C2/A254: 84 40 STY $40 C2/A256: 00 6C BRK $6C C2/A258: 64 40 STZ $40 C2/A25A: 68 PLA C2/A25B: 6C 86 6C JMP ($6C86) C2/A25E: 00 84 BRK $84 C2/A260: 4E 88 6A LSR $6A88 C2/A263: 00 6C BRK $6C C2/A265: 4E 64 88 LSR $8864 C2/A268: 42 6C WDM $6C C2/A26A: 00 F1 BRK $F1 C2/A26C: E4 EC CPX $EC C2/A26E: E0 EA CPX #$EA C2/A270: E4 00 CPX $00 C2/A272: 8C 48 60 STY $6048 C2/A275: 68 PLA C2/A276: 60 RTS C2/A277: 6A ROR C2/A278: 00 66 BRK $66 C2/A27A: 60 RTS C2/A27B: 00 40 BRK $40 C2/A27D: 60 RTS C2/A27E: 64 6C STZ $6C C2/A280: 00 60 BRK $60 C2/A282: 86 6C STX $6C C2/A284: 00 86 BRK $86 C2/A286: 48 PHA C2/A287: 46 00 LSR $00 C2/A289: 8C 6C 6C STY $6C6C C2/A28C: 66 84 ROR $84 C2/A28E: 48 PHA C2/A28F: A0 00 LDY #$00 C2/A291: F2 F8 SBC ($F8) C2/A293: F2 F3 SBC ($F3) C2/A295: E4 EC CPX $EC C2/A297: 00 68 BRK $68 C2/A299: 40 RTI C2/A29A: 84 40 STY $40 C2/A29C: 4E 60 82 LSR $8260 C2/A29F: 6C 00 6A JMP ($6A00) C2/A2A2: 40 RTI C2/A2A3: 64 40 STZ $40 C2/A2A5: 62 60 68 PER $C00B08 C2/A2A8: 40 RTI C2/A2A9: 00 68 BRK $68 C2/A2AB: 60 RTS C2/A2AC: 86 84 STX $84 C2/A2AE: 88 DEY C2/A2AF: 6C 00 6C JMP ($6C00) C2/A2B2: 4C 88 82 JMP $8288 C2/A2B5: 40 RTI C2/A2B6: 00 A0 BRK $A0 C2/A2B8: 40 RTI C2/A2B9: 84 88 STY $88 C2/A2BB: 6A ROR C2/A2BC: 6C 82 60 JMP ($6082) C2/A2BF: 00 6C BRK $6C C2/A2C1: 82 60 64 BRL $C00724 C2/A2C4: 40 RTI C2/A2C5: 84 40 STY $40 C2/A2C7: 00 A0 BRK $A0 C2/A2C9: 88 DEY C2/A2CA: 86 40 STX $40 C2/A2CC: 64 40 STZ $40 C2/A2CE: 00 6C BRK $6C C2/A2D0: 4E 46 40 LSR $4046 C2/A2D3: 60 RTS C2/A2D4: 82 40 00 BRL $C0A317 C2/A2D7: E4 F7 CPX $F7 C2/A2D9: E4 E2 CPX $E2 C2/A2DB: F4 F3 E8 PEA $E8F3 C2/A2DE: F5 E4 SBC $E4,X C2/A2E0: 00 86 BRK $86 C2/A2E2: 48 PHA C2/A2E3: 86 84 STX $84 C2/A2E5: 88 DEY C2/A2E6: 6C 00 68 JMP ($6800) C2/A2E9: 60 RTS C2/A2EA: A2 88 LDX #$88 C2/A2EC: 6A ROR C2/A2ED: 6C 00 4E JMP ($4E00) C2/A2F0: 60 RTS C2/A2F1: 86 6C STX $6C C2/A2F3: 84 4E STY $4E C2/A2F5: 60 RTS C2/A2F6: 00 86 BRK $86 C2/A2F8: 40 RTI C2/A2F9: 64 48 STZ $48 C2/A2FB: 68 PLA C2/A2FC: 88 DEY C2/A2FD: 82 40 00 BRL $C0A340 C2/A300: F3 E4 SBC ($E4,S),Y C2/A302: F2 F3 SBC ($F3) C2/A304: 00 E2 BRK $E2 C2/A306: EE EE F1 INC $F1EE C2/A309: E3 E8 SBC $E8,S C2/A30B: ED E0 F3 SBC $F3E0 C2/A30E: EE F1 00 INC $00F1 C2/A311: F2 FA SBC ($FA) C2/A313: EA NOP C2/A314: E0 E9 CPX #$E9 C2/A316: E8 INX C2/A317: F3 E0 SBC ($E0,S),Y C2/A319: ED E8 00 SBC $00E8 C2/A31C: F1 FA SBC ($FA),Y C2/A31E: EA NOP C2/A31F: EE F4 E3 INC $E3F4 C2/A322: E0 00 CPX #$00 C2/A324: EA NOP C2/A325: FA PLX C2/A326: E8 INX C2/A327: ED E0 E6 SBC $E6E0 C2/A32A: E8 INX C2/A32B: 00 ED BRK $ED C2/A32D: FA PLX C2/A32E: E7 E0 SBC [$E0] C2/A330: ED E0 E3 SBC $E3E0 C2/A333: E0 00 CPX #$00 C2/A335: E7 FA SBC [$FA] C2/A337: EC E0 F2 CPX $F2E0 C2/A33A: F4 E3 E0 PEA $E0E3 C2/A33D: 00 ED BRK $ED C2/A33F: FA PLX C2/A340: EA NOP C2/A341: E0 ED CPX #$ED C2/A343: E0 E8 CPX #$E8 C2/A345: 00 E7 BRK $E7 C2/A347: FA PLX C2/A348: F2 E0 SBC ($E0) C2/A34A: EA NOP C2/A34B: F4 F1 E0 PEA $E0F1 C2/A34E: E8 INX C2/A34F: 00 E7 BRK $E7 C2/A351: FA PLX C2/A352: F2 F4 SBC ($F4) C2/A354: F9 F4 EA SBC $EAF4,Y C2/A357: E8 INX C2/A358: 00 F2 BRK $F2 C2/A35A: EF E4 E2 E8 SBC $E8E2E4 C2/A35E: E0 EB CPX #$EB C2/A360: 00 F3 BRK $F3 C2/A362: E7 E0 SBC [$E0] C2/A364: ED EA F2 SBC $F2EA C2/A367: 00 F3 BRK $F3 C2/A369: EE 00 EC INC $EC00 C2/A36C: FA PLX C2/A36D: EC E8 F8 CPX $F8E8 C2/A370: E0 EC CPX #$EC C2/A372: EE F3 EE INC $EEF3 C2/A375: 00 EA BRK $EA C2/A377: FA PLX C2/A378: F3 EE SBC ($EE,S),Y C2/A37A: F1 E8 SBC ($E8),Y C2/A37C: F2 E7 SBC ($E7) C2/A37E: E8 INX C2/A37F: EC E0 00 CPX $00E0 C2/A382: E7 FA SBC [$FA] C2/A384: E7 E0 SBC [$E0] C2/A386: F2 E7 SBC ($E7) C2/A388: E8 INX C2/A389: EC EE F3 CPX $F3EE C2/A38C: EE 00 F8 INC $F800 C2/A38F: FA PLX C2/A390: E7 E8 SBC [$E8] C2/A392: F1 E0 SBC ($E0),Y C2/A394: F3 E0 SBC ($E0,S),Y C2/A396: 00 F3 BRK $F3 C2/A398: FA PLX C2/A399: ED EE EC SBC $ECEE C2/A39C: F4 F1 E0 PEA $E0F1 C2/A39F: 00 EA BRK $EA C2/A3A1: FA PLX C2/A3A2: F2 EE SBC ($EE) C2/A3A4: F4 F2 F4 PEA $F4F2 C2/A3A7: E8 INX C2/A3A8: 00 F3 BRK $F3 C2/A3AA: FA PLX C2/A3AB: F3 F2 SBC ($F2,S),Y C2/A3AD: F4 F1 F4 PEA $F4F1 C2/A3B0: F9 EE ED SBC $EDEE,Y C2/A3B3: EE 00 F8 INC $F800 C2/A3B6: FA PLX C2/A3B7: E8 INX C2/A3B8: F2 E7 SBC ($E7) C2/A3BA: E8 INX C2/A3BB: E3 E0 SBC $E0,S C2/A3BD: 00 EC BRK $EC C2/A3BF: FA PLX C2/A3C0: EE EA E0 INC $E0EA C2/A3C3: EC E8 F8 CPX $F8E8 C2/A3C6: E0 00 CPX #$00 C2/A3C8: EA NOP C2/A3C9: FA PLX C2/A3CA: E7 E8 SBC [$E8] C2/A3CC: F1 E0 SBC ($E0),Y C2/A3CE: F3 E0 SBC ($E0,S),Y C2/A3D0: 00 ED BRK $ED C2/A3D2: FA PLX C2/A3D3: F6 E0 INC $E0,X C2/A3D5: F3 E0 SBC ($E0,S),Y C2/A3D7: ED E0 E1 SBC $E1E0 C2/A3DA: E4 00 CPX $00 C2/A3DC: EA NOP C2/A3DD: FA PLX C2/A3DE: EC E0 E4 CPX $E4E0 C2/A3E1: E3 E0 SBC $E0,S C2/A3E3: 00 EA BRK $EA C2/A3E5: FA PLX C2/A3E6: F3 E0 SBC ($E0,S),Y C2/A3E8: ED E8 EA SBC $EAE8 C2/A3EB: E0 F6 CPX #$F6 C2/A3ED: E0 00 CPX #$00 C2/A3EF: E9 FA F2 SBC #$F2FA C2/A3F2: E0 E8 CPX #$E8 C2/A3F4: F3 EE SBC ($EE,S),Y C2/A3F6: 00 EC BRK $EC C2/A3F8: FA PLX C2/A3F9: E3 E4 SBC $E4,S C2/A3FB: ED ED EE SBC $EEED C2/A3FE: 00 F2 BRK $F2 C2/A400: FA PLX C2/A401: E7 E8 SBC [$E8] C2/A403: E3 E0 SBC $E0,S C2/A405: EA NOP C2/A406: E8 INX C2/A407: 00 EA BRK $EA C2/A409: FA PLX C2/A40A: EE EE E6 INC $E6EE C2/A40D: EE 00 E7 INC $E700 C2/A410: FA PLX C2/A411: F2 F4 SBC ($F4) C2/A413: F9 F4 EA SBC $EAF4,Y C2/A416: E8 INX C2/A417: 00 E7 BRK $E7 C2/A419: FA PLX C2/A41A: F8 SED C2/A41B: EE EA EE INC $EEEA C2/A41E: F3 E0 SBC ($E0,S),Y C2/A420: 00 EA BRK $EA C2/A422: FA PLX C2/A423: F8 SED C2/A424: E0 EC CPX #$EC C2/A426: E0 F2 CPX #$F2 C2/A428: E7 E8 SBC [$E8] C2/A42A: F3 E0 SBC ($E0,S),Y C2/A42C: 00 EC BRK $EC C2/A42E: FA PLX C2/A42F: F8 SED C2/A430: F4 EC EE PEA $EEEC C2/A433: F3 EE SBC ($EE,S),Y C2/A435: 00 ED BRK $ED C2/A437: FA PLX C2/A438: E8 INX C2/A439: F2 E7 SBC ($E7) C2/A43B: E8 INX C2/A43C: EA NOP C2/A43D: E0 F6 CPX #$F6 C2/A43F: E0 00 CPX #$00 C2/A441: E7 FA SBC [$FA] C2/A443: EA NOP C2/A444: E8 INX C2/A445: F9 F4 EA SBC $EAF4,Y C2/A448: E0 00 CPX #$00 C2/A44A: F2 FA SBC ($FA) C2/A44C: E0 F1 CPX #$F1 C2/A44E: E0 E8 CPX #$E8 C2/A450: 00 EC BRK $EC C2/A452: FA PLX C2/A453: EA NOP C2/A454: EE F4 ED INC $EDF4 C2/A457: EE 00 F1 INC $F100 C2/A45A: FA PLX C2/A45B: F3 F2 SBC ($F2,S),Y C2/A45D: F4 EA E0 PEA $E0EA C2/A460: EA NOP C2/A461: EE F2 E7 INC $E7F2 C2/A464: E8 INX C2/A465: 00 EA BRK $EA C2/A467: FA PLX C2/A468: EA NOP C2/A469: E0 ED CPX #$ED C2/A46B: E4 EA CPX $EA C2/A46D: EE 00 E7 INC $E700 C2/A470: FA PLX C2/A471: F2 E7 SBC ($E7) C2/A473: E8 INX C2/A474: EC EE E3 CPX $E3EE C2/A477: E0 E8 CPX #$E8 C2/A479: F1 E0 SBC ($E0),Y C2/A47B: 00 EC BRK $EC C2/A47D: FA PLX C2/A47E: ED EE F4 SBC $F4EE C2/A481: EC F4 F1 CPX $F1F4 C2/A484: E0 00 CPX #$00 C2/A486: EC FA EA CPX $EAFA C2/A489: E0 ED CPX #$ED C2/A48B: E4 F2 CPX $F2 C2/A48D: E7 E8 SBC [$E8] C2/A48F: E6 E4 INC $E4 C2/A491: 00 E7 BRK $E7 C2/A493: FA PLX C2/A494: ED EE E6 SBC $E6EE C2/A497: F4 E2 E7 PEA $E7E2 C2/A49A: E8 INX C2/A49B: 00 EC BRK $EC C2/A49D: FA PLX C2/A49E: E7 EE SBC [$EE] C2/A4A0: F1 E8 SBC ($E8),Y C2/A4A2: E4 00 CPX $00 C2/A4A4: EC FA EC CPX $ECFA C2/A4A7: EE F1 E8 INC $E8F1 C2/A4AA: 00 F3 BRK $F3 C2/A4AC: FA PLX C2/A4AD: EE E7 ED INC $EDE7 C2/A4B0: EE 00 EC INC $EC00 C2/A4B3: FA PLX C2/A4B4: F2 EE SBC ($EE) C2/A4B6: EC E4 ED CPX $EDE4 C2/A4B9: EE 00 F3 INC $F300 C2/A4BC: FA PLX C2/A4BD: EC EE F1 CPX $F1EE C2/A4C0: E8 INX C2/A4C1: F3 E0 SBC ($E0,S),Y C2/A4C3: 00 F8 BRK $F8 C2/A4C5: FA PLX C2/A4C6: F2 F4 SBC ($F4) C2/A4C8: E4 EC CPX $EC C2/A4CA: E8 INX C2/A4CB: F3 F2 SBC ($F2,S),Y C2/A4CD: F4 00 F6 PEA $F600 C2/A4D0: FA PLX C2/A4D1: F2 E0 SBC ($E0) C2/A4D3: F3 EE SBC ($EE,S),Y C2/A4D5: 00 E7 BRK $E7 C2/A4D7: FA PLX C2/A4D8: ED E0 EA SBC $EAE0 C2/A4DB: E0 EC CPX #$EC C2/A4DD: F4 F1 E0 PEA $E0F1 C2/A4E0: 00 F2 BRK $F2 C2/A4E2: FA PLX C2/A4E3: E0 EE CPX #$EE C2/A4E5: F8 SED C2/A4E6: E0 EC CPX #$EC C2/A4E8: E0 00 CPX #$00 C2/A4EA: E7 FA SBC [$FA] C2/A4EC: ED E0 E6 SBC $E6E0 C2/A4EF: E0 E7 CPX #$E7 C2/A4F1: E0 F1 CPX #$F1 C2/A4F3: E0 00 CPX #$00 C2/A4F5: EA NOP C2/A4F6: FA PLX C2/A4F7: E0 E3 CPX #$E3 C2/A4F9: E0 E2 CPX #$E2 C2/A4FB: E7 E8 SBC [$E8] C2/A4FD: 00 F8 BRK $F8 C2/A4FF: FA PLX C2/A500: F4 E4 ED PEA $EDE4 C2/A503: E8 INX C2/A504: F2 E7 SBC ($E7) C2/A506: E8 INX C2/A507: 00 F8 BRK $F8 C2/A509: FA PLX C2/A50A: EE E7 EA INC $EAE7 C2/A50D: E0 F6 CPX #$F6 C2/A50F: E0 00 CPX #$00 C2/A511: F8 SED C2/A512: FA PLX C2/A513: EA NOP C2/A514: F4 F6 E0 PEA $E0F6 C2/A517: E7 E0 SBC [$E0] C2/A519: F1 E0 SBC ($E0),Y C2/A51B: 00 EA BRK $EA C2/A51D: FA PLX C2/A51E: EC E8 F8 CPX $F8E8 C2/A521: E0 EC CPX #$EC C2/A523: EE F3 EE INC $EEF3 C2/A526: 00 E7 BRK $E7 C2/A528: FA PLX C2/A529: F2 F4 SBC ($F4) C2/A52B: F9 F4 EA SBC $EAF4,Y C2/A52E: E8 INX C2/A52F: 00 E0 BRK $E0 C2/A531: FA PLX C2/A532: EA NOP C2/A533: E0 F6 CPX #$F6 C2/A535: E0 F9 CPX #$F9 C2/A537: F4 00 E2 PEA $E200 C2/A53A: FA PLX C2/A53B: E5 F4 SBC $F4 C2/A53D: E9 E8 EE SBC #$EEE8 C2/A540: EA NOP C2/A541: E0 00 CPX #$00 C2/A543: E7 FA SBC [$FA] C2/A545: EA NOP C2/A546: EE E1 E0 INC $E0E1 C2/A549: F8 SED C2/A54A: E0 F2 CPX #$F2 C2/A54C: E7 E8 SBC [$E8] C2/A54E: 00 E7 BRK $E7 C2/A550: FA PLX C2/A551: F3 E0 SBC ($E0,S),Y C2/A553: ED E0 EA SBC $EAE0 C2/A556: E0 00 CPX #$00 C2/A558: F3 FA SBC ($FA,S),Y C2/A55A: EC E8 EA CPX $EAE8 C2/A55D: E0 F2 CPX #$F2 C2/A55F: E0 00 CPX #$00 C2/A561: E7 FA SBC [$FA] C2/A563: ED E8 F2 SBC $F2E8 C2/A566: E7 E8 SBC [$E8] C2/A568: E3 E0 SBC $E0,S C2/A56A: 00 F3 BRK $F3 C2/A56C: FA PLX C2/A56D: F3 E0 SBC ($E0,S),Y C2/A56F: EA NOP C2/A570: E4 E2 CPX $E2 C2/A572: E7 E8 SBC [$E8] C2/A574: 00 F1 BRK $F1 C2/A576: E8 INX C2/A577: E2 E7 SEP #$E7 C2/A579: FB XCE C2/A57A: F2 E8 SBC ($E8) C2/A57C: EB XBA C2/A57D: F5 E4 SBC $E4,X C2/A57F: E8 INX C2/A580: F1 E0 SBC ($E0),Y C2/A582: 00 F3 BRK $F3 C2/A584: EE F2 E7 INC $E7F2 C2/A587: E8 INX C2/A588: FB XCE C2/A589: E7 EE SBC [$EE] C2/A58B: F1 E8 SBC ($E8),Y C2/A58D: E8 INX C2/A58E: 00 E9 BRK $E9 C2/A590: FA PLX C2/A591: F8 SED C2/A592: E0 ED CPX #$ED C2/A594: E0 E6 CPX #$E6 C2/A596: E8 INX C2/A597: E7 E0 SBC [$E0] C2/A599: F1 E0 SBC ($E0),Y C2/A59B: 00 ED BRK $ED C2/A59D: E0 F3 CPX #$F3 C2/A59F: E7 E0 SBC [$E0] C2/A5A1: ED FB F6 SBC $F6FB C2/A5A4: E8 INX C2/A5A5: EB XBA C2/A5A6: EB XBA C2/A5A7: E8 INX C2/A5A8: E0 EC CPX #$EC C2/A5AA: F2 00 SBC ($00) C2/A5AC: E9 E0 EC SBC #$ECE0 C2/A5AF: E4 F2 CPX $F2 C2/A5B1: FB XCE C2/A5B2: E6 E8 INC $E8 C2/A5B4: EB XBA C2/A5B5: EB XBA C2/A5B6: E8 INX C2/A5B7: F2 00 SBC ($00) C2/A5B9: E2 E7 SEP #$E7 C2/A5BB: F1 E8 SBC ($E8),Y C2/A5BD: F2 FB SBC ($FB) C2/A5BF: E1 F4 SBC ($F4,X) C2/A5C1: E3 E3 SBC $E3,S C2/A5C3: 00 EC BRK $EC C2/A5C5: E8 INX C2/A5C6: EA NOP C2/A5C7: E4 FB CPX $FB C2/A5C9: EC E0 F1 CPX $F1E0 C2/A5CC: EA NOP C2/A5CD: E4 F8 CPX $F8 C2/A5CF: 00 EC BRK $EC C2/A5D1: E8 INX C2/A5D2: F1 EA SBC ($EA),Y C2/A5D4: EE FB E5 INC $E5FB C2/A5D7: F1 E4 SBC ($E4),Y C2/A5D9: E6 F4 INC $F4 C2/A5DB: E8 INX C2/A5DC: E0 00 CPX #$00 C2/A5DE: E3 EE SBC $EE,S C2/A5E0: F4 E6 FB PEA $FBE6 C2/A5E3: F2 EC SBC ($EC) C2/A5E5: E8 INX C2/A5E6: F3 E7 SBC ($E7,S),Y C2/A5E8: 00 E3 BRK $E3 C2/A5EA: E0 EB CPX #$EB C2/A5EC: E4 ED CPX $ED C2/A5EE: FB XCE C2/A5EF: E0 E1 CPX #$E1 C2/A5F1: F1 E0 SBC ($E0),Y C2/A5F3: E7 E0 SBC [$E0] C2/A5F5: EC 00 F1 CPX $F100 C2/A5F8: E4 E1 CPX $E1 C2/A5FA: E4 E2 CPX $E2 C2/A5FC: E2 E0 SEP #$E0 C2/A5FE: FB XCE C2/A5FF: E2 EE SEP #$EE C2/A601: E5 E5 SBC $E5 C2/A603: EC E0 ED CPX $EDE0 C2/A606: 00 E1 BRK $E1 C2/A608: F1 E8 SBC ($E8),Y C2/A60A: E0 ED CPX #$ED C2/A60C: FB XCE C2/A60D: E5 E4 SBC $E4 C2/A60F: E7 E3 SBC [$E3] C2/A611: F1 E0 SBC ($E0),Y C2/A613: F4 00 E9 PEA $E900 C2/A616: E4 E5 CPX $E5 C2/A618: E5 FB SBC $FB C2/A61A: EF E4 F3 EA SBC $EAF3E4 C2/A61E: E0 F4 CPX #$F4 C2/A620: 00 E6 BRK $E6 C2/A622: E4 EE CPX $EE C2/A624: F1 E6 SBC ($E6),Y C2/A626: E4 FB CPX $FB C2/A628: F2 E8 SBC ($E8) C2/A62A: ED E5 E8 SBC $E8E5 C2/A62D: E4 EB CPX $EB C2/A62F: E3 00 SBC $00,S C2/A631: E0 EB CPX #$EB C2/A633: E0 ED CPX #$ED C2/A635: FB XCE C2/A636: F6 E4 INC $E4,X C2/A638: E8 INX C2/A639: F2 F2 SBC ($F2) C2/A63B: 00 F8 BRK $F8 C2/A63D: FA PLX C2/A63E: EC E0 F3 CPX $F3E0 C2/A641: F2 F4 SBC ($F4) C2/A643: EC F4 F1 CPX $F1F4 C2/A646: E0 00 CPX #$00 C2/A648: E0 FA CPX #$FA C2/A64A: F4 E4 E3 PEA $E3E4 C2/A64D: E0 00 CPX #$00 C2/A64F: F3 F1 SBC ($F1,S),Y C2/A651: E0 ED CPX #$ED C2/A653: F2 EB SBC ($EB) C2/A655: E0 F3 CPX #$F3 C2/A657: EE F1 00 INC $00F1 (Blank/Free space - 422 bytes) C2/A65A: FF FF FF FF C2/A65E: FF FF FF FF C2/A662: FF FF FF FF C2/A666: FF FF FF FF C2/A66A: FF FF FF FF C2/A66E: FF FF FF FF C2/A672: FF FF FF FF C2/A676: FF FF FF FF C2/A67A: FF FF FF FF C2/A67E: FF FF FF FF C2/A682: FF FF FF FF C2/A686: FF FF FF FF C2/A68A: FF FF FF FF C2/A68E: FF FF FF FF C2/A692: FF FF FF FF C2/A696: FF FF FF FF C2/A69A: FF FF FF FF C2/A69E: FF FF FF FF C2/A6A2: FF FF FF FF C2/A6A6: FF FF FF FF C2/A6AA: FF FF FF FF C2/A6AE: FF FF FF FF C2/A6B2: FF FF FF FF C2/A6B6: FF FF FF FF C2/A6BA: FF FF FF FF C2/A6BE: FF FF FF FF C2/A6C2: FF FF FF FF C2/A6C6: FF FF FF FF C2/A6CA: FF FF FF FF C2/A6CE: FF FF FF FF C2/A6D2: FF FF FF FF C2/A6D6: FF FF FF FF C2/A6DA: FF FF FF FF C2/A6DE: FF FF FF FF C2/A6E2: FF FF FF FF C2/A6E6: FF FF FF FF C2/A6EA: FF FF FF FF C2/A6EE: FF FF FF FF C2/A6F2: FF FF FF FF C2/A6F6: FF FF FF FF C2/A6FA: FF FF FF FF C2/A6FE: FF FF FF FF C2/A702: FF FF FF FF C2/A706: FF FF FF FF C2/A70A: FF FF FF FF C2/A70E: FF FF FF FF C2/A712: FF FF FF FF C2/A716: FF FF FF FF C2/A71A: FF FF FF FF C2/A71E: FF FF FF FF C2/A722: FF FF FF FF C2/A726: FF FF FF FF C2/A72A: FF FF FF FF C2/A72E: FF FF FF FF C2/A732: FF FF FF FF C2/A736: FF FF FF FF C2/A73A: FF FF FF FF C2/A73E: FF FF FF FF C2/A742: FF FF FF FF C2/A746: FF FF FF FF C2/A74A: FF FF FF FF C2/A74E: FF FF FF FF C2/A752: FF FF FF FF C2/A756: FF FF FF FF C2/A75A: FF FF FF FF C2/A75E: FF FF FF FF C2/A762: FF FF FF FF C2/A766: FF FF FF FF C2/A76A: FF FF FF FF C2/A76E: FF FF FF FF C2/A772: FF FF FF FF C2/A776: FF FF FF FF C2/A77A: FF FF FF FF C2/A77E: FF FF FF FF C2/A782: FF FF FF FF C2/A786: FF FF FF FF C2/A78A: FF FF FF FF C2/A78E: FF FF FF FF C2/A792: FF FF FF FF C2/A796: FF FF FF FF C2/A79A: FF FF FF FF C2/A79E: FF FF FF FF C2/A7A2: FF FF FF FF C2/A7A6: FF FF FF FF C2/A7AA: FF FF FF FF C2/A7AE: FF FF FF FF C2/A7B2: FF FF FF FF C2/A7B6: FF FF FF FF C2/A7BA: FF FF FF FF C2/A7BE: FF FF FF FF C2/A7C2: FF FF FF FF C2/A7C6: FF FF FF FF C2/A7CA: FF FF FF FF C2/A7CE: FF FF FF FF C2/A7D2: FF FF FF FF C2/A7D6: FF FF FF FF C2/A7DA: FF FF FF FF C2/A7DE: FF FF FF FF C2/A7E2: FF FF FF FF C2/A7E6: FF FF FF FF C2/A7EA: FF FF FF FF C2/A7EE: FF FF FF FF C2/A7F2: FF FF FF FF C2/A7F6: FF FF FF FF C2/A7FA: FF FF FF FF C2/A7FE: FF FF (Slot Reel 1 conversion data - get a slot value based on the reel's current position) (Note the game scrolls backwards from the starting 7 symbol, so we begin with C2/A800, then work our way up from the bottom at C2/A81E, and repeat.) C2/A800: 00 00 (7) C2/A802: 04 00 (Chocobo) C2/A804: 05 00 (Diamond) C2/A806: 03 00 (Ship) C2/A808: 04 00 (Chocobo) C2/A80A: 05 00 (Diamond) C2/A80C: 02 00 (Bar) C2/A80E: 05 00 (Diamond) C2/A810: 01 00 (Dragon) C2/A812: 04 00 (Chocobo) C2/A814: 05 00 (Diamond) C2/A816: 03 00 (Ship) C2/A818: 05 00 (Diamond) C2/A81A: 02 00 (Bar) C2/A81C: 03 00 (Ship) C2/A81E: 01 00 (Dragon) (Slot Reel 2 conversion data - get a slot value based on the reel's current position) (Note the game scrolls backwards from the starting 7 symbol, so we begin with C2/A820, then work our way up from the bottom at C2/A83E, and repeat.) C2/A820: 00 00 (7) C2/A822: 04 00 (Chocobo) C2/A824: 01 00 (Dragon) C2/A826: 05 00 (Diamond) C2/A828: 03 00 (Ship) C2/A82A: 04 00 (Chocobo) C2/A82C: 01 00 (Dragon) C2/A82E: 05 00 (Diamond) C2/A830: 04 00 (Chocobo) C2/A832: 03 00 (Ship) C2/A834: 02 00 (Bar) C2/A836: 05 00 (Diamond) C2/A838: 04 00 (Chocobo) C2/A83A: 03 00 (Ship) C2/A83C: 02 00 (Bar) C2/A83E: 05 00 (Diamond) (Slot Reel 3 conversion data - get a slot value based on the reel's current position) (Note the game scrolls backwards from the starting 7 symbol, so we begin with C2/A840, then work our way up from the bottom at C2/A85E, and repeat.) C2/A840: 00 00 (7) C2/A842: 01 00 (Dragon) C2/A844: 03 00 (Ship) C2/A846: 04 00 (Chocobo) C2/A848: 02 00 (Bar) C2/A84A: 05 00 (Diamond) C2/A84C: 04 00 (Chocobo) C2/A84E: 03 00 (Ship) C2/A850: 01 00 (Dragon) C2/A852: 05 00 (Diamond) C2/A854: 04 00 (Chocobo) C2/A856: 03 00 (Ship) C2/A858: 02 00 (Bar) C2/A85A: 05 00 (Diamond) C2/A85C: 04 00 (Chocobo) C2/A85E: 05 00 (Diamond) C2/A860: 21 21 AND ($21,X) C2/A862: 21 21 AND ($21,X) C2/A864: 21 21 AND ($21,X) C2/A866: 21 21 AND ($21,X) C2/A868: 25 25 AND $25 C2/A86A: 25 25 AND $25 C2/A86C: 25 25 AND $25 C2/A86E: 25 (Amount to shift character's horizontal position at a time when using Row command - if new row is back row. Note that this adjustment is done six times in succession.) (Encounter formation) C2/A86F: 02 (Front) C2/A870: 02 C2/A871: 02 C2/A872: 02 C2/A873: FE (Back) C2/A874: FE C2/A875: FE C2/A876: FE C2/A877: 00 (Pincer) C2/A878: 00 C2/A879: 00 C2/A87A: 00 C2/A87B: 02 (Side) C2/A87C: 02 C2/A87D: FE C2/A87E: FE (Amount to shift character's horizontal position at a time when using Row command - if new row is front row. Note that this adjustment is done six times in succession.) (Encounter formation) C2/A87F: FE (Front) C2/A880: FE C2/A881: FE C2/A882: FE C2/A883: 02 (Back) C2/A884: 02 C2/A885: 02 C2/A886: 02 C2/A887: 00 (Pincer) C2/A888: 00 C2/A889: 00 C2/A88A: 00 C2/A88B: FE (Side) C2/A88C: FE C2/A88D: 02 C2/A88E: 02 (called from Bank C1) C2/A88F: A5 9A LDA $9A C2/A891: F0 3E BEQ $A8D1 C2/A893: A5 0E LDA $0E C2/A895: 29 07 AND #$07 C2/A897: AA TAX C2/A898: BF E3 E4 C2 LDA $C2E4E3,X C2/A89C: 8F 74 43 00 STA $004374 C2/A8A0: 8A TXA C2/A8A1: 0A ASL C2/A8A2: AA TAX C2/A8A3: C2 20 REP #$20 C2/A8A5: BF C3 E4 C2 LDA $C2E4C3,X C2/A8A9: 8F 16 21 00 STA $002116 C2/A8AD: BF D3 E4 C2 LDA $C2E4D3,X C2/A8B1: 8F 72 43 00 STA $004372 C2/A8B5: A9 00 08 LDA #$0800 C2/A8B8: 8F 75 43 00 STA $004375 C2/A8BC: 7B TDC C2/A8BD: E2 20 SEP #$20 C2/A8BF: A9 01 8F LDA #$8F01 C2/A8C2: 70 43 BVS $A907 C2/A8C4: 00 A9 BRK $A9 C2/A8C6: 18 CLC C2/A8C7: 8F 71 43 00 STA $004371 C2/A8CB: A9 80 8F LDA #$8F80 C2/A8CE: 0B PHD C2/A8CF: 42 00 WDM $00 C2/A8D1: 6B RTL C2/A8D2: FF FF FF FF SBC $FFFFFF,X C2/A8D6: FF FF FF FF SBC $FFFFFF,X C2/A8DA: FF FF FF FF SBC $FFFFFF,X C2/A8DE: FF FF FF FF SBC $FFFFFF,X C2/A8E2: 7F FF FB FF ADC $FFFBFF,X C2/A8E6: EF FF DF FF SBC $FFDFFF C2/A8EA: FD FF F7 SBC $F7FF,X C2/A8ED: FF FE FF BF SBC $BFFFFE,X C2/A8F1: FF FF FD FF SBC $FFFDFF,X C2/A8F5: EF FF F7 FF SBC $FFF7FF C2/A8F9: BF FF FE FF LDA $FFFEFF,X C2/A8FD: 7F FF DF FF ADC $FFDFFF,X C2/A901: FB XCE C2/A902: 7F FF FB FF ADC $FFFBFF,X C2/A906: EF FF DF FF SBC $FFDFFF C2/A90A: FD FF F7 SBC $F7FF,X C2/A90D: FF FE FF BF SBC $BFFFFE,X C2/A911: FF FF FD FF SBC $FFFDFF,X C2/A915: EF FF F7 FF SBC $FFF7FF C2/A919: BF FF FE FF LDA $FFFEFF,X C2/A91D: 7F FF DF FF ADC $FFDFFF,X C2/A921: FB XCE C2/A922: 7F FF FB FF ADC $FFFBFF,X C2/A926: EF FF DF FF SBC $FFDFFF C2/A92A: FD FF F7 SBC $F7FF,X C2/A92D: FF FE FF BF SBC $BFFFFE,X C2/A931: FF FF FD FF SBC $FFFDFF,X C2/A935: EF FF F7 FF SBC $FFF7FF C2/A939: BF FF FE FF LDA $FFFEFF,X C2/A93D: 7F FF DF FF ADC $FFDFFF,X C2/A941: FB XCE C2/A942: AE EC EC LDX $ECEC C2/A945: E0 0C CPX #$0C C2/A947: 00 90 BRK $90 C2/A949: 16 CE ASL $CE,X C2/A94B: EE EC D0 INC $D0EC C2/A94E: 06 A9 ASL $A9 C2/A950: 04 8D TSB $8D C2/A952: EE EC 60 INC $60EC C2/A955: C2 20 REP #$20 C2/A957: CE B6 64 DEC $64B6 C2/A95A: EE CF 80 INC $80CF C2/A95D: 7B TDC C2/A95E: E2 20 SEP #$20 C2/A960: 60 RTS C2/A961: 48 PHA C2/A962: 22 26 02 C1 JSR $C10226 C2/A966: 68 PLA C2/A967: 3A DEC C2/A968: D0 F7 BNE $A961 C2/A96A: 60 RTS C2/A96B: E6 9A INC $9A C2/A96D: EE 8B 62 INC $628B C2/A970: A2 FF LDX #$FF C2/A972: FF 8E 01 40 SBC $40018E,X C2/A976: 8E 03 40 STX $4003 C2/A979: A9 01 8D LDA #$8D01 C2/A97C: EE EC EE INC $EEEC C2/A97F: 0C 7B A9 TSB $A97B C2/A982: 16 8D ASL $8D,X C2/A984: 8D 89 7B STA $7B89 C2/A987: AA TAX C2/A988: BD 00 7F LDA $7F00,X C2/A98B: 9D 60 7E STA $7E60,X C2/A98E: E8 INX C2/A98F: E0 20 CPX #$20 C2/A991: 00 D0 BRK $D0 C2/A993: F4 7B AA PEA $AA7B C2/A996: 8B PHB C2/A997: A9 7F 48 LDA #$487F C2/A99A: AB PLB C2/A99B: C2 20 REP #$20 C2/A99D: 9E 00 C4 STZ $C400,X C2/A9A0: E8 INX C2/A9A1: E8 INX C2/A9A2: E0 00 CPX #$00 C2/A9A4: 10 D0 BPL $A976 C2/A9A6: F6 7B INC $7B,X C2/A9A8: AA TAX C2/A9A9: A9 00 2C LDA #$2C00 C2/A9AC: 85 12 STA $12 C2/A9AE: A9 10 00 LDA #$0010 C2/A9B1: 85 10 STA $10 C2/A9B3: A5 12 LDA $12 C2/A9B5: 9D 00 C4 STA $C400,X C2/A9B8: E8 INX C2/A9B9: E8 INX C2/A9BA: 1A INC C2/A9BB: C6 10 DEC $10 C2/A9BD: D0 F6 BNE $A9B5 C2/A9BF: 85 12 STA $12 C2/A9C1: 8A TXA C2/A9C2: 18 CLC C2/A9C3: 69 20 00 ADC #$0020 C2/A9C6: AA TAX C2/A9C7: E0 00 CPX #$00 C2/A9C9: 04 D0 TSB $D0 C2/A9CB: E2 A9 SEP #$A9 C2/A9CD: F0 FF BEQ $A9CE C2/A9CF: 8F B4 64 7E STA $7E64B4 C2/A9D3: 8F 16 7B 7E STA $7E7B16 C2/A9D7: 8F B6 64 7E STA $7E64B6 C2/A9DB: 8F 18 7B 7E STA $7E7B18 C2/A9DF: 7B TDC C2/A9E0: 8F 1D 7B 7E STA $7E7B1D C2/A9E4: 8F 1F 7B 7E STA $7E7B1F C2/A9E8: E2 20 SEP #$20 C2/A9EA: AB PLB C2/A9EB: A2 00 LDX #$00 C2/A9ED: 10 86 BPL $A975 C2/A9EF: 10 A2 BPL $A993 C2/A9F1: 00 C4 BRK $C4 C2/A9F3: A0 00 LDY #$00 C2/A9F5: 48 PHA C2/A9F6: A9 7F 22 LDA #$227F C2/A9F9: 89 19 C1 BIT #$C119 C2/A9FC: AD 6F 89 LDA $896F C2/A9FF: 29 AF 8D AND #$8DAF C2/AA02: 6F 89 A9 4A ADC $4AA989 C2/AA06: 8D 71 89 STA $8971 C2/AA09: 7B TDC C2/AA0A: AA TAX C2/AA0B: 8E EC EC STX $ECEC C2/AA0E: 8B PHB C2/AA0F: A9 7F 48 LDA #$487F C2/AA12: AB PLB C2/AA13: C2 20 REP #$20 C2/AA15: 9E 00 C4 STZ $C400,X C2/AA18: E8 INX C2/AA19: E8 INX C2/AA1A: E0 00 CPX #$00 C2/AA1C: 20 D0 F6 JSR $F6D0 C2/AA1F: 7B TDC C2/AA20: E2 20 SEP #$20 C2/AA22: AB PLB C2/AA23: 7B TDC C2/AA24: AA TAX C2/AA25: 9D BC EC STA $ECBC,X C2/AA28: 9E CC EC STZ $ECCC,X C2/AA2B: 18 CLC C2/AA2C: 69 04 E8 ADC #$E804 C2/AA2F: E0 10 CPX #$10 C2/AA31: 00 D0 BRK $D0 C2/AA33: F1 A9 SBC ($A9),Y C2/AA35: 08 PHP C2/AA36: 20 61 A9 JSR $A961 C2/AA39: A9 17 8D LDA #$8D17 C2/AA3C: 8D 89 22 STA $2289 C2/AA3F: 26 02 ROL $02 C2/AA41: C1 20 CMP ($20,X) C2/AA43: 42 A9 WDM $A9 C2/AA45: 20 F8 AA JSR $AAF8 C2/AA48: 22 26 02 C1 JSR $C10226 C2/AA4C: 20 F8 AA JSR $AAF8 C2/AA4F: 22 26 02 C1 JSR $C10226 C2/AA53: 20 42 A9 JSR $A942 C2/AA56: 20 F8 AA JSR $AAF8 C2/AA59: 22 26 02 C1 JSR $C10226 C2/AA5D: 20 F8 AA JSR $AAF8 C2/AA60: A2 3F LDX #$3F C2/AA62: CC 86 10 CPY $1086 C2/AA65: A2 00 LDX #$00 C2/AA67: E2 86 SEP #$86 C2/AA69: 12 A9 ORA ($A9) C2/AA6B: 7F 85 14 7B ADC $7B1485,X C2/AA6F: AA TAX C2/AA70: BD BC EC LDA $ECBC,X C2/AA73: F0 05 BEQ $AA7A C2/AA75: DE BC EC DEC $ECBC,X C2/AA78: 80 21 BRA $AA9B C2/AA7A: BD CC EC LDA $ECCC,X C2/AA7D: C9 18 B0 CMP #$B018 C2/AA80: 1A INC C2/AA81: 0A ASL C2/AA82: DA PHX C2/AA83: AA TAX C2/AA84: 7B TDC C2/AA85: A8 TAY C2/AA86: BF D2 A8 C2 LDA $C2A8D2,X C2/AA8A: 99 DC EC STA $ECDC,Y C2/AA8D: E8 INX C2/AA8E: C8 INY C2/AA8F: C0 10 00 CPY #$0010 C2/AA92: D0 F2 BNE $AA86 C2/AA94: FA PLX C2/AA95: 20 5A AB JSR $AB5A C2/AA98: FE CC EC INC $ECCC,X C2/AA9B: C2 20 REP #$20 C2/AA9D: A5 10 LDA $10 C2/AA9F: 38 SEC C2/AAA0: E9 00 02 SBC #$0200 C2/AAA3: 85 10 STA $10 C2/AAA5: A5 12 LDA $12 C2/AAA7: 38 SEC C2/AAA8: E9 00 02 SBC #$0200 C2/AAAB: 85 12 STA $12 C2/AAAD: 7B TDC C2/AAAE: E2 20 SEP #$20 C2/AAB0: E8 INX C2/AAB1: E0 10 CPX #$10 C2/AAB3: 00 D0 BRK $D0 C2/AAB5: BA TSX C2/AAB6: AE EC EC LDX $ECEC C2/AAB9: E8 INX C2/AABA: 8E EC EC STX $ECEC C2/AABD: E0 4A CPX #$4A C2/AABF: 00 D0 BRK $D0 C2/AAC1: 19 DA EE ORA $EEDA,Y C2/AAC4: ED E9 A9 SBC $A9E9 C2/AAC7: 82 8D 00 BRL $C0AB57 C2/AACA: 13 A9 ORA ($A9,S),Y C2/AACC: C0 8D 01 CPY #$018D C2/AACF: 13 9C ORA ($9C,S),Y C2/AAD1: 02 13 COP $13 C2/AAD3: 22 04 00 C5 JSR $C50004 C2/AAD7: 9C ED E9 STZ $E9ED C2/AADA: FA PLX C2/AADB: E0 5A CPX #$5A C2/AADD: 00 F0 BRK $F0 C2/AADF: 03 4C ORA $4C,S C2/AAE1: 3E AA A9 ROL $A9AA,X C2/AAE4: 80 20 BRA $AB06 C2/AAE6: 61 A9 ADC ($A9,X) C2/AAE8: AD F9 E9 LDA $E9F9 C2/AAEB: F0 0A BEQ $AAF7 C2/AAED: A9 10 20 LDA #$2010 C2/AAF0: 61 A9 ADC ($A9,X) C2/AAF2: CE F9 E9 DEC $E9F9 C2/AAF5: D0 F6 BNE $AAED C2/AAF7: 6B RTL C2/AAF8: 8B PHB C2/AAF9: A9 7F 48 LDA #$487F C2/AAFC: AB PLB C2/AAFD: C2 20 REP #$20 C2/AAFF: 7B TDC C2/AB00: AA TAX C2/AB01: 64 18 STZ $18 C2/AB03: A9 00 E2 LDA #$E200 C2/AB06: 18 CLC C2/AB07: 65 18 ADC $18 C2/AB09: 85 10 STA $10 C2/AB0B: A9 0E E0 LDA #$E00E C2/AB0E: 18 CLC C2/AB0F: 65 18 ADC $18 C2/AB11: 85 14 STA $14 C2/AB13: A9 10 00 LDA #$0010 C2/AB16: 85 16 STA $16 C2/AB18: A5 10 LDA $10 C2/AB1A: 1A INC C2/AB1B: 1A INC C2/AB1C: 85 12 STA $12 C2/AB1E: A0 1C LDY #$1C C2/AB20: 00 B1 BRK $B1 C2/AB22: 10 91 BPL $AAB5 C2/AB24: 12 88 ORA ($88) C2/AB26: 88 DEY C2/AB27: 10 F8 BPL $AB21 C2/AB29: B2 14 LDA ($14) C2/AB2B: 92 10 STA ($10) C2/AB2D: A0 10 LDY #$10 C2/AB2F: 00 B1 BRK $B1 C2/AB31: 14 91 TRB $91 C2/AB33: 10 A5 BPL $AADA C2/AB35: 10 38 BPL $AB6F C2/AB37: E9 00 02 SBC #$0200 C2/AB3A: 85 10 STA $10 C2/AB3C: A5 14 LDA $14 C2/AB3E: 38 SEC C2/AB3F: E9 00 02 SBC #$0200 C2/AB42: 85 14 STA $14 C2/AB44: C6 16 DEC $16 C2/AB46: D0 D0 BNE $AB18 C2/AB48: A5 18 LDA $18 C2/AB4A: 18 CLC C2/AB4B: 69 20 00 ADC #$0020 C2/AB4E: 85 18 STA $18 C2/AB50: C9 00 02 CMP #$0200 C2/AB53: D0 AE BNE $AB03 C2/AB55: 7B TDC C2/AB56: E2 20 SEP #$20 C2/AB58: AB PLB C2/AB59: 60 RTS C2/AB5A: DA PHX C2/AB5B: 7B TDC C2/AB5C: AA TAX C2/AB5D: A8 TAY C2/AB5E: C2 20 REP #$20 C2/AB60: BD DC EC LDA $ECDC,X C2/AB63: 49 FF FF EOR #$FFFF C2/AB66: 85 1A STA $1A C2/AB68: B1 10 LDA ($10),Y C2/AB6A: 25 1A AND $1A C2/AB6C: 17 12 ORA [$12],Y C2/AB6E: 97 12 STA [$12],Y C2/AB70: B1 10 LDA ($10),Y C2/AB72: 3D DC EC AND $ECDC,X C2/AB75: 91 10 STA ($10),Y C2/AB77: E8 INX C2/AB78: E8 INX C2/AB79: 8A TXA C2/AB7A: 29 0F 00 AND #$000F C2/AB7D: AA TAX C2/AB7E: C8 INY C2/AB7F: C8 INY C2/AB80: C0 00 02 CPY #$0200 C2/AB83: D0 DB BNE $AB60 C2/AB85: 7B TDC C2/AB86: E2 20 SEP #$20 C2/AB88: FA PLX C2/AB89: 60 RTS C2/AB8A: 8B PHB C2/AB8B: 7B TDC C2/AB8C: 48 PHA C2/AB8D: AB PLB C2/AB8E: A9 7E LDA #$7E C2/AB90: 8D 74 43 STA $4374 C2/AB93: A2 B7 6A LDX #$6AB7 C2/AB96: 8E 16 21 STX $2116 C2/AB99: A0 0E 00 LDY #$000E C2/AB9C: 8C 75 43 STY $4375 C2/AB9F: A2 15 5D LDX #$5D15 C2/ABA2: 8E 72 43 STX $4372 C2/ABA5: A9 80 LDA #$80 C2/ABA7: 8D 0D 42 STA $420B C2/ABAA: A2 F7 6A LDX #$6AF7 C2/ABAD: 8E 16 21 STX $2116 C2/ABB0: 8C 75 43 STY $4375 C2/ABB3: A2 23 5D LDX #$5D23 C2/ABB6: 8E 72 43 STX $4372 C2/ABB9: 8D 0B 42 STA $420B C2/ABBC: AF 81 7B 7E LDA $7E7B81 C2/ABC0: D0 03 BNE $03 C2/ABC2: 4C 4A AC JMP $AC4A C2/ABC5: C2 20 REP #$20 C2/ABC7: A9 24 7A LDA #$7A24 C2/ABCA: 8D 16 21 STA $2116 C2/ABCD: AF D9 5D 7E LDA $7E5DD9 C2/ABD1: 8D 18 21 STA $2118 C2/ABD4: AF DB 5D 7E LDA $7E5DDB C2/ABD8: 8D 18 21 STA $2118 C2/ABDB: AF DD 5D 7E LDA $7E5DDD C2/ABDF: 8D 18 21 STA $2118 C2/ABE2: AF DF 5D 7E LDA $7E5DDF C2/ABE6: 8D 18 21 STA $2118 C2/ABE9: AF E1 5D 7E LDA $7E5DE1 C2/ABED: 8D 18 21 STA $2118 C2/ABF0: AF E3 5D 7E LDA $7E5DE3 C2/ABF4: 8D 18 21 STA $2118 C2/ABF7: AF E5 5D 7E LDA $7E5DE5 C2/ABFB: 8D 18 21 STA $2118 C2/ABFE: AF E7 5D 7E LDA $7E5DE7 C2/AC02: 8D 18 21 STA $2118 C2/AC05: A9 64 7A LDA #$7A64 C2/AC08: 8D 16 21 STA $2116 C2/AC0B: AF 73 7A 7E LDA $7E7A73 C2/AC0F: 8D 18 21 STA $2118 C2/AC12: AF 75 7A 7E LDA $7E7A75 C2/AC16: 8D 18 21 STA $2118 C2/AC19: AF 77 7A 7E LDA $7E7A77 C2/AC1D: 8D 18 21 STA $2118 C2/AC20: AF 79 7A 7E LDA $7E7A79 C2/AC24: 8D 18 21 STA $2118 C2/AC27: AF 7B 7A 7E LDA $7E7A7B C2/AC2B: 8D 18 21 STA $2118 C2/AC2E: AF 7D 7A 7E LDA $7E7A7D C2/AC32: 8D 18 21 STA $2118 C2/AC35: AF 7F 7A 7E LDA $7E7A7F C2/AC39: 8D 18 21 STA $2118 C2/AC3C: AF 81 7A 7E LDA $7E7A81 C2/AC40: 8D 18 21 STA $2118 C2/AC43: 7B TDC C2/AC44: E2 20 SEP #$20 C2/AC46: 8F 81 7B 7E STA $7E7B81 C2/AC4A: A9 01 LDA #$01 C2/AC4C: 8D 70 43 STA $4370 C2/AC4F: A9 18 LDA #$18 C2/AC51: 8D 71 43 STA $4371 C2/AC54: A9 7E LDA #$7E C2/AC56: 8D 74 43 STA $4373 C2/AC59: A0 0C 00 LDY #$000C C2/AC5C: AF 9B 62 7E LDA $7E629B C2/AC60: F0 0C BEQ $0C C2/AC62: 7B 8F ?? C2/AC64: 9B TXY C2/AC65: 62 7E A5 PER $C051E6 C2/AC68: 98 TYA C2/AC69: 4A LSR C2/AC6A: 29 03 80 AND #$8003 C2/AC6D: 07 -< C2/AC6E: AF 9A 7B 7E LDA $7E7B9A C2/AC72: 3A DEC C2/AC73: 29 03 AND #$03 C2/AC75: 0A ASL C2/AC76: AA TAX C2/AC77: A9 80 LDA #$80 C2/AC79: 7C 7C AC JMP ($AC7C,X) C2/AC7C: BD AC C2/AC80: F6 AC INC $AC,X C2/AC82: 2F AD A2 39 AND $39A2AD C2/AC86: 78 SEI C2/AC87: 8E 16 21 STX $2116 C2/AC8A: A2 51 LDX #$51 C2/AC8C: 5C 8E 72 43 JMP $43728E C2/AC90: 8C 75 43 STY $4375 C2/AC93: 8D 0B 42 STA $420B C2/AC96: A2 39 LDX #$39 C2/AC98: 79 8E 16 ADC $168E,Y C2/AC9B: 21 A2 AND ($A2,X) C2/AC9D: 51 5C EOR ($5C),Y C2/AC9F: 8E 72 43 STX $4372 C2/ACA2: 8C 75 43 STY $4375 C2/ACA5: 8D 0B 42 STA $420B C2/ACA8: A2 39 LDX #$39 C2/ACAA: 7A PLY C2/ACAB: 8E 16 21 STX $2116 C2/ACAE: A2 51 LDX #$51 C2/ACB0: 5C 8E 72 43 JMP $43728E C2/ACB4: 8C 75 43 STY $4375 C2/ACB7: 8D 0B 42 STA $420B C2/ACBA: 4C 65 AD JMP $AD65 C2/ACBD: A2 79 LDX #$79 C2/ACBF: 78 SEI C2/ACC0: 8E 16 21 STX $2116 C2/ACC3: A2 69 LDX #$69 C2/ACC5: 5C 8E 72 43 JMP $43728E C2/ACC9: 8C 75 43 STY $4375 C2/ACCC: 8D 0B 42 STA $420B C2/ACCF: A2 79 LDX #$79 C2/ACD1: 79 8E 16 ADC $168E,Y C2/ACD4: 21 A2 AND ($A2,X) C2/ACD6: 69 5C 8E ADC #$8E5C C2/ACD9: 72 43 ADC ($43) C2/ACDB: 8C 75 43 STY $4375 C2/ACDE: 8D 0B 42 STA $420B C2/ACE1: A2 79 LDX #$79 C2/ACE3: 7A PLY C2/ACE4: 8E 16 21 STX $2116 C2/ACE7: A2 69 LDX #$69 C2/ACE9: 5C 8E 72 43 JMP $43728E C2/ACED: 8C 75 43 STY $4375 C2/ACF0: 8D 0B 42 STA $420B C2/ACF3: 4C 65 AD JMP $AD65 C2/ACF6: A2 B9 LDX #$B9 C2/ACF8: 78 SEI C2/ACF9: 8E 16 21 STX $2116 C2/ACFC: A2 81 LDX #$81 C2/ACFE: 5C 8E 72 43 JMP $43728E C2/AD02: 8C 75 43 STY $4375 C2/AD05: 8D 0B 42 STA $420B C2/AD08: A2 B9 LDX #$B9 C2/AD0A: 79 8E 16 ADC $168E,Y C2/AD0D: 21 A2 AND ($A2,X) C2/AD0F: 81 5C STA ($5C,X) C2/AD11: 8E 72 43 STX $4372 C2/AD14: 8C 75 43 STY $4375 C2/AD17: 8D 0B 42 STA $420B C2/AD1A: A2 B9 LDX #$B9 C2/AD1C: 7A PLY C2/AD1D: 8E 16 21 STX $2116 C2/AD20: A2 81 LDX #$81 C2/AD22: 5C 8E 72 43 JMP $43728E C2/AD26: 8C 75 43 STY $4375 C2/AD29: 8D 0B 42 STA $420B C2/AD2C: 4C 65 AD JMP $AD65 C2/AD2F: A2 F9 LDX #$F9 C2/AD31: 78 SEI C2/AD32: 8E 16 21 STX $2116 C2/AD35: A2 99 LDX #$99 C2/AD37: 5C 8E 72 43 JMP $43728E C2/AD3B: 8C 75 43 STY $4375 C2/AD3E: 8D 0B 42 STA $420B C2/AD41: A2 F9 LDX #$F9 C2/AD43: 79 8E 16 ADC $168E,Y C2/AD46: 21 A2 AND ($A2,X) C2/AD48: 99 5C 8E STA $8E5C,Y C2/AD4B: 72 43 ADC ($43) C2/AD4D: 8C 75 43 STY $4375 C2/AD50: 8D 0B 42 STA $420B C2/AD53: A2 F9 LDX #$F9 C2/AD55: 7A PLY C2/AD56: 8E 16 21 STX $2116 C2/AD59: A2 99 LDX #$99 C2/AD5B: 5C 8E 72 43 JMP $43728E C2/AD5F: 8C 75 43 STY $4375 C2/AD62: 8D 0B 42 STA $420B C2/AD65: AB PLB C2/AD66: E2 10 SEP #$10 C2/AD68: AD 9C 7B LDA $7B9C C2/AD6B: F0 49 BEQ $ADB6 C2/AD6D: 9C 9C 7B STZ $7B9C C2/AD70: AD 9D 7B LDA $7B9D C2/AD73: C9 FF F0 CMP #$F0FF C2/AD76: 3F 0A AA C2 AND $C2AA0A,X C2/AD7A: 20 BF D9 JSR $D9BF C2/AD7D: AD C2 A8 LDA $A8C2 C2/AD80: 8A TXA C2/AD81: 0A ASL C2/AD82: 0A ASL C2/AD83: AA TAX C2/AD84: A9 03 00 LDA #$0003 C2/AD87: 85 36 STA $36 C2/AD89: BF B9 AD C2 LDA $C2ADB9,X C2/AD8D: 8F 16 21 00 STA $002116 C2/AD91: B9 0D 5C LDA $5C0D,Y C2/AD94: 8F 18 21 00 STA $002118 C2/AD98: B9 0F 5C LDA $5C0F,Y C2/AD9B: 8F 18 21 00 STA $002118 C2/AD9F: B9 11 5C LDA $5C11,Y C2/ADA2: 8F 18 21 00 STA $002118 C2/ADA6: B9 13 5C LDA $5C13,Y C2/ADA9: 8F 18 21 00 STA $002118 C2/ADAD: E8 INX C2/ADAE: E8 INX C2/ADAF: C6 36 DEC $36 C2/ADB1: D0 D6 BNE $AD89 C2/ADB3: 7B TDC C2/ADB4: E2 20 SEP #$20 C2/ADB6: C2 10 REP #$10 C2/ADB8: 6B RTL C2/ADB9: 35 78 AND $78,X C2/ADBB: 35 79 AND $79,X C2/ADBD: 35 7A AND $7A,X C2/ADBF: 00 00 BRK $00 C2/ADC1: 75 78 ADC $78,X C2/ADC3: 75 79 ADC $79,X C2/ADC5: 75 7A ADC $7A,X C2/ADC7: 00 00 BRK $00 C2/ADC9: B5 78 LDA $78,X C2/ADCB: B5 79 LDA $79,X C2/ADCD: B5 7A LDA $7A,X C2/ADCF: 00 00 BRK $00 C2/ADD1: F5 78 SBC $78,X C2/ADD3: F5 79 SBC $79,X C2/ADD5: F5 7A SBC $7A,X C2/ADD7: 00 00 BRK $00 C2/ADD9: 00 00 BRK $00 C2/ADDB: 10 00 BPL $ADDD C2/ADDD: 20 00 30 JSR $3000 C2/ADE0: 00 (Status names displayed when selecting a target) C2/ADE1: 96 A8 AE A7 9D FF FF FF FF FF ("Wound ") C2/ADEB: 8F 9E AD AB A2 9F B2 FF FF FF ("Petrify ") C2/ADF5: 88 A6 A9 FF FF FF FF FF FF FF ("Imp ") C2/ADFF: 82 A5 9E 9A AB FF FF FF FF FF ("Clear ") C2/AE09: FF FF FF FF FF FF FF FF FF FF (" ") (Magitek) C2/AE13: 8F A8 A2 AC A8 A7 FF FF FF FF ("Poison ") C2/AE1D: 99 A8 A6 9B A2 9E FF FF FF FF ("Zombie ") C2/AE27: 83 9A AB A4 FF FF FF FF FF FF ("Dark ") C2/AE31: 8F AC B2 9C A1 9E FF FF FF FF ("Psyche ") (wtf?) C2/AE3B: 92 9E A2 B3 AE AB 9E FF FF FF ("Seizure ") C2/AE45: 8C AE 9D 9D A5 9E 9D FF FF FF ("Muddled ") C2/AE4F: 81 9E AB AC 9E AB A4 FF FF FF ("Berserk ") C2/AE59: 8C AE AD 9E FF FF FF FF FF FF ("Mute ") C2/AE63: 88 A6 9A A0 9E FF FF FF FF FF ("Image ") C2/AE6D: 8D 9E 9A AB FE 85 9A AD 9A A5 ("Near Fatal") C2/AE77: 82 A8 A7 9D 9E A6 A7 9E 9D FF ("Condemned ") C2/AE81: 91 9E 9F A5 9E 9C AD FF FF FF ("Reflect ") C2/AE8B: 92 9A 9F 9E FF FF FF FF FF FF ("Safe ") C2/AE95: 92 A1 9E A5 A5 FF FF FF FF FF ("Shell ") C2/AE9F: 92 AD A8 A9 FF FF FF FF FF FF ("Stop ") C2/AEA9: 87 9A AC AD 9E FF FF FF FF FF ("Haste ") C2/AEB3: 92 A5 A8 B0 FF FF FF FF FF FF ("Slow ") C2/AEBD: 91 9E A0 9E A7 FF FF FF FF FF ("Regen ") C2/AEC7: FF FF FF FF FF FF FF FF FF FF (" ") (Dance) C2/AED1: 85 A5 A8 9A AD FF FF FF FF FF ("Float ") C2/AEDB: FF FF FF FF FF FF FF FF FF FF (" ") (Interceptor) C2/AEE5: FF FF FF FF FF FF FF FF FF FF (" ") (Hide) C2/AEEF: FF FF FF FF FF FF FF FF FF FF (" ") (Control) C2/AEF9: FF FF FF FF FF FF FF FF FF FF (" ") (Morph) C2/AF03: 8B A2 9F 9E FE B7 FF FF FF FF ("Life 3 ") C2/AF0D: FF FF FF FF FF FF FF FF FF FF (" ") (Freeze) C2/AF17: FF FF FF FF FF FF FF FF FF FF (" ") (If nothing else prevails) (Note that the highest-listed status takes precedence. Life 3, for instance, is never listed while Shadow is under the protection of Interceptor.) C2/AF21: A4 5B LDY $5B C2/AF23: C8 INY C2/AF24: 84 5B STY $5B C2/AF26: A7 5B LDA [$5B] C2/AF28: F0 21 BEQ $AF4B C2/AF2A: C9 01 F0 CMP #$F001 C2/AF2D: 07 20 ORA [$20] C2/AF2F: E6 BB INC $BB C2/AF31: 29 07 D0 AND #$D007 C2/AF34: 15 C2 ORA $C2,X C2/AF36: 20 7B AA JSR $AA7B C2/AF39: BF E8 E2 C2 LDA $C2E2E8,X C2/AF3D: 9D A0 7E STA $7EA0,X C2/AF40: E8 INX C2/AF41: E8 INX C2/AF42: E0 60 CPX #$60 C2/AF44: 00 D0 BRK $D0 C2/AF46: F2 7B SBC ($7B) C2/AF48: E2 20 SEP #$20 C2/AF4A: 6B RTL C2/AF4B: C2 20 REP #$20 C2/AF4D: 7B TDC C2/AF4E: AA TAX C2/AF4F: BF 88 E2 C2 LDA $C2E288,X C2/AF53: 9D A0 7E STA $7EA0,X C2/AF56: E8 INX C2/AF57: E8 INX C2/AF58: E0 60 CPX #$60 C2/AF5A: 00 D0 BRK $D0 C2/AF5C: F2 7B SBC ($7B) C2/AF5E: E2 20 SEP #$20 C2/AF60: 6B RTL C2/AF61: 7B TDC C2/AF62: AA TAX C2/AF63: 9E 57 80 STZ $8057,X C2/AF66: E8 INX C2/AF67: E0 0C CPX #$0C C2/AF69: 00 D0 BRK $D0 C2/AF6B: F7 AE SBC [$AE],Y C2/AF6D: F6 7A INC $7A,X C2/AF6F: BD 39 6A LDA $6A39,X C2/AF72: 10 22 BPL $AF96 C2/AF74: 29 0F 38 AND #$380F C2/AF77: E9 04 0A SBC #$0A04 C2/AF7A: AA TAX C2/AF7B: C2 20 REP #$20 C2/AF7D: A9 F8 FF LDA #$FFF8 C2/AF80: 9D 57 80 STA $8057,X C2/AF83: BD CF 80 LDA $80CF,X C2/AF86: 8D B4 EC STA $ECB4 C2/AF89: 38 SEC C2/AF8A: E9 00 01 SBC #$0100 C2/AF8D: 9D CF 80 STA $80CF,X C2/AF90: 8E B6 EC STX $ECB6 C2/AF93: 7B TDC C2/AF94: E2 20 SEP #$20 C2/AF96: 6B RTL C2/AF97: 02 08 COP $08 C2/AF99: 20 80 03 JSR $0380 C2/AF9C: 0C 30 C0 TSB $C030 C2/AF9F: 01 04 ORA ($04,X) C2/AFA1: 10 40 BPL $AFE3 C2/AFA3: 7B TDC C2/AFA4: A8 TAY C2/AFA5: 64 10 STZ $10 C2/AFA7: A5 10 LDA $10 C2/AFA9: 4A LSR C2/AFAA: 4A LSR C2/AFAB: 99 7F A1 STA $A17F,Y C2/AFAE: 99 80 A1 STA $A180,Y C2/AFB1: 99 81 A1 STA $A181,Y C2/AFB4: 99 82 A1 STA $A182,Y C2/AFB7: A5 10 LDA $10 C2/AFB9: 29 03 AA AND #$AA03 C2/AFBC: BF 97 AF C2 LDA $C2AF97,X C2/AFC0: 99 7F A3 STA $A37F,Y C2/AFC3: 99 80 A3 STA $A380,Y C2/AFC6: 99 81 A3 STA $A381,Y C2/AFC9: 99 82 A3 STA $A382,Y C2/AFCC: BF 9B AF C2 LDA $C2AF9B,X C2/AFD0: 99 7F A5 STA $A57F,Y C2/AFD3: 99 80 A5 STA $A580,Y C2/AFD6: 99 81 A5 STA $A581,Y C2/AFD9: 99 82 A5 STA $A582,Y C2/AFDC: BF 9F AF C2 LDA $C2AF9F,X C2/AFE0: 99 7F A7 STA $A77F,Y C2/AFE3: 99 80 A7 STA $A780,Y C2/AFE6: 99 81 A7 STA $A781,Y C2/AFE9: 99 82 A7 STA $A782,Y C2/AFEC: E6 10 INC $10 C2/AFEE: C8 INY C2/AFEF: C8 INY C2/AFF0: C8 INY C2/AFF1: C8 INY C2/AFF2: C0 00 02 CPY #$0200 C2/AFF5: D0 B0 BNE $AFA7 C2/AFF7: 6B RTL C2/AFF8: A6 5B LDX $5B C2/AFFA: E8 INX C2/AFFB: 86 5B STX $5B C2/AFFD: AE F6 7A LDX $7AF6 C2/B000: BD 88 6F LDA $6F88,X C2/B003: 10 01 BPL $B006 C2/B005: 6B RTL C2/B006: A7 5B LDA [$5B] C2/B008: C2 20 REP #$20 C2/B00A: 85 22 STA $22 C2/B00C: A5 5B LDA $5B C2/B00E: 18 CLC C2/B00F: 65 22 ADC $22 C2/B011: 85 5B STA $5B C2/B013: 7B TDC C2/B014: E2 20 SEP #$20 C2/B016: 6B RTL C2/B017: AE F6 7A LDX $7AF6 C2/B01A: BD 39 6A LDA $6A39,X C2/B01D: 30 06 BMI $B025 C2/B01F: A8 TAY C2/B020: B9 AE 61 LDA $61AE,Y C2/B023: F0 13 BEQ $B038 C2/B025: A0 01 LDY #$01 C2/B027: 00 B7 BRK $B7 C2/B029: 5B TCD C2/B02A: C2 20 REP #$20 C2/B02C: 85 22 STA $22 C2/B02E: A5 5B LDA $5B C2/B030: 18 CLC C2/B031: 65 22 ADC $22 C2/B033: 85 5B STA $5B C2/B035: 7B TDC C2/B036: E2 20 SEP #$20 C2/B038: A6 5B LDX $5B C2/B03A: E8 INX C2/B03B: 86 5B STX $5B C2/B03D: 6B RTL C2/B03E: A6 5B LDX $5B C2/B040: E8 INX C2/B041: 86 5B STX $5B C2/B043: AE F6 7A LDX $7AF6 C2/B046: AD 10 EC LDA $EC10 C2/B049: D0 01 BNE $B04C C2/B04B: 6B RTL C2/B04C: A7 5B LDA [$5B] C2/B04E: C2 20 REP #$20 C2/B050: 85 22 STA $22 C2/B052: A5 5B LDA $5B C2/B054: 18 CLC C2/B055: 65 22 ADC $22 C2/B057: 85 5B STA $5B C2/B059: 7B TDC C2/B05A: E2 20 SEP #$20 C2/B05C: 6B RTL C2/B05D: 8C 31 01 STY $0131 C2/B060: 04 1F TSB $1F C2/B062: 7C 1D 74 JMP ($741D,X) C2/B065: 19 64 17 ORA $1764,Y C2/B068: 5C 15 54 13 JMP $135415 C2/B06C: 4C 11 44 JMP $4411 C2/B06F: 0F 3C 0D 34 ORA $340D3C C2/B073: 0B PHD C2/B074: 2C 09 24 BIT $2409 C2/B077: 07 1C ORA [$1C] C2/B079: 05 14 ORA $14 C2/B07B: 03 0C ORA $0C,S C2/B07D: 00 00 BRK $00 C2/B07F: 00 00 BRK $00 C2/B081: 1A INC C2/B082: 00 13 BRK $13 C2/B084: 00 0D BRK $0D C2/B086: 00 FE BRK $FE C2/B088: 7F 80 03 C0 ADC $C00380,X C2/B08C: 01 00 ORA ($00,X) C2/B08E: 00 00 BRK $00 C2/B090: 00 FE BRK $FE C2/B092: 7F 3A 37 95 ADC $95373A,X C2/B096: 22 8B 1D F2 JSR $F21D8B C2/B09A: 28 PLP C2/B09B: 6E 18 00 ROR $0018 C2/B09E: 00 00 BRK $00 C2/B0A0: 00 FE BRK $FE C2/B0A2: 7F 37 67 71 ADC $716737,X C2/B0A6: 4A LSR C2/B0A7: 89 29 F8 BIT #$F829 C2/B0AA: 2E 8F 09 ROL $098F C2/B0AD: AD 35 63 LDA $6335 C2/B0B0: 0C FF 6F TSB $6FFF C2/B0B3: 08 PHP C2/B0B4: 21 F8 AND ($F8,X) C2/B0B6: 31 26 AND ($26),Y C2/B0B8: 29 C6 18 AND #$18C6 C2/B0BB: 72 01 ADC ($01) C2/B0BD: 02 04 COP $04 C2/B0BF: 06 08 ASL $08 C2/B0C1: 0A ASL C2/B0C2: 0C 0E 10 TSB $100E C2/B0C5: 00 00 BRK $00 C2/B0C7: FF FF FE FF SBC $FFFEFF,X C2/B0CB: FD FF 3D SBC $3DFF,X C2/B0CE: B1 3D LDA ($3D),Y C2/B0D0: B1 3D LDA ($3D),Y C2/B0D2: B1 3D LDA ($3D),Y C2/B0D4: B1 3D LDA ($3D),Y C2/B0D6: B1 3D LDA ($3D),Y C2/B0D8: B1 3D LDA ($3D),Y C2/B0DA: B1 AD LDA ($AD),Y C2/B0DC: B1 3D LDA ($3D),Y C2/B0DE: B1 3D LDA ($3D),Y C2/B0E0: B1 3D LDA ($3D),Y C2/B0E2: B1 3D LDA ($3D),Y C2/B0E4: B1 3D LDA ($3D),Y C2/B0E6: B1 18 LDA ($18),Y C2/B0E8: B2 3D LDA ($3D) C2/B0EA: B1 B8 LDA ($B8),Y C2/B0EC: B1 3D LDA ($3D),Y C2/B0EE: B1 3D LDA ($3D),Y C2/B0F0: B1 3D LDA ($3D),Y C2/B0F2: B1 3D LDA ($3D),Y C2/B0F4: B1 3D LDA ($3D),Y C2/B0F6: B1 3D LDA ($3D),Y C2/B0F8: B1 3D LDA ($3D),Y C2/B0FA: B1 3D LDA ($3D),Y C2/B0FC: B1 3D LDA ($3D),Y C2/B0FE: B1 3D LDA ($3D),Y C2/B100: B1 3D LDA ($3D),Y C2/B102: B1 3D LDA ($3D),Y C2/B104: B1 3D LDA ($3D),Y C2/B106: B1 3D LDA ($3D),Y C2/B108: B1 3D LDA ($3D),Y C2/B10A: B1 E1 LDA ($E1),Y C2/B10C: B1 3D LDA ($3D),Y C2/B10E: B1 B8 LDA ($B8),Y C2/B110: B1 3D LDA ($3D),Y C2/B112: B1 3D LDA ($3D),Y C2/B114: B1 3D LDA ($3D),Y C2/B116: B1 3D LDA ($3D),Y C2/B118: B1 3D LDA ($3D),Y C2/B11A: B1 3D LDA ($3D),Y C2/B11C: B1 3D LDA ($3D),Y C2/B11E: B1 3D LDA ($3D),Y C2/B120: B1 3D LDA ($3D),Y C2/B122: B1 3D LDA ($3D),Y C2/B124: B1 C3 LDA ($C3),Y C2/B126: B1 3D LDA ($3D),Y C2/B128: B1 70 LDA ($70),Y C2/B12A: B1 3D LDA ($3D),Y C2/B12C: B1 3D LDA ($3D),Y C2/B12E: B1 3D LDA ($3D),Y C2/B130: B1 3D LDA ($3D),Y C2/B132: B1 3D LDA ($3D),Y C2/B134: B1 3D LDA ($3D),Y C2/B136: B1 3D LDA ($3D),Y C2/B138: B1 4E LDA ($4E),Y C2/B13A: B1 3D LDA ($3D),Y C2/B13C: B1 6B LDA ($6B),Y C2/B13E: 01 00 ORA ($00,X) C2/B140: 02 00 COP $00 C2/B142: 01 00 ORA ($00,X) C2/B144: 00 00 BRK $00 C2/B146: 01 00 ORA ($00,X) C2/B148: 02 00 COP $00 C2/B14A: 01 00 ORA ($00,X) C2/B14C: 02 00 COP $00 C2/B14E: A5 9A LDA $9A C2/B150: F0 1D BEQ $B16F C2/B152: A5 0E LDA $0E C2/B154: 29 07 00 AND #$0007 C2/B157: 0A ASL C2/B158: AA TAX C2/B159: BF 3E B1 C2 LDA $C2B13E,X C2/B15D: 48 PHA C2/B15E: 18 CLC C2/B15F: 69 F0 FF ADC #$FFF0 C2/B162: 8F B4 64 7E STA $7E64B4 C2/B166: 68 PLA C2/B167: 18 CLC C2/B168: 69 10 00 ADC #$0010 C2/B16B: 8D C3 80 STA $80C3 C2/B16E: 7B TDC C2/B16F: 6B RTL C2/B170: 7B TDC C2/B171: AA TAX C2/B172: BD 13 EC LDA $EC13,X C2/B175: 9D 71 EC STA $EC71,X C2/B178: 9D 81 EC STA $EC81,X C2/B17B: BD 53 EC LDA $EC53,X C2/B17E: 9D 91 EC STA $EC91,X C2/B181: 9D A1 EC STA $ECA1,X C2/B184: E8 INX C2/B185: E8 INX C2/B186: E0 10 CPX #$10 C2/B188: 00 D0 BRK $D0 C2/B18A: E7 A5 SBC [$A5] C2/B18C: 0E 4A 4A ASL $4A4A C2/B18F: 4A LSR C2/B190: 29 07 00 AND #$0007 C2/B193: 0A ASL C2/B194: AA TAX C2/B195: 7B TDC C2/B196: A8 TAY C2/B197: BD 71 EC LDA $EC71,X C2/B19A: 99 13 EC STA $EC13,Y C2/B19D: BD 91 EC LDA $EC91,X C2/B1A0: 99 53 EC STA $EC53,Y C2/B1A3: C8 INY C2/B1A4: C8 INY C2/B1A5: E8 INX C2/B1A6: E8 INX C2/B1A7: C0 10 00 CPY #$0010 C2/B1AA: D0 EB BNE $B197 C2/B1AC: 6B RTL C2/B1AD: AD B2 64 LDA $64B2 C2/B1B0: 18 CLC C2/B1B1: 69 06 00 ADC #$0006 C2/B1B4: 8D B2 64 STA $64B2 C2/B1B7: 6B RTL C2/B1B8: AD B0 64 LDA $64B0 C2/B1BB: 38 SEC C2/B1BC: E9 04 00 SBC #$0004 C2/B1BF: 8D B0 64 STA $64B0 C2/B1C2: 6B RTL C2/B1C3: AD B0 64 LDA $64B0 C2/B1C6: 38 SEC C2/B1C7: E9 08 00 SBC #$0008 C2/B1CA: 8D B0 64 STA $64B0 C2/B1CD: E2 20 SEP #$20 C2/B1CF: 20 E6 BB JSR $BBE6 C2/B1D2: C2 20 REP #$20 C2/B1D4: 29 03 00 AND #$0003 C2/B1D7: 0A ASL C2/B1D8: AA TAX C2/B1D9: BF C5 B0 C2 LDA $C2B0C5,X C2/B1DD: 8D B2 64 STA $64B2 C2/B1E0: 6B RTL C2/B1E1: 7B TDC C2/B1E2: AA TAX C2/B1E3: BD 13 EC LDA $EC13,X C2/B1E6: 9D 71 EC STA $EC71,X C2/B1E9: 9D 81 EC STA $EC81,X C2/B1EC: E8 INX C2/B1ED: E8 INX C2/B1EE: E0 10 CPX #$10 C2/B1F0: 00 D0 BRK $D0 C2/B1F2: F0 AD BEQ $B1A1 C2/B1F4: B2 64 LDA ($64) C2/B1F6: 18 CLC C2/B1F7: 69 06 00 ADC #$0006 C2/B1FA: 8D B2 64 STA $64B2 C2/B1FD: A5 0E LDA $0E C2/B1FF: 4A LSR C2/B200: 4A LSR C2/B201: 29 07 00 AND #$0007 C2/B204: 0A ASL C2/B205: AA TAX C2/B206: 7B TDC C2/B207: A8 TAY C2/B208: BD 71 EC LDA $EC71,X C2/B20B: 99 13 EC STA $EC13,Y C2/B20E: C8 INY C2/B20F: C8 INY C2/B210: E8 INX C2/B211: E8 INX C2/B212: C0 10 00 CPY #$0010 C2/B215: D0 F1 BNE $B208 C2/B217: 6B RTL C2/B218: 7B TDC C2/B219: AA TAX C2/B21A: BD 13 EC LDA $EC13,X C2/B21D: 9D 71 EC STA $EC71,X C2/B220: 9D 79 EC STA $EC79,X C2/B223: BD 1B EC LDA $EC1B,X C2/B226: 9D 81 EC STA $EC81,X C2/B229: 9D 89 EC STA $EC89,X C2/B22C: E8 INX C2/B22D: E8 INX C2/B22E: E0 08 CPX #$08 C2/B230: 00 D0 BRK $D0 C2/B232: E7 A5 SBC [$A5] C2/B234: 0E 4A 4A ASL $4A4A C2/B237: 4A LSR C2/B238: 29 03 00 AND #$0003 C2/B23B: 49 03 00 EOR #$0003 C2/B23E: 0A ASL C2/B23F: AA TAX C2/B240: 7B TDC C2/B241: A8 TAY C2/B242: BD 71 EC LDA $EC71,X C2/B245: 99 13 EC STA $EC13,Y C2/B248: BD 81 EC LDA $EC81,X C2/B24B: 99 1B EC STA $EC1B,Y C2/B24E: C8 INY C2/B24F: C8 INY C2/B250: E8 INX C2/B251: E8 INX C2/B252: C0 08 00 CPY #$0008 C2/B255: D0 EB BNE $B242 C2/B257: 6B RTL C2/B258: E2 10 SEP #$10 C2/B25A: 7B TDC C2/B25B: AA TAX C2/B25C: BD A0 7E LDA $7EA0,X C2/B25F: 9D 11 EC STA $EC11,X C2/B262: BD C0 7E LDA $7EC0,X C2/B265: 9D 31 EC STA $EC31,X C2/B268: BD E0 7E LDA $7EE0,X C2/B26B: 9D 51 EC STA $EC51,X C2/B26E: E8 INX C2/B26F: E8 INX C2/B270: E0 20 CPX #$20 C2/B272: D0 E8 BNE $B25C C2/B274: C2 10 REP #$10 C2/B276: AD B8 EC LDA $ECB8 C2/B279: 29 3F 00 AND #$003F C2/B27C: 0A ASL C2/B27D: AA TAX C2/B27E: 7C CD B0 JMP ($B0CD,X) C2/B281: AE F6 7A LDX $7AF6 C2/B284: BD 38 6A LDA $6A38,X C2/B287: 48 PHA C2/B288: BD 39 6A LDA $6A39,X C2/B28B: 9D 38 6A STA $6A38,X C2/B28E: 68 PLA C2/B28F: 9D 39 6A STA $6A39,X C2/B292: C2 20 REP #$20 C2/B294: BD 7E 6F LDA $6F7E,X C2/B297: 48 PHA C2/B298: BD 80 6F LDA $6F80,X C2/B29B: 48 PHA C2/B29C: BD 82 6F LDA $6F82,X C2/B29F: 9D 7E 6F STA $6F7E,X C2/B2A2: BD 84 6F LDA $6F84,X C2/B2A5: 9D 80 6F STA $6F80,X C2/B2A8: 68 PLA C2/B2A9: 9D 84 6F STA $6F84,X C2/B2AC: 68 PLA C2/B2AD: 9D 82 6F STA $6F82,X C2/B2B0: 7B TDC C2/B2B1: E2 20 SEP #$20 C2/B2B3: 6B RTL C2/B2B4: 7B TDC C2/B2B5: AA TAX C2/B2B6: A8 TAY C2/B2B7: 9E C0 61 STZ $61C0,X C2/B2BA: BD BE 61 LDA $61BE,X C2/B2BD: 49 40 9D EOR #$9D40 C2/B2C0: BE 61 B9 LDX $B961,Y C2/B2C3: 10 7B BPL $B340 C2/B2C5: 49 01 99 EOR #$9901 C2/B2C8: 10 7B BPL $B345 C2/B2CA: C8 INY C2/B2CB: 8A TXA C2/B2CC: 18 CLC C2/B2CD: 69 20 AA ADC #$AA20 C2/B2D0: C9 80 D0 CMP #$D080 C2/B2D3: E3 6B SBC $6B,S C2/B2D5: 7B TDC C2/B2D6: AA TAX C2/B2D7: C2 20 REP #$20 C2/B2D9: BD C9 61 LDA $61C9,X C2/B2DC: 38 SEC C2/B2DD: E9 04 00 SBC #$0004 C2/B2E0: 9D C9 61 STA $61C9,X C2/B2E3: 7B TDC C2/B2E4: E2 20 SEP #$20 C2/B2E6: BD BD 2E LDA $2EBD,X C2/B2E9: 29 C0 D0 AND #$D0C0 C2/B2EC: 05 A9 ORA $A9 C2/B2EE: 04 9D TSB $9D C2/B2F0: C0 61 C2 CPY #$C261 C2/B2F3: 20 8A 18 JSR $188A C2/B2F6: 69 20 00 ADC #$0020 C2/B2F9: AA TAX C2/B2FA: E0 80 CPX #$80 C2/B2FC: 00 D0 BRK $D0 C2/B2FE: DA PHX C2/B2FF: 7B TDC C2/B300: E2 20 SEP #$20 C2/B302: 6B RTL C2/B303: 7B TDC C2/B304: AA TAX C2/B305: C2 20 REP #$20 C2/B307: BD C9 61 LDA $61C9,X C2/B30A: 18 CLC C2/B30B: 69 04 00 ADC #$0004 C2/B30E: 9D C9 61 STA $61C9,X C2/B311: 7B TDC C2/B312: E2 20 SEP #$20 C2/B314: BD BD 2E LDA $2EBD,X C2/B317: 29 C0 D0 AND #$D0C0 C2/B31A: 05 A9 ORA $A9 C2/B31C: 03 9D ORA $9D,S C2/B31E: C0 61 C2 CPY #$C261 C2/B321: 20 8A 18 JSR $188A C2/B324: 69 20 00 ADC #$0020 C2/B327: AA TAX C2/B328: E0 80 CPX #$80 C2/B32A: 00 D0 BRK $D0 C2/B32C: DA PHX C2/B32D: 7B TDC C2/B32E: E2 20 SEP #$20 C2/B330: 6B RTL C2/B331: 20 9F C2 JSR $C29F C2/B334: AE F6 7A LDX $7AF6 C2/B337: BD 39 6A LDA $6A39,X C2/B33A: 0A ASL C2/B33B: AA TAX C2/B33C: C2 20 REP #$20 C2/B33E: B9 B7 61 LDA $61B7,Y C2/B341: 9D 56 62 STA $6256,X C2/B344: B9 B9 61 LDA $61B9,Y C2/B347: 9D 5E 62 STA $625E,X C2/B34A: AE F6 7A LDX $7AF6 C2/B34D: BD 7E 6F LDA $6F7E,X C2/B350: 99 B7 61 STA $61B7,Y C2/B353: BD 80 6F LDA $6F80,X C2/B356: 38 SEC C2/B357: E9 30 00 SBC #$0030 C2/B35A: 99 B9 61 STA $61B9,Y C2/B35D: 7B TDC C2/B35E: E2 20 SEP #$20 C2/B360: 6B RTL C2/B361: 20 9F C2 JSR $C29F C2/B364: AE F6 7A LDX $7AF6 C2/B367: BD 39 6A LDA $6A39,X C2/B36A: 0A ASL C2/B36B: AA TAX C2/B36C: C2 20 REP #$20 C2/B36E: BD 56 62 LDA $6256,X C2/B371: 99 B7 61 STA $61B7,Y C2/B374: 7B TDC C2/B375: 99 C5 61 STA $61C5,Y C2/B378: 99 D4 61 STA $61D4,Y C2/B37B: BD 5E 62 LDA $625E,X C2/B37E: 99 B9 61 STA $61B9,Y C2/B381: 7B TDC C2/B382: 99 C7 61 STA $61C7,Y C2/B385: 99 D2 61 STA $61D2,Y C2/B388: 7B TDC C2/B389: E2 20 SEP #$20 C2/B38B: 6B RTL C2/B38C: AE F6 7A LDX $7AF6 C2/B38F: A0 01 LDY #$01 C2/B391: 00 B7 BRK $B7 C2/B393: 5B TCD C2/B394: 85 10 STA $10 C2/B396: 30 04 BMI $B39C C2/B398: 64 11 STZ $11 C2/B39A: 80 04 BRA $B3A0 C2/B39C: A9 FF 85 LDA #$85FF C2/B39F: 11 C2 ORA ($C2),Y C2/B3A1: 20 E6 5B JSR $5BE6 C2/B3A4: BD D9 74 LDA $74D9,X C2/B3A7: 18 CLC C2/B3A8: 65 10 ADC $10 C2/B3AA: 9D D9 74 STA $74D9,X C2/B3AD: 85 10 STA $10 C2/B3AF: 64 12 STZ $12 C2/B3B1: 64 16 STZ $16 C2/B3B3: A9 40 00 LDA #$0040 C2/B3B6: 85 18 STA $18 C2/B3B8: BD 87 6F LDA $6F87,X C2/B3BB: 29 FF 00 AND #$00FF C2/B3BE: F0 2F BEQ $B3EF C2/B3C0: BD 80 6F LDA $6F80,X C2/B3C3: 29 FF 00 AND #$00FF C2/B3C6: 0A ASL C2/B3C7: 0A ASL C2/B3C8: AA TAX C2/B3C9: A5 12 LDA $12 C2/B3CB: 18 CLC C2/B3CC: 65 10 ADC $10 C2/B3CE: 85 12 STA $12 C2/B3D0: A5 13 LDA $13 C2/B3D2: 29 FF 00 AND #$00FF C2/B3D5: 85 13 STA $13 C2/B3D7: A5 16 LDA $16 C2/B3D9: 38 SEC C2/B3DA: E5 13 SBC $13 C2/B3DC: 85 16 STA $16 C2/B3DE: 64 13 STZ $13 C2/B3E0: 9D F5 43 STA $43F5,X C2/B3E3: CA DEX C2/B3E4: CA DEX C2/B3E5: CA DEX C2/B3E6: CA DEX C2/B3E7: C6 18 DEC $18 C2/B3E9: D0 DE BNE $B3C9 C2/B3EB: 7B TDC C2/B3EC: E2 20 SEP #$20 C2/B3EE: 6B RTL C2/B3EF: BD 80 6F LDA $6F80,X C2/B3F2: 29 FF 00 AND #$00FF C2/B3F5: 0A ASL C2/B3F6: 0A ASL C2/B3F7: AA TAX C2/B3F8: A5 12 LDA $12 C2/B3FA: 18 CLC C2/B3FB: 65 10 ADC $10 C2/B3FD: 85 12 STA $12 C2/B3FF: A5 13 LDA $13 C2/B401: 29 FF 00 AND #$00FF C2/B404: 18 CLC C2/B405: 65 16 ADC $16 C2/B407: 85 16 STA $16 C2/B409: 64 13 STZ $13 C2/B40B: 9D F5 43 STA $43F5,X C2/B40E: CA DEX C2/B40F: CA DEX C2/B410: CA DEX C2/B411: CA DEX C2/B412: C6 18 DEC $18 C2/B414: D0 E2 BNE $B3F8 C2/B416: 7B TDC C2/B417: E2 20 SEP #$20 C2/B419: 6B RTL C2/B41A: 7B TDC C2/B41B: AA TAX (clear A and X) C2/B41C: 8E 50 2F STX $2F50 C2/B41F: A2 03 00 LDX #$0003 C2/B422: BD 10 7B LDA $7B10,X C2/B425: 4A LSR C2/B426: 2E 50 2F ROL $2F50 C2/B429: CA DEX C2/B42A: 10 F6 BPL $B422 (loop for all 4 characters?) C2/B42C: 7B TDC C2/B42D: AA TAX (clear A and X) C2/B42E: A2 0A 00 LDX #$000A C2/B431: BD F3 80 LDA $80F3,X C2/B434: 5D 7E 61 EOR $617E,X C2/B437: 49 01 4A EOR #$4A01 C2/B43A: 2E 51 2F ROL $2F51 C2/B43D: CA DEX C2/B43E: CA DEX C2/B43F: 10 F0 BPL $B431 (loop for all 6 enemies?) C2/B441: 6B RTL C2/B442: A6 18 LDX $18 C2/B444: C2 20 REP #$20 C2/B446: BD 00 7E LDA $7E00,X C2/B449: 85 10 STA $10 C2/B44B: 4A LSR C2/B44C: 4A LSR C2/B44D: 4A LSR C2/B44E: 4A LSR C2/B44F: 4A LSR C2/B450: 85 12 STA $12 C2/B452: 4A LSR C2/B453: 4A LSR C2/B454: 4A LSR C2/B455: 4A LSR C2/B456: 4A LSR C2/B457: 29 1F 00 AND #$001F C2/B45A: 85 14 STA $14 C2/B45C: A5 10 LDA $10 C2/B45E: 29 1F 00 AND #$001F C2/B461: 18 CLC C2/B462: 65 14 ADC $14 C2/B464: 85 14 STA $14 C2/B466: A5 12 LDA $12 C2/B468: 29 1F 00 AND #$001F C2/B46B: 18 CLC C2/B46C: 65 14 ADC $14 C2/B46E: 8F 04 42 00 STA $004204 C2/B472: E2 20 SEP #$20 C2/B474: A9 03 8F LDA #$8F03 C2/B477: 06 42 ASL $42 C2/B479: 00 7B BRK $7B C2/B47B: C2 20 REP #$20 C2/B47D: EA NOP C2/B47E: EA NOP C2/B47F: EA NOP C2/B480: EA NOP C2/B481: EA NOP C2/B482: EA NOP C2/B483: AF 14 42 00 LDA $004214 C2/B487: 85 10 STA $10 C2/B489: 0A ASL C2/B48A: 0A ASL C2/B48B: 0A ASL C2/B48C: 0A ASL C2/B48D: 0A ASL C2/B48E: 05 10 ORA $10 C2/B490: 9D 00 7E STA $7E00,X C2/B493: E8 INX C2/B494: E8 INX C2/B495: E4 1A CPX $1A C2/B497: D0 AD BNE $B446 C2/B499: 7B TDC C2/B49A: E2 20 SEP #$20 C2/B49C: 6B RTL C2/B49D: 01 02 ORA ($02,X) C2/B49F: 03 04 ORA $04,S C2/B4A1: 05 06 ORA $06 (Return a value based on our 3 slot results: 0 for 7-7-Bar, 7 when we don't have three matching symbols [Lagomorph], or Symbol value + 1 when we have a matching triplet) C2/B4A3: A5 36 LDA $36 (get slot 1 [aka reel 1] symbol) C2/B4A5: C5 37 CMP $37 (compare to slot 2 symbol) C2/B4A7: D0 06 BNE $B4AF (branch if they don't match) C2/B4A9: C5 38 CMP $38 (if they do, compare to slot 3 symbol) C2/B4AB: D0 02 BNE $B4AF (branch if that is different) C2/B4AD: 1A INC (if they're all the same, just return the symbol value + 1) C2/B4AE: 6B RTL C2/B4AF: 05 37 ORA $37 C2/B4B1: D0 08 BNE $B4BB (branch if slot 1 or 2 isn't "7") C2/B4B3: A5 38 LDA $38 (only reach here if Slot 1 and 2 are both "7") C2/B4B5: C9 02 CMP #$02 C2/B4B7: D0 02 BNE $B4BB (branch if slot 3 isn't "Bar") C2/B4B9: 7B TDC (if it is, return 0) C2/B4BA: 6B RTL C2/B4BB: A9 07 LDA #$07 (return 7 for Lagomorph?) C2/B4BD: 6B RTL C2/B4BE: 7A PLY C2/B4BF: 0F C0 0F CE ORA $CE0FC0 C2/B4C3: 0F DC 0F EA ORA $EA0FDC C2/B4C7: 0F F8 0F 06 ORA $060FF8 C2/B4CB: 10 C2/B4CC: 1C 07 30 C2/B4CF: 10 3E BPL $B50F C2/B4D1: 10 4C BPL $B51F C2/B4D3: 10 5A BPL $B52F C2/B4D5: 10 C8 BPL $B49F C2/B4D7: 14 D6 TRB $D6 C2/B4D9: 14 1C TRB $1C C2/B4DB: 15 2A ORA $2A,X C2/B4DD: 15 38 ORA $38,X C2/B4DF: 15 F2 ORA $F2,X C2/B4E1: 06 0E ASL $0E C2/B4E3: 07 E4 ORA [$E4] C2/B4E5: 0D 10 11 ORA $1110 C2/B4E8: 1E 11 2C ASL $2C11,X C2/B4EB: 11 3A ORA ($3A),Y C2/B4ED: 11 48 ORA ($48),Y C2/B4EF: 11 56 ORA ($56),Y C2/B4F1: 11 64 ORA ($64),Y C2/B4F3: 11 72 ORA ($72),Y C2/B4F5: 11 80 ORA ($80),Y C2/B4F7: 11 8E ORA ($8E),Y C2/B4F9: 11 9C ORA ($9C),Y C2/B4FB: 11 AA ORA ($AA),Y C2/B4FD: 11 B8 ORA ($B8),Y C2/B4FF: 11 C6 ORA ($C6),Y C2/B501: 11 D4 ORA ($D4),Y C2/B503: 11 E2 ORA ($E2),Y C2/B505: 11 30 ORA ($30),Y C2/B507: 10 68 BPL $B571 C2/B509: 10 76 BPL $B581 C2/B50B: 10 84 BPL $B491 C2/B50D: 10 B2 BPL $B4C1 C2/B50F: 0F 92 10 00 ORA $001092 C2/B513: 0E 42 0F ASL $0F42 C2/B516: A0 10 LDY #$10 C2/B518: AE 10 BC LDX $BC10 C2/B51B: 10 CA BPL $B4E7 C2/B51D: 10 D8 BPL $B4F7 C2/B51F: 10 E6 BPL $B507 C2/B521: 10 F4 BPL $B517 C2/B523: 10 02 BPL $B527 C2/B525: 11 34 ORA ($34),Y C2/B527: 0F 26 0F 18 ORA $180F26 C2/B52B: 0F 0A 0F BA ORA $BA0F0A C2/B52F: 14 18 TRB $18 C2/B531: 16 C2 ASL $C2,X C2/B533: 20 BD 01 JSR $01BD C2/B536: 20 AA 7B JSR $7BAA C2/B539: E2 20 SEP #$20 C2/B53B: E0 06 CPX #$06 C2/B53D: 01 F0 ORA ($F0,X) C2/B53F: 01 6B ORA ($6B,X) C2/B541: A2 2C LDX #$2C C2/B543: 01 86 ORA ($86,X) C2/B545: 26 BF ROL $BF C2/B547: 03 00 ORA $00,S C2/B549: E7 0A SBC [$0A] C2/B54B: AA TAX C2/B54C: BF 48 18 E7 LDA $E71848,X C2/B550: 85 F3 STA $F3 C2/B552: BF 49 18 E7 LDA $E71849,X C2/B556: 85 F4 STA $F4 C2/B558: A9 E7 85 LDA #$85E7 C2/B55B: F5 A9 SBC $A9,X C2/B55D: 00 85 BRK $85 C2/B55F: F6 A9 INC $A9,X C2/B561: C4 85 CPY $85 C2/B563: F7 A9 SBC [$A9],Y C2/B565: 7F 85 F8 22 ADC $22F885,X C2/B569: 6D FF C2 ADC $C2FF C2/B56C: A6 26 LDX $26 C2/B56E: BF 00 00 E7 LDA $E70000,X C2/B572: 29 7F 85 AND #$857F C2/B575: 22 0A 18 65 JSR $65180A C2/B579: 22 AA BF 50 JSR $50BFAA C2/B57D: 16 E7 ASL $E7,X C2/B57F: 85 F3 STA $F3 C2/B581: BF 51 16 E7 LDA $E71651,X C2/B585: 85 F4 STA $F4 C2/B587: BF 52 16 E7 LDA $E71652,X C2/B58B: 85 F5 STA $F5 C2/B58D: A6 26 LDX $26 C2/B58F: BF 02 00 E7 LDA $E70002,X C2/B593: 29 7F 85 AND #$857F C2/B596: 22 0A 18 65 JSR $65180A C2/B59A: 22 AA BF 50 JSR $50BFAA C2/B59E: 16 E7 ASL $E7,X C2/B5A0: 85 F6 STA $F6 C2/B5A2: BF 51 16 E7 LDA $E71651,X C2/B5A6: 85 F7 STA $F7 C2/B5A8: BF 52 16 E7 LDA $E71652,X C2/B5AC: 85 F8 STA $F8 C2/B5AE: C2 20 REP #$20 C2/B5B0: 64 10 STZ $10 C2/B5B2: 7B TDC C2/B5B3: AA TAX C2/B5B4: BF 00 C4 7F LDA $7FC400,X C2/B5B8: 29 FF 01 AND #$01FF C2/B5BB: C9 00 01 CMP #$0100 C2/B5BE: 90 24 BCC $B5E4 C2/B5C0: 29 FF 00 AND #$00FF C2/B5C3: 38 SEC C2/B5C4: E9 80 00 SBC #$0080 C2/B5C7: 0A ASL C2/B5C8: 0A ASL C2/B5C9: 0A ASL C2/B5CA: 0A ASL C2/B5CB: 0A ASL C2/B5CC: A8 TAY C2/B5CD: DA PHX C2/B5CE: A9 10 00 LDA #$0010 C2/B5D1: 85 12 STA $12 C2/B5D3: A6 10 LDX $10 C2/B5D5: B7 F6 LDA [$F6],Y C2/B5D7: 9D 3F AE STA $AE3F,X C2/B5DA: C8 INY C2/B5DB: C8 INY C2/B5DC: E8 INX C2/B5DD: E8 INX C2/B5DE: C6 12 DEC $12 C2/B5E0: D0 F3 BNE $B5D5 C2/B5E2: 80 1B BRA $B5FF C2/B5E4: 0A ASL C2/B5E5: 0A ASL C2/B5E6: 0A ASL C2/B5E7: 0A ASL C2/B5E8: 0A ASL C2/B5E9: A8 TAY C2/B5EA: DA PHX C2/B5EB: A9 10 00 LDA #$0010 C2/B5EE: 85 12 STA $12 C2/B5F0: A6 10 LDX $10 C2/B5F2: B7 F3 LDA [$F3],Y C2/B5F4: 9D 3F AE STA $AE3F,X C2/B5F7: C8 INY C2/B5F8: C8 INY C2/B5F9: E8 INX C2/B5FA: E8 INX C2/B5FB: C6 12 DEC $12 C2/B5FD: D0 F3 BNE $B5F2 C2/B5FF: 86 10 STX $10 C2/B601: FA PLX C2/B602: E8 INX C2/B603: E8 INX C2/B604: E0 00 CPX #$00 C2/B606: 02 D0 COP $D0 C2/B608: AB PLB C2/B609: 7B TDC C2/B60A: E2 20 SEP #$20 C2/B60C: 6B RTL C2/B60D: A2 80 LDX #$80 C2/B60F: 02 86 COP $86 C2/B611: 10 A2 BPL $B5B5 C2/B613: 0F 89 86 14 ORA $148689 C2/B617: 20 2D B6 JSR $B62D C2/B61A: 20 41 B6 JSR $B641 C2/B61D: A6 10 LDX $10 C2/B61F: E8 INX C2/B620: 86 10 STX $10 C2/B622: A6 14 LDX $14 C2/B624: E8 INX C2/B625: 86 14 STX $14 C2/B627: E0 13 CPX #$13 C2/B629: 89 D0 EB BIT #$EBD0 C2/B62C: 6B RTL C2/B62D: 7B TDC C2/B62E: A8 TAY C2/B62F: 18 CLC C2/B630: 71 14 ADC ($14),Y C2/B632: C8 INY C2/B633: C8 INY C2/B634: C8 INY C2/B635: C8 INY C2/B636: C0 60 00 CPY #$0060 C2/B639: D0 F4 BNE $B62F C2/B63B: 49 FF 1A EOR #$1AFF C2/B63E: 91 10 STA ($10),Y C2/B640: 60 RTS C2/B641: A0 00 LDY #$00 C2/B643: 00 B1 BRK $B1 C2/B645: 14 91 TRB $91 C2/B647: 10 C8 BPL $B611 C2/B649: C8 INY C2/B64A: C8 INY C2/B64B: C8 INY C2/B64C: C0 60 00 CPY #$0060 C2/B64F: D0 F3 BNE $B644 C2/B651: 60 RTS C2/B652: AD C6 2E LDA $2EC6 C2/B655: 8D 6B 89 STA $896B C2/B658: AD E6 2E LDA $2EE6 C2/B65B: 8D 6C 89 STA $896C C2/B65E: AD 06 2F LDA $2F06 C2/B661: 8D 6D 89 STA $896D C2/B664: AD 26 2F LDA $2F26 C2/B667: 8D 6E 89 STA $896E C2/B66A: A2 80 02 LDX #$0280 C2/B66D: 86 10 STX $10 C2/B66F: A2 0F 89 LDX #$890F C2/B672: 86 14 STX $14 C2/B674: 20 DE B6 JSR $B6DE C2/B677: 90 03 BCC $B67C C2/B679: 20 C6 B6 JSR $B6C6 C2/B67C: A6 10 E8 LDX $E810 C2/B67F: 86 10 STX $10 C2/B681: A6 14 E8 LDX $E814 C2/B684: 86 14 STX $14 C2/B686: E0 13 89 CPX #$8913 C2/B689: D0 E9 BNE ??? C2/B68B: 7B TDC C2/B68C: AA TAX C2/B68D: BD 6B 89 LDA $896B,X C2/B690: 20 9A B6 JSR $B69A C2/B693: E8 INX C2/B694: E0 04 00 CPX #$0004 C2/B697: D0 F4 BNE $B68D C2/B699: 6B RTL C2/B69A: DA C2/B69B: 85 18 STA $18 C2/B69D: 7B TDC C2/B69E: A8 TAY C2/B69F: B9 DC 02 LDA $02DC,Y C2/B6A2: C5 18 CMP $18 C2/B6A4: F0 08 BEQ $B6AE C2/B6A6: C8 INY C2/B6A7: C0 04 00 CPY #$0004 C2/B6AA: D0 F3 BNE $B69F C2/B6AC: 80 16 BRA $B6C4 C2/B6AE: A9 17 85 LDA #$8517 C2/B6B1: 1A INC C2/B6B2: B9 80 02 LDA $0280,Y C2/B6B5: 9D 0F 89 STA $890F,X C2/B6B8: C8 INY C2/B6B9: C8 INY C2/B6BA: C8 INY C2/B6BB: C8 INY C2/B6BC: E8 INX C2/B6BD: E8 INX C2/B6BE: E8 INX C2/B6BF: E8 INX C2/B6C0: C6 1A DEC $1A C2/B6C2: D0 EE BNE $B6B2 C2/B6C4: FA PLX C2/B6C5: 60 RTS C2/B6C6: 7B TDC C2/B6C7: A8 TAY C2/B6C8: 91 10 STA ($10),Y C2/B6CA: C8 INY C2/B6CB: C8 INY C2/B6CC: C8 INY C2/B6CD: C8 INY C2/B6CE: C0 5C 00 CPY #$005C C2/B6D1: D0 F5 BNE $B6C8 C2/B6D3: A9 FF 91 LDA #$91FF C2/B6D6: 10 C8 BPL $B6A0 C2/B6D8: C8 INY C2/B6D9: C8 INY C2/B6DA: C8 INY C2/B6DB: 91 10 STA ($10),Y C2/B6DD: 60 RTS C2/B6DE: 7B TDC C2/B6DF: A8 TAY C2/B6E0: 18 CLC C2/B6E1: 71 10 ADC ($10),Y C2/B6E3: C8 INY C2/B6E4: C8 INY C2/B6E5: C8 INY C2/B6E6: C8 INY C2/B6E7: C0 60 00 CPY #$0060 C2/B6EA: D0 F4 BNE $B6E0 C2/B6EC: 49 FF 1A EOR #$1AFF C2/B6EF: D1 10 CMP ($10),Y C2/B6F1: F0 02 BEQ $B6F5 C2/B6F3: 38 SEC C2/B6F4: 60 RTS C2/B6F5: 18 CLC C2/B6F6: 60 RTS C2/B6F7: C2 20 REP #$20 C2/B6F9: 7B TDC C2/B6FA: AA TAX C2/B6FB: A9 00 20 LDA #$2000 C2/B6FE: 9D AD 5F STA $5FAD,X C2/B701: E8 INX C2/B702: E8 INX C2/B703: E0 80 CPX #$80 C2/B705: 00 D0 BRK $D0 C2/B707: F6 7B INC $7B,X C2/B709: AA TAX C2/B70A: 9D F5 43 STA $43F5,X C2/B70D: 9D 75 47 STA $4775,X C2/B710: 9D F5 4A STA $4AF5,X C2/B713: E8 INX C2/B714: E8 INX C2/B715: E0 80 CPX #$80 C2/B717: 03 D0 ORA $D0,S C2/B719: F0 A2 BEQ $B6BD C2/B71B: 5C 02 A9 A9 JMP $A9A902 C2/B71F: FF 85 12 A9 SBC $A91285,X C2/B723: 66 FF ROR $FF C2/B725: 85 14 STA $14 C2/B727: A5 12 LDA $12 C2/B729: 9D 77 47 STA $4777,X C2/B72C: A5 14 LDA $14 C2/B72E: 9D F7 4A STA $4AF7,X C2/B731: C6 12 DEC $12 C2/B733: C6 14 DEC $14 C2/B735: E8 INX C2/B736: E8 INX C2/B737: E8 INX C2/B738: E8 INX C2/B739: E0 80 CPX #$80 C2/B73B: 03 D0 ORA $D0,S C2/B73D: E9 A2 7C SBC #$7CA2 C2/B740: 02 A9 COP $A9 C2/B742: 64 00 STZ $00 C2/B744: 85 10 STA $10 C2/B746: A9 0C 00 LDA #$000C C2/B749: 85 12 STA $12 C2/B74B: A5 10 LDA $10 C2/B74D: 9D F7 4A STA $4AF7,X C2/B750: C6 12 DEC $12 C2/B752: D0 0D BNE $B761 C2/B754: A9 0C 00 LDA #$000C C2/B757: 85 12 STA $12 C2/B759: A5 10 LDA $10 C2/B75B: 18 CLC C2/B75C: 69 04 00 ADC #$0004 C2/B75F: 85 10 STA $10 C2/B761: E8 INX C2/B762: E8 INX C2/B763: E8 INX C2/B764: E8 INX C2/B765: E0 3C CPX #$3C C2/B767: 03 D0 ORA $D0,S C2/B769: E1 A2 SBC ($A2,X) C2/B76B: 5C 02 A9 68 JMP $68A902 C2/B76F: 00 9D BRK $9D C2/B771: 77 47 ADC [$47],Y C2/B773: E8 INX C2/B774: E8 INX C2/B775: E8 INX C2/B776: E8 INX C2/B777: E0 5C CPX #$5C C2/B779: 03 D0 ORA $D0,S C2/B77B: F4 7B AA PEA $AA7B C2/B77E: BD 51 4D LDA $4D51,X C2/B781: 9D 75 4E STA $4E75,X C2/B784: 9D 75 4F STA $4F75,X C2/B787: 9D 95 50 STA $5095,X C2/B78A: E8 INX C2/B78B: E8 INX C2/B78C: E0 00 CPX #$00 C2/B78E: 01 D0 ORA ($D0,X) C2/B790: ED BD 51 SBC $51BD C2/B793: 4D 9D 75 EOR $759D C2/B796: 4F 9D 95 50 EOR $50959D C2/B79A: E8 INX C2/B79B: E8 INX C2/B79C: E0 20 CPX #$20 C2/B79E: 01 D0 ORA ($D0,X) C2/B7A0: F0 BD BEQ $B75F C2/B7A2: 51 4D EOR ($4D),Y C2/B7A4: 9D 95 50 STA $5095,X C2/B7A7: E8 INX C2/B7A8: E8 INX C2/B7A9: E0 40 CPX #$40 C2/B7AB: 01 D0 ORA ($D0,X) C2/B7AD: F3 7B SBC ($7B,S),Y C2/B7AF: AA TAX C2/B7B0: BD 73 4D LDA $4D73,X C2/B7B3: 18 CLC C2/B7B4: 69 40 00 ADC #$0040 C2/B7B7: 9D 97 4E STA $4E97,X C2/B7BA: 18 CLC C2/B7BB: 69 40 00 ADC #$0040 C2/B7BE: 9D 97 4F STA $4F97,X C2/B7C1: 38 SEC C2/B7C2: E9 08 00 SBC #$0008 C2/B7C5: 9D B7 50 STA $50B7,X C2/B7C8: E8 INX C2/B7C9: E8 INX C2/B7CA: E8 INX C2/B7CB: E8 INX C2/B7CC: E0 C0 CPX #$C0 C2/B7CE: 00 D0 BRK $D0 C2/B7D0: DF 7B AA BD CMP $BDAA7B,X C2/B7D4: 53 4D EOR ($4D,S),Y C2/B7D6: 38 SEC C2/B7D7: E9 08 00 SBC #$0008 C2/B7DA: 9D 97 50 STA $5097,X C2/B7DD: BD 33 4E LDA $4E33,X C2/B7E0: 38 SEC C2/B7E1: E9 08 00 SBC #$0008 C2/B7E4: 9D 77 51 STA $5177,X C2/B7E7: E8 INX C2/B7E8: E8 INX C2/B7E9: E8 INX C2/B7EA: E8 INX C2/B7EB: E0 20 CPX #$20 C2/B7ED: 00 D0 BRK $D0 C2/B7EF: E3 7B SBC $7B,S C2/B7F1: AA TAX C2/B7F2: 9E D5 53 STZ $53D5,X C2/B7F5: A9 3C 01 LDA #$013C C2/B7F8: 9D D7 53 STA $53D7,X C2/B7FB: E8 INX C2/B7FC: E8 INX C2/B7FD: E8 INX C2/B7FE: E8 INX C2/B7FF: E0 A0 CPX #$A0 C2/B801: 00 D0 BRK $D0 C2/B803: EE 7B AA INC $AA7B C2/B806: A9 18 00 LDA #$0018 C2/B809: 85 12 STA $12 C2/B80B: A9 DC 00 LDA #$00DC C2/B80E: 85 10 STA $10 C2/B810: A9 00 01 LDA #$0100 C2/B813: 9D 75 54 STA $5475,X C2/B816: A5 10 LDA $10 C2/B818: 9D 77 54 STA $5477,X C2/B81B: C6 12 DEC $12 C2/B81D: D0 08 BNE $B827 C2/B81F: A5 10 LDA $10 C2/B821: 18 CLC C2/B822: 69 04 00 ADC #$0004 C2/B825: 85 10 STA $10 C2/B827: E8 INX C2/B828: E8 INX C2/B829: E8 INX C2/B82A: E8 INX C2/B82B: E0 C0 CPX #$C0 C2/B82D: 00 D0 BRK $D0 C2/B82F: E0 7B CPX #$7B C2/B831: AA TAX C2/B832: A9 60 00 LDA #$0060 C2/B835: 85 10 STA $10 C2/B837: A9 14 00 LDA #$0014 C2/B83A: 85 12 STA $12 C2/B83C: A9 00 01 LDA #$0100 C2/B83F: 9D D5 51 STA $51D5,X C2/B842: A5 10 LDA $10 C2/B844: 9D D7 51 STA $51D7,X C2/B847: C6 12 DEC $12 C2/B849: D0 0D BNE $B858 C2/B84B: A9 0C 00 LDA #$000C C2/B84E: 85 12 STA $12 C2/B850: A5 10 LDA $10 C2/B852: 18 CLC C2/B853: 69 04 00 ADC #$0004 C2/B856: 85 10 STA $10 C2/B858: E8 INX C2/B859: E8 INX C2/B85A: E8 INX C2/B85B: E8 INX C2/B85C: E0 E0 CPX #$E0 C2/B85E: 00 D0 BRK $D0 C2/B860: DB STP C2/B861: 7B TDC C2/B862: 9D D5 51 STA $51D5,X C2/B865: 9D D7 51 STA $51D7,X C2/B868: E8 INX C2/B869: E8 INX C2/B86A: E0 00 CPX #$00 C2/B86C: 01 D0 ORA ($D0,X) C2/B86E: F3 7B SBC ($7B,S),Y C2/B870: AA TAX C2/B871: A9 60 00 LDA #$0060 C2/B874: 85 10 STA $10 C2/B876: A9 0C 00 LDA #$000C C2/B879: 85 12 STA $12 C2/B87B: A9 00 01 LDA #$0100 C2/B87E: 9D 05 43 STA $4305,X C2/B881: A5 10 LDA $10 C2/B883: 9D 07 43 STA $4307,X C2/B886: C6 12 DEC $12 C2/B888: D0 0D BNE $B897 C2/B88A: A9 0C 00 LDA #$000C C2/B88D: 85 12 STA $12 C2/B88F: A5 10 LDA $10 C2/B891: 18 CLC C2/B892: 69 04 00 ADC #$0004 C2/B895: 85 10 STA $10 C2/B897: E8 INX C2/B898: E8 INX C2/B899: E8 INX C2/B89A: E8 INX C2/B89B: E0 F0 CPX #$F0 C2/B89D: 00 D0 BRK $D0 C2/B89F: DB STP C2/B8A0: 7B TDC C2/B8A1: E2 20 SEP #$20 C2/B8A3: 6B RTL C2/B8A4: AD F6 E9 LDA $E9F6 C2/B8A7: F0 47 BEQ $B8F0 C2/B8A9: AD F9 E9 LDA $E9F9 C2/B8AC: 29 0F C9 AND #$C90F C2/B8AF: 0F F0 04 1A ORA $1A04F0 C2/B8B3: 8D F9 E9 STA $E9F9 C2/B8B6: E2 10 SEP #$10 C2/B8B8: AD F7 E9 LDA $E9F7 C2/B8BB: 0A ASL C2/B8BC: A8 TAY C2/B8BD: AD F8 E9 LDA $E9F8 C2/B8C0: 0A ASL C2/B8C1: AA TAX C2/B8C2: A9 E0 99 LDA #$99E0 C2/B8C5: 31 EA AND ($EA),Y C2/B8C7: 99 33 EA STA $EA33,Y C2/B8CA: 9D CB EA STA $EACB,X C2/B8CD: 9D CD EA STA $EACD,X C2/B8D0: C9 FF F0 CMP #$F0FF C2/B8D3: 01 1A ORA ($1A,X) C2/B8D5: E8 INX C2/B8D6: E8 INX C2/B8D7: E8 INX C2/B8D8: E8 INX C2/B8D9: 88 DEY C2/B8DA: 88 DEY C2/B8DB: 88 DEY C2/B8DC: 88 DEY C2/B8DD: D0 E5 BNE $B8C4 C2/B8DF: EE F8 E9 INC $E9F8 C2/B8E2: EE F8 E9 INC $E9F8 C2/B8E5: CE F7 E9 DEC $E9F7 C2/B8E8: CE F7 E9 DEC $E9F7 C2/B8EB: D0 03 BNE $B8F0 C2/B8ED: 9C F6 E9 STZ $E9F6 C2/B8F0: C2 10 REP #$10 C2/B8F2: 6B RTL (Division Function: divide 16-bit Variable $2C by 16-bit $2E. Put Quotient in 16-bit $30, and Remainder in 16-bit $32.) C2/B8F3: DA PHX C2/B8F4: C2 20 REP #$20 (Set 16-bit Accumulator) C2/B8F6: 64 30 STZ $30 (zero the quotient) C2/B8F8: 64 32 STZ $32 (zero the remainder) C2/B8FA: A5 2C LDA $2C (load dividend) C2/B8FC: F0 20 BEQ $B91E (branch if zero) C2/B8FE: A5 2E LDA $2E (load divisor) C2/B900: F0 1C BEQ $B91E (branch if zero) C2/B902: A2 10 00 LDX #$0010 C2/B905: 26 2C ROL $2C C2/B906: 26 32 ROL $32 C2/B909: A5 32 LDA $32 C2/B90B: 38 SEC C2/B90C: E5 2E SBC $2E C2/B90E: 85 32 STA $32 C2/B910: B0 07 BCS $B919 C2/B912: A5 32 LDA $32 C2/B914: 65 2E ADC $2E C2/B916: 85 32 STA $32 C2/B918: 18 CLC C2/B919: 26 30 ROL $30 C2/B91B: CA DEX C2/B91C: D0 E7 BNE $B905 (iterate 16 times, as there are 16 bits in dividend) C2/B91E: A9 00 00 LDA #$0000 (TDC would work here) C2/B921: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/B923: FA PLX C2/B924: 60 RTS (called from Bank C1, once each frame) C2/B925: AD EF EC LDA $ECEF C2/B928: 29 40 AND #$40 C2/B92A: D0 01 BNE $B92D (proceed to C2/B92D if in a timed event?) C2/B92C: 6B RTL (otherwise, exit) C2/B92D: AD 8F 62 LDA $628F C2/B930: F0 04 BEQ $B936 (branch if first time C2/B92D executed this battle, or if a frame delay variable reached zero on the prior call.) C2/B932: CE 8F 62 DEC $628F (otherwise, decrement frame delay variable, and skip running C2/B936 for now.) C2/B935: 6B RTL (Breaks a timer into minutes and seconds and prepares it for display. Is called in battles on escape from Floating Continent, for instance.) C2/B936: A9 3C LDA #$3C (should be #$3B. see next instruction.) C2/B938: 8D 8F 62 STA $628F (try to make wait 60 frames until next display update. the problem is, due to the way C2/B92D works, this will wait 61 frames. thus, the visual timer will lag 1 to 59 frames behind the real timer. and after 61 real seconds into a timed battle [possibly sooner], the visual timer will decrement by 2 seconds on one tick.) C2/B93B: AF 89 11 00 LDA $001189 (bottom byte of timer. the FC timer starts at 5460h, and counts down each frame.) C2/B93F: 85 2C STA $2C C2/B941: AF 8A 11 00 LDA $00118A (top byte of timer) C2/B945: 85 2D STA $2D C2/B947: A2 3C 00 LDX #$003C C2/B94A: 86 2E STX $2E (we're going to divide by 60) C2/B94C: 20 F3 B8 JSR $B8F3 (Divide 16-bit Variable $2C by 16-bit $2E. Put Quotient in 16-bit $30, and Remainder in 16-bit $32.) C2/B94F: A6 30 LDX $30 C2/B951: 86 2C STX $2C (put quotient into variable $2C) C2/B953: A2 3C 00 LDX #$003C C2/B956: 86 2E STX $2E (we'll be dividing by 60 again) C2/B958: 20 F3 B8 JSR $B8F3 (Divide 16-bit Variable $2C by 16-bit $2E. Put Quotient in 16-bit $30, and Remainder in 16-bit $32.) C2/B95B: 7B TDC C2/B95C: AA TAX (zero X, which we'll use as a temporary tens digit.) C2/B95D: A5 30 LDA $30 (we divided by 60 twice, so this variable is our Minutes, and variable $32 our Seconds.) C2/B95F: 38 SEC C2/B960: E9 0A SBC #$0A (subtract 10 from Minutes) C2/B962: 90 03 BCC $B967 (if the Minutes had been < 10, branch) C2/B964: E8 INX (Minutes were >=10, so increment our tens digit.) C2/B965: 80 F8 BRA $B95F (loop and do it again, until we finally get Minutes < 10 [iow, single-digit Minutes].) C2/B967: 18 CLC C2/B968: 69 BE ADC #$BE (add BEh to ones digit of our Minutes) C2/B96A: 8D 92 62 STA $6292 (save it) C2/B96D: 8A TXA (put tens digit in A) C2/B96E: D0 04 BNE $B974 (branch if tens digit is nonzero) C2/B970: A9 FF LDA #$FF C2/B972: 80 03 BRA $B977 (branch and store null where tens digit of Minutes would appear.) C2/B974: 18 CLC C2/B975: 69 B4 ADC #$B4 (add B4h to tens digit of our Minutes) C2/B977: 8D 90 62 STA $6290 (save it) C2/B97A: 7B TDC C2/B97B: AA TAX (zero X, which we'll use as a temporary tens digit.) C2/B97C: A5 32 LDA $32 (get our Seconds) C2/B97E: 38 SEC C2/B97F: E9 0A SBC #$0A (subtract 10 from Seconds) C2/B981: 90 03 BCC $B986 (if the Seconds had been < 10, branch) C2/B983: E8 INX (Seconds were >=10, so increment our tens digit.) C2/B984: 80 F8 BRA $B97E (loop and do it again, until we finally get Seconds < 10 [iow, single-digit Seconds].) C2/B986: 18 CLC C2/B987: 69 BE ADC #$BE (add BEh to ones digit of our Seconds) C2/B989: 8D 98 62 STA $6298 (save it) C2/B98C: 8A TXA (put tens digit in A) C2/B98D: 18 CLC C2/B98E: 69 B4 ADC #$B4 (add B4h to tens digit of our Seconds) C2/B991: 8D 96 62 STA $6296 (save it. note that we're not bothering to check for a zero tens digit of Seconds, as blanking the digit would make no sense given we're displaying Minutes directly to the left of it.) C2/B993: A9 C1 LDA #$C1 C2/B996: 8D 94 62 STA $6294 C2/B998: 6B RTL C2/B999: AE F6 7A LDX $7AF6 C2/B99C: BD D3 74 LDA $74D3,X C2/B99F: C2 20 REP #$20 C2/B9A1: 0A ASL C2/B9A2: 0A ASL C2/B9A3: 85 10 STA $10 C2/B9A5: BD 30 6A LDA $6A30,X C2/B9A8: 29 FF 00 AND #$00FF C2/B9AB: 0A ASL C2/B9AC: 0A ASL C2/B9AD: 0A ASL C2/B9AE: 85 12 STA $12 C2/B9B0: BD 3C 6A LDA $6A3C,X C2/B9B3: 18 CLC C2/B9B4: 65 12 ADC $12 C2/B9B6: 38 SEC C2/B9B7: E5 10 SBC $10 C2/B9B9: 9D 3C 6A STA $6A3C,X C2/B9BC: 7B TDC C2/B9BD: E2 20 SEP #$20 C2/B9BF: 6B RTL C2/B9C0: AE F6 7A LDX $7AF6 C2/B9C3: BD D3 74 LDA $74D3,X C2/B9C6: C2 20 REP #$20 C2/B9C8: 0A ASL C2/B9C9: 0A ASL C2/B9CA: 85 10 STA $10 C2/B9CC: BD 30 6A LDA $6A30,X C2/B9CF: 29 FF 00 AND #$00FF C2/B9D2: 0A ASL C2/B9D3: 0A ASL C2/B9D4: 0A ASL C2/B9D5: 85 12 STA $12 C2/B9D7: BD 3C 6A LDA $6A3C,X C2/B9DA: 18 CLC C2/B9DB: 65 10 ADC $10 C2/B9DD: 38 SEC C2/B9DE: E5 12 SBC $12 C2/B9E0: 9D 3C 6A STA $6A3C,X C2/B9E3: 7B TDC C2/B9E4: E2 20 SEP #$20 C2/B9E6: 6B RTL (Picture a 4x4 grid of 32x32-pixel monster subsprites with 16 possible positions on it: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F The structures below are for each of those 16 positions, and the positions are used by the monster formation molds.) (1st byte: horizontal grid position * 32 ? 2nd byte: vertical grid position * 32 ? 3rd byte: position's offset in terms of 8x8-pixel tile units 4th byte: always 01 ??) (Position 00) C2/B9E7: 00 00 C2/B9E9: 00 01 (Position 01) C2/B9EB: 20 00 C2/B9ED: 04 01 (Position 02) C2/B9EF: 40 00 C2/B9F1: 08 01 (Position 03) C2/B9F3: 60 00 C2/B9F5: 0C 01 (Position 04) C2/B9F7: 00 20 C2/B9F9: 40 01 (Position 05) C2/B9FB: 20 20 C2/B9FD: 44 01 (Position 06) C2/B9FF: 40 20 C2/BA01: 48 01 (Position 07) C2/BA03: 60 20 C2/BA05: 4C 01 (Position 08) C2/BA07: 00 40 C2/BA09: 80 01 (Position 09) C2/BA0B: 20 40 C2/BA0D: 84 01 (Position 0A) C2/BA0F: 40 40 C2/BA11: 88 01 (Position 0B) C2/BA13: 60 40 C2/BA15: 8C 01 (Position 0C) C2/BA17: 00 60 C2/BA19: C0 01 (Position 0D) C2/BA1B: 20 60 C2/BA1D: C4 01 (Position 0E) C2/BA1F: 40 60 C2/BA21: C8 01 (Position 0F) C2/BA23: 60 60 C2/BA25: CC 01 C2/BA27: A0 01 00 LDY #$0001 C2/BA2A: B7 8F LDA [$8F],Y C2/BA2C: 29 7F AND #$7F C2/BA2F: 85 10 STA $10 C2/BA31: 64 12 STZ $12 C2/BA33: 7B TDC C2/BA34: AA TAX C2/BA35: A5 10 LDA $10 C2/BA37: DD C6 2E CMP $2EC6,X C2/BA39: F0 0E BEQ $BA49 C2/BA3B: E6 12 INC $12 C2/BA3D: 8A TXA C2/BA3E: 18 CLC C2/BA3F: 69 20 ADC #$20 C2/BA41: AA TAX C2/BA42: E0 80 00 CPX #$0080 C2/BA44: D0 ED BNE $BA34 C2/BA46: 18 CLC C2/BA47: 60 RTS C2/BA49: 38 SEC C2/BA4A: 60 RTS C2/BA4B: 20 27 BA JSR $BA27 C2/BA4E: 90 1D BCC $BA6D C2/BA50: B7 8F LDA [$8F],Y C2/BA52: 10 2D BPL $BA81 C2/BA54: AE D6 64 LDX $64D6 C2/BA57: 86 14 STX $14 C2/BA59: AE D8 64 LDX $64D8 C2/BA5C: 86 16 STX $16 C2/BA5E: 7B TDC C2/BA5F: AA TAX C2/BA60: A5 12 LDA $12 C2/BA62: DD D6 64 CMP $64D6,X C2/BA65: F0 09 BEQ $BA70 C2/BA67: E8 INX C2/BA68: E0 04 00 CPX #$0004 C2/BA6B: D0 F5 BNE $BA62 C2/BA6D: 4C C8 BA JMP $BAC8 C2/BA70: A9 FF LDA #$FF C2/BA73: 9D 14 00 STA $0014,X C2/BA75: A2 FF FF LDX #$FFFF C2/BA77: 8E D6 64 STX $64D6 C2/BA7B: 8E D8 64 STX $64D8 C2/BA7E: 4C B6 BA JMP $BAB6 C2/BA81: 7B TDC C2/BA82: AA TAX C2/BA83: A5 12 LDA $12 C2/BA85: DD D6 64 CMP $64D6,X C2/BA88: F0 3E BEQ $BAC8 C2/BA8A: E8 INX C2/BA8B: E0 04 00 CPX #$0004 C2/BA8E: D0 F5 BNE $BA85 C2/BA90: A2 FF FF LDX #$FFFF C2/BA91: DA PHX C2/BA92: 86 14 STX $14 C2/BA94: 86 16 STX $16 C2/BA96: 7B TDC C2/BA99: AA TAX C2/BA9A: BD D6 64 LDA $64D6,X C2/BA9D: 30 04 BMI $BAA3 C2/BA9F: A8 TAY C2/BAA0: 99 14 00 STA $0014,Y C2/BAA3: E8 INX C2/BAA4: E0 04 00 CPX #$0004 C2/BAA7: D0 F1 BNE $BA9A C2/BAA9: A5 12 LDA $12 C2/BAAB: A8 TAY C2/BAAC: 99 14 00 STA $0014,Y C2/BAAF: FA PLX C2/BAB0: 8E D6 64 STX $64D6 C2/BAB3: 8E D8 64 STX $64D8 C2/BAB6: 7B TDC C2/BAB7: AA TAX C2/BAB8: A8 TAY C2/BAB9: B9 14 00 LDA $0014,Y C2/BABC: 30 04 BMI $BAC2 C2/BABE: 9D D6 64 STA $64D6,X C2/BAC1: E8 INX C2/BAC2: C8 INY C2/BAC3: C0 04 00 CPY #$0004 C2/BAC6: D0 F1 BNE $BAB9 C2/BAC8: A6 8F LDX $8F C2/BACA: E8 INX C2/BACB: 86 8F STX $8F C2/BACD: 7B TDC C2/BACE: AA TAX C2/BACF: C2 20 REP #$20 C2/BAD1: A9 FF 21 LDA #$21FF C2/BAD4: 9D 95 5B STA $5B95,X C2/BAD7: E8 INX C2/BAD8: E8 INX C2/BAD9: E0 70 00 CPX #$0070 C2/BADC: D0 F6 BNE $BAD4 C2/BADE: 7B TDC C2/BADF: E2 20 SEP #$20 C2/BAE1: 6B RTL C2/BAE2: 20 27 BA JSR $BA27 C2/BAE5: 90 24 BCC $BB0B C2/BAE7: A5 12 LDA $12 C2/BAE9: AA TAX C2/BAEA: BF 01 1A C1 LDA $C11A01,X C2/BAEE: 85 12 STA $12 C2/BAF0: B7 8F LDA [$8F],Y C2/BAF2: 30 0A BMI $BAFE C2/BAF4: AD 4E 2F LDA $2F4E C2/BAF7: 05 12 ORA $12 C2/BAF9: 8D 4E 2F STA $2F4E C2/BAFC: 80 0D BRA $BB0B C2/BAFE: AD 4C 2F LDA $2F4C C2/BB01: 05 12 ORA $12 C2/BB03: 8D 4C 2F STA $2F4C C2/BB06: A9 FF LDA #$FF C2/BB08: 9D 01 40 STA $4001,X C2/BB0B: A6 8F LDX $8F C2/BB0D: E8 INX C2/BB0E: 86 8F STX $8F C2/BB10: 6B RTL C2/BB11: 29 0F AND #$0F C2/BB13: 0A ASL C2/BB14: AA TAX C2/BB15: 7C 18 BB JMP ($BB18,X) (Data - function pointers) C2/BB18: 46 BB C2/BB1A: 1C BB C2/BB1C: A0 02 00 LDY #$0002 C2/BB1F: B1 76 LDA ($76),Y C2/BB21: 85 22 STA $22 C2/BB23: A9 0C LDA #$0C (SwdTech name length) C2/BB25: 85 24 STA $24 C2/BB27: 22 D5 18 C1 JSL $C118D5 (Multiplier function) C2/BB2B: A6 26 LDX $26 C2/BB2D: 7B TDC C2/BB2E: A8 TAY C2/BB2F: BF 40 3C CF LDA $CF3C40,X (SwdTech names) C2/BB33: C9 FF CMP #$FF C2/BB35: F0 0A BEQ $BB41 C2/BB37: 99 D5 57 STA $57D5,Y C2/BB3A: E8 INX C2/BB3B: C8 INY C2/BB3C: C0 0C 00 CPY #$000C C2/BB3F: D0 EE BNE $BB2F C2/BB41: 7B TDC C2/BB42: 99 D5 57 STA $57D5,Y C2/BB45: 6B RTL C2/BB46: A0 02 00 LDY #$0002 C2/BB49: B1 76 LDA ($76),Y C2/BB4B: 85 22 STA $22 C2/BB4D: A9 0A LDA #$0A (Esper attack name length) C2/BB4F: 85 24 STA $24 C2/BB51: 22 D5 18 C1 JSL $C118D5 (Multiplier function) C2/BB55: A6 26 LDX $26 C2/BB57: 7B TDC C2/BB58: A8 TAY C2/BB59: BF 8F FE E6 LDA $E6FE8F,X (Esper attack names) C2/BB5D: C9 FF CMP #$FF C2/BB5F: F0 0A BEQ $BB6B C2/BB61: 99 D5 57 STA $57D5,Y C2/BB64: E8 INX C2/BB65: C8 INY C2/BB66: C0 0A 00 CPY #$000A C2/BB69: D0 EE BNE $BB59 C2/BB6B: 7B TDC C2/BB6C: 99 D5 57 STA $57D5,Y C2/BB6F: 6B RTL (Number of bytes to shift enemy's Imp sprite forward in the monster graphics buffer, so that it's centered properly. Provides the bottom byte of a 2-byte pointer, and is indexed from Bank C1 by [original enemy's width / 8] * 2. Keep in mind that an 8x8-pixel tile is 32 bytes.) C2/BB70: 00 00 (if 0 pixels wide) (don't shift right) C2/BB72: 00 00 (if 8 pixels wide) C2/BB74: 00 00 (if 16 pixels wide) C2/BB76: 00 00 (if 24 pixels wide) C2/BB78: 00 00 (if 32 pixels wide) C2/BB7A: 20 00 (if 40 pixels wide) (shift right 1 tile) C2/BB7C: 20 00 (if 48 pixels wide) C2/BB7E: 40 00 (if 56 pixels wide) (shift right 2 tiles) C2/BB80: 40 00 (if 64 pixels wide) C2/BB82: 60 00 (if 72 pixels wide) (shift right 3 tiles) C2/BB84: 60 00 (if 80 pixels wide) C2/BB86: 80 00 (if 88 pixels wide) (shift right 4 tiles) C2/BB88: 80 00 (if 96 pixels wide) C2/BB8A: A0 00 (if 104 pixels wide) (shift right 5 tiles) C2/BB8C: A0 00 (if 112 pixels wide) C2/BB8E: C0 00 (if 120 pixels wide) (shift right 6 tiles) C2/BB90: C0 00 (if 128 pixels wide) (Number of bytes to shift enemy's Imp sprite forward in the monster graphics buffer, so that it's centered properly. Provides the top byte of a 2-byte pointer, and is indexed from Bank C1 by [original enemy's height / 8] * 2. Keep in mind that an 8x8-pixel tile is 32 bytes, and each row in the buffer has 16 tiles.) C2/BB92: 00 00 (if 0 pixels tall) (don't shift down) C2/BB94: 00 00 (if 8 pixels tall) C2/BB96: 00 00 (if 16 pixels tall) C2/BB98: 00 00 (if 24 pixels tall) C2/BB9A: 00 00 (if 32 pixels tall) C2/BB9C: 00 02 (if 40 pixels tall) (shift down 1 tile) C2/BB9E: 00 02 (if 48 pixels tall) C2/BBA0: 00 04 (if 56 pixels tall) (shift down 2 tiles) C2/BBA2: 00 04 (if 64 pixels tall) C2/BBA4: 00 06 (if 72 pixels tall) (shift down 3 tiles) C2/BBA6: 00 06 (if 80 pixels tall) C2/BBA8: 00 08 (if 88 pixels tall) (shift down 4 tiles) C2/BBAA: 00 08 (if 96 pixels tall) C2/BBAC: 00 0A (if 104 pixels tall) (shift down 5 tiles) C2/BBAE: 00 0A (if 112 pixels tall) C2/BBB0: 00 0C (if 120 pixels tall) (shift down 6 tiles) C2/BBB2: 00 0C (if 128 pixels tall) C2/BBB4: AE F6 7A LDX $7AF6 (animation ID) C2/BBB7: DA PHX C2/BBB8: 22 69 24 C1 JSR $C12469 C2/BBBC: 7B TDC C2/BBBD: AA TAX C2/BBBE: BD 60 7E LDA $7E60,X C2/BBC1: 9D C0 7F STA $7FC0,X C2/BBC4: E8 INX C2/BBC5: E0 20 00 CPX #$0020 C2/BBC8: D0 F4 BNE $BBBE C2/BBCA: EE B0 62 INC $62B0 C2/BBCC: FA PLX C2/BBCD: 6B RTL (Used by Crusader, for Purifier/Collapse of Heaven and Earth/ Apocalypse attack) C2/BBCF: AE 69 61 LDX $6169 (from C1/CBD6) C2/BBD2: 7B TDC (set accumulator to 0) C2/BBD3: A8 TAY (set Y to 0) C2/BBD4: BF 40 78 D2 LDA $D27840,X C2/BBD8: 99 E0 7F STA $7FE0,Y (write over character 4's palette and reflect's barrier palette, set's left sprite palette) C2/BBDB: 99 E0 7D STA $7DE0,Y (same as above) C2/BBDE: E8 INX C2/BBDF: C8 INY C2/BBE0: C0 20 00 CPY #$0020 C2/BBE3: D0 EF BNE $BBD4 C2/BBE5: 6B RTL (Random number generator) C2/BBE6: DA PHX (from C2/B1CF) C2/BBE7: A5 72 LDA $72 C2/BBE9: AA TAX C2/BBEA: E6 72 INC $72 C2/BBEC: BF 00 FD C0 LDA $C0FD00,X (get a random number) C2/BBF0: FA PLX C2/BBF1: 60 RTS C2/BBF2: C0 C2/BBF3: C1 C2/BBF4: C2 C2/BBF5: C3 C2/BBF6: C4 C2/BBF7: C5 C2/BBF8: C1 C2/BBF9: C3 C2/BBFA: AE F6 7A LDX $7AF6 (animation ID) C2/BBFD: C2 20 REP #$20 C2/BBFF: 9E CE 74 STZ $74CE,X C2/BC02: 9E D0 74 STZ $74D0,X C2/BC05: E2 20 SEP #$20 C2/BC07: 6B RTL C2/BC08: A5 0E LDA $0E C2/BC0A: 29 07 AND #$07 C2/BC0C: D0 29 BNE $5C37 C2/BC0E: 20 E6 BB JSR $BBE6 (random number generator) C2/BC11: 29 07 AND #$07 C2/BC13: AA TAX C2/BC14: BF F2 BB C2 LDA $C2BBF2,X C2/BC18: C2 20 REP #$20 C2/BC1A: 0A ASL C2/BC1B: 0A ASL C2/BC1C: 0A ASL C2/BC1D: 0A ASL C2/BC1E: AA TAX C2/BC1F: 7B TDC C2/BC20: A8 TAY C2/BC21: BF 00 60 D2 LDA $D26000,X C2/BC25: 99 60 7F STA $7F60,Y C2/BC28: 99 70 7F STA $7F70,Y C2/BC2B: E8 INX C2/BC2C: E8 INX C2/BC2D: C8 INY C2/BC2E: C8 INY C2/BC2F: C0 10 00 CPY #$0010 C2/BC32: D0 ED BNE $BC21 C2/BC34: 7B TDC C2/BC35: E2 20 SEP #$20 C2/BC37: 6B RTL C2/BC38: A00100 LDY #$0001 C2/BC3B: ADAE62 LDA $62AE C2/BC3E: 18 CLC C2/BC3F: 775B ADC [$5B],Y C2/BC41: 8DAE62 STA $62AE C2/BC44: 8512 STA $12 C2/BC46: A9E0 LDA #$E0 C2/BC48: 8D9689 STA $8996 C2/BC4B: A25C02 LDX #$025C C2/BC4E: A00400 LDY #$0004 C2/BC51: 6410 STZ $10 C2/BC53: A510 LDA $10 C2/BC55: 4A LSR A C2/BC56: 4A LSR A C2/BC57: 38 SEC C2/BC58: E512 SBC $12 C2/BC5A: 1001 BPL $BC5D C2/BC5C: 7B TDC C2/BC5D: 0980 ORA #$80 C2/BC5F: 999689 STA $8996,Y C2/BC62: 9D9689 STA $8996,X C2/BC65: CA DEX C2/BC66: CA DEX C2/BC67: CA DEX C2/BC68: CA DEX C2/BC69: C8 INY C2/BC6A: C8 INY C2/BC6B: C8 INY C2/BC6C: C8 INY C2/BC6D: E610 INC $10 C2/BC6F: A510 LDA $10 C2/BC71: C94C CMP #$4C C2/BC73: D0DE BNE $BC53 C2/BC75: A45B LDY $5B C2/BC77: C8 INY C2/BC78: 845B STY $5B C2/BC7A: EEAD62 INC $62AD C2/BC7D: AEF67A LDX $7AF6 C2/BC80: 6B RTL C2/BC81: C220 REP #$20 C2/BC83: 7B TDC C2/BC84: AA TAX C2/BC85: 9DF544 STA $44F5,X C2/BC88: 9D7544 STA $4475,X C2/BC8B: 9DB063 STA $63B0,X C2/BC8E: E8 INX C2/BC8F: E8 INX C2/BC90: E08000 CPX #$0080 C2/BC93: D0F0 BNE $BC85 C2/BC95: 7B TDC C2/BC96: E220 SEP #$20 C2/BC98: 6B RTL C2/BC99: 7B TDC C2/BC9A: AA TAX C2/BC9B: BF00FDC0 LDA $C0FD00,X C2/BC9F: 291F AND #$1F C2/BCA1: 9DF544 STA $44F5,X C2/BCA4: 9EF644 STZ $44F6,X C2/BCA7: 9E7544 STZ $4475,X C2/BCAA: 9E7644 STZ $4476,X C2/BCAD: E8 INX C2/BCAE: E8 INX C2/BCAF: E8 INX C2/BCB0: E8 INX C2/BCB1: E08000 CPX #$0080 C2/BCB4: D0E5 BNE $BC9B C2/BCB6: 6B RTL C2/BCB7: C220 REP #$20 C2/BCB9: 7B TDC C2/BCBA: AA TAX C2/BCBB: BDF544 LDA $44F5,X C2/BCBE: F005 BEQ $BCC5 C2/BCC0: DEF544 DEC $44F5,X C2/BCC3: 8011 BRA $BCD6 C2/BCC5: BD7544 LDA $4475,X C2/BCC8: 38 SEC C2/BCC9: E90800 SBC #$0008 C2/BCCC: 9D7544 STA $4475,X C2/BCCF: 18 CLC C2/BCD0: 7DB063 ADC $63B0,X C2/BCD3: 9DB063 STA $63B0,X C2/BCD6: E8 INX C2/BCD7: E8 INX C2/BCD8: E8 INX C2/BCD9: E8 INX C2/BCDA: E08000 CPX #$0080 C2/BCDD: D0DC BNE $BCBB C2/BCDF: 7B TDC C2/BCE0: E220 SEP #$20 C2/BCE2: 6B RTL C2/BCE3: A00100 LDY #$0001 C2/BCE6: B75B LDA [$5B],Y C2/BCE8: D015 BNE $BCFF C2/BCEA: 7B TDC C2/BCEB: AA TAX C2/BCEC: C220 REP #$20 C2/BCEE: A908F7 LDA #$F708 C2/BCF1: 9D219A STA $9A21,X C2/BCF4: E8 INX C2/BCF5: E8 INX C2/BCF6: E8 INX C2/BCF7: E8 INX C2/BCF8: E05C02 CPX #$025C C2/BCFB: D0F4 BNE $BCF1 C2/BCFD: 803B BRA $BD3A C2/BCFF: C220 REP #$20 C2/BD01: 0A ASL A C2/BD02: 0A ASL A C2/BD03: 8510 STA $10 C2/BD05: 7B TDC C2/BD06: AA TAX C2/BD07: A05C02 LDY #$025C C2/BD0A: A9FF00 LDA #$00FF C2/BD0D: 9D219A STA $9A21,X C2/BD10: 99219A STA $9A21,Y C2/BD13: E8 INX C2/BD14: E8 INX C2/BD15: E8 INX C2/BD16: E8 INX C2/BD17: 88 DEY C2/BD18: 88 DEY C2/BD19: 88 DEY C2/BD1A: 88 DEY C2/BD1B: E410 CPX $10 C2/BD1D: D0EE BNE $BD0D C2/BD1F: E03001 CPX #$0130 C2/BD22: F016 BEQ $BD3A C2/BD24: A908F7 LDA #$F708 C2/BD27: 9D219A STA $9A21,X C2/BD2A: 99219A STA $9A21,Y C2/BD2D: E8 INX C2/BD2E: E8 INX C2/BD2F: E8 INX C2/BD30: E8 INX C2/BD31: 88 DEY C2/BD32: 88 DEY C2/BD33: 88 DEY C2/BD34: 88 DEY C2/BD35: E03001 CPX #$0130 C2/BD38: D0ED BNE $BD27 C2/BD3A: E65B INC $5B C2/BD3C: 7B TDC C2/BD3D: E220 SEP #$20 C2/BD3F: EE9761 INC $6197 C2/BD42: 6B RTL C2/BD43: A9FF LDA #$FF C2/BD45: 8D9D62 STA $629D C2/BD48: 9C472F STZ $2F47 C2/BD4B: 9C9261 STZ $6192 C2/BD4E: C220 REP #$20 C2/BD50: 7B TDC C2/BD51: AA TAX C2/BD52: A9FFFF LDA #$FFFF C2/BD55: 9D4662 STA $6246,X C2/BD58: E8 INX C2/BD59: E8 INX C2/BD5A: E01000 CPX #$0010 C2/BD5D: D0F6 BNE $BD55 C2/BD5F: 7B TDC C2/BD60: E220 SEP #$20 C2/BD62: AD492F LDA $2F49 C2/BD65: 102E BPL $BD95 C2/BD67: AD4A2F LDA $2F4A C2/BD6A: 8522 STA $22 C2/BD6C: A918 LDA #$18 C2/BD6E: 8524 STA $24 C2/BD70: 22D518C1 JSR $C118D5 C2/BD74: A626 LDX $26 C2/BD76: BF01FDD0 LDA $D0FD01,X C2/BD7A: C9FF CMP #$FF C2/BD7C: F006 BEQ $BD84 C2/BD7E: 8DB8EC STA $ECB8 C2/BD81: 9CB9EC STZ $ECB9 C2/BD84: BF02FDD0 LDA $D0FD02,X C2/BD88: 8D462F STA $2F46 C2/BD8B: BF03FDD0 LDA $D0FD03,X C2/BD8F: 8D9D62 STA $629D C2/BD92: 206EBE JSR $BE6E C2/BD95: AD 4B 2F LDA $2F4B (Monster Aux. Byte 4) C2/BD98: 30 36 BMI $BDCD (Branch if "No music" bit is set) C2/BD9A: EE ED E9 INC $E9ED C2/BD9D: A9 10 LDA #$10 C2/BD9F: 8D 00 13 STA $1300 C2/BDA2: A9 FF LDA #$FF (Volume) C2/BDA4: 8D 02 13 STA $1302 (Save volume) C2/BDA7: AD 9D 62 LDA $629D C2/BDAA: C9 FF CMP #$FF C2/BDAC: D0 11 BNE $BDBF C2/BDAE: AD 4B 2F LDA $2F4B (Monster Aux. Byte 4) C2/BDB1: 29 38 AND #$38 (Isolate song) C2/BDB3: 4A LSR A C2/BDB4: 4A LSR A C2/BDB5: 4A LSR A (Get an index from 0 to 7) C2/BDB6: AA TAX C2/BDB7: BF 3B BF C2 LDA $C2BF3B,X (Load song ID) C2/BDBB: C9 FF CMP #$FF C2/BDBD: F0 0E BEQ $BDCD (branch if we keep the current music playing) C2/BDBF: 8D 01 13 STA $1301 (save song ID) C2/BDC2: AD E4 11 LDA $11E4 C2/BDC5: 29 08 AND #$08 C2/BDC7: D0 04 BNE $04 C2/BDC9: 22 04 00 C5 JSL $C50004 (Play song) C2/BDCD: 9CEDE9 STZ $E9ED C2/BDD0: 7B TDC C2/BDD1: AA TAX C2/BDD2: A8 TAY C2/BDD3: C220 REP #$20 C2/BDD5: 9EC72E STZ $2EC7,X C2/BDD8: B94662 LDA $6246,Y C2/BDDB: C9FFFF CMP #$FFFF C2/BDDE: F003 BEQ $BDE3 C2/BDE0: FEC72E INC $2EC7,X C2/BDE3: 98 TYA C2/BDE4: 18 CLC C2/BDE5: 690400 ADC #$0004 C2/BDE8: A8 TAY C2/BDE9: 8A TXA C2/BDEA: 18 CLC C2/BDEB: 692000 ADC #$0020 C2/BDEE: AA TAX C2/BDEF: E08000 CPX #$0080 C2/BDF2: D0E1 BNE $BDD5 C2/BDF4: 7B TDC C2/BDF5: E220 SEP #$20 C2/BDF7: A901 LDA #$01 C2/BDF9: 8510 STA $10 C2/BDFB: 7B TDC C2/BDFC: AA TAX C2/BDFD: BDC62E LDA $2EC6,X C2/BE00: C92F CMP #$2F C2/BE02: D008 BNE $BE0C C2/BE04: AD9261 LDA $6192 C2/BE07: 0510 ORA $10 C2/BE09: 8D9261 STA $6192 C2/BE0C: 0610 ASL $10 C2/BE0E: 8A TXA C2/BE0F: 18 CLC C2/BE10: 6920 ADC #$20 C2/BE12: AA TAX C2/BE13: C980 CMP #$80 C2/BE15: D0E6 BNE $BDFD C2/BE17: AD9261 LDA $6192 C2/BE1A: 49FF EOR #$FF C2/BE1C: 8D9261 STA $6192 C2/BE1F: EEEDE9 INC $E9ED C2/BE22: A982 LDA #$82 C2/BE24: 8D0013 STA $1300 C2/BE27: 7B TDC C2/BE28: 8D0113 STA $1301 C2/BE2B: 3A DEC A C2/BE2C: 8D0213 STA $1302 C2/BE2F: ADE411 LDA $11E4 C2/BE32: 2908 AND #$08 C2/BE34: D004 BNE $BE3A C2/BE36: 220400C5 JSR $C50004 C2/BE3A: 9CEDE9 STZ $E9ED C2/BE3D: AF4F1D00 LDA $001D4F C2/BE41: 2940 AND #$40 C2/BE43: 8D9C62 STA $629C C2/BE46: AF541D00 LDA $001D54 C2/BE4A: 1019 BPL $BE65 C2/BE4C: AF4F1D00 LDA $001D4F C2/BE50: 8510 STA $10 C2/BE52: 7B TDC C2/BE53: AA TAX C2/BE54: A510 LDA $10 C2/BE56: 2901 AND #$01 C2/BE58: 9D9861 STA $6198,X C2/BE5B: 4610 LSR $10 C2/BE5D: E8 INX C2/BE5E: E00400 CPX #$0004 C2/BE61: D0F1 BNE $BE54 C2/BE63: 8008 BRA $BE6D C2/BE65: 7B TDC C2/BE66: AA TAX C2/BE67: 8E9861 STX $6198 C2/BE6A: 8E9A61 STX $619A C2/BE6D: 6B RTL C2/BE6E: DA PHX C2/BE6F: BF00FDD0 LDA $D0FD00,X C2/BE73: 3074 BMI $BEE9 C2/BE75: A904 LDA #$04 C2/BE77: 8510 STA $10 C2/BE79: BF04FDD0 LDA $D0FD04,X C2/BE7D: C9FF CMP #$FF C2/BE7F: F066 BEQ $BEE7 C2/BE81: 293F AND #$3F C2/BE83: 8512 STA $12 C2/BE85: 6414 STZ $14 C2/BE87: 7B TDC C2/BE88: A8 TAY C2/BE89: A901 LDA #$01 C2/BE8B: 8518 STA $18 C2/BE8D: B9C62E LDA $2EC6,Y C2/BE90: C512 CMP $12 C2/BE92: D03D BNE $BED1 C2/BE94: BF04FDD0 LDA $D0FD04,X C2/BE98: 2940 AND #$40 C2/BE9A: F005 BEQ $BEA1 C2/BE9C: A518 LDA $18 C2/BE9E: 8D472F STA $2F47 C2/BEA1: BF04FDD0 LDA $D0FD04,X C2/BEA5: 1008 BPL $BEAF C2/BEA7: A518 LDA $18 C2/BEA9: 0D9261 ORA $6192 C2/BEAC: 8D9261 STA $6192 C2/BEAF: A514 LDA $14 C2/BEB1: 0A ASL A C2/BEB2: 0A ASL A C2/BEB3: A8 TAY C2/BEB4: BF07FDD0 LDA $D0FD07,X C2/BEB8: C9FF CMP #$FF C2/BEBA: F022 BEQ $BEDE C2/BEBC: C220 REP #$20 C2/BEBE: 0A ASL A C2/BEBF: 994662 STA $6246,Y C2/BEC2: BF08FDD0 LDA $D0FD08,X C2/BEC6: 29FF00 AND #$00FF C2/BEC9: 0A ASL A C2/BECA: 994862 STA $6248,Y C2/BECD: E220 SEP #$20 C2/BECF: 800D BRA $BEDE C2/BED1: 0618 ASL $18 C2/BED3: E614 INC $14 C2/BED5: 98 TYA C2/BED6: 18 CLC C2/BED7: 6920 ADC #$20 C2/BED9: A8 TAY C2/BEDA: C980 CMP #$80 C2/BEDC: D0AF BNE $BE8D C2/BEDE: E8 INX C2/BEDF: E8 INX C2/BEE0: E8 INX C2/BEE1: E8 INX C2/BEE2: E8 INX C2/BEE3: C610 DEC $10 C2/BEE5: D092 BNE $BE79 C2/BEE7: FA PLX C2/BEE8: 60 RTS C2/BEE9: 7B TDC C2/BEEA: A8 TAY C2/BEEB: A901 LDA #$01 C2/BEED: 8510 STA $10 C2/BEEF: BF04FDD0 LDA $D0FD04,X C2/BEF3: C9FF CMP #$FF C2/BEF5: F017 BEQ $BF0E C2/BEF7: 2940 AND #$40 C2/BEF9: F005 BEQ $BF00 C2/BEFB: A510 LDA $10 C2/BEFD: 8D472F STA $2F47 C2/BF00: BF04FDD0 LDA $D0FD04,X C2/BF04: 1008 BPL $BF0E C2/BF06: A510 LDA $10 C2/BF08: 0D9261 ORA $6192 C2/BF0B: 8D9261 STA $6192 C2/BF0E: BF07FDD0 LDA $D0FD07,X C2/BF12: C9FF CMP #$FF C2/BF14: F013 BEQ $BF29 C2/BF16: C220 REP #$20 C2/BF18: 0A ASL A C2/BF19: 994662 STA $6246,Y C2/BF1C: BF08FDD0 LDA $D0FD08,X C2/BF20: 29FF00 AND #$00FF C2/BF23: 0A ASL A C2/BF24: 994862 STA $6248,Y C2/BF27: E220 SEP #$20 C2/BF29: 0610 ASL $10 C2/BF2B: C8 INY C2/BF2C: C8 INY C2/BF2D: C8 INY C2/BF2E: C8 INY C2/BF2F: E8 INX C2/BF30: E8 INX C2/BF31: E8 INX C2/BF32: E8 INX C2/BF33: E8 INX C2/BF34: C01000 CPY #$0010 C2/BF37: D0B6 BNE $BEEF (does this answer your question, Wendy's lady?!) (iterate 4 times) C2/BF39: FA PLX C2/BF3A: 60 RTS (Song index table) C2/BF3B: 24 (Battle Theme) C2/BF3C: 14 (Boss Theme) C2/BF3D: 33 (Atma Weapon) C2/BF3E: 2E (Returner) C2/BF3F: 1A (Factory) C2/BF40: 3B (Final) C2/BF41: FF (current 1) C2/BF42: FF (current 2) (Data - indexed by C1/1105, pointer between 0 and 7) C2/BF43: 00 C2/BF44: C2 C2/BF45: 40 C2/BF46: C2 C2/BF47: 80 C2/BF48: C2 C2/BF49: C0 C2/BF4A: C2 C2/BF4B: 00 C2/BF4C: C3 40 CMP $40,S C2/BF4E: C3 80 CMP $80,S C2/BF50: C3 C0 CMP $C0,S C2/BF52: C3 AD CMP $AD,S C2/BF54: DB STP C2/BF55: E9 29 03 SBC #$0329 C2/BF58: D0 30 BNE $BF8A C2/BF5A: AD DB E9 LDA $E9DB C2/BF5D: 4A LSR C2/BF5E: 4A LSR C2/BF5F: 29 03 AA AND #$AA03 C2/BF62: BD 2A 20 LDA $202A,X C2/BF65: F0 05 BEQ $BF6C C2/BF67: 20 8E BF JSR $BF8E C2/BF6A: 80 1E BRA $BF8A C2/BF6C: 8A TXA C2/BF6D: 0A ASL C2/BF6E: AA TAX C2/BF6F: C2 20 REP #$20 C2/BF71: BF 43 BF C2 LDA $C2BF43,X C2/BF75: AA TAX C2/BF76: 7B TDC C2/BF77: A0 20 LDY #$20 C2/BF79: 00 9F BRK $9F C2/BF7B: 00 00 BRK $00 C2/BF7D: 7F 9F 00 01 ADC $01009F,X C2/BF81: 7F E8 E8 88 ADC $88E8E8,X C2/BF85: D0 F3 BNE $BF7A C2/BF87: 7B TDC C2/BF88: E2 20 SEP #$20 C2/BF8A: EE DB E9 INC $E9DB C2/BF8D: 6B RTL C2/BF8E: A0 00 LDY #$00 C2/BF90: 00 BD BRK $BD C2/BF92: 2A ROL C2/BF93: 20 3A 38 JSR $383A C2/BF96: E9 0A 90 SBC #$900A C2/BF99: 03 C8 ORA $C8,S C2/BF9B: 80 F8 BRA $BF95 C2/BF9D: 18 CLC C2/BF9E: 69 0A 85 ADC #$850A C2/BFA1: 10 84 BPL $BF27 C2/BFA3: 12 8B ORA ($8B) C2/BFA5: A9 7F 48 LDA #$487F C2/BFA8: AB PLB C2/BFA9: 8A TXA C2/BFAA: 0A ASL C2/BFAB: AA TAX C2/BFAC: C2 20 REP #$20 C2/BFAE: DA PHX C2/BFAF: BF 43 BF C2 LDA $C2BF43,X C2/BFB3: AA TAX C2/BFB4: A5 12 LDA $12 C2/BFB6: 20 DF BF JSR $BFDF C2/BFB9: A5 10 LDA $10 C2/BFBB: 20 DF BF JSR $BFDF C2/BFBE: FA PLX C2/BFBF: BF 4B BF C2 LDA $C2BF4B,X C2/BFC3: AA TAX C2/BFC4: A5 10 LDA $10 C2/BFC6: 20 D3 BF JSR $BFD3 C2/BFC9: A5 12 LDA $12 C2/BFCB: 20 D3 BF JSR $BFD3 C2/BFCE: 7B TDC C2/BFCF: E2 20 SEP #$20 C2/BFD1: AB PLB C2/BFD2: 60 RTS C2/BFD3: DA PHX C2/BFD4: 29 FF 00 AND #$00FF C2/BFD7: 0A ASL C2/BFD8: AA TAX C2/BFD9: BF 13 C0 C2 LDA $C2C013,X C2/BFDD: 80 0A BRA $BFE9 C2/BFDF: DA PHX C2/BFE0: 29 FF 00 AND #$00FF C2/BFE3: 0A ASL C2/BFE4: AA TAX C2/BFE5: BF FF BF C2 LDA $C2BFFF,X C2/BFE9: A8 TAY C2/BFEA: FA PLX C2/BFEB: A9 10 00 LDA #$0010 C2/BFEE: 85 14 STA $14 C2/BFF0: B9 00 00 LDA $0000,Y C2/BFF3: 9D 00 00 STA $0000,X C2/BFF6: E8 INX C2/BFF7: E8 INX C2/BFF8: C8 INY C2/BFF9: C8 INY C2/BFFA: C6 14 DEC $14 C2/BFFC: D0 F2 BNE $BFF0 C2/BFFE: 60 RTS C2/BFFF: 00 BE BRK $BE C2/C001: 20 BE 40 JSR $40BE C2/C004: BE 60 BE LDX $BE60,Y C2/C007: 80 BE BRA $BFC7 C2/C009: A0 BE LDY #$BE C2/C00B: C0 BE E0 CPY #$E0BE C2/C00E: BE 00 BF LDX $BF00,Y C2/C011: 20 BF 00 JSR $00BF C2/C014: C0 20 C0 CPY #$C020 C2/C017: 40 RTI C2/C018: C0 60 C0 CPY #$C060 C2/C01B: 80 C0 BRA $BFDD C2/C01D: A0 C0 LDY #$C0 C2/C01F: C0 C0 E0 CPY #$E0C0 C2/C022: C0 00 C1 CPY #$C100 C2/C025: 20 C1 85 JSR $85C1 C2/C028: 12 86 ORA ($86) C2/C02A: 10 8B BPL $BFB7 C2/C02C: A9 7F 48 LDA #$487F C2/C02F: AB PLB C2/C030: 7B TDC C2/C031: AA TAX C2/C032: A9 08 85 LDA #$8508 C2/C035: 18 CLC C2/C036: C2 20 REP #$20 C2/C038: A0 10 LDY #$10 C2/C03A: 00 A7 BRK $A7 C2/C03C: 10 85 BPL $BFC3 C2/C03E: 1C B7 10 TRB $10B7 C2/C041: 85 1A STA $1A C2/C043: 7B TDC C2/C044: E2 20 SEP #$20 C2/C046: A0 08 LDY #$08 C2/C048: 00 7B BRK $7B C2/C04A: 06 1B ASL $1B C2/C04C: 2A ROL C2/C04D: 06 1A ASL $1A C2/C04F: 2A ROL C2/C050: 06 1D ASL $1D C2/C052: 2A ROL C2/C053: 06 1C ASL $1C C2/C055: 2A ROL C2/C056: 29 1F F0 AND #$F01F C2/C059: 02 09 COP $09 C2/C05B: 30 9D BMI $BFFA C2/C05D: 01 C4 ORA ($C4,X) C2/C05F: E8 INX C2/C060: E8 INX C2/C061: 88 DEY C2/C062: D0 E5 BNE $C049 C2/C064: A4 10 LDY $10 C2/C066: C8 INY C2/C067: C8 INY C2/C068: 84 10 STY $10 C2/C06A: C6 18 DEC $18 C2/C06C: D0 C8 BNE $C036 C2/C06E: C2 20 REP #$20 C2/C070: A5 10 LDA $10 C2/C072: 18 CLC C2/C073: 69 10 00 ADC #$0010 C2/C076: 85 10 STA $10 C2/C078: 7B TDC C2/C079: E2 20 SEP #$20 C2/C07B: C6 14 DEC $14 C2/C07D: D0 B3 BNE $C032 C2/C07F: AB PLB C2/C080: 6B RTL C2/C081: A7 5B LDA [$5B] C2/C083: 0A ASL C2/C084: AA TAX C2/C085: FC 8C C0 JSR ($C08C,X) C2/C088: AE F6 7A LDX $7AF6 C2/C08B: 6B RTL Pointers C2/C08C: 9B TXY C2/C08D: C3 62 CMP $62,S C2/C08F: C3 1E CMP $1E,S C2/C091: C3 39 CMP $39,S C2/C093: C3 03 CMP $03,S C2/C095: C3 B7 CMP $B7,S C2/C097: C2 6A REP #$6A C2/C099: C2 47 REP #$47 C2/C09B: C2 D6 REP #$D6 C2/C09D: C1 B3 CMP ($B3,X) C2/C09F: C1 94 CMP ($94,X) C2/C0A1: C1 71 CMP ($71,X) C2/C0A3: C1 36 CMP ($36,X) C2/C0A5: C1 15 CMP ($15,X) C2/C0A7: C1 F8 CMP ($F8,X) C2/C0A9: C0 F2 C0 CPY #$C0F2 C2/C0AC: B9 C0 B0 LDA $B0C0,Y C2/C0AF: C0 AD 4B CPY #$4BAD C2/C0B2: 2F 09 01 8D AND $8D0109 C2/C0B6: 4B PHK C2/C0B7: 2F 60 A0 01 AND $01A060 C2/C0BB: 00 B7 BRK $B7 C2/C0BD: 5B TCD C2/C0BE: 20 D2 C0 JSR $C0D2 C2/C0C1: AA TAX C2/C0C2: BF 01 1A C1 LDA $C11A01,X C2/C0C6: 0D 92 61 ORA $6192 C2/C0C9: 8D 92 61 STA $6192 C2/C0CC: A4 5B LDY $5B C2/C0CE: C8 INY C2/C0CF: 84 5B STY $5B C2/C0D1: 60 RTS C2/C0D2: 85 10 STA $10 C2/C0D4: 7B TDC C2/C0D5: AA TAX C2/C0D6: 64 12 STZ $12 C2/C0D8: A5 10 LDA $10 C2/C0DA: DD C6 2E CMP $2EC6,X C2/C0DD: F0 0E BEQ $C0ED C2/C0DF: E6 12 INC $12 C2/C0E1: 8A TXA C2/C0E2: 18 CLC C2/C0E3: 69 20 AA ADC #$AA20 C2/C0E6: E0 80 CPX #$80 C2/C0E8: 00 D0 BRK $D0 C2/C0EA: ED 7B 60 SBC $607B C2/C0ED: A5 12 LDA $12 C2/C0EF: 29 03 60 AND #$6003 C2/C0F2: A9 01 1C LDA #$1C01 C2/C0F5: 52 2F EOR ($2F) C2/C0F7: 60 RTS C2/C0F8: A0 01 LDY #$01 C2/C0FA: 00 B7 BRK $B7 C2/C0FC: 5B TCD C2/C0FD: F0 05 BEQ $C104 C2/C0FF: 8D 85 62 STA $6285 C2/C102: 80 0B BRA $C10F C2/C104: 9C 85 62 STZ $6285 C2/C107: 7B TDC C2/C108: AA TAX C2/C109: 8E B0 64 STX $64B0 C2/C10C: 8E B2 64 STX $64B2 C2/C10F: A4 5B LDY $5B C2/C111: C8 INY C2/C112: 84 5B STY $5B C2/C114: 60 RTS C2/C115: A0 01 LDY #$01 C2/C117: 00 B7 BRK $B7 C2/C119: 5B TCD C2/C11A: 0A ASL C2/C11B: 0A ASL C2/C11C: 0A ASL C2/C11D: 0A ASL C2/C11E: 0A ASL C2/C11F: AA TAX C2/C120: 7B TDC C2/C121: A8 TAY C2/C122: BF 99 D4 C2 LDA $C2D499,X C2/C126: 99 00 7F STA $7F00,Y C2/C129: E8 INX C2/C12A: C8 INY C2/C12B: C0 20 00 CPY #$0020 C2/C12E: D0 F2 BNE $C122 C2/C130: A4 5B LDY $5B C2/C132: C8 INY C2/C133: 84 5B STY $5B C2/C135: 60 RTS C2/C136: A0 01 LDY #$01 C2/C138: 00 B7 BRK $B7 C2/C13A: 5B TCD C2/C13B: 85 12 STA $12 C2/C13D: 7B TDC C2/C13E: AA TAX C2/C13F: 64 10 STZ $10 C2/C141: BD C6 2E LDA $2EC6,X C2/C144: C5 12 CMP $12 C2/C146: F0 0E BEQ $C156 C2/C148: E6 10 INC $10 C2/C14A: 8A TXA C2/C14B: 18 CLC C2/C14C: 69 20 AA ADC #$AA20 C2/C14F: E0 80 CPX #$80 C2/C151: 00 D0 BRK $D0 C2/C153: ED 80 14 SBC $1480 C2/C156: C8 INY C2/C157: B7 5B LDA [$5B],Y C2/C159: 9D AE 2E STA $2EAE,X C2/C15C: A5 10 LDA $10 C2/C15E: 8D 78 7B STA $7B78 C2/C161: AE F6 7A LDX $7AF6 C2/C164: DA PHX C2/C165: 22 75 2F C1 JSR $C12F75 C2/C169: FA PLX C2/C16A: A4 5B LDY $5B C2/C16C: C8 INY C2/C16D: C8 INY C2/C16E: 84 5B STY $5B C2/C170: 60 RTS C2/C171: A0 01 LDY #$01 C2/C173: 00 EE BRK $EE C2/C175: ED E9 7B SBC $7BE9 C2/C178: AA TAX C2/C179: B7 5B LDA [$5B],Y C2/C17B: 9D 00 13 STA $1300,X C2/C17E: C8 INY C2/C17F: E8 INX C2/C180: E0 03 CPX #$03 C2/C182: 00 D0 BRK $D0 C2/C184: F4 22 04 PEA $0422 C2/C187: 00 C5 BRK $C5 C2/C189: 9C ED E9 STZ $E9ED C2/C18C: A4 5B LDY $5B C2/C18E: C8 INY C2/C18F: C8 INY C2/C190: C8 INY C2/C191: 84 5B STY $5B C2/C193: 60 RTS C2/C194: A0 01 LDY #$01 C2/C196: 00 B7 BRK $B7 C2/C198: 5B TCD C2/C199: 22 C6 BA C1 JSR $C1BAC6 C2/C19D: A4 5B LDY $5B C2/C19F: C8 INY C2/C1A0: 84 5B STY $5B C2/C1A2: 60 RTS C2/C1A3: 19 18 18 ORA $1818,Y C2/C1A6: 1A INC C2/C1A7: 1A INC C2/C1A8: 1B TCS C2/C1A9: 1B TCS C2/C1AA: 19 1A 18 ORA $181A,Y C2/C1AD: 18 CLC C2/C1AE: 19 19 1B ORA $1B19,Y C2/C1B1: 1B TCS C2/C1B2: 1A INC C2/C1B3: 22 99 F9 C1 JSR $C1F999 C2/C1B7: 48 PHA C2/C1B8: 20 A7 C2 JSR $C2A7 C2/C1BB: BD 87 6F LDA $6F87,X C2/C1BE: F0 02 BEQ $C1C2 C2/C1C0: A9 08 85 LDA #$8508 C2/C1C3: 10 68 BPL $C22D C2/C1C5: 4A LSR C2/C1C6: 4A LSR C2/C1C7: 4A LSR C2/C1C8: 4A LSR C2/C1C9: 4A LSR C2/C1CA: 18 CLC C2/C1CB: 65 10 ADC $10 C2/C1CD: AA TAX C2/C1CE: BF A3 C1 C2 LDA $C2C1A3,X C2/C1D2: 99 C0 61 STA $61C0,Y C2/C1D5: 60 RTS C2/C1D6: 64 11 STZ $11 C2/C1D8: 64 13 STZ $13 C2/C1DA: A0 01 LDY #$01 C2/C1DC: 00 B7 BRK $B7 C2/C1DE: 5B TCD C2/C1DF: 10 02 BPL $C1E3 C2/C1E1: C6 11 DEC $11 C2/C1E3: 85 10 STA $10 C2/C1E5: C8 INY C2/C1E6: B7 5B LDA [$5B],Y C2/C1E8: 10 02 BPL $C1EC C2/C1EA: C6 13 DEC $13 C2/C1EC: 85 12 STA $12 C2/C1EE: C2 20 REP #$20 C2/C1F0: AE F6 7A LDX $7AF6 C2/C1F3: BD 87 6F LDA $6F87,X C2/C1F6: 29 FF 00 AND #$00FF C2/C1F9: D0 1A BNE $C215 C2/C1FB: BD 7E 6F LDA $6F7E,X C2/C1FE: BD 82 6F LDA $6F82,X C2/C201: 18 CLC C2/C202: 65 10 ADC $10 C2/C204: 9D 82 6F STA $6F82,X C2/C207: BD 80 6F LDA $6F80,X C2/C20A: BD 84 6F LDA $6F84,X C2/C20D: 18 CLC C2/C20E: 65 12 ADC $12 C2/C210: 9D 84 6F STA $6F84,X C2/C213: 80 1A BRA $C22F C2/C215: A5 10 LDA $10 C2/C217: 49 FF FF EOR #$FFFF C2/C21A: 1A INC C2/C21B: 85 10 STA $10 C2/C21D: BD 82 6F LDA $6F82,X C2/C220: 18 CLC C2/C221: 65 10 ADC $10 C2/C223: 9D 82 6F STA $6F82,X C2/C226: BD 84 6F LDA $6F84,X C2/C229: 18 CLC C2/C22A: 65 12 ADC $12 C2/C22C: 9D 84 6F STA $6F84,X C2/C22F: E6 5B INC $5B C2/C231: E6 5B INC $5B C2/C233: 7B TDC C2/C234: E2 20 SEP #$20 C2/C236: 60 RTS C2/C237: 03 02 ORA $02,S C2/C239: 02 04 COP $04 C2/C23B: 04 05 TSB $05 C2/C23D: 05 03 ORA $03 C2/C23F: 04 02 TSB $02 C2/C241: 02 03 COP $03 C2/C243: 03 05 ORA $05,S C2/C245: 05 04 ORA $04 C2/C247: 22 99 F9 C1 JSR $C1F999 C2/C24B: 48 PHA C2/C24C: 20 A7 C2 JSR $C2A7 C2/C24F: BD 87 6F LDA $6F87,X C2/C252: F0 02 BEQ $C256 C2/C254: A9 08 85 LDA #$8508 C2/C257: 10 68 BPL $C2C1 C2/C259: 4A LSR C2/C25A: 4A LSR C2/C25B: 4A LSR C2/C25C: 4A LSR C2/C25D: 4A LSR C2/C25E: 18 CLC C2/C25F: 65 10 ADC $10 C2/C261: AA TAX C2/C262: BF 37 C2 C2 LDA $C2C237,X C2/C266: 99 C0 61 STA $61C0,Y C2/C269: 60 RTS C2/C26A: A0 01 LDY #$01 C2/C26C: 00 B7 BRK $B7 C2/C26E: 5B TCD C2/C26F: 85 10 STA $10 C2/C271: C8 INY C2/C272: B7 5B LDA [$5B],Y C2/C274: 85 12 STA $12 C2/C276: 64 11 STZ $11 C2/C278: 64 13 STZ $13 C2/C27A: 20 A7 C2 JSR $C2A7 C2/C27D: C2 20 REP #$20 C2/C27F: A5 10 LDA $10 C2/C281: 99 B7 61 STA $61B7,Y C2/C284: 7B TDC C2/C285: 99 C5 61 STA $61C5,Y C2/C288: 99 D4 61 STA $61D4,Y C2/C28B: A5 12 LDA $12 C2/C28D: 99 B9 61 STA $61B9,Y C2/C290: 7B TDC C2/C291: 99 C7 61 STA $61C7,Y C2/C294: 99 D2 61 STA $61D2,Y C2/C297: E6 5B INC $5B C2/C299: E6 5B INC $5B C2/C29B: 7B TDC C2/C29C: E2 20 SEP #$20 C2/C29E: 60 RTS C2/C29F: AE F6 7A LDX $7AF6 C2/C2A2: BD 39 6A LDA $6A39,X C2/C2A5: 80 06 BRA $C2AD C2/C2A7: AE F6 7A LDX $7AF6 C2/C2AA: BD 38 6A LDA $6A38,X C2/C2AD: 0A ASL C2/C2AE: 0A ASL C2/C2AF: 0A ASL C2/C2B0: 0A ASL C2/C2B1: 0A ASL C2/C2B2: A8 TAY C2/C2B3: 8C F8 7A STY $7AF8 C2/C2B6: 60 RTS C2/C2B7: A0 01 LDY #$01 C2/C2B9: 00 B7 BRK $B7 C2/C2BB: 5B TCD C2/C2BC: 85 10 STA $10 C2/C2BE: 7B TDC C2/C2BF: A8 TAY C2/C2C0: AA TAX C2/C2C1: B9 C6 2E LDA $2EC6,Y C2/C2C4: C5 10 CMP $10 C2/C2C6: F0 0D BEQ $C2D5 C2/C2C8: E8 INX C2/C2C9: 98 TYA C2/C2CA: 18 CLC C2/C2CB: 69 20 A8 ADC #$A820 C2/C2CE: E0 04 CPX #$04 C2/C2D0: 00 D0 BRK $D0 C2/C2D2: EE 7B AA INC $AA7B C2/C2D5: 8A TXA C2/C2D6: 0A ASL C2/C2D7: 0A ASL C2/C2D8: 0A ASL C2/C2D9: 0A ASL C2/C2DA: 0A ASL C2/C2DB: A8 TAY C2/C2DC: AE F6 7A LDX $7AF6 C2/C2DF: C2 20 REP #$20 C2/C2E1: B9 B7 61 LDA $61B7,Y C2/C2E4: 18 CLC C2/C2E5: 79 C5 61 ADC $61C5,Y C2/C2E8: 18 CLC C2/C2E9: 79 D4 61 ADC $61D4,Y C2/C2EC: 9D 82 6F STA $6F82,X C2/C2EF: B9 B9 61 LDA $61B9,Y C2/C2F2: 18 CLC C2/C2F3: 79 C7 61 ADC $61C7,Y C2/C2F6: 18 CLC C2/C2F7: 79 D2 61 ADC $61D2,Y C2/C2FA: 9D 84 6F STA $6F84,X C2/C2FD: E6 5B INC $5B C2/C2FF: 7B TDC C2/C300: E2 20 SEP #$20 C2/C302: 60 RTS C2/C303: AE F6 7A LDX $7AF6 C2/C306: BD 38 6A LDA $6A38,X C2/C309: 0A ASL C2/C30A: 0A ASL C2/C30B: A8 TAY C2/C30C: C2 20 REP #$20 C2/C30E: B9 36 62 LDA $6236,Y C2/C311: 9D 82 6F STA $6F82,X C2/C314: B9 38 62 LDA $6238,Y C2/C317: 9D 84 6F STA $6F84,X C2/C31A: 7B TDC C2/C31B: E2 20 SEP #$20 C2/C31D: 60 RTS C2/C31E: 20 A7 C2 JSR $C2A7 C2/C321: BD 38 6A LDA $6A38,X C2/C324: 0A ASL C2/C325: 0A ASL C2/C326: AA TAX C2/C327: C2 20 REP #$20 C2/C329: B9 B7 61 LDA $61B7,Y C2/C32C: 9D 36 62 STA $6236,X C2/C32F: B9 B9 61 LDA $61B9,Y C2/C332: 9D 38 62 STA $6238,X C2/C335: 7B TDC C2/C336: E2 20 SEP #$20 C2/C338: 60 RTS C2/C339: 20 A7 C2 JSR $C2A7 C2/C33C: BD 38 6A LDA $6A38,X C2/C33F: 0A ASL C2/C340: 0A ASL C2/C341: AA TAX C2/C342: C2 20 REP #$20 C2/C344: BD 36 62 LDA $6236,X C2/C347: 99 B7 61 STA $61B7,Y C2/C34A: 7B TDC C2/C34B: 99 C5 61 STA $61C5,Y C2/C34E: 99 D4 61 STA $61D4,Y C2/C351: BD 38 62 LDA $6238,X C2/C354: 99 B9 61 STA $61B9,Y C2/C357: 7B TDC C2/C358: 99 C7 61 STA $61C7,Y C2/C35B: 99 D2 61 STA $61D2,Y C2/C35E: 7B TDC C2/C35F: E2 20 SEP #$20 C2/C361: 60 RTS C2/C362: 20 A7 C2 JSR $C2A7 C2/C365: C2 20 REP #$20 C2/C367: B9 B7 61 LDA $61B7,Y C2/C36A: 18 CLC C2/C36B: 79 C5 61 ADC $61C5,Y C2/C36E: 18 CLC C2/C36F: 79 D4 61 ADC $61D4,Y C2/C372: 99 B7 61 STA $61B7,Y C2/C375: 9D 7E 6F STA $6F7E,X C2/C378: 7B TDC C2/C379: 99 C5 61 STA $61C5,Y C2/C37C: 99 D4 61 STA $61D4,Y C2/C37F: B9 B9 61 LDA $61B9,Y C2/C382: 18 CLC C2/C383: 79 C7 61 ADC $61C7,Y C2/C386: 18 CLC C2/C387: 79 D2 61 ADC $61D2,Y C2/C38A: 99 B9 61 STA $61B9,Y C2/C38D: 9D 80 6F STA $6F80,X C2/C390: 7B TDC C2/C391: 99 C7 61 STA $61C7,Y C2/C394: 99 D2 61 STA $61D2,Y C2/C397: 7B TDC C2/C398: E2 20 SEP #$20 C2/C39A: 60 RTS C2/C39B: AE F6 7A LDX $7AF6 C2/C39E: A4 5B LDY $5B C2/C3A0: C8 INY C2/C3A1: 84 5B STY $5B C2/C3A3: BD 38 6A LDA $6A38,X C2/C3A6: A8 TAY C2/C3A7: A7 5B LDA [$5B] C2/C3A9: F0 14 BEQ $C3BF C2/C3AB: B9 10 7B LDA $7B10,Y C2/C3AE: D0 21 BNE $C3D1 C2/C3B0: 1A INC C2/C3B1: 99 10 7B STA $7B10,Y C2/C3B4: 9D 87 6F STA $6F87,X C2/C3B7: BD 38 6A LDA $6A38,X C2/C3BA: 20 D5 C3 JSR $C3D5 C2/C3BD: 80 12 BRA $C3D1 C2/C3BF: B9 10 7B LDA $7B10,Y C2/C3C2: F0 0D BEQ $C3D1 C2/C3C4: 7B TDC C2/C3C5: 99 10 7B STA $7B10,Y C2/C3C8: 9D 87 6F STA $6F87,X C2/C3CB: BD 38 6A LDA $6A38,X C2/C3CE: 20 D5 C3 JSR $C3D5 C2/C3D1: AE F6 7A LDX $7AF6 C2/C3D4: 60 RTS C2/C3D5: 0A ASL C2/C3D6: 0A ASL C2/C3D7: 0A ASL C2/C3D8: 0A ASL C2/C3D9: 0A ASL C2/C3DA: AA TAX C2/C3DB: BD BE 61 LDA $61BE,X C2/C3DE: 49 40 9D EOR #$9D40 C2/C3E1: BE 61 60 LDX $6061,Y C2/C3E4: 3F CE 93 CE AND $CE93CE,X C2/C3E8: E7 CE SBC [$CE] C2/C3EA: 3B TSC C2/C3EB: CF 8F CF E3 CMP $E3CF8F C2/C3EF: CF 37 D0 8B CMP $8BD037 C2/C3F3: D0 DF BNE $C3D4 C2/C3F5: D0 33 BNE $C42A C2/C3F7: D1 87 CMP ($87),Y C2/C3F9: D1 DB CMP ($DB),Y C2/C3FB: D1 2F CMP ($2F),Y C2/C3FD: D2 83 CMP ($83) C2/C3FF: D2 D7 CMP ($D7) C2/C401: D2 2B CMP ($2B) C2/C403: D3 7F CMP ($7F,S),Y C2/C405: D3 D3 CMP ($D3,S),Y C2/C407: D3 27 CMP ($27,S),Y C2/C409: D4 7B PEI $7B C2/C40B: D4 CF PEI $CF C2/C40D: D4 23 PEI $23 C2/C40F: D5 77 CMP $77,X C2/C411: D5 CB CMP $CB,X C2/C413: D5 1F CMP $1F,X C2/C415: D6 73 DEC $73,X C2/C417: D6 C7 DEC $C7,X C2/C419: D6 1B DEC $1B,X C2/C41B: D7 6F CMP [$6F],Y C2/C41D: D7 C3 CMP [$C3],Y C2/C41F: D7 17 CMP [$17],Y C2/C421: D8 CLD C2/C422: 6B RTL C2/C423: D8 CLD C2/C424: BF D8 13 D9 LDA $D913D8,X C2/C428: 67 D9 ADC [$D9] C2/C42A: BB TYX C2/C42B: D9 0F DA CMP $DA0F,Y C2/C42E: 63 DA ADC $DA,S C2/C430: B7 DA LDA [$DA],Y C2/C432: 0B PHD C2/C433: DB STP C2/C434: 5F DB B3 DB EOR $DBB3DB,X C2/C438: 07 DC ORA [$DC] C2/C43A: 5B TCD C2/C43B: DC AF DC JMP [$DCAF] C2/C43E: 03 DD ORA $DD,S C2/C440: 57 DD EOR [$DD],Y C2/C442: AB PLB C2/C443: DD FF DD CMP $DDFF,X C2/C446: 53 DE EOR ($DE,S),Y C2/C448: A7 DE LDA [$DE] C2/C44A: FB XCE C2/C44B: DE 4F DF DEC $DF4F,X C2/C44E: A3 DF LDA $DF,S C2/C450: F7 DF SBC [$DF],Y C2/C452: 4B PHK C2/C453: E0 9F CPX #$9F C2/C455: E0 F3 CPX #$F3 C2/C457: E0 47 CPX #$47 C2/C459: E1 9B SBC ($9B,X) C2/C45B: E1 EF SBC ($EF,X) C2/C45D: E1 43 SBC ($43,X) C2/C45F: E2 97 SEP #$97 C2/C461: E2 EB SEP #$EB C2/C463: E2 00 SEP #$00 C2/C465: 00 74 BRK $74 C2/C467: C4 00 CPY $00 C2/C469: 40 RTI C2/C46A: 80 C4 BRA $C430 C2/C46C: 00 80 BRK $80 C2/C46E: 8C C4 00 STY $00C4 C2/C471: C0 98 C4 CPY #$C498 C2/C474: 59 82 9D EOR $9D82,Y C2/C477: 82 E1 82 BRL $C0475B C2/C47A: 25 83 AND $83 C2/C47C: 69 83 AD ADC #$AD83 C2/C47F: 83 F1 STA $F1,S C2/C481: 83 35 STA $35,S C2/C483: 84 79 STY $79 C2/C485: 84 BD STY $BD C2/C487: 84 01 STY $01 C2/C489: 85 45 STA $45 C2/C48B: 85 89 STA $89 C2/C48D: 85 CD STA $CD C2/C48F: 85 11 STA $11 C2/C491: 86 55 STX $55 C2/C493: 86 99 STX $99 C2/C495: 86 DD STX $DD C2/C497: 86 21 STX $21 C2/C499: 87 65 STA [$65] C2/C49B: 87 A9 STA [$A9] C2/C49D: 87 ED STA [$ED] C2/C49F: 87 31 STA [$31] C2/C4A1: 88 DEY C2/C4A2: 75 88 ADC $88,X (Note: the game just loads the first pointer for each mold, then consecutively reads all 6 entries' data.) (Pointers for monster formation Mold 0) C2/C4A4: 43 C5 C2/C4A6: 4A C5 C2/C4A8: 51 C5 C2/C4AA: 58 C5 C2/C4AC: 40 C5 C2/C4AE: 40 C5 (Pointers for monster formation Mold 1) C2/C4B0: 5F C5 C2/C4B2: 66 C5 C2/C4B4: 6D C5 C2/C4B6: 71 C5 C2/C4B8: 75 C5 C2/C4BA: 79 C5 (Pointers for monster formation Mold 2) C2/C4BC: 7D C5 C2/C4BE: 86 C5 C2/C4C0: 40 C5 C2/C4C2: 40 C5 C2/C4C4: 40 C5 C2/C4C6: 40 C5 (Pointers for monster formation Mold 3) C2/C4C8: 8F C5 C2/C4CA: 9A C5 C2/C4CC: 40 C5 C2/C4CE: 40 C5 C2/C4D0: 40 C5 C2/C4D2: 40 C5 (Pointers for monster formation Mold 4) C2/C4D4: A5 C5 C2/C4D6: AE C5 C2/C4D8: B5 C5 C2/C4DA: 40 C5 C2/C4DC: 40 C5 C2/C4DE: 40 C5 (Pointers for monster formation Mold 5) C2/C4E0: BC C5 C2/C4E2: C7 C5 C2/C4E4: CE C5 C2/C4E6: 40 C5 C2/C4E8: 40 C5 C2/C4EA: 40 C5 (Pointers for monster formation Mold 6) C2/C4EC: D5 C5 C2/C4EE: 40 C5 C2/C4F0: 40 C5 C2/C4F2: 40 C5 C2/C4F4: 40 C5 C2/C4F6: 40 C5 (Pointers for monster formation Mold 7) C2/C4F8: E8 C5 C2/C4FA: F4 C5 C2/C4FC: FA C5 C2/C4FE: FE C5 C2/C500: 02 C6 C2/C502: 06 C6 (Pointers for monster formation Mold 8) C2/C504: 0A C6 C2/C506: 11 C6 C2/C508: 18 C6 C2/C50A: 1D C6 C2/C50C: 40 C5 C2/C50E: 40 C5 (Pointers for monster formation Mold 9) C2/C510: 22 C6 C2/C512: 40 C5 C2/C514: 40 C5 C2/C516: 40 C5 C2/C518: 40 C5 C2/C51A: 40 C5 (Pointers for monster formation Mold 10) C2/C51C: 31 C6 C2/C51E: 3A C6 C2/C520: 3F C6 C2/C522: 44 C6 C2/C524: 48 C6 C2/C526: 40 C5 (Pointers for monster formation Mold 11) C2/C528: 4C C6 C2/C52A: 51 C6 C2/C52C: 56 C6 C2/C52E: 5B C6 C2/C530: 60 C6 C2/C532: 40 C5 (Pointers for monster formation Mold 12) C2/C534: 67 C6 C2/C536: 6E C6 C2/C538: 75 C6 C2/C53A: 7A C6 C2/C53C: 7F C6 C2/C53E: 84 C6 (Mold data. For context, picture a 4x4 grid of 32x32-pixel monster subsprites with 16 possible positions on it: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F The data breakdown is: 1st byte: horizontal grid position of start of image * 32 ? 2nd byte: vertical grid position of start of image * 32 ? Variable # of bytes: list of the 0-15 grid positions for the 32x32 subsprites that compose the monster image FF: terminates record data for current monster image ) (Null entry - used for mold slots which are undefined [nonexistent in the C2/D034 structure, and not meant to hold a monster]) C2/C540: 00 C2/C541: 00 C2/C542: FF (Mold 0 - Mold slot 0) C2/C543: 00 C2/C544: 00 C2/C545: 00 C2/C546: 01 C2/C547: 04 C2/C548: 05 C2/C549: FF (Mold 0 - Mold slot 1) C2/C54A: 40 C2/C54B: 00 C2/C54C: 02 C2/C54D: 03 C2/C54E: 06 C2/C54F: 07 C2/C550: FF (Mold 0 - Mold slot 2) C2/C551: 00 C2/C552: 40 C2/C553: 08 C2/C554: 09 C2/C555: 0C C2/C556: 0D C2/C557: FF (Mold 0 - Mold slot 3) C2/C558: 40 C2/C559: 40 C2/C55A: 0A C2/C55B: 0B C2/C55C: 0E C2/C55D: 0F C2/C55E: FF (Mold 1 - Mold slot 0) C2/C55F: 00 C2/C560: 00 C2/C561: 00 C2/C562: 01 C2/C563: 04 C2/C564: 05 C2/C565: FF (Mold 1 - Mold slot 1) C2/C566: 40 C2/C567: 00 C2/C568: 02 C2/C569: 03 C2/C56A: 06 C2/C56B: 07 C2/C56C: FF (Mold 1 - Mold slot 2) C2/C56D: 00 C2/C56E: 40 C2/C56F: 08 C2/C570: FF (Mold 1 - Mold slot 3) C2/C571: 20 C2/C572: 40 C2/C573: 09 C2/C574: FF (Mold 1 - Mold slot 4) C2/C575: 40 C2/C576: 40 C2/C577: 0A C2/C578: FF (Mold 1 - Mold slot 5) C2/C579: 60 C2/C57A: 40 C2/C57B: 0B C2/C57C: FF (Mold 2 - Mold slot 0) C2/C57D: 00 C2/C57E: 00 C2/C580: 00 C2/C580: 01 C2/C581: 02 C2/C582: 04 C2/C583: 05 C2/C584: 06 C2/C585: FF (Mold 2 - Mold slot 1) C2/C586: 00 C2/C587: 40 C2/C588: 08 C2/C589: 09 C2/C58A: 0A C2/C58B: 0C C2/C58C: 0D C2/C58D: 0E C2/C58E: FF (Mold 3 - Mold slot 0) C2/C58F: 00 C2/C590: 00 C2/C591: 00 C2/C592: 01 C2/C593: 04 C2/C594: 05 C2/C595: 08 C2/C596: 09 C2/C597: 0C C2/C598: 0D C2/C599: FF (Mold 3 - Mold slot 1) C2/C59A: 40 C2/C59B: 00 C2/C59C: 02 C2/C59D: 03 C2/C59E: 06 C2/C59F: 07 C2/C5A0: 0A C2/C5A1: 0B C2/C5A2: 0E C2/C5A3: 0F C2/C5A4: FF (Mold 4 - Mold slot 0) C2/C5A5: 00 C2/C5A6: 00 C2/C5A7: 00 C2/C5A8: 01 C2/C5A9: 02 C2/C5AA: 04 C2/C5AB: 05 C2/C5AC: 06 C2/C5AD: FF (Mold 4 - Mold slot 1) C2/C5AE: 00 C2/C5AF: 40 C2/C5B0: 08 C2/C5B1: 09 C2/C5B2: 0C C2/C5B3: 0D C2/C5B4: FF (Mold 4 - Mold slot 2) C2/C5B5: 40 C2/C5B6: 40 C2/C5B7: 0A C2/C5B8: 0B C2/C5B9: 0E C2/C5BA: 0F C2/C5BB: FF (Mold 5 - Mold slot 0) C2/C5BC: 00 C2/C5BD: 00 C2/C5BE: 00 C2/C5BF: 01 C2/C5C0: 04 C2/C5C1: 05 C2/C5C2: 08 C2/C5C3: 09 C2/C5C4: 0C C2/C5C5: 0D C2/C5C6: FF (Mold 5 - Mold slot 1) C2/C5C7: 40 C2/C5C8: 00 C2/C5C9: 02 C2/C5CA: 03 C2/C5CB: 06 C2/C5CC: 07 C2/C5CD: FF (Mold 5 - Mold slot 2) C2/C5CE: 40 C2/C5CF: 40 C2/C5D0: 0A C2/C5D1: 0B C2/C5D2: 0E C2/C5D3: 0F C2/C5D4: FF (Mold 6 - Mold slot 0) C2/C5D5: 00 C2/C5D6: 00 C2/C5D7: 00 C2/C5D8: 01 C2/C5D9: 02 C2/C5DA: 03 C2/C5DB: 04 C2/C5DC: 05 C2/C5DD: 06 C2/C5DE: 07 C2/C5DF: 08 C2/C5E0: 09 C2/C5E1: 0A C2/C5E2: 0B C2/C5E3: 0C C2/C5E4: 0D C2/C5E5: 0E C2/C5E6: 0F C2/C5E7: FF (Mold 7 - Mold slot 0) C2/C5E8: 00 C2/C5E9: 00 C2/C5EA: 00 C2/C5EB: 01 C2/C5EC: 02 C2/C5ED: 04 C2/C5EE: 05 C2/C5EF: 06 C2/C5F0: 08 C2/C5F1: 09 C2/C5F2: 0A C2/C5F3: FF (Mold 7 - Mold slot 1) C2/C5F4: 60 C2/C5F5: 00 C2/C5F6: 03 C2/C5F7: 07 C2/C5F8: 0B C2/C5F9: FF (Mold 7 - Mold slot 2) C2/C5FA: 00 C2/C5FB: 60 C2/C5FC: 0C C2/C5FD: FF (Mold 7 - Mold slot 3) C2/C5FE: 20 C2/C5FF: 60 C2/C600: 0D C2/C601: FF (Mold 7 - Mold slot 4) C2/C602: 40 C2/C603: 60 C2/C604: 0E C2/C605: FF (Mold 7 - Mold slot 5) C2/C606: 60 C2/C607: 60 C2/C608: 0F C2/C609: FF (Mold 8 - Mold slot 0) C2/C60A: 00 C2/C60B: 00 C2/C60C: 00 C2/C60D: 01 C2/C60E: 04 C2/C60F: 05 C2/C610: FF (Mold 8 - Mold slot 1) C2/C611: 00 C2/C612: 40 C2/C613: 08 C2/C614: 09 C2/C615: 0C C2/C616: 0D C2/C617: FF (Mold 8 - Mold slot 2) C2/C618: 40 C2/C619: 00 C2/C61A: 02 C2/C61B: 06 C2/C61C: FF (Mold 8 - Mold slot 3) C2/C61D: 40 C2/C61E: 40 C2/C61F: 0A C2/C620: 0E C2/C621: FF (Mold 9 - Mold slot 0) C2/C622: 00 C2/C623: 00 C2/C624: 00 C2/C625: 01 C2/C626: 02 C2/C627: 04 C2/C628: 05 C2/C629: 06 C2/C62A: 08 C2/C62B: 09 C2/C62C: 0A C2/C62D: 0C C2/C62E: 0D C2/C62F: 0E C2/C630: FF (interesting; the above data suggests that the sprite in Mold 9 is 96 x 128, but the Mold data at C2/D0B0 indicates it's only 96 x 96. best abide by the smaller dimensions.) (Mold 10 - Mold slot 0) C2/C631: 00 C2/C632: 00 C2/C633: 00 C2/C634: 01 C2/C635: 04 C2/C636: 05 C2/C637: 08 C2/C638: 09 C2/C639: FF (Mold 10 - Mold slot 1) C2/C63A: 40 C2/C63B: 00 C2/C63C: 02 C2/C63D: 06 C2/C63E: FF (Mold 10 - Mold slot 2) C2/C63F: 40 C2/C640: 40 C2/C641: 0A C2/C642: 0E C2/C643: FF (Mold 10 - Mold slot 3) C2/C644: 00 C2/C645: 60 C2/C646: 0C C2/C647: FF (Mold 10 - Mold slot 4) C2/C648: 20 C2/C649: 60 C2/C64A: 0D C2/C64B: FF (Mold 11 - Mold slot 0) C2/C64C: 00 C2/C64D: 00 C2/C64E: 00 C2/C64F: 04 C2/C650: FF (Mold 11 - Mold slot 1) C2/C651: 20 C2/C652: 00 C2/C653: 01 C2/C654: 05 C2/C655: FF (Mold 11 - Mold slot 2) C2/C656: 40 C2/C657: 00 C2/C658: 02 C2/C659: 06 C2/C65A: FF (Mold 11 - Mold slot 3) C2/C65B: 40 C2/C65C: 40 C2/C65D: 0A C2/C65E: 0E C2/C65F: FF (Mold 11 - Mold slot 4) C2/C660: 00 C2/C661: 40 C2/C662: 08 C2/C663: 09 C2/C664: 0C C2/C665: 0D C2/C666: FF (Mold 12 - Mold slot 0) C2/C667: 00 C2/C668: 00 C2/C669: 00 C2/C66A: 01 C2/C66B: 04 C2/C66C: 05 C2/C66D: FF (Mold 12 - Mold slot 1) C2/C66E: 40 C2/C66F: 00 C2/C670: 02 C2/C671: 03 C2/C672: 06 C2/C673: 07 C2/C674: FF (Mold 12 - Mold slot 2) C2/C675: 00 C2/C676: 40 C2/C677: 08 C2/C678: 0C C2/C679: FF (Mold 12 - Mold slot 3) C2/C67A: 20 C2/C67B: 40 C2/C67C: 09 C2/C67D: 0D C2/C67E: FF (Mold 12 - Mold slot 4) C2/C67F: 40 C2/C680: 40 C2/C681: 0A C2/C682: 0E C2/C683: FF (Mold 12 - Mold slot 5) C2/C684: 60 C2/C685: 40 C2/C686: 0B C2/C687: 0F C2/C688: FF C2/C689: 63 14 --- ORA $1463FF C2/C68B: FE 7F 14 INC $147F,X C2/C68E: 63 6F ADC $6F,S C2/C690: 4E 63 14 LSR $1463 C2/C693: F6 4B INC $4B,X C2/C695: FF 2B CD 26 SBC $26CD2B,X C2/C699: 63 14 ADC $14,S C2/C69B: 7B TDC C2/C69C: 52 15 EOR ($15) C2/C69E: 46 F0 LSR $F0 C2/C6A0: 41 FD EOR ($FD,X) C2/C6A2: 43 F1 EOR $F1,S C2/C6A4: 3F E0 03 E0 AND $E003E0,X C2/C6A8: 02 FF COP $FF C2/C6AA: FF FF FF 00 SBC $00FFFF,X C2/C6AE: 00 00 BRK $00 C2/C6B0: 00 01 BRK $01 C2/C6B2: 02 03 COP $03 C2/C6B4: 02 34 COP $34 C2/C6B6: 35 36 AND $36,X C2/C6B8: 35 04 AND $04,X C2/C6BA: 05 06 ORA $06 C2/C6BC: 05 0E ORA $0E C2/C6BE: 0F 10 0F 11 ORA $110F10 C2/C6C2: 11 11 ORA ($11),Y C2/C6C4: 11 12 ORA ($12),Y C2/C6C6: 04 12 TSB $12 C2/C6C8: 04 13 TSB $13 C2/C6CA: 06 13 ASL $13 C2/C6CC: 06 08 ASL $08 C2/C6CE: 09 08 09 ORA #$0908 C2/C6D1: 14 14 TRB $14 C2/C6D3: 14 14 TRB $14 C2/C6D5: 15 15 ORA $15,X C2/C6D7: 15 15 ORA $15,X C2/C6D9: 16 16 ASL $16,X C2/C6DB: 16 16 ASL $16,X C2/C6DD: 0A ASL C2/C6DE: 0A ASL C2/C6DF: 0A ASL C2/C6E0: 0A ASL C2/C6E1: 02 0B COP $0B C2/C6E3: 02 0B COP $0B C2/C6E5: 35 3D AND $3D,X C2/C6E7: 35 3D AND $3D,X C2/C6E9: 05 0D ORA $0D C2/C6EB: 05 0D ORA $0D C2/C6ED: 32 3C AND ($3C) C2/C6EF: 32 3C AND ($3C) C2/C6F1: 02 0C COP $0C C2/C6F3: 02 0C COP $0C C2/C6F5: 02 02 COP $02 C2/C6F7: 17 17 ORA [$17],Y C2/C6F9: 35 35 AND $35,X C2/C6FB: 37 37 AND [$37],Y C2/C6FD: 05 05 ORA $05 C2/C6FF: 07 07 ORA [$07] C2/C701: 0F 0F 18 18 ORA $18180F C2/C705: 19 19 19 ORA $1919,Y C2/C708: 19 17 17 ORA $1717,Y C2/C70B: 17 17 ORA [$17],Y C2/C70D: 37 37 AND [$37],Y C2/C70F: 37 37 AND [$37],Y C2/C711: 07 07 ORA [$07] C2/C713: 07 07 ORA [$07] C2/C715: 18 CLC C2/C716: 18 CLC C2/C717: 18 CLC C2/C718: 18 CLC C2/C719: 00 00 BRK $00 C2/C71B: 00 00 BRK $00 C2/C71D: 00 00 BRK $00 C2/C71F: 00 00 BRK $00 C2/C721: 00 00 BRK $00 C2/C723: 00 00 BRK $00 C2/C725: 00 00 BRK $00 C2/C727: 00 00 BRK $00 C2/C729: 1E 1F 1E ASL $1E1F,X C2/C72C: 1F 4E 4F 4E ORA $4E4F4E,X C2/C730: 4F 1D 02 4D EOR $4D021D C2/C734: 02 1A COP $1A C2/C736: 1B TCS C2/C737: 1A INC C2/C738: 1B TCS C2/C739: 00 00 BRK $00 C2/C73B: 00 00 BRK $00 C2/C73D: 17 37 ORA [$37],Y C2/C73F: 18 CLC C2/C740: 07 4A ORA [$4A] C2/C742: 4A LSR C2/C743: 07 4B ORA [$4B] C2/C745: E0 0A CPX #$0A C2/C747: 00 0B BRK $0B C2/C749: 40 RTI C2/C74A: 0B PHD C2/C74B: 60 RTS C2/C74C: 0B PHD C2/C74D: 20 0B FF JSR $FF0B C2/C750: FF 80 0B FF SBC $FF0B80,X C2/C754: FF FF FF FF SBC $FFFFFF,X C2/C758: FF 00 00 20 SBC $200000,X C2/C75C: 00 40 BRK $40 C2/C75E: 00 60 BRK $60 C2/C760: 00 80 BRK $80 C2/C762: 00 A0 BRK $A0 C2/C764: 00 FF BRK $FF C2/C766: FF FF FF 00 SBC $00FFFF,X C2/C76A: 00 20 BRK $20 C2/C76C: 00 C0 BRK $C0 C2/C76E: 00 E0 BRK $E0 C2/C770: 00 00 BRK $00 C2/C772: 01 20 ORA ($20,X) C2/C774: 01 FF ORA ($FF,X) C2/C776: FF FF FF 00 SBC $00FFFF,X C2/C77A: 00 20 BRK $20 C2/C77C: 00 40 BRK $40 C2/C77E: 01 60 ORA ($60,X) C2/C780: 01 A0 ORA ($A0,X) C2/C782: 00 80 BRK $80 C2/C784: 00 FF BRK $FF C2/C786: FF FF FF 00 SBC $00FFFF,X C2/C78A: 03 20 ORA $20,S C2/C78C: 03 40 ORA $40,S C2/C78E: 03 60 ORA $60,S C2/C790: 03 80 ORA $80,S C2/C792: 03 A0 ORA $A0,S C2/C794: 03 FF ORA $FF,S C2/C796: FF FF FF C0 SBC $C0FFFF,X C2/C79A: 03 E0 ORA $E0,S C2/C79C: 03 00 ORA $00,S C2/C79E: 04 20 TSB $20 C2/C7A0: 04 40 TSB $40 C2/C7A2: 04 60 TSB $60 C2/C7A4: 04 FF TSB $FF C2/C7A6: FF FF FF 00 SBC $00FFFF,X C2/C7AA: 03 20 ORA $20,S C2/C7AC: 03 80 ORA $80,S C2/C7AE: 04 A0 TSB $A0 C2/C7B0: 04 C0 TSB $C0 C2/C7B2: 04 E0 TSB $E0 C2/C7B4: 04 FF TSB $FF C2/C7B6: FF FF FF C0 SBC $C0FFFF,X C2/C7BA: 03 60 ORA $60,S C2/C7BC: 06 80 ASL $80 C2/C7BE: 06 A0 ASL $A0 C2/C7C0: 06 C0 ASL $C0 C2/C7C2: 06 E0 ASL $E0 C2/C7C4: 06 FF ASL $FF C2/C7C6: FF FF FF 40 SBC $40FFFF,X C2/C7CA: 09 60 09 ORA #$0960 C2/C7CD: 80 09 BRA $C7D8 C2/C7CF: A0 09 LDY #$09 C2/C7D1: C0 09 E0 CPY #$E009 C2/C7D4: 09 FF FF ORA #$FFFF C2/C7D7: FF FF 40 09 SBC $0940FF,X C2/C7DB: 60 RTS C2/C7DC: 09 00 0A ORA #$0A00 C2/C7DF: A0 09 LDY #$09 C2/C7E1: C0 09 E0 CPY #$E009 C2/C7E4: 09 FF FF ORA #$FFFF C2/C7E7: FF FF 20 0A SBC $0A20FF,X C2/C7EB: 40 RTI C2/C7EC: 0A ASL C2/C7ED: 60 RTS C2/C7EE: 0A ASL C2/C7EF: 80 0A BRA $C7FB C2/C7F1: A0 0A LDY #$0A C2/C7F3: C0 0A FF CPY #$FF0A C2/C7F6: FF FF FF 00 SBC $00FFFF,X C2/C7FA: 00 20 BRK $20 C2/C7FC: 00 A0 BRK $A0 C2/C7FE: 0B PHD C2/C7FF: C0 0B 00 CPY #$000B C2/C802: 01 20 ORA ($20,X) C2/C804: 01 FF ORA ($FF,X) C2/C806: FF FF FF 00 SBC $00FFFF,X C2/C80A: 00 20 BRK $20 C2/C80C: 00 C0 BRK $C0 C2/C80E: 00 E0 BRK $E0 C2/C810: 0B PHD C2/C811: 00 01 BRK $01 C2/C813: 20 01 FF JSR $FF01 C2/C816: FF FF FF C0 SBC $C0FFFF,X C2/C81A: 12 E0 ORA ($E0) C2/C81C: 03 E0 ORA $E0,S C2/C81E: 12 20 ORA ($20) C2/C820: 04 40 TSB $40 C2/C822: 04 60 TSB $60 C2/C824: 04 FF TSB $FF C2/C826: FF FF FF 80 SBC $80FFFF,X C2/C82A: 01 A0 ORA ($A0,X) C2/C82C: 01 C0 ORA ($C0,X) C2/C82E: 01 E0 ORA ($E0,X) C2/C830: 01 00 ORA ($00,X) C2/C832: 02 20 COP $20 C2/C834: 02 FF COP $FF C2/C836: FF FF FF 80 SBC $80FFFF,X C2/C83A: 01 A0 ORA ($A0,X) C2/C83C: 01 40 ORA ($40,X) C2/C83E: 02 60 COP $60 C2/C840: 02 80 COP $80 C2/C842: 02 A0 COP $A0 C2/C844: 02 FF COP $FF C2/C846: FF FF FF 80 SBC $80FFFF,X C2/C84A: 01 A0 ORA ($A0,X) C2/C84C: 01 C0 ORA ($C0,X) C2/C84E: 02 E0 COP $E0 C2/C850: 02 20 COP $20 C2/C852: 02 00 COP $00 C2/C854: 02 FF COP $FF C2/C856: FF FF FF C0 SBC $C0FFFF,X C2/C85A: 03 E0 ORA $E0,S C2/C85C: 03 00 ORA $00,S C2/C85E: 05 20 ORA $20 C2/C860: 05 40 ORA $40 C2/C862: 05 60 ORA $60 C2/C864: 05 FF ORA $FF C2/C866: FF FF FF 00 SBC $00FFFF,X C2/C86A: 03 20 ORA $20,S C2/C86C: 03 80 ORA $80,S C2/C86E: 05 60 ORA $60 C2/C870: 03 A0 ORA $A0,S C2/C872: 05 A0 ORA $A0 C2/C874: 03 FF ORA $FF,S C2/C876: FF FF FF 00 SBC $00FFFF,X C2/C87A: 03 C0 ORA $C0,S C2/C87C: 05 E0 ORA $E0 C2/C87E: 05 00 ORA $00 C2/C880: 06 20 ASL $20 C2/C882: 06 40 ASL $40 C2/C884: 06 FF ASL $FF C2/C886: FF FF FF 00 SBC $00FFFF,X C2/C88A: 07 20 ORA [$20] C2/C88C: 07 40 ORA [$40] C2/C88E: 07 60 ORA [$60] C2/C890: 07 80 ORA [$80] C2/C892: 07 A0 ORA [$A0] C2/C894: 07 FF ORA [$FF] C2/C896: FF FF FF C0 SBC $C0FFFF,X C2/C89A: 07 E0 ORA [$E0] C2/C89C: 07 00 ORA [$00] C2/C89E: 08 PHP C2/C89F: 20 08 40 JSR $4008 C2/C8A2: 08 PHP C2/C8A3: 60 RTS C2/C8A4: 08 PHP C2/C8A5: FF FF FF FF SBC $FFFFFF,X C2/C8A9: 80 08 BRA $C8B3 C2/C8AB: A0 08 LDY #$08 C2/C8AD: C0 08 E0 CPY #$E008 C2/C8B0: 08 PHP C2/C8B1: 00 09 BRK $09 C2/C8B3: 20 09 FF JSR $FF09 C2/C8B6: FF FF FF 40 SBC $40FFFF,X C2/C8BA: 0D 60 0D ORA $0D60 C2/C8BD: 80 0D BRA $C8CC C2/C8BF: A0 0D LDY #$0D C2/C8C1: C0 0D E0 CPY #$E00D C2/C8C4: 0D FF FF ORA $FFFF C2/C8C7: FF FF 00 0E SBC $0E00FF,X C2/C8CB: 20 0E 40 JSR $400E C2/C8CE: 0E 60 0E ASL $0E60 C2/C8D1: 80 0E BRA $C8E1 C2/C8D3: A0 0E LDY #$0E C2/C8D5: FF FF FF FF SBC $FFFFFF,X C2/C8D9: 20 06 40 JSR $4006 C2/C8DC: 06 60 ASL $60 C2/C8DE: 06 80 ASL $80 C2/C8E0: 06 A0 ASL $A0 C2/C8E2: 06 C0 ASL $C0 C2/C8E4: 06 FF ASL $FF C2/C8E6: FF FF FF 00 SBC $00FFFF,X C2/C8EA: 0C 20 0C TSB $0C20 C2/C8ED: 40 RTI C2/C8EE: 0C 60 0C TSB $0C60 C2/C8F1: 80 0C BRA $C8FF C2/C8F3: A0 0C LDY #$0C C2/C8F5: FF FF FF FF SBC $FFFFFF,X C2/C8F9: C0 0C E0 CPY #$E00C C2/C8FC: 0C 00 0D TSB $0D00 C2/C8FF: 20 0D 80 JSR $800D C2/C902: 0C A0 0C TSB $0CA0 C2/C905: FF FF FF FF SBC $FFFFFF,X C2/C909: 80 0F BRA $C91A C2/C90B: A0 0F LDY #$0F C2/C90D: C0 0F E0 CPY #$E00F C2/C910: 0F 00 10 20 ORA $201000 C2/C914: 10 FF BPL $C915 C2/C916: FF FF FF 40 SBC $40FFFF,X C2/C91A: 12 60 ORA ($60) C2/C91C: 12 80 ORA ($80) C2/C91E: 12 A0 ORA ($A0) C2/C920: 12 00 ORA ($00) C2/C922: 01 20 ORA ($20,X) C2/C924: 01 FF ORA ($FF,X) C2/C926: FF FF FF 60 SBC $60FFFF,X C2/C92A: 14 80 TRB $80 C2/C92C: 14 00 TRB $00 C2/C92E: 13 20 ORA ($20,S),Y C2/C930: 13 40 ORA ($40,S),Y C2/C932: 13 60 ORA ($60,S),Y C2/C934: 13 FF ORA ($FF,S),Y C2/C936: FF FF FF 60 SBC $60FFFF,X C2/C93A: 14 80 TRB $80 C2/C93C: 14 80 TRB $80 C2/C93E: 13 20 ORA ($20,S),Y C2/C940: 13 40 ORA ($40,S),Y C2/C942: 13 60 ORA ($60,S),Y C2/C944: 13 40 ORA ($40,S),Y C2/C946: 00 00 BRK $00 C2/C948: 00 00 BRK $00 C2/C94A: 00 00 BRK $00 C2/C94C: 00 00 BRK $00 C2/C94E: 00 00 BRK $00 C2/C950: 00 00 BRK $00 C2/C952: 00 00 BRK $00 C2/C954: 00 00 BRK $00 C2/C956: 00 00 BRK $00 C2/C958: 00 00 BRK $00 C2/C95A: 00 00 BRK $00 C2/C95C: 00 00 BRK $00 C2/C95E: 00 00 BRK $00 C2/C960: 00 00 BRK $00 C2/C962: 00 00 BRK $00 C2/C964: 00 40 BRK $40 C2/C966: 20 12 0D JSR $0D12 C2/C969: 0A ASL C2/C96A: 08 PHP C2/C96B: 06 06 ASL $06 C2/C96D: 05 04 ORA $04 C2/C96F: 04 04 TSB $04 C2/C971: 03 03 ORA $03,S C2/C973: 03 02 ORA $02,S C2/C975: 02 02 COP $02 C2/C977: 02 02 COP $02 C2/C979: 01 01 ORA ($01,X) C2/C97B: 01 01 ORA ($01,X) C2/C97D: 01 01 ORA ($01,X) C2/C97F: 01 01 ORA ($01,X) C2/C981: 01 01 ORA ($01,X) C2/C983: 01 01 ORA ($01,X) C2/C985: 40 RTI C2/C986: 2D 20 17 AND $1720 C2/C989: 12 0F ORA ($0F) C2/C98B: 0D 0B 0A ORA $0A0B C2/C98E: 09 08 07 ORA #$0708 C2/C991: 06 06 ASL $06 C2/C993: 06 05 ASL $05 C2/C995: 05 04 ORA $04 C2/C997: 04 04 TSB $04 C2/C999: 04 04 TSB $04 C2/C99B: 04 03 TSB $03 C2/C99D: 03 03 ORA $03,S C2/C99F: 03 03 ORA $03,S C2/C9A1: 03 02 ORA $02,S C2/C9A3: 02 02 COP $02 C2/C9A5: 40 RTI C2/C9A6: 32 28 AND ($28) C2/C9A8: 20 1A 15 JSR $151A C2/C9AB: 12 10 ORA ($10) C2/C9AD: 0E 0D 0B ASL $0B0D C2/C9B0: 0B PHD C2/C9B1: 0A ASL C2/C9B2: 09 09 08 ORA #$0809 C2/C9B5: 07 07 ORA [$07] C2/C9B7: 06 06 ASL $06 C2/C9B9: 06 06 ASL $06 C2/C9BB: 05 05 ORA $05 C2/C9BD: 05 04 ORA $04 C2/C9BF: 04 04 TSB $04 C2/C9C1: 04 04 TSB $04 C2/C9C3: 04 04 TSB $04 C2/C9C5: 40 RTI C2/C9C6: 35 2D AND $2D,X C2/C9C8: 26 20 ROL $20 C2/C9CA: 1B TCS C2/C9CB: 17 15 ORA [$15],Y C2/C9CD: 12 10 ORA ($10) C2/C9CF: 0F 0E 0D 0C ORA $0C0D0E C2/C9D3: 0B PHD C2/C9D4: 0A ASL C2/C9D5: 0A ASL C2/C9D6: 09 09 08 ORA #$0809 C2/C9D9: 08 PHP C2/C9DA: 07 07 ORA [$07] C2/C9DC: 06 06 ASL $06 C2/C9DE: 06 06 ASL $06 C2/C9E0: 06 06 ASL $06 C2/C9E2: 05 05 ORA $05 C2/C9E4: 05 40 ORA $40 C2/C9E6: 37 30 AND [$30],Y C2/C9E8: 2A ROL C2/C9E9: 24 20 BIT $20 C2/C9EB: 1C 19 17 TRB $1719 C2/C9EE: 15 12 ORA $12,X C2/C9F0: 11 10 ORA ($10),Y C2/C9F2: 0F 0E 0D 0C ORA $0C0D0E C2/C9F6: 0B PHD C2/C9F7: 0B PHD C2/C9F8: 0A ASL C2/C9F9: 0A ASL C2/C9FA: 09 09 09 ORA #$0909 C2/C9FD: 08 PHP C2/C9FE: 08 PHP C2/C9FF: 07 07 ORA [$07] C2/CA01: 07 06 ORA [$06] C2/CA03: 06 06 ASL $06 C2/CA05: 40 RTI C2/CA06: 39 32 2D AND $2D32,Y C2/CA09: 28 PLP C2/CA0A: 24 20 BIT $20 C2/CA0C: 1C 1A 17 TRB $171A C2/CA0F: 15 14 ORA $14,X C2/CA11: 12 11 ORA ($11) C2/CA13: 10 0F BPL $CA24 C2/CA15: 0E 0E 0D ASL $0D0E C2/CA18: 0C 0B 0B TSB $0B0B C2/CA1B: 0B PHD C2/CA1C: 0A ASL C2/CA1D: 0A ASL C2/CA1E: 09 09 09 ORA #$0909 C2/CA21: 09 08 08 ORA #$0808 C2/CA24: 07 40 ORA [$40] C2/CA26: 3A DEC C2/CA27: 35 2F AND $2F,X C2/CA29: 2B PLD C2/CA2A: 26 23 ROL $23 C2/CA2C: 20 1D 1A JSR $1A1D C2/CA2F: 18 CLC C2/CA30: 17 15 ORA [$15],Y C2/CA32: 14 12 TRB $12 C2/CA34: 12 10 ORA ($10) C2/CA36: 10 0F BPL $CA47 C2/CA38: 0E 0E 0D ASL $0D0E C2/CA3B: 0C 0B 0B TSB $0B0B C2/CA3E: 0B PHD C2/CA3F: 0B PHD C2/CA40: 0A ASL C2/CA41: 0A ASL C2/CA42: 09 09 09 ORA #$0909 C2/CA45: 40 RTI C2/CA46: 3A DEC C2/CA47: 35 31 AND $31,X C2/CA49: 2D 29 26 AND $2629 C2/CA4C: 22 20 1D 1B JSR $1B1D20 C2/CA50: 1A INC C2/CA51: 17 16 ORA [$16],Y C2/CA53: 15 14 ORA $14,X C2/CA55: 12 12 ORA ($12) C2/CA57: 10 10 BPL $CA69 C2/CA59: 0F 0E 0E 0E ORA $0E0E0E C2/CA5D: 0D 0C 0C ORA $0C0C C2/CA60: 0B PHD C2/CA61: 0B PHD C2/CA62: 0B PHD C2/CA63: 0A ASL C2/CA64: 0A ASL C2/CA65: 40 RTI C2/CA66: 3B TSC C2/CA67: 37 32 AND [$32],Y C2/CA69: 2F 2B 28 25 AND $25282B C2/CA6D: 22 20 1D 1C JSR $1C1D20 C2/CA71: 1A INC C2/CA72: 18 CLC C2/CA73: 17 15 ORA [$15],Y C2/CA75: 15 13 ORA $13,X C2/CA77: 12 12 ORA ($12) C2/CA79: 11 10 ORA ($10),Y C2/CA7B: 10 0F BPL $CA8C C2/CA7D: 0E 0E 0E ASL $0E0E C2/CA80: 0D 0C 0C ORA $0C0C C2/CA83: 0B PHD C2/CA84: 0B PHD C2/CA85: 40 RTI C2/CA86: 3C 37 34 BIT $3437,X C2/CA89: 30 2D BMI $CAB8 C2/CA8B: 2A ROL C2/CA8C: 27 24 AND [$24] C2/CA8E: 22 20 1E 1C JSR $1C1E20 C2/CA92: 1A INC C2/CA93: 19 17 17 ORA $1717,Y C2/CA96: 15 15 ORA $15,X C2/CA98: 13 12 ORA ($12,S),Y C2/CA9A: 12 11 ORA ($11) C2/CA9C: 10 10 BPL $CAAE C2/CA9E: 0F 0F 0E 0E ORA $0E0E0F C2/CAA2: 0E 0D 0C ASL $0C0D C2/CAA5: 40 RTI C2/CAA6: 3C 38 35 BIT $3538,X C2/CAA9: 32 2E AND ($2E) C2/CAAB: 2B PLD C2/CAAC: 29 26 24 AND #$2426 C2/CAAF: 21 20 AND ($20,X) C2/CAB1: 1E 1C 1B ASL $1B1C,X C2/CAB4: 1A INC C2/CAB5: 18 CLC C2/CAB6: 17 16 ORA [$16],Y C2/CAB8: 15 14 ORA $14,X C2/CABA: 13 12 ORA ($12,S),Y C2/CABC: 12 11 ORA ($11) C2/CABE: 10 10 BPL $CAD0 C2/CAC0: 10 0F BPL $CAD1 C2/CAC2: 0E 0E 0E ASL $0E0E C2/CAC5: 40 RTI C2/CAC6: 3C 39 35 BIT $3539,X C2/CAC9: 32 30 AND ($30) C2/CACB: 2D 2A 28 AND $282A C2/CACE: 26 24 ROL $24 C2/CAD0: 21 20 AND ($20,X) C2/CAD2: 1E 1C 1B ASL $1B1C,X C2/CAD5: 1A INC C2/CAD6: 19 17 17 ORA $1717,Y C2/CAD9: 15 15 ORA $15,X C2/CADB: 14 13 TRB $13 C2/CADD: 12 12 ORA ($12) C2/CADF: 11 10 ORA ($10),Y C2/CAE1: 10 10 BPL $CAF3 C2/CAE3: 0F 0F 40 3C ORA $3C400F C2/CAE7: 3A DEC C2/CAE8: 37 33 AND [$33],Y C2/CAEA: 30 2E BMI $CB1A C2/CAEC: 2B PLD C2/CAED: 29 27 25 AND #$2527 C2/CAF0: 23 21 AND $21,S C2/CAF2: 20 1E 1C JSR $1C1E C2/CAF5: 1C 1A 19 TRB $191A C2/CAF8: 18 CLC C2/CAF9: 17 16 ORA [$16],Y C2/CAFB: 15 15 ORA $15,X C2/CAFD: 14 13 TRB $13 C2/CAFF: 12 12 ORA ($12) C2/CB01: 11 11 ORA ($11),Y C2/CB03: 10 10 BPL $CB15 C2/CB05: 40 RTI C2/CB06: 3C 3A 37 BIT $373A,X C2/CB09: 35 32 AND $32,X C2/CB0B: 2F 2D 2B 29 AND $292B2D C2/CB0F: 26 24 ROL $24 C2/CB11: 23 21 AND $21,S C2/CB13: 20 1F 1D JSR $1D1F C2/CB16: 1C 1A 1A TRB $1A1A C2/CB19: 18 CLC C2/CB1A: 17 17 ORA [$17],Y C2/CB1C: 16 15 ASL $15,X C2/CB1E: 15 14 ORA $14,X C2/CB20: 13 12 ORA ($12,S),Y C2/CB22: 12 12 ORA ($12) C2/CB24: 11 40 ORA ($40),Y C2/CB26: 3D 3A 37 AND $373A,X C2/CB29: 35 32 AND $32,X C2/CB2B: 30 2E BMI $CB5B C2/CB2D: 2B PLD C2/CB2E: 2A ROL C2/CB2F: 28 PLP C2/CB30: 26 24 ROL $24 C2/CB32: 23 21 AND $21,S C2/CB34: 20 1F 1D JSR $1D1F C2/CB37: 1C 1B 1A TRB $1A1B C2/CB3A: 19 18 17 ORA $1718,Y C2/CB3D: 17 15 ORA [$15],Y C2/CB3F: 15 15 ORA $15,X C2/CB41: 14 13 TRB $13 C2/CB43: 12 12 ORA ($12) C2/CB45: 40 RTI C2/CB46: 3D 3A 38 AND $383A,X C2/CB49: 35 33 AND $33,X C2/CB4B: 31 2F AND ($2F),Y C2/CB4D: 2D 2B 29 AND $292B C2/CB50: 27 26 AND [$26] C2/CB52: 24 22 BIT $22 C2/CB54: 21 20 AND ($20,X) C2/CB56: 1F 1D 1C 1B ORA $1B1C1D,X C2/CB5A: 1A INC C2/CB5B: 1A INC C2/CB5C: 18 CLC C2/CB5D: 17 17 ORA [$17],Y C2/CB5F: 16 15 ASL $15,X C2/CB61: 15 14 ORA $14,X C2/CB63: 14 13 TRB $13 C2/CB65: 40 RTI C2/CB66: 3D 3B 38 AND $383B,X C2/CB69: 36 34 ROL $34,X C2/CB6B: 32 30 AND ($30) C2/CB6D: 2E 2C 2A ROL $2A2C C2/CB70: 29 26 25 AND #$2526 C2/CB73: 24 22 BIT $22 C2/CB75: 21 20 AND ($20,X) C2/CB77: 1F 1D 1C 1B ORA $1B1C1D,X C2/CB7B: 1A INC C2/CB7C: 1A INC C2/CB7D: 19 18 17 ORA $1718,Y C2/CB80: 17 16 ORA [$16],Y C2/CB82: 15 15 ORA $15,X C2/CB84: 14 40 TRB $40 C2/CB86: 3D 3B 39 AND $393B,X C2/CB89: 37 35 AND [$35],Y C2/CB8B: 32 30 AND ($30) C2/CB8D: 2F 2D 2B 29 AND $292B2D C2/CB91: 28 PLP C2/CB92: 26 25 ROL $25 C2/CB94: 24 22 BIT $22 C2/CB96: 21 20 AND ($20,X) C2/CB98: 1F 1D 1C 1C ORA $1C1C1D,X C2/CB9C: 1B TCS C2/CB9D: 1A INC C2/CB9E: 19 18 17 ORA $1718,Y C2/CBA1: 17 16 ORA [$16],Y C2/CBA3: 15 15 ORA $15,X C2/CBA5: 40 RTI C2/CBA6: 3D 3B 3A AND $3A3B,X C2/CBA9: 37 35 AND [$35],Y C2/CBAB: 33 31 AND ($31,S),Y C2/CBAD: 30 2E BMI $CBDD C2/CBAF: 2C 2A 29 BIT $292A C2/CBB2: 27 26 AND [$26] C2/CBB4: 24 23 BIT $23 C2/CBB6: 22 21 20 1F JSR $1F2021 C2/CBBA: 1E 1C 1C ASL $1C1C,X C2/CBBD: 1B TCS C2/CBBE: 1A INC C2/CBBF: 1A INC C2/CBC0: 19 18 17 ORA $1718,Y C2/CBC3: 17 16 ORA [$16],Y C2/CBC5: 40 RTI C2/CBC6: 3E 3C 3A ROL $3A3C,X C2/CBC9: 37 35 AND [$35],Y C2/CBCB: 34 32 BIT $32,X C2/CBCD: 30 2E BMI $CBFD C2/CBCF: 2D 2B 2A AND $2A2B C2/CBD2: 28 PLP C2/CBD3: 27 26 AND [$26] C2/CBD5: 24 23 BIT $23 C2/CBD7: 22 21 20 1F JSR $1F2021 C2/CBDB: 1E 1D 1C ASL $1C1D,X C2/CBDE: 1B TCS C2/CBDF: 1A INC C2/CBE0: 1A INC C2/CBE1: 19 18 17 ORA $1718,Y C2/CBE4: 17 40 ORA [$40],Y C2/CBE6: 3E 3C 3A ROL $3A3C,X C2/CBE9: 38 SEC C2/CBEA: 36 35 ROL $35,X C2/CBEC: 32 31 AND ($31) C2/CBEE: 2F 2E 2C 2B AND $2B2C2E C2/CBF2: 29 28 26 AND #$2628 C2/CBF5: 25 24 AND $24 C2/CBF7: 23 21 AND $21,S C2/CBF9: 21 20 AND ($20,X) C2/CBFB: 1F 1E 1D 1C ORA $1C1D1E,X C2/CBFF: 1B TCS C2/CC00: 1A INC C2/CC01: 1A INC C2/CC02: 19 18 18 ORA $1818,Y C2/CC05: 40 RTI C2/CC06: 3E 3C 3A ROL $3A3C,X C2/CC09: 38 SEC C2/CC0A: 37 35 AND [$35],Y C2/CC0C: 33 32 AND ($32,S),Y C2/CC0E: 30 2E BMI $CC3E C2/CC10: 2D 2B 2A AND $2A2B C2/CC13: 29 27 26 AND #$2627 C2/CC16: 25 24 AND $24 C2/CC18: 23 21 AND $21,S C2/CC1A: 21 20 AND ($20,X) C2/CC1C: 1F 1E 1D 1C ORA $1C1D1E,X C2/CC20: 1C 1B 1A TRB $1A1B C2/CC23: 1A INC C2/CC24: 19 40 3E ORA $3E40,Y C2/CC27: 3C 3A 39 BIT $393A,X C2/CC2A: 37 35 AND [$35],Y C2/CC2C: 34 32 BIT $32,X C2/CC2E: 30 2F BMI $CC5F C2/CC30: 2E 2C 2B ROL $2B2C C2/CC33: 29 28 27 AND #$2728 C2/CC36: 26 24 ROL $24 C2/CC38: 24 22 BIT $22 C2/CC3A: 21 21 AND ($21,X) C2/CC3C: 20 1F 1E JSR $1E1F C2/CC3F: 1D 1C 1C ORA $1C1C,X C2/CC42: 1B TCS C2/CC43: 1A INC C2/CC44: 1A INC C2/CC45: 40 RTI C2/CC46: 3E 3C 3A ROL $3A3C,X C2/CC49: 39 37 35 AND $3537,Y C2/CC4C: 34 32 BIT $32,X C2/CC4E: 31 30 AND ($30),Y C2/CC50: 2E 2D 2B ROL $2B2D C2/CC53: 2A ROL C2/CC54: 29 28 26 AND #$2628 C2/CC57: 26 24 ROL $24 C2/CC59: 24 22 BIT $22 C2/CC5B: 21 21 AND ($21,X) C2/CC5D: 20 1F 1E JSR $1E1F C2/CC60: 1D 1C 1C ORA $1C1C,X C2/CC63: 1B TCS C2/CC64: 1A INC C2/CC65: 40 RTI C2/CC66: 3E 3C 3B ROL $3B3C,X C2/CC69: 39 37 36 AND $3637,Y C2/CC6C: 35 33 AND $33,X C2/CC6E: 32 30 AND ($30) C2/CC70: 2F 2E 2C 2B AND $2B2C2E C2/CC74: 2A ROL C2/CC75: 29 27 26 AND #$2627 C2/CC78: 25 24 AND $24 C2/CC7A: 23 22 AND $22,S C2/CC7C: 21 21 AND ($21,X) C2/CC7E: 20 1F 1E JSR $1E1F C2/CC81: 1D 1C 1C ORA $1C1C,X C2/CC84: 1B TCS C2/CC85: 40 RTI C2/CC86: 3E 3C 3B ROL $3B3C,X C2/CC89: 3A DEC C2/CC8A: 38 SEC C2/CC8B: 37 35 AND [$35],Y C2/CC8D: 33 32 AND ($32,S),Y C2/CC8F: 30 30 BMI $CCC1 C2/CC91: 2E 2D 2B ROL $2B2D C2/CC94: 2B PLD C2/CC95: 29 28 27 AND #$2728 C2/CC98: 26 25 ROL $25 C2/CC9A: 24 23 BIT $23 C2/CC9C: 22 21 21 20 JSR $202121 C2/CCA0: 1F 1E 1D 1C ORA $1C1D1E,X C2/CCA4: 1C 40 3E TRB $3E40 C2/CCA7: 3C 3B 3A BIT $3A3B,X C2/CCAA: 38 SEC C2/CCAB: 37 35 AND [$35],Y C2/CCAD: 34 32 BIT $32,X C2/CCAF: 31 30 AND ($30),Y C2/CCB1: 2F 2E 2C 2B AND $2B2C2E C2/CCB5: 2A ROL C2/CCB6: 29 28 26 AND #$2628 C2/CCB9: 26 25 ROL $25 C2/CCBB: 24 23 BIT $23 C2/CCBD: 22 21 21 20 JSR $202121 C2/CCC1: 1F 1E 1D 1D ORA $1D1D1E,X C2/CCC5: 40 RTI C2/CCC6: 3E 3C 3B ROL $3B3C,X C2/CCC9: 3A DEC C2/CCCA: 38 SEC C2/CCCB: 37 35 AND [$35],Y C2/CCCD: 35 33 AND $33,X C2/CCCF: 32 30 AND ($30) C2/CCD1: 2F 2E 2D 2B AND $2B2D2E C2/CCD5: 2B PLD C2/CCD6: 29 29 27 AND #$2729 C2/CCD9: 26 26 ROL $26 C2/CCDB: 24 24 BIT $24 C2/CCDD: 23 22 AND $22,S C2/CCDF: 21 21 AND ($21,X) C2/CCE1: 20 1F 1F JSR $1F1F C2/CCE4: 1E 40 3F ASL $3F40,X C2/CCE7: 3D 3C 3A AND $3A3C,X C2/CCEA: 39 37 36 AND $3637,Y C2/CCED: 35 33 AND $33,X C2/CCEF: 32 31 AND ($31) C2/CCF1: 30 2E BMI $CD21 C2/CCF3: 2E 2C 2B ROL $2B2C C2/CCF6: 2A ROL C2/CCF7: 29 28 27 AND #$2728 C2/CCFA: 26 25 ROL $25 C2/CCFC: 24 24 BIT $24 C2/CCFE: 23 22 AND $22,S C2/CD00: 21 21 AND ($21,X) C2/CD02: 20 1F 1F JSR $1F1F C2/CD05: 40 RTI C2/CD06: 3F 3D 3C 3A AND $3A3C3D,X C2/CD0A: 39 37 36 AND $3637,Y C2/CD0D: 35 34 AND $34,X C2/CD0F: 32 31 AND ($31) C2/CD11: 30 2F BMI $CD42 C2/CD13: 2E 2D 2B ROL $2B2D C2/CD16: 2B PLD C2/CD17: 2A ROL C2/CD18: 29 28 27 AND #$2728 C2/CD1B: 26 25 ROL $25 C2/CD1D: 24 24 BIT $24 C2/CD1F: 23 22 AND $22,S C2/CD21: 21 20 AND ($20,X) C2/CD23: 20 1F 40 JSR $401F C2/CD26: 3F 3D 3C 3A AND $3A3C3D,X C2/CD2A: 39 38 37 AND $3738,Y C2/CD2D: 35 34 AND $34,X C2/CD2F: 33 32 AND ($32,S),Y C2/CD31: 30 30 BMI $CD63 C2/CD33: 2E 2E 2C ROL $2C2E C2/CD36: 2B PLD C2/CD37: 2A ROL C2/CD38: 29 29 27 AND #$2729 C2/CD3B: 26 26 ROL $26 C2/CD3D: 25 24 AND $24 C2/CD3F: 24 22 BIT $22 C2/CD41: 21 21 AND ($21,X) C2/CD43: 20 20 E6 JSR $E620 C2/CD46: 00 BB BRK $BB C2/CD48: 00 08 BRK $08 C2/CD4A: DF E7 03 07 CMP $0703E7,X C2/CD4E: 07 DF ORA [$DF] C2/CD50: CF 10 77 02 CMP $027710 C2/CD54: 05 06 ORA $06 C2/CD56: 00 C8 BRK $C8 C2/CD58: 18 CLC C2/CD59: 01 04 ORA ($04,X) C2/CD5B: 20 08 8E JSR $8E08 C2/CD5E: 00 B0 BRK $B0 C2/CD60: 20 01 03 JSR $0301 C2/CD63: 40 RTI C2/CD64: 00 42 BRK $42 C2/CD66: 10 01 BPL $CD69 C2/CD68: 90 28 BCC $CD92 C2/CD6A: CF 01 02 04 CMP $040201 C2/CD6E: 05 62 ORA $62 C2/CD70: 28 PLP C2/CD71: 01 80 ORA ($80,X) C2/CD73: 30 01 BMI $CD76 C2/CD75: 11 02 ORA ($02),Y C2/CD77: 60 RTS C2/CD78: 00 83 BRK $83 C2/CD7A: 30 00 BMI $CD7C C2/CD7C: 70 38 BVS $CDB6 C2/CD7E: 9F 08 81 10 STA $108108,X C2/CD82: A6 30 LDX $30 C2/CD84: 46 01 LSR $01 C2/CD86: 50 40 BVC $CDC8 C2/CD88: 00 9F BRK $9F C2/CD8A: 18 CLC C2/CD8B: C5 50 CMP $50 C2/CD8D: 00 40 BRK $40 C2/CD8F: 48 PHA C2/CD90: DF 10 84 E3 CMP $E38410,X C2/CD94: 20 E9 80 JSR $80E9 C2/CD97: 50 DF BVC $CD78 C2/CD99: 08 PHP C2/CD9A: C1 28 CMP ($28,X) C2/CD9C: E8 INX C2/CD9D: 50 00 BVC $CD9F C2/CD9F: 18 CLC C2/CDA0: 58 CLI C2/CDA1: 10 DF BPL $CD82 C2/CDA3: 00 01 BRK $01 C2/CDA5: 41 2C EOR ($2C,X) C2/CDA7: 59 00 00 EOR $0000,Y C2/CDAA: 60 RTS C2/CDAB: 3F 11 43 41 AND $414311,X C2/CDAF: 4D 61 39 EOR $3961 C2/CDB2: 68 PLA C2/CDB3: 5F 29 66 A1 EOR $A16629,X C2/CDB7: 70 00 BVS $CDB9 C2/CDB9: 01 80 ORA ($80,X) C2/CDBB: 71 E9 ADC ($E9),Y C2/CDBD: 48 PHA C2/CDBE: 49 78 9F EOR #$9F78 C2/CDC1: 51 AB EOR ($AB),Y C2/CDC3: 79 80 9F ADC $9F80,Y C2/CDC6: 21 C5 AND ($C5,X) C2/CDC8: A9 88 9F LDA #$9F88 C2/CDCB: 11 88 ORA ($88),Y C2/CDCD: 82 19 C8 BRL $C095E9 C2/CDD0: 49 A6 28 EOR #$28A6 C2/CDD3: 90 FF BCC $CDD4 C2/CDD5: 29 C5 29 AND #$29C5 C2/CDD8: 0E 62 98 ASL $9862 C2/CDDB: 88 DEY C2/CDDC: 9F 01 E1 31 STA $31E101,X C2/CDE0: 2A ROL C2/CDE1: 82 A0 3F BRL $C00D84 C2/CDE4: 1A INC C2/CDE5: 44 92 42 MVP $92,$42 C2/CDE8: 08 PHP C2/CDE9: A8 TAY C2/CDEA: 64 5F STZ $5F C2/CDEC: 82 71 4A BRL $C01860 C2/CDEF: B0 5F BCS $CE50 C2/CDF1: 3A DEC C2/CDF2: 88 DEY C2/CDF3: 8A TXA C2/CDF4: 06 B8 ASL $B8 C2/CDF6: 5F 22 4C 44 EOR $444C22,X C2/CDFA: 2A ROL C2/CDFB: 8C 6A C0 STY $C06A C2/CDFE: 00 9F BRK $9F C2/CE00: 92 0E STA ($0E) C2/CE02: 32 C8 AND ($C8) C2/CE04: DF 6A 92 EE CMP $EE926A,X C2/CE08: 62 D0 DF PER $C0ADDB C2/CE0B: 2A ROL C2/CE0C: 06 A3 ASL $A3 C2/CE0E: D8 CLD C2/CE0F: 1F B3 27 19 ORA $1927B3,X C2/CE13: E0 44 CPX #$44 C2/CE15: 1F 53 4B 7B ORA $7B4B53,X C2/CE19: E8 INX C2/CE1A: DF 12 23 5B CMP $5B2312,X C2/CE1E: EE 4A F0 INC $F04A C2/CE21: 7F 5B 02 4B ADC $4B025B,X C2/CE25: 73 F8 ADC ($F8,S),Y C2/CE27: 9F 8B 50 43 STA $43508B,X Battle Character Palettes C2/CE2B: 02 01 COP $01 C2/CE2D: 04 04 TSB $04 C2/CE2F: 00 00 BRK $00 C2/CE31: 00 03 BRK $03 C2/CE33: 03 04 ORA $04,S C2/CE35: 05 03 ORA $03 C2/CE37: 03 05 ORA $05,S C2/CE39: 01 00 ORA ($00,X) C2/CE3B: 00 03 BRK $03 C2/CE3D: 06 01 ASL $01 C2/CE3F: 00 03 BRK $03 C2/CE41: 03 00 ORA $00,S C2/CE43: 00 00 BRK $00 C2/CE45: D5 A0 CMP $A0,X C2/CE47: 16 D5 ASL $D5,X C2/CE49: 40 RTI C2/CE4A: 2D D5 E0 AND $E0D5 C2/CE4D: 43 D5 EOR $D5,S C2/CE4F: 80 5A BRA $CEAB C2/CE51: D5 20 CMP $20,X C2/CE53: 71 D5 ADC ($D5),Y C2/CE55: C0 87 D5 CPY #$D587 C2/CE58: 60 RTS C2/CE59: 9E D5 00 STZ $00D5,X C2/CE5C: B5 D5 LDA $D5,X C2/CE5E: A0 CB LDY #$CB C2/CE60: D5 40 CMP $40,X C2/CE62: E2 D5 SEP #$D5 C2/CE64: E0 F8 CPX #$F8 C2/CE66: D5 80 CMP $80,X C2/CE68: 0F D6 20 26 ORA $2620D6 C2/CE6C: D6 C0 DEC $C0,X C2/CE6E: 3C D6 60 BIT $60D6,X C2/CE71: 53 D6 EOR ($D6,S),Y C2/CE73: 00 6A BRK $6A C2/CE75: D6 60 DEC $60,X C2/CE77: 7F D6 C0 94 ADC $94C0D6,X C2/CE7B: D6 20 DEC $20,X C2/CE7D: AA TAX C2/CE7E: D6 80 DEC $80,X C2/CE80: BF D6 E0 D4 LDA $D4E0D6,X C2/CE84: D6 40 DEC $40,X C2/CE86: EA NOP C2/CE87: D6 C0 DEC $C0,X C2/CE89: 3C D6 00 BIT $00D6,X C2/CE8C: 00 80 BRK $80 C2/CE8E: 00 00 BRK $00 C2/CE90: 01 80 ORA ($80,X) C2/CE92: 01 00 ORA ($00,X) C2/CE94: 02 80 COP $80 C2/CE96: 02 00 COP $00 C2/CE98: 03 80 ORA $80,S C2/CE9A: 03 00 ORA $00,S C2/CE9C: 04 80 TSB $80 C2/CE9E: 04 00 TSB $00 C2/CEA0: 05 80 ORA $80 C2/CEA2: 05 00 ORA $00 C2/CEA4: F8 SED C2/CEA5: 00 00 BRK $00 C2/CEA7: 00 08 BRK $08 C2/CEA9: 02 00 COP $00 C2/CEAB: FC 08 00 JSR ($0008,X) C2/CEAE: 00 0C BRK $0C C2/CEB0: 08 PHP C2/CEB1: 02 00 COP $00 C2/CEB3: 00 F8 BRK $F8 C2/CEB5: 00 40 BRK $40 C2/CEB7: 00 08 BRK $08 C2/CEB9: 02 40 COP $40 C2/CEBB: 04 08 TSB $08 C2/CEBD: 00 40 BRK $40 C2/CEBF: F4 08 02 PEA $0208 C2/CEC2: 40 RTI C2/CEC3: 00 00 BRK $00 C2/CEC5: 02 80 COP $80 C2/CEC7: 00 10 BRK $10 C2/CEC9: 00 80 BRK $80 C2/CECB: FC 08 00 JSR ($0008,X) C2/CECE: 80 0C BRA $CEDC C2/CED0: 08 PHP C2/CED1: 02 80 COP $80 C2/CED3: 00 00 BRK $00 C2/CED5: 02 C0 COP $C0 C2/CED7: 00 10 BRK $10 C2/CED9: 00 C0 BRK $C0 C2/CEDB: 04 08 TSB $08 C2/CEDD: 00 C0 BRK $C0 C2/CEDF: F4 08 02 PEA $0208 C2/CEE2: C0 (Data - indexed by encounter type, code in Bank C1) (How much to horizontally shift each character if in back row Front - moves further to right Back - moves further to left (hence the negative numbers) Pincer - horizontal position unchanged, as everybody considered front row to start Side - characters 0 and 1 on the right side are moved further right. characters 2 and 3 on the left side are moved further left. ) C2/CEE3: 0C 00 (front) C2/CEE5: 0C 00 C2/CEE7: 0C 00 C2/CEE9: 0C 00 C2/CEEB: F4 FF (back) C2/CEED: F4 FF C2/CEEF: F4 FF C2/CEF1: F4 FF C2/CEF3: 00 00 (pincer) C2/CEF5: 00 00 C2/CEF7: 00 00 C2/CEF9: 00 00 C2/CEFB: 0C 00 (side) C2/CEFD: 0C 00 C2/CEFF: F4 FF C2/CF01: F4 FF (Data - indexed by encounter type, code in Bank C1) (Looks like character vertical coordinates to me. Front, Back, Pincer all the same. And with Side, characters 0 and 2 and characters 1 and 3 end up at same heights) C2/CF03: 44 (front) C2/CF04: 56 C2/CF05: 68 C2/CF06: 7A C2/CF07: 44 (back) C2/CF08: 56 C2/CF09: 68 C2/CF0A: 7A C2/CF0B: 44 (pincer) C2/CF0C: 56 C2/CF0D: 68 C2/CF0E: 7A C2/CF0F: 4E (side) C2/CF10: 7A C2/CF11: 4E C2/CF12: 7A C2/CF13: 50 5E BVC $CF73 C2/CF15: 6C 7A (Data - indexed by encounter type, code in bank C1) C2/CF17: 70 01 (front) C2/CF19: 70 01 C2/CF1B: 70 01 C2/CF1D: 70 01 C2/CF1F: 90 00 (back) C2/CF21: 90 00 C2/CF23: 90 00 C2/CF25: 90 00 C2/CF27: 00 01 (pincer) C2/CF29: 00 01 C2/CF2B: 00 01 C2/CF2D: 00 01 C2/CF2F: 70 01 (side) C2/CF31: 70 01 C2/CF33: 90 00 C2/CF35: 90 00 C2/CF37: C0 BRK $C0 C2/CF38: 30 C0 BMI $CEFA C2/CF3A: 31 C0 AND ($C0),Y C2/CF3C: 32 C0 AND ($C0) C2/CF3E: 33 C0 AND ($C0,S),Y C2/CF40: 34 C0 BIT $C0,X C2/CF42: 35 C0 AND $C0,X C2/CF44: 36 C0 ROL $C0,X C2/CF46: 37 C0 AND [$C0],Y C2/CF48: 38 SEC C2/CF49: C0 39 C0 CPY #$C039 C2/CF4C: 3A DEC C2/CF4D: C0 3B C0 CPY #$C03B C2/CF50: 3C C0 3D BIT $3DC0,X C2/CF53: C0 3E C0 CPY #$C03E C2/CF56: 3F 00 04 08 AND $080400,X C2/CF5A: 0C (Data - indexed by code in Bank C1, where X is between 0 and 3) C2/CF5B: 00 C2/CF5C: 20 C2/CF5D: 40 C2/CF5E: 60 C2/CF5F: 00 45 BRK $45 C2/CF61: D8 CLD C2/CF62: 00 00 BRK $00 C2/CF64: 48 PHA C2/CF65: D8 CLD C2/CF66: 00 00 BRK $00 C2/CF68: 49 D8 00 EOR #$00D8 C2/CF6B: 00 4C BRK $4C C2/CF6D: D8 CLD C2/CF6E: 00 00 BRK $00 C2/CF70: 4D D8 00 EOR $00D8 C2/CF73: 00 00 BRK $00 C2/CF75: 00 00 BRK $00 C2/CF77: 00 01 BRK $01 C2/CF79: 00 02 BRK $02 C2/CF7B: 03 03 ORA $03,S C2/CF7D: 03 03 ORA $03,S C2/CF7F: 04 04 TSB $04 C2/CF81: 04 04 TSB $04 C2/CF83: F7 FC SBC [$FC],Y C2/CF85: 0C 01 F7 TSB $F701 C2/CF88: FC 4C 01 JSR ($014C,X) C2/CF8B: F7 FC SBC [$FC],Y C2/CF8D: 8C 01 F7 STY $F701 C2/CF90: FC CC 01 JSR ($01CC,X) C2/CF93: 03 06 ORA $06,S C2/CF95: 08 PHP C2/CF96: 0A ASL C2/CF97: 0B PHD C2/CF98: 0D 0E 0F ORA $0F0E C2/CF9B: 0F 10 10 10 ORA $101010 C2/CF9F: 10 10 BPL $CFB1 C2/CFA1: 0F 0F 0E 0D ORA $0D0E0F C2/CFA5: 0B PHD C2/CFA6: 0A ASL C2/CFA7: 08 PHP C2/CFA8: 06 03 ASL $03 C2/CFAA: 00 03 BRK $03 C2/CFAC: 04 05 TSB $05 C2/CFAE: 06 07 ASL $07 C2/CFB0: 07 08 ORA [$08] C2/CFB2: 08 PHP C2/CFB3: 07 07 ORA [$07] C2/CFB5: 06 05 ASL $05 C2/CFB7: 04 03 TSB $03 C2/CFB9: 00 00 BRK $00 C2/CFBB: 00 00 BRK $00 C2/CFBD: 00 00 BRK $00 C2/CFBF: 00 00 BRK $00 C2/CFC1: 00 00 BRK $00 C2/CFC3: 00 00 BRK $00 C2/CFC5: 00 00 BRK $00 C2/CFC7: 00 00 BRK $00 C2/CFC9: 00 00 BRK $00 C2/CFCB: 00 00 BRK $00 C2/CFCD: 00 00 BRK $00 C2/CFCF: 00 00 BRK $00 C2/CFD1: 00 00 BRK $00 C2/CFD3: 00 (Data - indexed by loop in Bank C1 that has 24 iterations) C2/CFD4: BF C2/CFD5: 00 C2/CFD6: 63 C2/CFD7: 0C C2/CFD8: 6C C2/CFD9: 19 C2/CFDA: 10 C2/CFDB: 2E C2/CFDC: F7 C2/CFDD: 42 C2/CFDE: 0E C2/CFDF: 11 C2/CFE0: BC C2/CFE1: 2E C2/CFE2: 9F C2/CFE3: 4B C2/CFE4: AD C2/CFE5: 41 C2/CFE6: 39 C2/CFE7: 67 C2/CFE8: FF C2/CFE9: 7F C2/CFEA: 92 C2/CFEB: 21 (Data - indexed by loop in Bank C1 with 22 iterations) C2/CFEC: 42 C2/CFED: 08 C2/CFEE: 5A C2/CFEF: 6B C2/CFF0: C6 C2/CFF1: 18 C2/CFF2: 10 C2/CFF3: 42 C2/CFF4: 4A C2/CFF5: 29 C2/CFF6: 5A C2/CFF7: 6B C2/CFF8: 73 C2/CFF9: 4E C2/CFFA: 18 C2/CFFB: 63 C2/CFFC: EF C2/CFFD: 3D C2/CFFE: 73 C2/CFFF: 4E C2/D000: 4A C2/D001: 29 C2/D002: 00 00 AND #$0000 (Data - indexed by loop in Bank C1 with 22 iterations) C2/D004: C6 C2/D005: 44 C2/D006: FF C2/D007: 7F C2/D008: 60 C2/D009: 3C C2/D00A: F7 C2/D00B: 7E C2/D00C: AD C2/D00D: 7D C2/D00E: FF C2/D00F: 7F C2/D010: 18 C2/D011: 7F C2/D012: 52 C2/D013: 7E C2/D014: 8C C2/D015: 7D C2/D016: 52 C2/D017: 7E C2/D018: 29 C2/D019: 7D Pointers to monster formation size templates (aka molds) C2/D01A: 34 D0 C2/D01C: 44 D0 C2/D01E: 5C D0 C2/D020: 64 D0 C2/D022: 6C D0 C2/D024: 78 D0 C2/D026: 84 D0 C2/D028: 88 D0 C2/D02A: A0 D0 C2/D02C: B0 D0 C2/D02E: B4 D0 C2/D030: C8 D0 C2/D032: DC D0 Monster formation size templates (aka molds) (Byte 0 and 1: 16-bit pointer indicating where relative to start of tiles buffer [RAM Address $AE3F] to begin outputting this monster's tiles. Byte 2: maximum width in 8-pixel tiles for a monster in this slot. Byte 3: maximum height in 8-pixel tiles for a monster in this slot.) Template 0: C2/D034: 00 00 08 08 Enemy 1: 64 x 64 C2/D038: 00 01 08 08 Enemy 2: 64 x 64 C2/D03C: 00 10 08 08 Enemy 3: 64 x 64 C2/D040: 00 11 08 08 Enemy 4: 64 x 64 Template 1: C2/D044: 00 00 08 08 Enemy 1: 64 x 64 C2/D048: 00 01 08 08 Enemy 2: 64 x 64 C2/D04C: 00 10 04 04 Enemy 3: 32 x 32 C2/D050: 80 10 04 04 Enemy 4: 32 x 32 C2/D054: 00 11 04 04 Enemy 5: 32 x 32 C2/D058: 80 11 04 04 Enemy 6: 32 x 32 Template 2: C2/D05C: 00 00 0C 08 Enemy 1: 96 x 64 C2/D060: 00 10 0C 08 Enemy 2: 96 x 64 Template 3: C2/D064: 00 00 08 10 Enemy 1: 64 x 128 C2/D068: 00 01 08 10 Enemy 2: 64 x 128 Template 4: C2/D06C: 00 00 0C 08 Enemy 1: 96 x 64 C2/D070: 00 10 08 08 Enemy 2: 64 x 64 C2/D074: 00 11 08 08 Enemy 3: 64 x 64 Template 5: C2/D078: 00 00 08 10 Enemy 1: 64 x 128 C2/D07C: 00 01 08 08 Enemy 2: 64 x 64 C2/D080: 00 11 08 08 Enemy 3: 64 x 64 Template 6: C2/D084: 00 00 10 10 Enemy 1: 128 x 128 Template 7: C2/D088: 00 00 0C 0C Enemy 1: 96 x 96 C2/D08C: 80 01 04 0C Enemy 2: 32 x 96 C2/D090: 00 18 04 04 Enemy 3: 32 x 32 C2/D094: 80 18 04 04 Enemy 4: 32 x 32 C2/D098: 00 19 04 04 Enemy 5: 32 x 32 C2/D09C: 80 19 04 04 Enemy 6: 32 x 32 Template 8: C2/D0A0: 00 00 08 08 Enemy 1: 64 x 64 C2/D0A4: 00 10 08 08 Enemy 2: 64 x 64 C2/D0A8: 00 01 04 08 Enemy 3: 32 x 64 C2/D0AC: 00 11 04 08 Enemy 4: 32 x 64 Template 9: C2/D0B0: 00 00 0C 0C Enemy 1: 96 x 96 Template 10: C2/D0B4: 00 00 08 0C Enemy 1: 64 x 96 C2/D0B8: 00 01 04 08 Enemy 2: 32 x 64 C2/D0BC: 00 11 04 08 Enemy 3: 32 x 64 C2/D0C0: 00 18 04 04 Enemy 4: 32 x 32 C2/D0C4: 80 18 04 04 Enemy 5: 32 x 32 Template 11: C2/D0C8: 00 00 04 08 Enemy 1: 32 x 64 C2/D0CC: 80 00 04 08 Enemy 2: 32 x 64 C2/D0D0: 00 01 04 08 Enemy 3: 32 x 64 C2/D0D4: 00 11 04 08 Enemy 4: 32 x 64 C2/D0D8: 00 10 08 08 Enemy 5: 64 x 64 Template 12: C2/D0DC: 00 00 08 08 Enemy 1: 64 x 64 C2/D0E0: 00 01 08 08 Enemy 2: 64 x 64 C2/D0E4: 00 10 04 08 Enemy 3: 32 x 64 C2/D0E8: 80 10 04 08 Enemy 4: 32 x 64 C2/D0EC: 00 11 04 08 Enemy 5: 32 x 64 C2/D0F0: 80 11 04 08 Enemy 6: 32 x 64 C2/D0F4: 64 7B STZ $7B C2/D0F6: 89 33 7B BIT #$7B33 C2/D0F9: 89 49 7F BIT #$7F49 C2/D0FC: 89 00 04 BIT #$0400 C2/D0FF: 87 89 STA [$89] C2/D101: 60 RTS C2/D102: 8B PHB C2/D103: 89 33 8B BIT #$8B33 C2/D106: 89 44 8F BIT #$8F44 C2/D109: 89 05 87 BIT #$8705 C2/D10C: 89 00 64 BIT #$6400 C2/D10F: 7B TDC C2/D110: 89 33 7B BIT #$7B33 C2/D113: 89 0C 7F BIT #$7F0C C2/D116: 89 30 83 BIT #$8330 C2/D119: 89 0D 7F BIT #$7F0D C2/D11C: 89 00 64 BIT #$6400 C2/D11F: 6F 89 33 6F ADC $6F3389 C2/D123: 89 0C 73 BIT #$730C C2/D126: 89 30 77 BIT #$7730 C2/D129: 89 0D 73 BIT #$730D C2/D12C: 89 00 64 BIT #$6400 C2/D12F: 6F 89 33 6F ADC $6F3389 C2/D133: 89 49 73 BIT #$7349 C2/D136: 89 00 F0 BIT #$F000 C2/D139: 93 89 STA ($89,S),Y C2/D13B: F0 53 BEQ $D190 C2/D13D: 8B PHB C2/D13E: 00 CC BRK $CC C2/D140: 1F 9F CC 4F ORA $4FCC9F,X C2/D144: A0 C8 LDY #$C8 C2/D146: 7F 9C 00 F0 ADC $F0009C,X C2/D14A: 32 EA AND ($EA) C2/D14C: F0 12 BEQ $D160 C2/D14E: EB XBA C2/D14F: 00 (Data - addressed by C1/03FB with a pointer from 0 to FE, accessed two bytes at a time (one right after the other) ) C2/D150: BD C2/D151: D1 C4 C2/D153: D1 CB C2/D155: D1 F2 C2/D157: D1 25 C2/D159: D2 4B C2/D15B: D2 D2 C2/D15D: D1 38 C2/D15F: D2 E5 C2/D161: D1 80 C2/D163: D1 12 C2/D165: D2 FF C2/D167: D1 BD C2/D169: D1 C4 C2/D16B: D1 58 C2/D16D: D2 F2 C2/D16F: D1 25 C2/D171: D2 81 C2/D173: D2 D2 C2/D175: D1 68 C2/D177: D2 E5 C2/D179: D1 80 C2/D17B: D1 12 C2/D17D: D2 FF C2/D17F: D1 08 C2/D181: F5 43 C2/D183: 08 C2/D184: F9 43 08 C2/D187: FD 43 08 C2/D18A: 01 44 C2/D18C: 08 C2/D18D: 05 44 C2/D18F: 08 C2/D190: 09 44 08 C2/D193: 0D 44 08 C2/D196: 11 44 C2/D198: 08 C2/D199: 15 44 C2/D19B: 08 C2/D19C: 19 44 08 C2/D19F: 1D 44 08 C2/D1A2: 21 44 C2/D1A4: 08 C2/D1A5: 25 44 C2/D1A7: 08 PHP C2/D1A8: 29 44 08 AND #$0844 C2/D1AB: 2D 44 08 AND $0844 C2/D1AE: 31 44 AND ($44),Y C2/D1B0: 08 PHP C2/D1B1: 35 44 AND $44,X C2/D1B3: 08 PHP C2/D1B4: 39 44 07 AND $0744,Y C2/D1B7: 3D 44 C9 AND $C944,X C2/D1BA: 51 46 EOR ($46),Y C2/D1BC: 00 F0 BRK $F0 C2/D1BE: F5 43 SBC $43,X C2/D1C0: F0 B5 BEQ $D177 C2/D1C2: 45 00 EOR $00 C2/D1C4: F0 75 BEQ $D23B C2/D1C6: 47 F0 EOR [$F0] C2/D1C8: 35 49 AND $49,X C2/D1CA: 00 F0 BRK $F0 C2/D1CC: F5 4A SBC $4A,X C2/D1CE: F0 B5 BEQ $D185 C2/D1D0: 4C 00 A0 JMP $A000 C2/D1D3: F5 43 SBC $43,X C2/D1D5: A0 F5 LDY #$F5 C2/D1D7: 43 A0 EOR $A0,S C2/D1D9: F5 43 SBC $43,X C2/D1DB: A0 F5 LDY #$F5 C2/D1DD: 43 97 EOR $97,S C2/D1DF: F5 43 SBC $43,X C2/D1E1: C9 51 46 CMP #$4651 C2/D1E4: 00 C0 BRK $C0 C2/D1E6: F5 43 SBC $43,X C2/D1E8: C0 F5 43 CPY #$43F5 C2/D1EB: 97 F5 STA [$F5],Y C2/D1ED: 43 C9 EOR $C9,S C2/D1EF: 51 46 EOR ($46),Y C2/D1F1: 00 40 BRK $40 C2/D1F3: F5 43 SBC $43,X C2/D1F5: 40 RTI C2/D1F6: F5 43 SBC $43,X C2/D1F8: 17 F5 ORA [$F5],Y C2/D1FA: 43 C9 EOR $C9,S C2/D1FC: 51 46 EOR ($46),Y C2/D1FE: 00 A0 BRK $A0 C2/D200: 75 47 ADC $47,X C2/D202: A0 75 LDY #$75 C2/D204: 47 90 EOR [$90] C2/D206: 75 47 ADC $47,X C2/D208: B0 75 BCS $D27F C2/D20A: 48 PHA C2/D20B: 97 75 STA [$75],Y C2/D20D: 48 PHA C2/D20E: C9 D1 49 CMP #$49D1 C2/D211: 00 A0 BRK $A0 C2/D213: 75 47 ADC $47,X C2/D215: A0 75 LDY #$75 C2/D217: 47 97 EOR [$97] C2/D219: 75 47 ADC $47,X C2/D21B: A9 75 48 LDA #$4875 C2/D21E: 97 75 STA [$75],Y C2/D220: 48 PHA C2/D221: C9 D1 49 CMP #$49D1 C2/D224: 00 A0 BRK $A0 C2/D226: 75 47 ADC $47,X C2/D228: A0 75 LDY #$75 C2/D22A: 47 A0 EOR [$A0] C2/D22C: 75 47 ADC $47,X C2/D22E: A0 75 LDY #$75 C2/D230: 47 97 EOR [$97] C2/D232: 75 47 ADC $47,X C2/D234: C9 D1 49 CMP #$49D1 C2/D237: 00 A0 BRK $A0 C2/D239: F5 4A SBC $4A,X C2/D23B: A0 F5 LDY #$F5 C2/D23D: 4A LSR C2/D23E: A0 F5 LDY #$F5 C2/D240: 4A LSR C2/D241: A0 F5 LDY #$F5 C2/D243: 4A LSR C2/D244: 97 F5 STA [$F5],Y C2/D246: 4A LSR C2/D247: C9 51 4D CMP #$4D51 C2/D24A: 00 40 BRK $40 C2/D24C: F5 4A SBC $4A,X C2/D24E: 40 RTI C2/D24F: F5 4A SBC $4A,X C2/D251: 17 F5 ORA [$F5],Y C2/D253: 4A LSR C2/D254: C9 51 4D CMP #$4D51 C2/D257: 00 E4 BRK $E4 C2/D259: F5 4A SBC $4A,X C2/D25B: B3 85 LDA ($85,S),Y C2/D25D: 4C 8C 51 JMP $518C C2/D260: 4D 30 86 EOR $8630 C2/D263: 7B TDC C2/D264: 8D 41 4E STA $4E41 C2/D267: 00 A0 BRK $A0 C2/D269: F5 4A SBC $4A,X C2/D26B: A0 F5 LDY #$F5 C2/D26D: 4A LSR C2/D26E: A0 F5 LDY #$F5 C2/D270: 4A LSR C2/D271: A0 F5 LDY #$F5 C2/D273: 4A LSR C2/D274: 97 F5 STA [$F5],Y C2/D276: 4A LSR C2/D277: 8C 51 4D STY $4D51 C2/D27A: 30 86 BMI $D202 C2/D27C: 7B TDC C2/D27D: 8D 41 4E STA $4E41 C2/D280: 00 40 BRK $40 C2/D282: F5 4A SBC $4A,X C2/D284: 40 RTI C2/D285: F5 4A SBC $4A,X C2/D287: 17 F5 ORA [$F5],Y C2/D289: 4A LSR C2/D28A: 8C 51 4D STY $4D51 C2/D28D: 30 86 BMI $D215 C2/D28F: 7B TDC C2/D290: 8D 41 4E STA $4E41 C2/D293: 00 (Data - indexed in routine C1/04CA with a pointer between 0 and Eh, 16 bits at a time) C2/D294: 00 00 C2/D296: 20 00 C2/D298: 40 00 C2/D29A: 60 00 C2/D29C: 80 00 C2/D29E: A0 00 C2/D2A0: C0 00 C2/D2A2: E0 00 (Data - indexed in routine C1/0461 with a pointer between 0 and Eh, 16 bits at a time) C2/D2A4: 40 71 C2/D2A6: 60 71 C2/D2A8: 80 71 C2/D2AA: A0 71 C2/D2AC: C0 71 C2/D2AE: E0 71 C2/D2B0: 00 72 C2/D2B2: 20 72 (Data - indexed in routine C1/0461 with a pointer between 0 and Eh, 16 bits at a time) C2/D2B4: 00 00 C2/D2B6: 40 00 C2/D2B8: 80 00 C2/D2BA: C0 00 C2/D2BC: 00 01 C2/D2BE: 40 01 C2/D2C0: 80 01 C2/D2C2: C0 01 C2/D2C4: 00 C2/D2C5: A0 80 LDY #$80 C2/D2C7: A0 00 LDY #$00 C2/D2C9: A1 80 LDA ($80,X) C2/D2CB: A1 00 LDA ($00,X) C2/D2CD: A2 80 LDX #$80 C2/D2CF: A2 00 LDX #$00 C2/D2D1: A3 80 LDA $80,S C2/D2D3: A3 00 LDA $00,S C2/D2D5: 20 40 20 JSR $2040 C2/D2D8: 80 20 BRA $D2FA C2/D2DA: C0 20 00 CPY #$0020 C2/D2DD: 21 40 AND ($40,X) C2/D2DF: 21 80 AND ($80,X) C2/D2E1: 21 C0 AND ($C0,X) C2/D2E3: 21 (Data - indexed in routine C1/0A16 with a pointer between 0 and 3Eh, 16 bits at a time) C2/D2E4: 00 A4 C2/D2E6: 00 A6 C2/D2E8: 80 A4 C2/D2EA: 80 A6 C2/D2EC: 00 A5 C2/D2EE: 00 A7 C2/D2F0: 80 A5 C2/D2F2: 80 A7 C2/D2F4: 00 A8 C2/D2F6: 00 AA C2/D2F8: 80 A8 C2/D2FA: 80 AA C2/D2FC: 00 A9 C2/D2FE: 00 AB C2/D300: 80 A9 C2/D302: 80 AB C2/D304: 00 AC C2/D306: 00 AE C2/D308: 80 AC C2/D30A: 80 AE C2/D30C: 00 AD C2/D30E: 00 AF C2/D310: 80 AD C2/D312: 80 AF C2/D314: 00 B0 C2/D316: 00 B2 C2/D318: 80 B0 C2/D31A: 80 B2 C2/D31C: 00 B1 C2/D31E: 00 B3 C2/D320: 80 B1 C2/D322: 80 A7 (Data - indexed in routine C1/0A16 with a pointer between 0 and 3Eh, 16-bits at a time) C2/D324: 00 22 C2/D326: 00 23 C2/D328: 40 22 C2/D32A: 40 23 C2/D32C: 80 22 C2/D32E: 80 23 C2/D330: C0 22 C2/D332: C0 23 C2/D334: 00 22 C2/D336: 00 23 C2/D338: 40 22 C2/D33A: 40 23 C2/D33C: 80 22 C2/D33E: 80 23 C2/D340: C0 22 C2/D342: C0 23 C2/D344: 00 22 C2/D346: 00 23 C2/D348: 40 22 C2/D34A: 40 23 C2/D34C: 80 22 C2/D34E: 80 23 C2/D350: C0 22 C2/D352: C0 23 C2/D354: 00 22 C2/D356: 00 23 C2/D358: 40 22 C2/D35A: 40 23 C2/D35C: 80 22 C2/D35E: 80 23 C2/D360: C0 22 C2/D362: C0 23 (Data - used by code in Bank C1) C2/D364: 0E C2/D365: 2A C2/D366: 46 C2/D367: 62 (Data - different parts indexed by various places in Bank C1) (setup addresses for DMA transfer. the code puts word C2/D368,X into 00/43n0 word C2/D368,X+2 into 00/43n2. byte C2/D368,X+4 into 00/43n4. then it manually puts #$7E into 00/43n7) (ex - first chunk below would have data copied from C2/D1F2 to 7E/0D43??) C2/D368: 43 0D C2/D36A: F2 D1 C2/D36C: C2 C2/D36D: 43 0F C2/D36F: 25 D2 C2/D371: C2 C2/D372: 43 11 C2/D374: 4B D2 C2/D376: C2 C2/D377: 44 05 C2/D379: 2E D1 C2/D37B: C2 C2/D37C: 44 2F C2/D37E: 38 D1 C2/D380: C2 C2/D381: 41 31 C2/D383: 49 D1 C2/D385: C2 C2/D386: 44 09 C2/D388: F4 D0 C2/D38A: C2 C2/D38B: 44 05 C2/D38D: 1E D1 C2/D38F: C2 C2/D390: 44 09 C2/D392: 0E D1 C2/D394: C2 (Data - setup for DMA transfer. done in Bank C1. see comments for D368) C2/D395: 44 2A C2/D397: FE D0 C2/D399: C2 (Data - setup for DMA transfer. done in Bank C1. see comments for D368) C2/D39A: 44 26 C2/D39C: 3F D1 C2/D39E: C2 C2/D39F: 01 01 ORA ($01,X) C2/D3A1: 01 01 ORA ($01,X) C2/D3A3: 01 02 ORA ($02,X) C2/D3A5: 01 02 ORA ($02,X) C2/D3A7: 01 02 ORA ($02,X) C2/D3A9: 02 03 COP $03 C2/D3AB: 02 03 COP $03 C2/D3AD: 03 03 ORA $03,S C2/D3AF: 04 03 TSB $03 C2/D3B1: 04 04 TSB $04 C2/D3B3: 04 05 TSB $05 C2/D3B5: 04 05 TSB $05 C2/D3B7: 05 05 ORA $05 C2/D3B9: 05 05 ORA $05 C2/D3BB: 05 05 ORA $05 C2/D3BD: 05 04 ORA $04 C2/D3BF: 05 04 ORA $04 C2/D3C1: 04 04 TSB $04 C2/D3C3: 03 04 ORA $04,S C2/D3C5: 03 03 ORA $03,S C2/D3C7: 03 02 ORA $02,S C2/D3C9: 03 02 ORA $02,S C2/D3CB: 02 01 COP $01 C2/D3CD: 02 01 COP $01 C2/D3CF: 02 01 COP $01 C2/D3D1: 01 01 ORA ($01,X) C2/D3D3: 01 01 ORA ($01,X) C2/D3D5: A9 00 LDA #$00 C2/D3D7: 48 PHA C2/D3D8: AB PLB (set the Data Bank register to 0) C2/D3D9: 8D 00 42 STA $4200 C2/D3DC: A2 00 00 LDX #$0000 C2/D3DF: DA PHX C2/D3E0: 2B PLD C2/D3E1: A9 80 LDA #$80 C2/D3E3: 8D 00 21 STA $2100 C2/D3E6: A9 61 LDA #$61 C2/D3E8: 8D 01 21 STA $2101 C2/D3EB: A9 80 LDA #$80 C2/D3ED: 8D 15 21 STA $2115 C2/D3F0: A9 00 LDA #$00 C2/D3F2: AA TAX C2/D3F3: 8D 13 21 STA $2113 C2/D3F6: 8D 13 21 STA $2113 C2/D3F9: 8D 14 21 STA $2114 C2/D3FC: 8D 14 21 STA $2114 C2/D3FF: 8D 2E 21 STA $212E C2/D402: 8D 2F 21 STA $212F C2/D405: 8D 0B 42 STA $420B C2/D408: 8D 0C 42 STA $420C C2/D40B: 8D 31 21 STA $2131 C2/D40E: 8D 33 21 STA $2133 C2/D411: 8D 30 21 STA $2130 C2/D414: 8D 28 21 STA $2128 C2/D417: 8D 29 21 STA $2129 C2/D41A: A9 C1 8D LDA #$8DC1 C2/D41D: 03 15 ORA $15,S C2/D41F: A9 C1 8D LDA #$8DC1 C2/D422: 07 15 ORA [$15] C2/D424: A2 A7 LDX #$A7 C2/D426: 0B PHD C2/D427: 8E 01 15 STX $1501 C2/D42A: A2 4A LDX #$4A C2/D42C: 0D 8E 05 ORA $058E C2/D42F: 15 A9 ORA $A9,X C2/D431: 5C 8D 00 15 JMP $15008D C2/D435: 8D 04 15 STA $1504 C2/D438: A9 01 8F LDA #$8F01 C2/D43B: 0D 42 00 ORA $0042 C2/D43E: A9 33 8D LDA #$8D33 C2/D441: 23 21 AND $21,S C2/D443: 8D 24 21 STA $2124 C2/D446: 8D 25 21 STA $2125 C2/D449: A9 7E 48 LDA #$487E C2/D44C: AB PLB C2/D44D: A2 00 LDX #$00 C2/D44F: 00 9E BRK $9E C2/D451: 00 00 BRK $00 C2/D453: E8 INX C2/D454: E0 9C CPX #$9C C2/D456: 00 D0 BRK $D0 C2/D458: F7 A2 SBC [$A2],Y C2/D45A: 78 SEI C2/D45B: 61 9E ADC ($9E,X) C2/D45D: 00 00 BRK $00 C2/D45F: E8 INX C2/D460: E0 13 CPX #$13 C2/D462: 8D D0 F7 STA $F7D0 C2/D465: 7B TDC C2/D466: AA TAX C2/D467: 9D 00 7E STA $7E00,X C2/D46A: E8 INX C2/D46B: E0 00 CPX #$00 C2/D46D: 02 D0 COP $D0 C2/D46F: F7 6B SBC [$6B],Y C2/D471: 3F AE 00 24 AND $2400AE,X C2/D475: 3F B0 00 25 AND $2500B0,X C2/D479: 3F B2 00 26 AND $2600B2,X C2/D47D: 3F B4 00 27 AND $2700B4,X C2/D481: 3F B6 00 28 AND $2800B6,X C2/D485: 3F B8 00 29 AND $2900B8,X C2/D489: 3F BA 00 2A AND $2A00BA,X C2/D48D: 3F BC 00 2B AND $2B00BC,X C2/D491: 3F BE 00 2C AND $2C00BE,X C2/D495: 3F C4 00 2D AND $2D00C4,X C2/D499: 29 25 43 AND #$4325 C2/D49C: 08 PHP C2/D49D: FE 7F 32 INC $327F,X C2/D4A0: 7F 2A 5A 44 ADC $445A2A,X C2/D4A4: 45 A2 EOR $A2 C2/D4A6: 30 F2 BMI $D49A C2/D4A8: 56 0A LSR $0A,X C2/D4AA: 2A ROL C2/D4AB: 21 11 AND ($11,X) C2/D4AD: D9 19 D2 CMP $D219,Y C2/D4B0: 10 8A BPL $D43C C2/D4B2: 0C BD 0E TSB $0EBD C2/D4B5: F1 09 SBC ($09),Y C2/D4B7: 0A ASL C2/D4B8: 05 6B ORA $6B C2/D4BA: 2D 43 08 AND $0843 C2/D4BD: 2A ROL C2/D4BE: 5A PHY C2/D4BF: FE 7F 32 INC $327F,X C2/D4C2: 7F 2A 5A 44 ADC $445A2A,X C2/D4C6: 45 F2 EOR $F2 C2/D4C8: 56 0A LSR $0A,X C2/D4CA: 2A ROL C2/D4CB: 21 11 AND ($11,X) C2/D4CD: D9 19 D2 CMP $D219,Y C2/D4D0: 10 8A BPL $D45C C2/D4D2: 0C BD 0E TSB $0EBD C2/D4D5: F1 09 SBC ($09),Y C2/D4D7: 0A ASL C2/D4D8: 05 6B ORA $6B C2/D4DA: 2D 43 08 AND $0843 C2/D4DD: 44 45 2A MVP $45,$2A C2/D4E0: 5A PHY C2/D4E1: FE 7F 32 INC $327F,X C2/D4E4: 7F 2A 5A F2 ADC $F25A2A,X C2/D4E8: 56 0A LSR $0A,X C2/D4EA: 2A ROL C2/D4EB: 21 11 AND ($11,X) C2/D4ED: D9 19 D2 CMP $D219,Y C2/D4F0: 10 8A BPL $D47C C2/D4F2: 0C BD 0E TSB $0EBD C2/D4F5: F1 09 SBC ($09),Y C2/D4F7: 0A ASL C2/D4F8: 05 6B ORA $6B C2/D4FA: 2D 43 08 AND $0843 C2/D4FD: 2A ROL C2/D4FE: 5A PHY C2/D4FF: 44 45 2A MVP $45,$2A C2/D502: 5A PHY C2/D503: FE 7F 32 INC $327F,X C2/D506: 7F F2 56 0A ADC $0A56F2,X C2/D50A: 2A ROL C2/D50B: 21 11 AND ($11,X) C2/D50D: D9 19 D2 CMP $D219,Y C2/D510: 10 8A BPL $D49C C2/D512: 0C BD 0E TSB $0EBD C2/D515: F1 09 SBC ($09),Y C2/D517: 0A ASL C2/D518: 05 6B ORA $6B C2/D51A: 2D 43 08 AND $0843 C2/D51D: F1 6E SBC ($6E),Y C2/D51F: 2A ROL C2/D520: 5A PHY C2/D521: 44 45 2A MVP $45,$2A C2/D524: 5A PHY C2/D525: FE 7F F2 INC $F27F,X C2/D528: 56 0A LSR $0A,X C2/D52A: 2A ROL C2/D52B: 21 11 AND ($11,X) C2/D52D: D9 19 D2 CMP $D219,Y C2/D530: 10 8A BPL $D4BC C2/D532: 0C BD 0E TSB $0EBD C2/D535: F1 09 SBC ($09),Y C2/D537: 0A ASL C2/D538: 05 AD ORA $AD C2/D53A: 1B TCS C2/D53B: 96 0A STX $0A,Y C2/D53D: AA TAX C2/D53E: 7C 41 D5 JMP ($D541,X) C2/D541: 77 D7 ADC [$D7],Y C2/D543: AD D7 12 LDA $12D7 C2/D546: D8 CLD C2/D547: CD D6 27 CMP $27D6 C2/D54A: D6 18 DEC $18,X C2/D54C: D8 CLD C2/D54D: ED D6 53 SBC $53D6 C2/D550: D5 0C CMP $0C,X C2/D552: D8 CLD C2/D553: A2 FE LDX #$FE C2/D555: 64 22 STZ $22 C2/D557: 64 26 STZ $26 C2/D559: A5 26 LDA $26 C2/D55B: 29 01 D0 AND #$D001 C2/D55E: 2E A5 16 ROL $16A5 C2/D561: 38 SEC C2/D562: F9 1F 9E SBC $9E1F,Y C2/D565: 90 04 BCC $D56B C2/D567: C9 08 B0 CMP #$B008 C2/D56A: 02 A9 COP $A9 C2/D56C: 08 PHP C2/D56D: 8F 80 21 00 STA $002180 C2/D571: 9D 1F 96 STA $961F,X C2/D574: B9 1F 9E LDA $9E1F,Y C2/D577: 18 CLC C2/D578: 65 18 ADC $18 C2/D57A: B0 04 BCS $D580 C2/D57C: C9 F7 90 CMP #$90F7 C2/D57F: 02 A9 COP $A9 C2/D581: F7 8F SBC [$8F],Y C2/D583: 80 21 BRA $D5A6 C2/D585: 00 9D BRK $9D C2/D587: 20 96 CA JSR $CA96 C2/D58A: CA DEX C2/D58B: 80 24 BRA $D5B1 C2/D58D: A5 16 LDA $16 C2/D58F: 38 SEC C2/D590: F9 1F 9E SBC $9E1F,Y C2/D593: 90 04 BCC $D599 C2/D595: C9 08 B0 CMP #$B008 C2/D598: 02 A9 COP $A9 C2/D59A: 08 PHP C2/D59B: 9D 1F 96 STA $961F,X C2/D59E: B9 1F 9E LDA $9E1F,Y C2/D5A1: 18 CLC C2/D5A2: 65 18 ADC $18 C2/D5A4: B0 04 BCS $D5AA C2/D5A6: C9 F7 90 CMP #$90F7 C2/D5A9: 02 A9 COP $A9 C2/D5AB: F7 9D SBC [$9D],Y C2/D5AD: 20 96 CA JSR $CA96 C2/D5B0: CA DEX C2/D5B1: E6 26 INC $26 C2/D5B3: C8 INY C2/D5B4: C4 12 CPY $12 C2/D5B6: D0 A1 BNE $D559 C2/D5B8: 7B TDC C2/D5B9: 99 1F 9E STA $9E1F,Y C2/D5BC: 88 DEY C2/D5BD: B9 1F 9E LDA $9E1F,Y C2/D5C0: 3A DEC C2/D5C1: 85 12 STA $12 C2/D5C3: B9 1F 9E LDA $9E1F,Y C2/D5C6: D9 1E 9E CMP $9E1E,Y C2/D5C9: F0 56 BEQ $D621 C2/D5CB: A5 26 LDA $26 C2/D5CD: 29 01 D0 AND #$D001 C2/D5D0: 2C A5 16 BIT $16A5 C2/D5D3: 38 SEC C2/D5D4: E5 12 SBC $12 C2/D5D6: 90 04 BCC $D5DC C2/D5D8: C9 08 B0 CMP #$B008 C2/D5DB: 02 A9 COP $A9 C2/D5DD: 08 PHP C2/D5DE: 8F 80 21 00 STA $002180 C2/D5E2: 9D 1F 96 STA $961F,X C2/D5E5: A5 12 LDA $12 C2/D5E7: 18 CLC C2/D5E8: 65 18 ADC $18 C2/D5EA: B0 04 BCS $D5F0 C2/D5EC: C9 F7 90 CMP #$90F7 C2/D5EF: 02 A9 COP $A9 C2/D5F1: F7 8F SBC [$8F],Y C2/D5F3: 80 21 BRA $D616 C2/D5F5: 00 9D BRK $9D C2/D5F7: 20 96 CA JSR $CA96 C2/D5FA: CA DEX C2/D5FB: 80 22 BRA $D61F C2/D5FD: A5 16 LDA $16 C2/D5FF: 38 SEC C2/D600: E5 12 SBC $12 C2/D602: 90 04 BCC $D608 C2/D604: C9 08 B0 CMP #$B008 C2/D607: 02 A9 COP $A9 C2/D609: 08 PHP C2/D60A: 9D 1F 96 STA $961F,X C2/D60D: A5 12 LDA $12 C2/D60F: 18 CLC C2/D610: 65 18 ADC $18 C2/D612: B0 04 BCS $D618 C2/D614: C9 F7 90 CMP #$90F7 C2/D617: 02 A9 COP $A9 C2/D619: F7 9D SBC [$9D],Y C2/D61B: 20 96 CA JSR $CA96 C2/D61E: CA DEX C2/D61F: E6 26 INC $26 C2/D621: C6 12 DEC $12 C2/D623: 88 DEY C2/D624: D0 9D BNE $D5C3 C2/D626: 60 RTS C2/D627: A2 FC LDX #$FC C2/D629: A5 16 LDA $16 C2/D62B: 38 SEC C2/D62C: F9 1F 9E SBC $9E1F,Y C2/D62F: 90 04 BCC $D635 C2/D631: C9 08 B0 CMP #$B008 C2/D634: 02 A9 COP $A9 C2/D636: 08 PHP C2/D637: 8F 80 21 00 STA $002180 C2/D63B: 85 22 STA $22 C2/D63D: 9D 1F 96 STA $961F,X C2/D640: 9D 21 96 STA $9621,X C2/D643: B9 1F 9E LDA $9E1F,Y C2/D646: 18 CLC C2/D647: 65 18 ADC $18 C2/D649: B0 04 BCS $D64F C2/D64B: C9 F7 90 CMP #$90F7 C2/D64E: 02 A9 COP $A9 C2/D650: F7 8F SBC [$8F],Y C2/D652: 80 21 BRA $D675 C2/D654: 00 85 BRK $85 C2/D656: 23 9D AND $9D,S C2/D658: 20 96 9D JSR $9D96 C2/D65B: 22 96 A5 22 JSR $22A596 C2/D65F: 8F 80 21 00 STA $002180 C2/D663: A5 23 LDA $23 C2/D665: 8F 80 21 00 STA $002180 C2/D669: CA DEX C2/D66A: CA DEX C2/D66B: CA DEX C2/D66C: CA DEX C2/D66D: C8 INY C2/D66E: C4 12 CPY $12 C2/D670: D0 B7 BNE $D629 C2/D672: 7B TDC C2/D673: 99 1F 9E STA $9E1F,Y C2/D676: 88 DEY C2/D677: B9 1F 9E LDA $9E1F,Y C2/D67A: 3A DEC C2/D67B: 85 12 STA $12 C2/D67D: B9 1F 9E LDA $9E1F,Y C2/D680: D9 1E 9E CMP $9E1E,Y C2/D683: F0 42 BEQ $D6C7 C2/D685: A5 16 LDA $16 C2/D687: 38 SEC C2/D688: E5 12 SBC $12 C2/D68A: 90 04 BCC $D690 C2/D68C: C9 08 B0 CMP #$B008 C2/D68F: 02 A9 COP $A9 C2/D691: 08 PHP C2/D692: 8F 80 21 00 STA $002180 C2/D696: 85 22 STA $22 C2/D698: 9D 1F 96 STA $961F,X C2/D69B: 9D 21 96 STA $9621,X C2/D69E: A5 12 LDA $12 C2/D6A0: 18 CLC C2/D6A1: 65 18 ADC $18 C2/D6A3: B0 04 BCS $D6A9 C2/D6A5: C9 F7 90 CMP #$90F7 C2/D6A8: 02 A9 COP $A9 C2/D6AA: F7 8F SBC [$8F],Y C2/D6AC: 80 21 BRA $D6CF C2/D6AE: 00 85 BRK $85 C2/D6B0: 23 9D AND $9D,S C2/D6B2: 20 96 9D JSR $9D96 C2/D6B5: 22 96 A5 22 JSR $22A596 C2/D6B9: 8F 80 21 00 STA $002180 C2/D6BD: A5 23 LDA $23 C2/D6BF: 8F 80 21 00 STA $002180 C2/D6C3: CA DEX C2/D6C4: CA DEX C2/D6C5: CA DEX C2/D6C6: CA DEX C2/D6C7: C6 12 DEC $12 C2/D6C9: 88 DEY C2/D6CA: D0 B1 BNE $D67D C2/D6CC: 60 RTS C2/D6CD: 20 77 D7 JSR $D777 C2/D6D0: C2 20 REP #$20 C2/D6D2: 7B TDC C2/D6D3: AA TAX C2/D6D4: AD 1F 97 LDA $971F C2/D6D7: 9D 1F 96 STA $961F,X C2/D6DA: 9D 5F 96 STA $965F,X C2/D6DD: 9D 9F 96 STA $969F,X C2/D6E0: 9D DF 96 STA $96DF,X C2/D6E3: E8 INX C2/D6E4: E8 INX C2/D6E5: E0 40 CPX #$40 C2/D6E7: D0 EE BNE $D6D7 C2/D6E9: 7B TDC C2/D6EA: E2 20 SEP #$20 C2/D6EC: 60 RTS C2/D6ED: A2 FE LDX #$FE C2/D6EF: 64 22 STZ $22 C2/D6F1: 64 26 STZ $26 C2/D6F3: A5 26 LDA $26 C2/D6F5: 29 01 D0 AND #$D001 C2/D6F8: 2C A5 16 BIT $16A5 C2/D6FB: 38 SEC C2/D6FC: F9 1F 9E SBC $9E1F,Y C2/D6FF: 90 04 BCC $D705 C2/D701: C9 08 B0 CMP #$B008 C2/D704: 02 A9 COP $A9 C2/D706: 08 PHP C2/D707: 8F 80 21 00 STA $002180 C2/D70B: 9D 1F 96 STA $961F,X C2/D70E: B9 1F 9E LDA $9E1F,Y C2/D711: 18 CLC C2/D712: 65 18 ADC $18 C2/D714: B0 04 BCS $D71A C2/D716: C9 F7 90 CMP #$90F7 C2/D719: 02 A9 COP $A9 C2/D71B: F7 8F SBC [$8F],Y C2/D71D: 80 21 BRA $D740 C2/D71F: 00 9D BRK $9D C2/D721: 20 96 CA JSR $CA96 C2/D724: CA DEX C2/D725: E6 26 INC $26 C2/D727: C8 INY C2/D728: C4 12 CPY $12 C2/D72A: D0 C7 BNE $D6F3 C2/D72C: 7B TDC C2/D72D: 99 1F 9E STA $9E1F,Y C2/D730: 88 DEY C2/D731: B9 1F 9E LDA $9E1F,Y C2/D734: 3A DEC C2/D735: 85 12 STA $12 C2/D737: B9 1F 9E LDA $9E1F,Y C2/D73A: D9 1E 9E CMP $9E1E,Y C2/D73D: F0 32 BEQ $D771 C2/D73F: A5 26 LDA $26 C2/D741: 29 01 D0 AND #$D001 C2/D744: 2A ROL C2/D745: A5 16 LDA $16 C2/D747: 38 SEC C2/D748: E5 12 SBC $12 C2/D74A: 90 04 BCC $D750 C2/D74C: C9 08 B0 CMP #$B008 C2/D74F: 02 A9 COP $A9 C2/D751: 08 PHP C2/D752: 8F 80 21 00 STA $002180 C2/D756: 9D 1F 96 STA $961F,X C2/D759: A5 12 LDA $12 C2/D75B: 18 CLC C2/D75C: 65 18 ADC $18 C2/D75E: B0 04 BCS $D764 C2/D760: C9 F7 90 CMP #$90F7 C2/D763: 02 A9 COP $A9 C2/D765: F7 8F SBC [$8F],Y C2/D767: 80 21 BRA $D78A C2/D769: 00 9D BRK $9D C2/D76B: 20 96 CA JSR $CA96 C2/D76E: CA DEX C2/D76F: E6 26 INC $26 C2/D771: C6 12 DEC $12 C2/D773: 88 DEY C2/D774: D0 C1 BNE $D737 C2/D776: 60 RTS C2/D777: A2 FE LDX #$FE C2/D779: A5 16 LDA $16 C2/D77B: 38 SEC C2/D77C: F9 1F 9E SBC $9E1F,Y C2/D77F: 90 04 BCC $D785 C2/D781: C9 08 B0 CMP #$B008 C2/D784: 02 A9 COP $A9 C2/D786: 08 PHP C2/D787: 8F 80 21 00 STA $002180 C2/D78B: 9D 1F 96 STA $961F,X C2/D78E: B9 1F 9E LDA $9E1F,Y C2/D791: 18 CLC C2/D792: 65 18 ADC $18 C2/D794: B0 04 BCS $D79A C2/D796: C9 F7 90 CMP #$90F7 C2/D799: 02 A9 COP $A9 C2/D79B: F7 8F SBC [$8F],Y C2/D79D: 80 21 BRA $D7C0 C2/D79F: 00 9D BRK $9D C2/D7A1: 20 96 CA JSR $CA96 C2/D7A4: CA DEX C2/D7A5: C8 INY C2/D7A6: C4 12 CPY $12 C2/D7A8: D0 CF BNE $D779 C2/D7AA: 4C 6E D8 JMP $D86E C2/D7AD: A2 FE LDX #$FE C2/D7AF: AD 1A 96 LDA $961A C2/D7B2: 18 CLC C2/D7B3: 69 02 85 ADC #$8502 C2/D7B6: 26 8D ROL $8D C2/D7B8: 1A INC C2/D7B9: 96 A5 STX $A5,Y C2/D7BB: 26 18 ROL $18 C2/D7BD: 69 04 85 ADC #$8504 C2/D7C0: 26 DA ROL $DA C2/D7C2: 20 1D DD JSR $DD1D C2/D7C5: 85 18 STA $18 C2/D7C7: 85 16 STA $16 C2/D7C9: A5 1A LDA $1A C2/D7CB: 18 CLC C2/D7CC: 65 18 ADC $18 C2/D7CE: 85 18 STA $18 C2/D7D0: A5 1A LDA $1A C2/D7D2: 18 CLC C2/D7D3: 65 16 ADC $16 C2/D7D5: 85 16 STA $16 C2/D7D7: FA PLX C2/D7D8: A5 16 LDA $16 C2/D7DA: 38 SEC C2/D7DB: F9 1F 9E SBC $9E1F,Y C2/D7DE: 90 04 BCC $D7E4 C2/D7E0: C9 08 B0 CMP #$B008 C2/D7E3: 02 A9 COP $A9 C2/D7E5: 08 PHP C2/D7E6: 8F 80 21 00 STA $002180 C2/D7EA: 9D 1F 96 STA $961F,X C2/D7ED: B9 1F 9E LDA $9E1F,Y C2/D7F0: 18 CLC C2/D7F1: 65 18 ADC $18 C2/D7F3: B0 04 BCS $D7F9 C2/D7F5: C9 F7 90 CMP #$90F7 C2/D7F8: 02 A9 COP $A9 C2/D7FA: F7 8F SBC [$8F],Y C2/D7FC: 80 21 BRA $D81F C2/D7FE: 00 9D BRK $9D C2/D800: 20 96 CA JSR $CA96 C2/D803: CA DEX C2/D804: C8 INY C2/D805: C4 12 CPY $12 C2/D807: D0 B1 BNE $D7BA C2/D809: 4C 6E D8 JMP $D86E C2/D80C: 20 1E D8 JSR $D81E C2/D80F: 4C DE D9 JMP $D9DE C2/D812: 20 1E D8 JSR $D81E C2/D815: 4C 04 DA JMP $DA04 C2/D818: 20 1E D8 JSR $D81E C2/D81B: 4C F1 D9 JMP $D9F1 C2/D81E: A2 FE LDX #$FE C2/D820: A9 00 38 LDA #$3800 C2/D823: F9 1F 9E SBC $9E1F,Y C2/D826: 8F 80 21 00 STA $002180 C2/D82A: 9D 1F 96 STA $961F,X C2/D82D: B9 1F 9E LDA $9E1F,Y C2/D830: 8F 80 21 00 STA $002180 C2/D834: 9D 20 96 STA $9620,X C2/D837: CA DEX C2/D838: CA DEX C2/D839: C8 INY C2/D83A: C4 12 CPY $12 C2/D83C: D0 E2 BNE $D820 C2/D83E: 7B TDC C2/D83F: 99 1F 9E STA $9E1F,Y C2/D842: 88 DEY C2/D843: B9 1F 9E LDA $9E1F,Y C2/D846: 3A DEC C2/D847: 85 12 STA $12 C2/D849: B9 1F 9E LDA $9E1F,Y C2/D84C: D9 1E 9E CMP $9E1E,Y C2/D84F: F0 17 BEQ $D868 C2/D851: A9 00 38 LDA #$3800 C2/D854: E5 12 SBC $12 C2/D856: 8F 80 21 00 STA $002180 C2/D85A: 9D 1F 96 STA $961F,X C2/D85D: A5 12 LDA $12 C2/D85F: 8F 80 21 00 STA $002180 C2/D863: 9D 20 96 STA $9620,X C2/D866: CA DEX C2/D867: CA DEX C2/D868: C6 12 DEC $12 C2/D86A: 88 DEY C2/D86B: D0 DC BNE $D849 C2/D86D: 60 RTS C2/D86E: 7B TDC C2/D86F: 99 1F 9E STA $9E1F,Y C2/D872: 88 DEY C2/D873: B9 1F 9E LDA $9E1F,Y C2/D876: 3A DEC C2/D877: 85 12 STA $12 C2/D879: B9 1F 9E LDA $9E1F,Y C2/D87C: D9 1E 9E CMP $9E1E,Y C2/D87F: F0 2A BEQ $D8AB C2/D881: A5 16 LDA $16 C2/D883: 38 SEC C2/D884: E5 12 SBC $12 C2/D886: 90 04 BCC $D88C C2/D888: C9 08 B0 CMP #$B008 C2/D88B: 02 A9 COP $A9 C2/D88D: 08 PHP C2/D88E: 8F 80 21 00 STA $002180 C2/D892: 9D 1F 96 STA $961F,X C2/D895: A5 12 LDA $12 C2/D897: 18 CLC C2/D898: 65 18 ADC $18 C2/D89A: B0 04 BCS $D8A0 C2/D89C: C9 F7 90 CMP #$90F7 C2/D89F: 02 A9 COP $A9 C2/D8A1: F7 8F SBC [$8F],Y C2/D8A3: 80 21 BRA $D8C6 C2/D8A5: 00 9D BRK $9D C2/D8A7: 20 96 CA JSR $CA96 C2/D8AA: CA DEX C2/D8AB: C6 12 DEC $12 C2/D8AD: 88 DEY C2/D8AE: D0 C9 BNE $D879 C2/D8B0: 60 RTS C2/D8B1: 7B TDC C2/D8B2: AA TAX C2/D8B3: C2 20 REP #$20 C2/D8B5: E2 10 SEP #$10 C2/D8B7: A9 FF 00 LDA #$00FF C2/D8BA: 9D 1F 96 STA $961F,X C2/D8BD: 9D 5F 96 STA $965F,X C2/D8C0: 9D 9F 96 STA $969F,X C2/D8C3: 9D DF 96 STA $96DF,X C2/D8C6: 9D 1F 97 STA $971F,X C2/D8C9: 9D 5F 97 STA $975F,X C2/D8CC: 9D 9F 97 STA $979F,X C2/D8CF: 9D DF 97 STA $97DF,X C2/D8D2: E8 INX C2/D8D3: E8 INX C2/D8D4: E0 40 CPX #$40 C2/D8D6: D0 E2 BNE $D8BA C2/D8D8: C2 10 REP #$10 C2/D8DA: E2 20 SEP #$20 C2/D8DC: 60 RTS C2/D8DD: 20 E1 D8 JSR $D8E1 C2/D8E0: 6B RTL C2/D8E1: 20 B1 D8 JSR $D8B1 C2/D8E4: AD 13 96 LDA $9613 C2/D8E7: 29 7F D0 AND #$D07F C2/D8EA: 01 60 ORA ($60,X) C2/D8EC: E2 10 SEP #$10 C2/D8EE: 85 14 STA $14 C2/D8F0: 85 1E STA $1E C2/D8F2: AD 14 96 LDA $9614 C2/D8F5: 85 1A STA $1A C2/D8F7: 64 20 STZ $20 C2/D8F9: AD 19 96 LDA $9619 C2/D8FC: 85 24 STA $24 C2/D8FE: AD 1B 96 LDA $961B C2/D901: C9 08 F0 CMP #$F008 C2/D904: 08 PHP C2/D905: C9 05 F0 CMP #$F005 C2/D908: 04 C9 TSB $C9 C2/D90A: 02 D0 COP $D0 C2/D90C: 15 A5 ORA $A5,X C2/D90E: 14 85 TRB $85 C2/D910: 24 AD BIT $AD C2/D912: 1A INC C2/D913: 96 20 STX $20,Y C2/D915: 1D DD 85 ORA $85DD,X C2/D918: 24 A5 BIT $A5 C2/D91A: 14 18 TRB $18 C2/D91C: 65 24 ADC $24 C2/D91E: 85 14 STA $14 C2/D920: 85 1E STA $1E C2/D922: 7B TDC C2/D923: A8 TAY C2/D924: 3A DEC C2/D925: 85 12 STA $12 C2/D927: A5 1E LDA $1E C2/D929: C5 20 CMP $20 C2/D92B: 90 23 BCC $D950 C2/D92D: 99 1F 9E STA $9E1F,Y C2/D930: A5 20 LDA $20 C2/D932: 0A ASL C2/D933: 3A DEC C2/D934: 85 10 STA $10 C2/D936: C8 INY C2/D937: E6 20 INC $20 C2/D939: A5 14 LDA $14 C2/D93B: 38 SEC C2/D93C: E5 10 SBC $10 C2/D93E: 85 14 STA $14 C2/D940: C5 12 CMP $12 C2/D942: 90 E1 BCC $D925 C2/D944: C6 1E DEC $1E C2/D946: A5 1E LDA $1E C2/D948: 0A ASL C2/D949: 18 CLC C2/D94A: 65 14 ADC $14 C2/D94C: 85 14 STA $14 C2/D94E: 80 D5 BRA $D925 C2/D950: 84 12 STY $12 C2/D952: A9 1F 8F LDA #$8F1F C2/D955: 81 21 STA ($21,X) C2/D957: 00 A9 BRK $A9 C2/D959: 97 8F STA [$8F],Y C2/D95B: 82 21 00 BRL $C0D97F C2/D95E: A9 7E 8F LDA #$8F7E C2/D961: 83 21 STA $21,S C2/D963: 00 7B BRK $7B C2/D965: A8 TAY C2/D966: A5 1A LDA $1A C2/D968: 85 16 STA $16 C2/D96A: 85 18 STA $18 C2/D96C: 20 39 D5 JSR $D539 C2/D96F: C2 10 REP #$10 C2/D971: AD 15 96 LDA $9615 C2/D974: C9 81 90 CMP #$9081 C2/D977: 2B PLD C2/D978: 38 SEC C2/D979: E9 80 F0 SBC #$F080 C2/D97C: 26 C2 ROL $C2 C2/D97E: 20 0A 0A JSR $0A0A C2/D981: 85 22 STA $22 C2/D983: 7B TDC C2/D984: AA TAX C2/D985: AD 1B 96 LDA $961B C2/D988: 29 FF 00 AND #$00FF C2/D98B: C9 03 00 CMP #$0003 C2/D98E: D0 05 BNE $D995 C2/D990: AD 1F 96 LDA $961F C2/D993: 80 03 BRA $D998 C2/D995: A9 FF 00 LDA #$00FF C2/D998: 9D 21 9A STA $9A21,X C2/D99B: E8 INX C2/D99C: E8 INX C2/D99D: E8 INX C2/D99E: E8 INX C2/D99F: E4 22 CPX $22 C2/D9A1: D0 F5 BNE $D998 C2/D9A3: AD 15 96 LDA $9615 C2/D9A6: C2 20 REP #$20 C2/D9A8: 29 FF 00 AND #$00FF C2/D9AB: 0A ASL C2/D9AC: 0A ASL C2/D9AD: AA TAX C2/D9AE: 7B TDC C2/D9AF: A8 TAY C2/D9B0: B9 1F 96 LDA $961F,Y C2/D9B3: 9D 21 98 STA $9821,X C2/D9B6: C8 INY C2/D9B7: C8 INY C2/D9B8: C0 00 02 CPY #$0200 C2/D9BB: D0 11 BNE $D9CE C2/D9BD: A9 FF 00 LDA #$00FF C2/D9C0: 9D 21 98 STA $9821,X C2/D9C3: E8 INX C2/D9C4: E8 INX C2/D9C5: E8 INX C2/D9C6: E8 INX C2/D9C7: E0 5C CPX #$5C C2/D9C9: 04 D0 TSB $D0 C2/D9CB: F4 80 09 PEA $0980 C2/D9CE: E8 INX C2/D9CF: E8 INX C2/D9D0: E8 INX C2/D9D1: E8 INX C2/D9D2: E0 5C CPX #$5C C2/D9D4: 04 D0 TSB $D0 C2/D9D6: D9 7B E2 CMP $E27B,Y C2/D9D9: 20 EE 97 JSR $97EE C2/D9DC: 61 60 ADC ($60,X) C2/D9DE: C2 10 REP #$10 C2/D9E0: A9 08 8D LDA #$8D08 C2/D9E3: 1C 96 A9 TRB $A996 C2/D9E6: 10 8D BPL $D975 C2/D9E8: 1E 96 A9 ASL $A996,X C2/D9EB: 04 8D TSB $8D C2/D9ED: 1D 96 80 ORA $8096,X C2/D9F0: 24 C2 BIT $C2 C2/D9F2: 10 A9 BPL $D99D C2/D9F4: 04 8D TSB $8D C2/D9F6: 1C 96 A9 TRB $A996 C2/D9F9: 0A ASL C2/D9FA: 8D 1E 96 STA $961E C2/D9FD: A9 08 8D LDA #$8D08 C2/DA00: 1D 96 80 ORA $8096,X C2/DA03: 11 C2 ORA ($C2),Y C2/DA05: 10 A9 BPL $D9B0 C2/DA07: 08 PHP C2/DA08: 8D 1C 96 STA $961C C2/DA0B: A9 20 8D LDA #$8D20 C2/DA0E: 1E 96 A9 ASL $A996,X C2/DA11: 04 8D TSB $8D C2/DA13: 1D 96 AD ORA $AD96,X C2/DA16: 1A INC C2/DA17: 96 18 STX $18,Y C2/DA19: 6D 1C 96 ADC $961C C2/DA1C: 8D 1A 96 STA $961A C2/DA1F: 85 26 STA $26 C2/DA21: AD 1E 96 LDA $961E C2/DA24: 85 24 STA $24 C2/DA26: AD 1D 96 LDA $961D C2/DA29: 85 28 STA $28 C2/DA2B: 7B TDC C2/DA2C: A8 TAY C2/DA2D: A5 26 LDA $26 C2/DA2F: 18 CLC C2/DA30: 65 28 ADC $28 C2/DA32: 85 26 STA $26 C2/DA34: B9 20 96 LDA $9620,Y C2/DA37: F0 2C BEQ $DA65 C2/DA39: A5 26 LDA $26 C2/DA3B: 20 1D DD JSR $DD1D C2/DA3E: 18 CLC C2/DA3F: 65 16 ADC $16 C2/DA41: 85 22 STA $22 C2/DA43: B9 1F 96 LDA $961F,Y C2/DA46: 18 CLC C2/DA47: 65 22 ADC $22 C2/DA49: 90 04 BCC $DA4F C2/DA4B: C9 08 B0 CMP #$B008 C2/DA4E: 02 A9 COP $A9 C2/DA50: 08 PHP C2/DA51: 99 1F 96 STA $961F,Y C2/DA54: B9 20 96 LDA $9620,Y C2/DA57: 18 CLC C2/DA58: 65 22 ADC $22 C2/DA5A: B0 04 BCS $DA60 C2/DA5C: C9 F7 90 CMP #$90F7 C2/DA5F: 02 A9 COP $A9 C2/DA61: F7 99 SBC [$99],Y C2/DA63: 20 96 C8 JSR $C896 C2/DA66: C8 INY C2/DA67: C0 00 02 CPY #$0200 C2/DA6A: D0 C1 BNE $DA2D C2/DA6C: 60 RTS C2/DA6D: 20 71 DA JSR $DA71 C2/DA70: 6B RTL C2/DA71: 20 B1 D8 JSR $D8B1 C2/DA74: AD 5C 61 LDA $615C C2/DA77: CD 5E 61 CMP $615E C2/DA7A: F0 20 BEQ $DA9C C2/DA7C: 90 1E BCC $DA9C C2/DA7E: AD 60 61 LDA $6160 C2/DA81: CD 5E 61 CMP $615E C2/DA84: F0 1D BEQ $DAA3 C2/DA86: 90 1B BCC $DAA3 C2/DA88: AE 5B 61 LDX $615B C2/DA8B: 8E 65 61 STX $6165 C2/DA8E: AE 5D 61 LDX $615D C2/DA91: 8E 61 61 STX $6161 C2/DA94: AE 5F 61 LDX $615F C2/DA97: 8E 63 61 STX $6163 C2/DA9A: 80 2D BRA $DAC9 C2/DA9C: CD 60 61 CMP $6160 C2/DA9F: F0 16 BEQ $DAB7 C2/DAA1: 90 14 BCC $DAB7 C2/DAA3: AE 5F 61 LDX $615F C2/DAA6: 8E 61 61 STX $6161 C2/DAA9: AE 5B 61 LDX $615B C2/DAAC: 8E 63 61 STX $6163 C2/DAAF: AE 5D 61 LDX $615D C2/DAB2: 8E 65 61 STX $6165 C2/DAB5: 80 12 BRA $DAC9 C2/DAB7: AE 5B 61 LDX $615B C2/DABA: 8E 61 61 STX $6161 C2/DABD: AE 5D 61 LDX $615D C2/DAC0: 8E 63 61 STX $6163 C2/DAC3: AE 5F 61 LDX $615F C2/DAC6: 8E 65 61 STX $6165 C2/DAC9: AD 63 61 LDA $6163 C2/DACC: CD 65 61 CMP $6165 C2/DACF: F0 10 BEQ $DAE1 C2/DAD1: 90 0E BCC $DAE1 C2/DAD3: AE 63 61 LDX $6163 C2/DAD6: DA PHX C2/DAD7: AE 65 61 LDX $6165 C2/DADA: 8E 63 61 STX $6163 C2/DADD: FA PLX C2/DADE: 8E 65 61 STX $6165 C2/DAE1: AE 61 61 LDX $6161 C2/DAE4: 8E 4C 61 STX $614C C2/DAE7: AE 63 61 LDX $6163 C2/DAEA: 8E 4E 61 STX $614E C2/DAED: 22 C8 DC C2 JSR $C2DCC8 C2/DAF1: AD 61 61 LDA $6161 C2/DAF4: 85 1E STA $1E C2/DAF6: AD 62 61 LDA $6162 C2/DAF9: 85 20 STA $20 C2/DAFB: 20 6A DB JSR $DB6A C2/DAFE: AE 61 61 LDX $6161 C2/DB01: 8E 4C 61 STX $614C C2/DB04: AE 65 61 LDX $6165 C2/DB07: 8E 4E 61 STX $614E C2/DB0A: 22 C8 DC C2 JSR $C2DCC8 C2/DB0E: AD 61 61 LDA $6161 C2/DB11: 85 1E STA $1E C2/DB13: AD 62 61 LDA $6162 C2/DB16: 85 20 STA $20 C2/DB18: 20 19 DC JSR $DC19 C2/DB1B: AD 64 61 LDA $6164 C2/DB1E: CD 66 61 CMP $6166 C2/DB21: F0 21 BEQ $DB44 C2/DB23: 90 1F BCC $DB44 C2/DB25: AE 65 61 LDX $6165 C2/DB28: 8E 4C 61 STX $614C C2/DB2B: AE 63 61 LDX $6163 C2/DB2E: 8E 4E 61 STX $614E C2/DB31: 22 C8 DC C2 JSR $C2DCC8 C2/DB35: AD 65 61 LDA $6165 C2/DB38: 85 1E STA $1E C2/DB3A: AD 66 61 LDA $6166 C2/DB3D: 85 20 STA $20 C2/DB3F: 20 19 DC JSR $DC19 C2/DB42: 80 1D BRA $DB61 C2/DB44: AE 63 61 LDX $6163 C2/DB47: 8E 4C 61 STX $614C C2/DB4A: AE 65 61 LDX $6165 C2/DB4D: 8E 4E 61 STX $614E C2/DB50: 22 C8 DC C2 JSR $C2DCC8 C2/DB54: AD 63 61 LDA $6163 C2/DB57: 85 1E STA $1E C2/DB59: AD 64 61 LDA $6164 C2/DB5C: 85 20 STA $20 C2/DB5E: 20 6A DB JSR $DB6A C2/DB61: AD 55 61 LDA $6155 C2/DB64: 8D 15 96 STA $9615 C2/DB67: 4C 6F D9 JMP $D96F C2/DB6A: AD 54 61 LDA $6154 C2/DB6D: 85 10 STA $10 C2/DB6F: 30 04 BMI $DB75 C2/DB71: A9 08 80 LDA #$8008 C2/DB74: 02 A9 COP $A9 C2/DB76: F7 85 SBC [$85],Y C2/DB78: 14 64 TRB $64 C2/DB7A: 11 64 ORA ($64),Y C2/DB7C: 15 64 ORA $64,X C2/DB7E: 1F A5 20 C2 ORA $C220A5,X C2/DB82: 20 0A A8 JSR $A80A C2/DB85: A5 10 LDA $10 C2/DB87: 38 SEC C2/DB88: E9 80 00 SBC #$0080 C2/DB8B: 85 10 STA $10 C2/DB8D: 7B TDC C2/DB8E: E2 20 SEP #$20 C2/DB90: AE 52 61 LDX $6152 C2/DB93: 86 22 STX $22 C2/DB95: 86 24 STX $24 C2/DB97: A5 23 LDA $23 C2/DB99: D0 01 BNE $DB9C C2/DB9B: 60 RTS C2/DB9C: AD 50 61 LDA $6150 C2/DB9F: 30 3C BMI $DBDD C2/DBA1: A5 24 LDA $24 C2/DBA3: C5 23 CMP $23 C2/DBA5: 90 07 BCC $DBAE C2/DBA7: 38 SEC C2/DBA8: E5 23 SBC $23 C2/DBAA: E6 1E INC $1E C2/DBAC: 80 F5 BRA $DBA3 C2/DBAE: 18 CLC C2/DBAF: 65 22 ADC $22 C2/DBB1: 85 24 STA $24 C2/DBB3: C2 20 REP #$20 C2/DBB5: A5 1E LDA $1E C2/DBB7: 18 CLC C2/DBB8: 65 10 ADC $10 C2/DBBA: C9 09 00 CMP #$0009 C2/DBBD: 90 05 BCC $DBC4 C2/DBBF: C9 F8 00 CMP #$00F8 C2/DBC2: 90 02 BCC $DBC6 C2/DBC4: A5 14 LDA $14 C2/DBC6: 85 12 STA $12 C2/DBC8: 7B TDC C2/DBC9: E2 20 SEP #$20 C2/DBCB: A5 12 LDA $12 C2/DBCD: D9 20 96 CMP $9620,Y C2/DBD0: D0 01 BNE $DBD3 C2/DBD2: 1A INC C2/DBD3: 99 1F 96 STA $961F,Y C2/DBD6: C8 INY C2/DBD7: C8 INY C2/DBD8: C6 25 DEC $25 C2/DBDA: D0 C5 BNE $DBA1 C2/DBDC: 60 RTS C2/DBDD: A5 24 LDA $24 C2/DBDF: C5 23 CMP $23 C2/DBE1: 90 07 BCC $DBEA C2/DBE3: 38 SEC C2/DBE4: E5 23 SBC $23 C2/DBE6: C6 1E DEC $1E C2/DBE8: 80 F5 BRA $DBDF C2/DBEA: 18 CLC C2/DBEB: 65 22 ADC $22 C2/DBED: 85 24 STA $24 C2/DBEF: C2 20 REP #$20 C2/DBF1: A5 1E LDA $1E C2/DBF3: 18 CLC C2/DBF4: 65 10 ADC $10 C2/DBF6: C9 09 00 CMP #$0009 C2/DBF9: 90 05 BCC $DC00 C2/DBFB: C9 F8 00 CMP #$00F8 C2/DBFE: 90 02 BCC $DC02 C2/DC00: A5 14 LDA $14 C2/DC02: 85 12 STA $12 C2/DC04: 7B TDC C2/DC05: E2 20 SEP #$20 C2/DC07: A5 12 LDA $12 C2/DC09: D9 20 96 CMP $9620,Y C2/DC0C: D0 01 BNE $DC0F C2/DC0E: 1A INC C2/DC0F: 99 1F 96 STA $961F,Y C2/DC12: C8 INY C2/DC13: C8 INY C2/DC14: C6 25 DEC $25 C2/DC16: D0 C5 BNE $DBDD C2/DC18: 60 RTS C2/DC19: AD 54 61 LDA $6154 C2/DC1C: 85 10 STA $10 C2/DC1E: 30 04 BMI $DC24 C2/DC20: A9 08 80 LDA #$8008 C2/DC23: 02 A9 COP $A9 C2/DC25: F7 85 SBC [$85],Y C2/DC27: 14 64 TRB $64 C2/DC29: 15 64 ORA $64,X C2/DC2B: 11 64 ORA ($64),Y C2/DC2D: 1F A5 20 C2 ORA $C220A5,X C2/DC31: 20 0A A8 JSR $A80A C2/DC34: A5 10 LDA $10 C2/DC36: 38 SEC C2/DC37: E9 80 00 SBC #$0080 C2/DC3A: 85 10 STA $10 C2/DC3C: 7B TDC C2/DC3D: E2 20 SEP #$20 C2/DC3F: AE 52 61 LDX $6152 C2/DC42: 86 22 STX $22 C2/DC44: 86 24 STX $24 C2/DC46: A5 23 LDA $23 C2/DC48: D0 01 BNE $DC4B C2/DC4A: 60 RTS C2/DC4B: AD 50 61 LDA $6150 C2/DC4E: 30 3C BMI $DC8C C2/DC50: A5 24 LDA $24 C2/DC52: C5 23 CMP $23 C2/DC54: 90 07 BCC $DC5D C2/DC56: 38 SEC C2/DC57: E5 23 SBC $23 C2/DC59: E6 1E INC $1E C2/DC5B: 80 F5 BRA $DC52 C2/DC5D: 18 CLC C2/DC5E: 65 22 ADC $22 C2/DC60: 85 24 STA $24 C2/DC62: C2 20 REP #$20 C2/DC64: A5 1E LDA $1E C2/DC66: 18 CLC C2/DC67: 65 10 ADC $10 C2/DC69: C9 09 00 CMP #$0009 C2/DC6C: 90 05 BCC $DC73 C2/DC6E: C9 F8 00 CMP #$00F8 C2/DC71: 90 02 BCC $DC75 C2/DC73: A5 14 LDA $14 C2/DC75: 85 12 STA $12 C2/DC77: 7B TDC C2/DC78: E2 20 SEP #$20 C2/DC7A: A5 12 LDA $12 C2/DC7C: D9 1F 96 CMP $961F,Y C2/DC7F: D0 01 BNE $DC82 C2/DC81: 3A DEC C2/DC82: 99 20 96 STA $9620,Y C2/DC85: C8 INY C2/DC86: C8 INY C2/DC87: C6 25 DEC $25 C2/DC89: D0 C5 BNE $DC50 C2/DC8B: 60 RTS C2/DC8C: A5 24 LDA $24 C2/DC8E: C5 23 CMP $23 C2/DC90: 90 07 BCC $DC99 C2/DC92: 38 SEC C2/DC93: E5 23 SBC $23 C2/DC95: C6 1E DEC $1E C2/DC97: 80 F5 BRA $DC8E C2/DC99: 18 CLC C2/DC9A: 65 22 ADC $22 C2/DC9C: 85 24 STA $24 C2/DC9E: C2 20 REP #$20 C2/DCA0: A5 1E LDA $1E C2/DCA2: 18 CLC C2/DCA3: 65 10 ADC $10 C2/DCA5: C9 09 00 CMP #$0009 C2/DCA8: 90 05 BCC $DCAF C2/DCAA: C9 F8 00 CMP #$00F8 C2/DCAD: 90 02 BCC $DCB1 C2/DCAF: A5 14 LDA $14 C2/DCB1: 85 12 STA $12 C2/DCB3: 7B TDC C2/DCB4: E2 20 SEP #$20 C2/DCB6: A5 12 LDA $12 C2/DCB8: D9 1F 96 CMP $961F,Y C2/DCBB: D0 01 BNE $DCBE C2/DCBD: 3A DEC C2/DCBE: 99 20 96 STA $9620,Y C2/DCC1: C8 INY C2/DCC2: C8 INY C2/DCC3: C6 25 DEC $25 C2/DCC5: D0 C5 BNE $DC8C C2/DCC7: 60 RTS C2/DCC8: 7B TDC C2/DCC9: AA TAX C2/DCCA: 8E 50 61 STX $6150 C2/DCCD: 8E 52 61 STX $6152 C2/DCD0: AD 4C 61 LDA $614C C2/DCD3: CD 4E 61 CMP $614E C2/DCD6: F0 1E BEQ $DCF6 C2/DCD8: 90 0F BCC $DCE9 C2/DCDA: CE 50 61 DEC $6150 C2/DCDD: AD 4C 61 LDA $614C C2/DCE0: 38 SEC C2/DCE1: ED 4E 61 SBC $614E C2/DCE4: 8D 52 61 STA $6152 C2/DCE7: 80 0D BRA $DCF6 C2/DCE9: EE 50 61 INC $6150 C2/DCEC: AD 4E 61 LDA $614E C2/DCEF: 38 SEC C2/DCF0: ED 4C 61 SBC $614C C2/DCF3: 8D 52 61 STA $6152 C2/DCF6: AD 4D 61 LDA $614D C2/DCF9: CD 4F 61 CMP $614F C2/DCFC: F0 1E BEQ $DD1C C2/DCFE: 90 0F BCC $DD0F C2/DD00: CE 51 61 DEC $6151 C2/DD03: AD 4D 61 LDA $614D C2/DD06: 38 SEC C2/DD07: ED 4F 61 SBC $614F C2/DD0A: 8D 53 61 STA $6153 C2/DD0D: 80 0D BRA $DD1C C2/DD0F: EE 51 61 INC $6151 C2/DD12: AD 4F 61 LDA $614F C2/DD15: 38 SEC C2/DD16: ED 4D 61 SBC $614D C2/DD19: 8D 53 61 STA $6153 C2/DD1C: 6B RTL C2/DD1D: AA TAX C2/DD1E: BF 6D FE C2 LDA $C2FE6D,X C2/DD22: 10 1A BPL $DD3E C2/DD24: 49 FF 8F EOR #$8FFF C2/DD27: 02 42 COP $42 C2/DD29: 00 A5 BRK $A5 C2/DD2B: 24 8F BIT $8F C2/DD2D: 03 42 ORA $42,S C2/DD2F: 00 A9 BRK $A9 C2/DD31: FF 85 67 85 SBC $856785,X C2/DD35: 67 AF ADC [$AF] C2/DD37: 17 42 ORA [$42],Y C2/DD39: 00 49 BRK $49 C2/DD3B: FF 1A 60 8F SBC $8F601A,X C2/DD3F: 02 42 COP $42 C2/DD41: 00 A5 BRK $A5 C2/DD43: 24 8F BIT $8F C2/DD45: 03 42 ORA $42,S C2/DD47: 00 A9 BRK $A9 C2/DD49: 00 85 BRK $85 C2/DD4B: 67 85 ADC [$85] C2/DD4D: 67 AF ADC [$AF] C2/DD4F: 17 42 ORA [$42],Y C2/DD51: 00 60 BRK $60 C2/DD53: C2 20 REP #$20 C2/DD55: 7B TDC C2/DD56: AA TAX C2/DD57: E2 10 SEP #$10 C2/DD59: AD 24 7B LDA $7B24 C2/DD5C: 38 SEC C2/DD5D: ED 2B 7B SBC $7B2B C2/DD60: 9D F7 4A STA $4AF7,X C2/DD63: E8 INX C2/DD64: E8 INX C2/DD65: E8 INX C2/DD66: E8 INX C2/DD67: E0 80 CPX #$80 C2/DD69: D0 F5 BNE $DD60 C2/DD6B: 7B TDC C2/DD6C: E2 20 SEP #$20 C2/DD6E: C2 10 REP #$10 C2/DD70: 6B RTL C2/DD71: 7B TDC C2/DD72: AA TAX C2/DD73: 64 22 STZ $22 C2/DD75: BD B0 63 LDA $63B0,X C2/DD78: 18 CLC C2/DD79: 65 23 ADC $23 C2/DD7B: 9D B0 63 STA $63B0,X C2/DD7E: A5 22 LDA $22 C2/DD80: 18 CLC C2/DD81: 65 26 ADC $26 C2/DD83: 85 22 STA $22 C2/DD85: E8 INX C2/DD86: E8 INX C2/DD87: E8 INX C2/DD88: E8 INX C2/DD89: D0 EA BNE $DD75 C2/DD8B: 6B RTL C2/DD8C: 00 70 BRK $70 C2/DD8E: 40 RTI C2/DD8F: 71 00 ADC ($00),Y C2/DD91: 76 00 ROR $00,X C2/DD93: 73 00 ADC ($00,S),Y C2/DD95: 74 00 STZ $00,X C2/DD97: 75 00 ADC $00,X C2/DD99: 77 00 ADC [$00],Y C2/DD9B: 68 PLA C2/DD9C: 00 69 BRK $69 C2/DD9E: 0C 08 15 TSB $1508 C2/DDA1: 8D 12 08 STA $0812 C2/DDA4: 2D 8D 0A AND $0A8D C2/DDA7: 08 PHP C2/DDA8: 17 8D ORA [$8D],Y C2/DDAA: 1E 08 15 ASL $1508,X C2/DDAD: 8D 1E 08 STA $081E C2/DDB0: 15 8D ORA $8D,X C2/DDB2: 09 08 3F ORA #$3F08 C2/DDB5: 8D 1E 05 STA $051E C2/DDB8: 15 8D ORA $8D,X C2/DDBA: 15 08 ORA $08,X C2/DDBC: 15 8D ORA $8D,X C2/DDBE: 1E 04 15 ASL $1504,X C2/DDC1: 8D 07 04 STA $0407 C2/DDC4: 13 8D ORA ($8D,S),Y C2/DDC6: 0C 05 13 TSB $1305 C2/DDC9: 8D 1E 04 STA $041E C2/DDCC: C1 A9 CMP ($A9,X) C2/DDCE: 12 04 ORA ($04) C2/DDD0: CD A9 13 CMP $13A9 C2/DDD3: 07 17 ORA [$17] C2/DDD5: 8D 0C 08 STA $080C C2/DDD8: 17 8D ORA [$8D],Y C2/DDDA: 75 4E ADC $4E,X C2/DDDC: 51 4D EOR ($4D),Y C2/DDDE: 08 PHP C2/DDDF: 00 00 BRK $00 C2/DDE1: 00 75 BRK $75 C2/DDE3: 4F 51 4D 08 EOR $084D51 C2/DDE7: 00 00 BRK $00 C2/DDE9: 00 D5 BRK $D5 C2/DDEB: 51 61 EOR ($61),Y C2/DDED: 4D 08 00 EOR $0008 C2/DDF0: 00 00 BRK $00 C2/DDF2: D5 53 CMP $53,X C2/DDF4: 61 4D ADC ($4D,X) C2/DDF6: 05 00 ORA $00 C2/DDF8: 00 00 BRK $00 C2/DDFA: 75 54 ADC $54,X C2/DDFC: 61 4D ADC ($4D,X) C2/DDFE: 06 00 ASL $00 C2/DE00: 00 00 BRK $00 C2/DE02: 75 4F ADC $4F,X C2/DE04: 51 4D EOR ($4D),Y C2/DE06: 05 00 ORA $00 C2/DE08: 00 00 BRK $00 C2/DE0A: 95 4F STA $4F,X C2/DE0C: 71 4D ADC ($4D),Y C2/DE0E: 05 00 ORA $00 C2/DE10: 00 00 BRK $00 C2/DE12: C5 4F CMP $4F C2/DE14: A1 4D LDA ($4D,X) C2/DE16: 05 00 ORA $00 C2/DE18: 00 00 BRK $00 C2/DE1A: F5 4F SBC $4F,X C2/DE1C: D1 4D CMP ($4D),Y C2/DE1E: 05 00 ORA $00 C2/DE20: 00 00 BRK $00 C2/DE22: 75 4F ADC $4F,X C2/DE24: 51 4D EOR ($4D),Y C2/DE26: 06 00 ASL $00 C2/DE28: 00 00 BRK $00 C2/DE2A: 95 50 STA $50,X C2/DE2C: 71 4D ADC ($4D),Y C2/DE2E: 08 PHP C2/DE2F: 00 00 BRK $00 C2/DE31: 00 5C BRK $5C C2/DE33: 02 08 COP $08 C2/DE35: 00 5C BRK $5C C2/DE37: 02 08 COP $08 C2/DE39: 00 6C BRK $6C C2/DE3B: 02 08 COP $08 C2/DE3D: 00 6C BRK $6C C2/DE3F: 02 08 COP $08 C2/DE41: 00 6C BRK $6C C2/DE43: 02 08 COP $08 C2/DE45: 00 7C BRK $7C C2/DE47: 02 05 COP $05 C2/DE49: 00 6C BRK $6C C2/DE4B: 02 08 COP $08 C2/DE4D: 00 7C BRK $7C C2/DE4F: 02 05 COP $05 C2/DE51: 00 7C BRK $7C C2/DE53: 02 04 COP $04 C2/DE55: 00 7C BRK $7C C2/DE57: 02 04 COP $04 C2/DE59: 00 5C BRK $5C C2/DE5B: 02 04 COP $04 C2/DE5D: 00 8C BRK $8C C2/DE5F: 02 04 COP $04 C2/DE61: 00 BC BRK $BC C2/DE63: 02 04 COP $04 C2/DE65: 00 EC BRK $EC C2/DE67: 02 04 COP $04 C2/DE69: 00 5C BRK $5C C2/DE6B: 02 04 COP $04 C2/DE6D: 00 8C BRK $8C C2/DE6F: 02 04 COP $04 C2/DE71: 00 BC BRK $BC C2/DE73: 02 04 COP $04 C2/DE75: 00 EC BRK $EC C2/DE77: 02 04 COP $04 C2/DE79: 00 6C BRK $6C C2/DE7B: 02 05 COP $05 C2/DE7D: 00 6C BRK $6C C2/DE7F: 02 05 COP $05 C2/DE81: 00 6C BRK $6C C2/DE83: 02 08 COP $08 C2/DE85: 00 6C BRK $6C C2/DE87: 02 08 COP $08 C2/DE89: 00 5C BRK $5C C2/DE8B: 02 07 COP $07 C2/DE8D: 00 5C BRK $5C C2/DE8F: 02 04 COP $04 C2/DE91: 00 5C BRK $5C C2/DE93: 02 04 COP $04 C2/DE95: 00 7C BRK $7C C2/DE97: 02 08 COP $08 C2/DE99: 00 7C BRK $7C C2/DE9B: 02 08 COP $08 C2/DE9D: 00 7C BRK $7C C2/DE9F: 02 08 COP $08 C2/DEA1: 00 00 BRK $00 C2/DEA3: 00 68 BRK $68 C2/DEA5: 00 00 BRK $00 C2/DEA7: 00 B8 BRK $B8 C2/DEA9: 00 00 BRK $00 C2/DEAB: 01 E4 ORA ($E4,X) C2/DEAD: 00 00 BRK $00 C2/DEAF: 00 24 BRK $24 C2/DEB1: 01 00 ORA ($00,X) C2/DEB3: 01 64 ORA ($64,X) C2/DEB5: 00 00 BRK $00 C2/DEB7: 01 A0 ORA ($A0,X) C2/DEB9: 00 00 BRK $00 C2/DEBB: 00 B8 BRK $B8 C2/DEBD: 00 00 BRK $00 C2/DEBF: 00 24 BRK $24 C2/DEC1: 01 00 ORA ($00,X) C2/DEC3: 01 20 ORA ($20,X) C2/DEC5: 01 00 ORA ($00,X) C2/DEC7: 01 64 ORA ($64,X) C2/DEC9: 00 F8 BRK $F8 C2/DECB: FF 68 FF F8 SBC $F8FF68,X C2/DECF: FF 5C FF F8 SBC $F8FF5C,X C2/DED3: FF 50 FF F8 SBC $F8FF50,X C2/DED7: FF 44 FF 00 SBC $00FF44,X C2/DEDB: 00 00 BRK $00 C2/DEDD: 00 00 BRK $00 C2/DEDF: 00 00 BRK $00 C2/DEE1: 00 00 BRK $00 C2/DEE3: 00 00 BRK $00 C2/DEE5: 00 00 BRK $00 C2/DEE7: 00 00 BRK $00 C2/DEE9: 00 F0 BRK $F0 C2/DEEB: FF A4 FF 00 SBC $00FFA4,X C2/DEEF: 00 00 BRK $00 C2/DEF1: 00 00 BRK $00 C2/DEF3: 00 24 BRK $24 C2/DEF5: 01 00 ORA ($00,X) C2/DEF7: 00 68 BRK $68 C2/DEF9: 00 00 BRK $00 C2/DEFB: 00 B8 BRK $B8 C2/DEFD: 00 F0 BRK $F0 C2/DEFF: FF 68 FF 00 SBC $00FF68,X C2/DF03: 00 00 BRK $00 C2/DF05: 00 00 BRK $00 C2/DF07: 00 60 BRK $60 C2/DF09: 00 00 BRK $00 C2/DF0B: 00 24 BRK $24 C2/DF0D: 01 00 ORA ($00,X) C2/DF0F: 01 64 ORA ($64,X) C2/DF11: 00 D5 BRK $D5 C2/DF13: 5A PHY C2/DF14: 0C 00 95 TSB $9500 C2/DF17: 5B TCD C2/DF18: 07 00 ORA [$00] C2/DF1A: 05 5C ORA $5C C2/DF1C: 04 00 TSB $00 C2/DF1E: 45 5C EOR $5C C2/DF20: 06 00 ASL $00 C2/DF22: 59 58 20 EOR $2058,Y C2/DF25: 00 61 BRK $61 C2/DF27: 8D 20 00 STA $0020 C2/DF2A: 4D 5E 20 EOR $205E C2/DF2D: 00 A5 BRK $A5 C2/DF2F: 5C 07 00 3F JMP $3F0007 C2/DF33: 5D 07 00 EOR $0007,X C2/DF36: 85 5D STA $5D C2/DF38: 07 00 ORA [$00] C2/DF3A: A5 5C LDA $5C C2/DF3C: 07 00 ORA [$00] C2/DF3E: C1 5C CMP ($5C,X) C2/DF40: 07 00 ORA [$00] C2/DF42: DD 5C 07 CMP $075C,X C2/DF45: 00 F9 BRK $F9 C2/DF47: 5C 07 00 05 JMP $050007 C2/DF4B: 5C 04 00 15 JMP $150004 C2/DF4F: 5C 04 00 25 JMP $250004 C2/DF53: 5C 04 00 35 JMP $350004 C2/DF57: 5C 04 00 45 JMP $450004 C2/DF5B: 5C 06 00 5D JMP $5D0006 C2/DF5F: 5C 06 00 75 JMP $750006 C2/DF63: 5C 06 00 8D JMP $8D0006 C2/DF67: 5C 06 00 45 JMP $450006 C2/DF6B: 5C 06 00 5D JMP $5D0006 C2/DF6F: 5C 06 00 75 JMP $750006 C2/DF73: 5C 06 00 8D JMP $8D0006 C2/DF77: 5C 06 00 45 JMP $450006 C2/DF7B: 5C 06 00 5D JMP $5D0006 C2/DF7F: 5C 06 00 75 JMP $750006 C2/DF83: 5C 06 00 8D JMP $8D0006 C2/DF87: 5C 06 00 BD JMP $BD0006 C2/DF8B: 5D 0C 00 EOR $000C,X C2/DF8E: 59 58 20 EOR $2058,Y C2/DF91: 00 59 BRK $59 C2/DF93: 58 CLI C2/DF94: 20 00 CD JSR $CD00 C2/DF97: 5E 0A 00 LSR $000A,X C2/DF9A: 57 8D EOR [$8D],Y C2/DF9C: 20 00 D5 JSR $D500 C2/DF9F: 5A PHY C2/DFA0: 59 58 18 EOR $1858,Y C2/DFA3: 00 08 BRK $08 C2/DFA5: 00 95 BRK $95 C2/DFA7: 5B TCD C2/DFA8: 71 58 ADC ($58),Y C2/DFAA: 0E 00 08 ASL $0800 C2/DFAD: 00 05 BRK $05 C2/DFAF: 5C 7F 58 08 JMP $08587F C2/DFB3: 00 08 BRK $08 C2/DFB5: 00 45 BRK $45 C2/DFB7: 5C 87 58 0C JMP $0C5887 C2/DFBB: 00 08 BRK $08 C2/DFBD: 00 31 BRK $31 C2/DFBF: 5D 15 8D EOR $8D15,X C2/DFC2: 0E 00 05 ASL $0500 C2/DFC5: 00 31 BRK $31 C2/DFC7: 5D 95 8D EOR $8D95,X C2/DFCA: 0E 00 05 ASL $0500 C2/DFCD: 00 31 BRK $31 C2/DFCF: 5D 15 8E EOR $8E15,X C2/DFD2: 0E 00 05 ASL $0500 C2/DFD5: 00 31 BRK $31 C2/DFD7: 5D 95 8E EOR $8E95,X C2/DFDA: 0E 00 05 ASL $0500 C2/DFDD: 00 77 BRK $77 C2/DFDF: 5D 21 8D EOR $8D21,X C2/DFE2: 0E 00 05 ASL $0500 C2/DFE5: 00 77 BRK $77 C2/DFE7: 5D A1 8D EOR $8DA1,X C2/DFEA: 0E 00 05 ASL $0500 C2/DFED: 00 77 BRK $77 C2/DFEF: 5D 21 8E EOR $8E21,X C2/DFF2: 0E 00 05 ASL $0500 C2/DFF5: 00 77 BRK $77 C2/DFF7: 5D A1 8E EOR $8EA1,X C2/DFFA: 0E 00 05 ASL $0500 C2/DFFD: 00 05 BRK $05 C2/DFFF: 5C 7D 8D 08 JMP $088D7D C2/E003: 00 08 BRK $08 C2/E005: 00 45 BRK $45 C2/E007: 5C 85 8D 0C JMP $0C8D85 C2/E00B: 00 08 BRK $08 C2/E00D: 00 BD BRK $BD C2/E00F: 5D 57 8D EOR $8D57,X C2/E012: 18 CLC C2/E013: 00 06 BRK $06 C2/E015: 00 31 BRK $31 C2/E017: 5D 17 8D EOR $8D17,X C2/E01A: 0E 00 05 ASL $0500 C2/E01D: 00 77 BRK $77 C2/E01F: 5D 2F 8D EOR $8D2F,X C2/E022: 0E 00 05 ASL $0500 C2/E025: 00 CD BRK $CD C2/E027: 5E 57 8D LSR $8D57,X C2/E02A: 14 00 TRB $00 C2/E02C: 08 PHP C2/E02D: 00 95 BRK $95 C2/E02F: 5B TCD C2/E030: 6F 8D 0E 00 ADC $000E8D C2/E034: 08 PHP C2/E035: 00 05 BRK $05 C2/E037: 03 04 ORA $04,S C2/E039: 21 0F AND ($0F,X) C2/E03B: 00 FF BRK $FF C2/E03D: FF 04 21 0F SBC $0F2104,X C2/E041: 00 05 BRK $05 C2/E043: 0A ASL C2/E044: 00 FF BRK $FF C2/E046: FF FF 04 21 SBC $2104FF,X C2/E04A: 19 00 00 ORA $0000,Y C2/E04D: 05 04 ORA $04 C2/E04F: 04 21 TSB $21 C2/E051: 06 00 ASL $00 C2/E053: 05 03 ORA $03 C2/E055: 04 21 TSB $21 C2/E057: 06 00 ASL $00 C2/E059: 00 05 BRK $05 C2/E05B: 04 04 TSB $04 C2/E05D: 21 17 AND ($17,X) C2/E05F: 00 05 BRK $05 C2/E061: 02 04 COP $04 C2/E063: 21 17 AND ($17,X) C2/E065: 00 00 BRK $00 C2/E067: 05 04 ORA $04 C2/E069: 04 21 TSB $21 C2/E06B: 18 CLC C2/E06C: 00 05 BRK $05 C2/E06E: 02 04 COP $04 C2/E070: 21 18 AND ($18,X) C2/E072: 00 00 BRK $00 C2/E074: 05 04 ORA $04 C2/E076: 04 21 TSB $21 C2/E078: 0E 00 C1 ASL $C100 C2/E07B: 02 00 COP $00 C2/E07D: FF FF 12 00 SBC $0012FF,X C2/E081: FF 00 FF FF SBC $FFFF00,X C2/E085: 84 AC STY $AC C2/E087: A9 9E AB LDA #$AB9E C2/E08A: FF FF 04 21 SBC $2104FF,X C2/E08E: 1A INC C2/E08F: 00 05 BRK $05 C2/E091: 04 03 TSB $03 C2/E093: 2C 03 2F BIT $2F03 C2/E096: FF 16 00 00 SBC $000016,X C2/E09A: C9 E1 D9 CMP #$D9E1 C2/E09D: E1 E9 SBC ($E9,X) C2/E09F: E1 F5 SBC ($F5,X) C2/E0A1: E1 48 SBC ($48,X) C2/E0A3: E2 68 SEP #$68 C2/E0A5: E2 72 SEP #$72 C2/E0A7: E1 85 SBC ($85,X) C2/E0A9: E1 65 SBC ($65,X) C2/E0AB: E1 6B SBC ($6B,X) C2/E0AD: E1 A1 SBC ($A1,X) C2/E0AF: E1 A8 SBC ($A8,X) C2/E0B1: E1 AF SBC ($AF,X) C2/E0B3: E1 B6 SBC ($B6,X) C2/E0B5: E1 25 SBC ($25,X) C2/E0B7: E1 28 SBC ($28,X) C2/E0B9: E1 2B SBC ($2B,X) C2/E0BB: E1 2E SBC ($2E,X) C2/E0BD: E1 31 SBC ($31,X) C2/E0BF: E1 34 SBC ($34,X) C2/E0C1: E1 37 SBC ($37,X) C2/E0C3: E1 3A SBC ($3A,X) C2/E0C5: E1 3D SBC ($3D,X) C2/E0C7: E1 42 SBC ($42,X) C2/E0C9: E1 47 SBC ($47,X) C2/E0CB: E1 4C SBC ($4C,X) C2/E0CD: E1 51 SBC ($51,X) C2/E0CF: E1 56 SBC ($56,X) C2/E0D1: E1 5B SBC ($5B,X) C2/E0D3: E1 60 SBC ($60,X) C2/E0D5: E1 EC SBC ($EC,X) C2/E0D7: E0 01 CPX #$01 C2/E0D9: E2 28 SEP #$28 C2/E0DB: E2 BD SEP #$BD C2/E0DD: E1 E0 SBC ($E0,X) C2/E0DF: E0 05 CPX #$05 C2/E0E1: 12 01 ORA ($01) C2/E0E3: 05 12 ORA $12 C2/E0E5: 01 05 ORA ($05,X) C2/E0E7: 12 01 ORA ($01) C2/E0E9: 05 12 ORA $12 C2/E0EB: 00 FF BRK $FF C2/E0ED: FF 04 21 B5 SBC $B52104,X C2/E0F1: 04 21 TSB $21 C2/E0F3: B6 04 LDX $04,Y C2/E0F5: 21 B7 AND ($B7,X) C2/E0F7: 04 21 TSB $21 C2/E0F9: B8 CLV C2/E0FA: 04 21 TSB $21 C2/E0FC: B9 04 21 LDA $2104,Y C2/E0FF: BA TSX C2/E100: 04 21 TSB $21 C2/E102: BB TYX C2/E103: 04 21 TSB $21 C2/E105: BC FF FF LDY $FFFF,X C2/E108: 01 04 ORA ($04,X) C2/E10A: 35 FF AND $FF,X C2/E10C: 03 F9 ORA $F9,S C2/E10E: 03 F0 ORA $F0,S C2/E110: 03 F0 ORA $F0,S C2/E112: 03 F0 ORA $F0,S C2/E114: 03 F0 ORA $F0,S C2/E116: 03 F0 ORA $F0,S C2/E118: 03 F0 ORA $F0,S C2/E11A: 03 F0 ORA $F0,S C2/E11C: 03 F0 ORA $F0,S C2/E11E: 03 FA ORA $FA,S C2/E120: FF 01 05 0C SBC $0C0501,X C2/E124: 00 07 BRK $07 C2/E126: 01 00 ORA ($00,X) C2/E128: 08 PHP C2/E129: 01 00 ORA ($00,X) C2/E12B: 09 01 00 ORA #$0001 C2/E12E: 0A ASL C2/E12F: 01 00 ORA ($00,X) C2/E131: 07 02 ORA [$02] C2/E133: 00 08 BRK $08 C2/E135: 02 00 COP $00 C2/E137: 09 02 00 ORA #$0002 C2/E13A: 0A ASL C2/E13B: 02 00 COP $00 C2/E13D: 04 39 TSB $39 C2/E13F: 07 05 ORA [$05] C2/E141: 00 04 BRK $04 C2/E143: 39 08 05 AND $0508,Y C2/E146: 00 04 BRK $04 C2/E148: 39 09 05 AND $0509,Y C2/E14B: 00 04 BRK $04 C2/E14D: 39 0A 05 AND $050A,Y C2/E150: 00 04 BRK $04 C2/E152: 3D 07 06 AND $0607,X C2/E155: 00 04 BRK $04 C2/E157: 3D 08 06 AND $0608,X C2/E15A: 00 04 BRK $04 C2/E15C: 3D 09 06 AND $0609,X C2/E15F: 00 04 BRK $04 C2/E161: 3D 0A 06 AND $060A,X C2/E164: 00 FF BRK $FF C2/E166: FF 91 A8 B0 SBC $B0A891,X C2/E16A: 00 FF BRK $FF C2/E16C: FF 83 9E 9F SBC $9F9E83,X C2/E170: C5 00 CMP $00 C2/E172: 05 03 ORA $03 C2/E174: 91 C4 STA ($C4),Y C2/E176: 87 9A STA [$9A] C2/E178: A7 9D LDA [$9D] C2/E17A: 05 09 ORA $09 C2/E17C: 8B PHB C2/E17D: C4 87 CPY $87 C2/E17F: 9A TXS C2/E180: A7 9D LDA [$9D] C2/E182: 05 07 ORA $07 C2/E184: 00 07 BRK $07 C2/E186: 03 03 ORA $03,S C2/E188: 15 07 ORA $07,X C2/E18A: 04 01 TSB $01 C2/E18C: 08 PHP C2/E18D: 03 03 ORA $03,S C2/E18F: 15 08 ORA $08,X C2/E191: 04 01 TSB $01 C2/E193: 09 03 03 ORA #$0303 C2/E196: 15 09 ORA $09,X C2/E198: 04 01 TSB $01 C2/E19A: 0A ASL C2/E19B: 03 03 ORA $03,S C2/E19D: 15 0A ORA $0A,X C2/E19F: 04 00 TSB $00 C2/E1A1: 07 03 ORA [$03] C2/E1A3: 03 15 ORA $15,S C2/E1A5: 07 04 ORA [$04] C2/E1A7: 00 08 BRK $08 C2/E1A9: 03 03 ORA $03,S C2/E1AB: 15 08 ORA $08,X C2/E1AD: 04 00 TSB $00 C2/E1AF: 09 03 03 ORA #$0303 C2/E1B2: 15 09 ORA $09,X C2/E1B4: 04 00 TSB $00 C2/E1B6: 0A ASL C2/E1B7: 03 03 ORA $03,S C2/E1B9: 15 0A ORA $0A,X C2/E1BB: 04 00 TSB $00 C2/E1BD: 10 1F BPL $E1DE C2/E1BF: 01 10 ORA ($10,X) C2/E1C1: 1F 01 10 1F ORA $1F1001,X C2/E1C5: 01 10 ORA ($10,X) C2/E1C7: 1F 00 0B 00 ORA $000B00,X C2/E1CB: FF 01 0B 01 SBC $010B01,X C2/E1CF: FF 01 0B 02 SBC $020B01,X C2/E1D3: FF 01 0B 03 SBC $030B01,X C2/E1D7: FF 00 07 00 SBC $000700,X C2/E1DB: FF 01 08 00 SBC $000801,X C2/E1DF: FF 01 09 00 SBC $000901,X C2/E1E3: FF 01 0A 00 SBC $000A01,X C2/E1E7: FF 00 07 01 SBC $010700,X C2/E1EB: 01 08 ORA ($08,X) C2/E1ED: 01 01 ORA ($01,X) C2/E1EF: 09 01 01 ORA #$0101 C2/E1F2: 0A ASL C2/E1F3: 01 00 ORA ($00,X) C2/E1F5: 07 02 ORA [$02] C2/E1F7: 01 08 ORA ($08,X) C2/E1F9: 02 01 COP $01 C2/E1FB: 09 02 01 ORA #$0102 C2/E1FE: 0A ASL C2/E1FF: 02 00 COP $00 C2/E201: 05 06 ORA $06 C2/E203: 04 21 TSB $21 C2/E205: 0D 00 05 ORA $0500 C2/E208: 05 01 ORA $01 C2/E20A: FF FF 04 21 SBC $2104FF,X C2/E20E: 0D 00 16 ORA $1600 C2/E211: 16 16 ASL $16,X C2/E213: FF FF 04 21 SBC $2104FF,X C2/E217: 0D 00 FF ORA $FF00 C2/E21A: 01 16 ORA ($16,X) C2/E21C: 05 06 ORA $06 C2/E21E: 04 21 TSB $21 C2/E220: 0D 00 05 ORA $0500 C2/E223: 05 01 ORA $01 C2/E225: 05 13 ORA $13 C2/E227: 00 FF BRK $FF C2/E229: 04 21 TSB $21 C2/E22B: 11 00 ORA ($00),Y C2/E22D: FF 16 01 FF SBC $FF0116,X C2/E231: 04 21 TSB $21 C2/E233: 11 00 ORA ($00),Y C2/E235: FF 16 01 FF SBC $FF0116,X C2/E239: 04 21 TSB $21 C2/E23B: 11 00 ORA ($00),Y C2/E23D: FF 16 01 FF SBC $FF0116,X C2/E241: 04 21 TSB $21 C2/E243: 11 00 ORA ($00),Y C2/E245: FF 16 00 FF SBC $FF0016,X C2/E249: FF 04 21 0D SBC $0D2104,X C2/E24D: 00 FF BRK $FF C2/E24F: 01 FF ORA ($FF,X) C2/E251: FF 04 21 0D SBC $0D2104,X C2/E255: 00 FF BRK $FF C2/E257: 01 FF ORA ($FF,X) C2/E259: FF 04 21 0D SBC $0D2104,X C2/E25D: 00 FF BRK $FF C2/E25F: 01 FF ORA ($FF,X) C2/E261: FF 04 21 0D SBC $0D2104,X C2/E265: 00 FF BRK $FF C2/E267: 00 FF BRK $FF C2/E269: FF 04 21 1B SBC $1B2104,X C2/E26D: 00 FF BRK $FF C2/E26F: 01 FF ORA ($FF,X) C2/E271: FF 04 21 1B SBC $1B2104,X C2/E275: 00 FF BRK $FF C2/E277: 01 FF ORA ($FF,X) C2/E279: FF 04 21 1B SBC $1B2104,X C2/E27D: 00 FF BRK $FF C2/E27F: 01 FF ORA ($FF,X) C2/E281: FF 04 21 1B SBC $1B2104,X C2/E285: 00 FF BRK $FF C2/E287: 00 00 BRK $00 C2/E289: 00 AD BRK $AD C2/E28B: 31 0A AND ($0A),Y C2/E28D: 19 2B 1D ORA $1D2B,Y C2/E290: 6B RTL C2/E291: 29 29 21 AND #$2129 C2/E294: 08 PHP C2/E295: 1D E7 1C ORA $1CE7,X C2/E298: E7 18 SBC [$18] C2/E29A: A5 18 LDA $18 C2/E29C: 23 08 AND $08,S C2/E29E: 64 0C STZ $0C C2/E2A0: 4A LSR C2/E2A1: 29 C6 18 AND #$18C6 C2/E2A4: A9 0C 66 LDA #$660C C2/E2A7: 08 PHP C2/E2A8: 00 38 BRK $38 C2/E2AA: F8 SED C2/E2AB: 4A LSR C2/E2AC: 96 3A STX $3A,Y C2/E2AE: 34 2A BIT $2A,X C2/E2B0: D2 1D CMP ($1D) C2/E2B2: 2E 11 A9 ROL $A911 C2/E2B5: 0C 66 08 TSB $0866 C2/E2B8: 23 08 AND $08,S C2/E2BA: D4 25 PEI $25 C2/E2BC: ED 14 A8 SBC $A814 C2/E2BF: 10 65 BPL $E326 C2/E2C1: 08 PHP C2/E2C2: 43 04 EOR $04,S C2/E2C4: 46 29 LSR $29 C2/E2C6: 07 21 ORA [$21] C2/E2C8: 00 38 BRK $38 C2/E2CA: D3 09 CMP ($09,S),Y C2/E2CC: B2 0C LDA ($0C) C2/E2CE: CB WAI C2/E2CF: 11 70 ORA ($70),Y C2/E2D1: 1D EC 14 ORA $14EC,X C2/E2D4: A8 TAY C2/E2D5: 10 84 BPL $E25B C2/E2D7: 0C 23 08 TSB $0823 C2/E2DA: 0E 42 6A ASL $6A42 C2/E2DD: 29 70 1D AND #$1D70 C2/E2E0: 73 52 ADC ($52,S),Y C2/E2E2: D3 09 CMP ($09,S),Y C2/E2E4: B2 0C LDA ($0C) C2/E2E6: CB WAI C2/E2E7: 11 00 ORA ($00),Y C2/E2E9: 00 84 BRK $84 C2/E2EB: 0C 44 0C TSB $0C44 C2/E2EE: 64 0C STZ $0C C2/E2F0: 84 10 STY $10 C2/E2F2: 43 0C EOR $0C,S C2/E2F4: 62 0C 42 PER $C02503 C2/E2F7: 0C 42 0C TSB $0C42 C2/E2FA: 43 0C EOR $0C,S C2/E2FC: 23 08 AND $08,S C2/E2FE: 23 08 AND $08,S C2/E300: 63 0C ADC $0C,S C2/E302: 43 0C EOR $0C,S C2/E304: 23 08 AND $08,S C2/E306: 23 08 AND $08,S C2/E308: 00 38 BRK $38 C2/E30A: 2E 11 A9 ROL $A911 C2/E30D: 0C A7 18 TSB $18A7 C2/E310: 85 14 STA $14 C2/E312: 44 14 43 MVP $14,$43 C2/E315: 14 23 TRB $23 C2/E317: 10 23 BPL $E33C C2/E319: 08 PHP C2/E31A: 23 08 AND $08,S C2/E31C: 46 10 LSR $10 C2/E31E: 45 08 EOR $08 C2/E320: 24 08 BIT $08 C2/E322: 23 08 AND $08,S C2/E324: D4 7F PEI $7F C2/E326: 23 08 AND $08,S C2/E328: 00 38 BRK $38 C2/E32A: 30 52 BMI $E37E C2/E32C: 14 49 TRB $49 C2/E32E: EB XBA C2/E32F: 3D 64 0C AND $0C64,X C2/E332: 45 08 EOR $08 C2/E334: 24 08 BIT $08 C2/E336: 23 08 AND $08,S C2/E338: 23 08 AND $08,S C2/E33A: 64 0C STZ $0C C2/E33C: 44 0C B0 MVP $0C,$B0 C2/E33F: 65 65 ADC $65 C2/E341: 10 63 BPL $E3A6 C2/E343: 08 PHP C2/E344: 44 08 62 MVP $08,$62 C2/E347: 0C 01 05 TSB $0501 C2/E34A: 00 00 BRK $00 C2/E34C: 01 32 ORA ($32,X) C2/E34E: 39 08 01 AND $0108,Y C2/E351: 0A ASL C2/E352: 00 00 BRK $00 C2/E354: 01 0C ORA ($0C,X) C2/E356: 00 00 BRK $00 C2/E358: 01 0E ORA ($0E,X) C2/E35A: 00 00 BRK $00 C2/E35C: 01 10 ORA ($10,X) C2/E35E: 00 00 BRK $00 C2/E360: 01 16 ORA ($16,X) C2/E362: 00 00 BRK $00 C2/E364: 01 1B ORA ($1B,X) C2/E366: 00 00 BRK $00 C2/E368: 01 0A ORA ($0A,X) C2/E36A: 00 00 BRK $00 C2/E36C: 01 1E ORA ($1E,X) C2/E36E: 00 00 BRK $00 C2/E370: 01 21 ORA ($21,X) C2/E372: 00 00 BRK $00 C2/E374: 01 24 ORA ($4,X) C2/E376: 00 00 BRK $00 C2/E378: 01 27 ORA ($27,X) C2/E37A: 00 00 BRK $00 C2/E37C: 01 2A ORA ($2A,X) C2/E37E: 00 00 BRK $00 C2/E380: 01 2D ORA ($2D,X) C2/E382: 00 00 BRK $00 C2/E384: 01 30 ORA ($30,X) C2/E386: 00 00 BRK $00 C2/E388: 01 37 ORA ($37,X) C2/E38A: 00 00 BRK $00 C2/E38C: 01 00 ORA ($00,X) C2/E38E: 00 00 BRK $00 C2/E390: 01 41 ORA ($41,X) C2/E392: 00 00 BRK $00 C2/E394: C0 C4 C8 CPY #$C8C4 C2/E397: CC 60 64 CPY $6460 C2/E39A: 68 PLA C2/E39B: 6C 80 84 JMP ($8480) C2/E39E: 88 DEY C2/E39F: 8C A0 A4 STY $A4A0 C2/E3A2: FB XCE C2/E3A3: FA PLX C2/E3A4: F9 F8 F8 SBC $F8F8,Y C2/E3A7: F9 FA FB SBC $FBFA,Y C2/E3AA: 00 08 BRK $08 C2/E3AC: 10 18 BPL $E3C6 C2/E3AE: DB STP C2/E3AF: 7E D3 4D ROR $4DD3,X C2/E3B2: F5 3A SBC $3A,X C2/E3B4: 10 32 BPL $E3E8 C2/E3B6: 3F 01 1F 00 AND $001F01,X C2/E3BA: 60 RTS C2/E3BB: 6A ROR C2/E3BC: 1F 03 64 0B ORA $0B6403,X C2/E3C0: 1A INC C2/E3C1: 00 FF BRK $FF C2/E3C3: 7F FF 7F 1A ADC $1A7FFF,X C2/E3C7: 00 1F BRK $1F C2/E3C9: 7C 00 00 JMP ($0000,X) C2/E3CC: 00 00 BRK $00 C2/E3CE: 00 00 BRK $00 C2/E3D0: 02 00 COP $00 C2/E3D2: 00 00 BRK $00 C2/E3D4: 10 00 BPL $E3D6 C2/E3D6: 20 00 00 JSR $0000 C2/E3D9: 00 00 BRK $00 C2/E3DB: F8 SED C2/E3DC: 20 0A 00 JSR $000A C2/E3DF: F8 SED C2/E3E0: 22 0A FF FA JSR $FAFF0A C2/E3E4: 24 08 BIT $08 C2/E3E6: 00 F8 BRK $F8 C2/E3E8: 26 0C ROL $0C C2/E3EA: F8 SED C2/E3EB: F8 SED C2/E3EC: 28 PLP C2/E3ED: 08 PHP C2/E3EE: F0 F8 BEQ $E3E8 C2/E3F0: 2A ROL C2/E3F1: 08 PHP C2/E3F2: 00 10 BRK $10 C2/E3F4: 2C 0C 00 BIT $000C C2/E3F7: FD 20 0A SBC $0A20,X C2/E3FA: 00 FD BRK $FD C2/E3FC: 22 0A FF FF JSR $FFFF0A C2/E400: 24 08 BIT $08 C2/E402: 00 FD BRK $FD C2/E404: 26 0C ROL $0C C2/E406: F8 SED C2/E407: FD 28 08 SBC $0828,X C2/E40A: F0 FD BEQ $E409 C2/E40C: 2A ROL C2/E40D: 08 PHP C2/E40E: 00 10 BRK $10 C2/E410: 2C 0C 00 BIT $000C C2/E413: 80 00 BRA $E415 C2/E415: 60 RTS C2/E416: 00 40 BRK $40 C2/E418: 00 20 BRK $20 C2/E41A: 00 A0 BRK $A0 C2/E41C: 80 A0 BRA $E3BE C2/E41E: 00 A1 BRK $A1 C2/E420: 80 A1 BRA $E3C3 (Data - indexed by ??? ranging from 0-3 (x2), code in bank C1 ) C2/E422: 00 00 BRK $00 C2/E424: 00 20 BRK $20 C2/E426: 00 40 BRK $40 C2/E428: 00 60 BRK $60 C2/E42A: 00 A0 BRK $A0 C2/E42C: 00 00 BRK $00 C2/E42E: 00 A0 BRK $A0 C2/E430: 00 00 BRK $00 C2/E432: 00 A0 BRK $A0 C2/E434: 00 00 BRK $00 C2/E436: 00 A0 BRK $A0 C2/E438: 00 00 BRK $00 C2/E43A: 00 A0 BRK $A0 C2/E43C: 00 00 BRK $00 (Data - indexed by encounter type, code in Bank C1) C2/E43E: 00 (front) C2/E43F: 00 C2/E440: 00 C2/E441: 00 C2/E442: 40 (back) C2/E443: 40 C2/E444: 40 C2/E445: 40 C2/E446: 40 (pincer) C2/E447: 00 C2/E448: 40 C2/E449: 00 C2/E44A: 00 (side) C2/E44B: 00 C2/E44C: 40 C2/E44D: 40 (Data - indexed by encounter type, code in Bank C1) (deals with what characters are flipped around? obviously none are on a Front attack, all are on a Back, the last 2 characters end up on the left side -- i.e. facing right -- on a Side, and the 1st and 3rd face right when Pincered) C2/E44E: 00 (front) C2/E44F: 00 C2/E450: 00 C2/E451: 00 C2/E452: 01 (back) C2/E453: 01 C2/E454: 01 C2/E455: 01 C2/E456: 01 (pincer) C2/E457: 00 C2/E458: 01 C2/E459: 00 C2/E45A: 00 (side) C2/E45B: 00 C2/E45C: 01 C2/E45D: 01 C2/E45E: 08 PHP C2/E45F: 0A ASL C2/E460: 0C 0E 00 TSB $000E C2/E463: 00 00 BRK $00 C2/E465: 00 00 BRK $00 C2/E467: 00 00 BRK $00 C2/E469: 01 00 ORA ($00,X) C2/E46B: 00 00 BRK $00 C2/E46D: 00 00 BRK $00 C2/E46F: 01 00 ORA ($00,X) C2/E471: 01 00 ORA ($00,X) C2/E473: 00 00 BRK $00 C2/E475: 00 00 BRK $00 C2/E477: 00 00 BRK $00 C2/E479: 00 00 BRK $00 C2/E47B: 00 00 BRK $00 C2/E47D: 00 00 BRK $00 C2/E47F: 00 00 BRK $00 C2/E481: 01 01 ORA ($01,X) C2/E483: 01 00 ORA ($00,X) C2/E485: 00 00 BRK $00 C2/E487: 01 00 ORA ($00,X) C2/E489: 00 00 BRK $00 C2/E48B: 01 00 ORA ($00,X) C2/E48D: 00 01 BRK $01 C2/E48F: 00 00 BRK $00 C2/E491: 00 00 BRK $00 C2/E493: 00 01 BRK $01 C2/E495: 01 01 ORA ($01,X) C2/E497: 01 01 ORA ($01,X) C2/E499: 01 0B ORA ($0B,X) C2/E49B: 0B PHD C2/E49C: 09 0B 0B ORA #$0B0B C2/E49F: 0B PHD C2/E4A0: 0B PHD C2/E4A1: 0B PHD C2/E4A2: 0B PHD C2/E4A3: 0B PHD C2/E4A4: 0B PHD C2/E4A5: 0B PHD C2/E4A6: 0B PHD C2/E4A7: 0B PHD C2/E4A8: 0B PHD C2/E4A9: 0B PHD C2/E4AA: 0B PHD C2/E4AB: 0B PHD C2/E4AC: 0B PHD C2/E4AD: 0B PHD C2/E4AE: 0B PHD C2/E4AF: 0B PHD C2/E4B0: 0B PHD C2/E4B1: 0B PHD C2/E4B2: 0B PHD C2/E4B3: 09 09 0B ORA #$0B09 C2/E4B6: 0B PHD C2/E4B7: 00 0B BRK $0B C2/E4B9: 0B PHD C2/E4BA: 0B PHD C2/E4BB: 0B PHD C2/E4BC: 0B PHD C2/E4BD: 0B PHD C2/E4BE: 0B PHD C2/E4BF: 0B PHD C2/E4C0: 0B PHD C2/E4C1: 0B PHD C2/E4C2: 0B PHD C2/E4C3: 00 3C BRK $3C C2/E4C5: 00 38 BRK $38 C2/E4C7: 00 34 BRK $34 C2/E4C9: 00 30 BRK $30 C2/E4CB: 00 0C BRK $0C C2/E4CD: 00 08 BRK $08 C2/E4CF: 00 04 BRK $04 C2/E4D1: 00 00 BRK $00 C2/E4D3: 3F C6 3F BE AND $BE3FC6,X C2/E4D7: 3F B6 3F AE AND $AE3FB6,X C2/E4DB: 00 DC BRK $DC C2/E4DD: 00 D4 BRK $D4 C2/E4DF: 00 CC BRK $CC C2/E4E1: 00 C4 BRK $C4 C2/E4E3: 7E 7E 7E ROR $7E7E,X C2/E4E6: 7E 7F 7F ROR $7F7F,X C2/E4E9: 7F 7F 3F E5 ADC $E53F7F,X C2/E4ED: 46 E5 LSR $E5 C2/E4EF: 52 E5 EOR ($E5) C2/E4F1: 5E E5 6A LSR $6AE5,X C2/E4F4: E5 76 SBC $76 C2/E4F6: E5 82 SBC $82 C2/E4F8: E5 C7 SBC $C7 C2/E4FA: E5 8E SBC $8E C2/E4FC: E5 9A SBC $9A C2/E4FE: E5 A6 SBC $A6 C2/E500: E5 B2 SBC $B2 C2/E502: E5 B8 SBC $B8 C2/E504: E5 3F SBC $3F C2/E506: E5 39 SBC $39 C2/E508: E5 3F SBC $3F C2/E50A: E5 3F SBC $3F C2/E50C: E5 3F SBC $3F C2/E50E: E5 3F SBC $3F C2/E510: E5 40 SBC $40 C2/E512: E5 4C SBC $4C C2/E514: E5 58 SBC $58 C2/E516: E5 64 SBC $64 C2/E518: E5 70 SBC $70 C2/E51A: E5 7C SBC $7C C2/E51C: E5 C1 SBC $C1 C2/E51E: E5 88 SBC $88 C2/E520: E5 94 SBC $94 C2/E522: E5 A0 SBC $A0 C2/E524: E5 AC SBC $AC C2/E526: E5 3F SBC $3F C2/E528: E5 3F SBC $3F C2/E52A: E5 33 SBC $33 C2/E52C: E5 CD SBC $CD C2/E52E: E5 3F SBC $3F C2/E530: E5 3F SBC $3F C2/E532: E5 00 SBC $00 C2/E534: 04 9A TSB $9A C2/E536: 15 01 ORA $01,X C2/E538: FF 00 03 8C SBC $8C0300,X C2/E53C: 15 01 ORA $01,X C2/E53E: FF FF 00 04 SBC $0400FF,X C2/E542: B0 13 BCS $E557 C2/E544: 01 FF ORA ($FF,X) C2/E546: 00 03 BRK $03 C2/E548: 54 15 01 MVN $15,$01 C2/E54B: FF 00 04 CC SBC $CC0400,X C2/E54F: 13 01 ORA ($01,S),Y C2/E551: FF 00 03 BE SBC $BE0300,X C2/E555: 13 01 ORA ($01,S),Y C2/E557: FF 00 04 E8 SBC $E80400,X C2/E55B: 13 01 ORA ($01,S),Y C2/E55D: FF 00 03 DA SBC $DA0300,X C2/E561: 13 01 ORA ($01,S),Y C2/E563: FF 00 04 04 SBC $040400,X C2/E567: 14 01 TRB $01 C2/E569: FF 00 03 F6 SBC $F60300,X C2/E56D: 13 01 ORA ($01,S),Y C2/E56F: FF 00 04 20 SBC $200400,X C2/E573: 14 01 TRB $01 C2/E575: FF 00 03 12 SBC $120300,X C2/E579: 14 01 TRB $01 C2/E57B: FF 00 04 3C SBC $3C0400,X C2/E57F: 14 01 TRB $01 C2/E581: FF 00 03 2E SBC $2E0300,X C2/E585: 14 01 TRB $01 C2/E587: FF 00 04 58 SBC $580400,X C2/E58B: 14 01 TRB $01 C2/E58D: FF 00 03 4A SBC $4A0300,X C2/E591: 14 01 TRB $01 C2/E593: FF 00 04 74 SBC $740400,X C2/E597: 14 01 TRB $01 C2/E599: FF 00 03 66 SBC $660300,X C2/E59D: 14 01 TRB $01 C2/E59F: FF 00 04 90 SBC $900400,X C2/E5A3: 14 01 TRB $01 C2/E5A5: FF 00 03 82 SBC $820300,X C2/E5A9: 14 01 TRB $01 C2/E5AB: FF 00 04 AC SBC $AC0400,X C2/E5AF: 14 01 TRB $01 C2/E5B1: FF 00 03 9E SBC $9E0300,X C2/E5B5: 14 01 TRB $01 C2/E5B7: FF 00 03 62 SBC $620300,X C2/E5BB: 15 01 ORA $01,X C2/E5BD: FF 00 E0 FF SBC $FFE000,X C2/E5C1: 00 04 BRK $04 C2/E5C3: B6 15 LDX $15,Y C2/E5C5: 01 FF ORA ($FF,X) C2/E5C7: 00 03 BRK $03 C2/E5C9: A8 TAY C2/E5CA: 15 01 ORA $01,X C2/E5CC: FF 00 04 C4 SBC $C40400,X C2/E5D0: 15 01 ORA $01,X C2/E5D2: FF 13 E6 19 SBC $19E613,X C2/E5D6: E6 1F INC $1F C2/E5D8: E6 25 INC $25 C2/E5DA: E6 2B INC $2B C2/E5DC: E6 07 INC $07 C2/E5DE: E6 0D INC $0D C2/E5E0: E6 31 INC $31 C2/E5E2: E6 37 INC $37 C2/E5E4: E6 13 INC $13 C2/E5E6: E6 01 INC $01 C2/E5E8: E6 FB INC $FB C2/E5EA: E5 F5 SBC $F5 C2/E5EC: E5 EF SBC $EF C2/E5EE: E5 00 SBC $00 C2/E5F0: 04 0A TSB $0A C2/E5F2: 16 01 ASL $01,X C2/E5F4: FF 00 04 EE SBC $EE0400,X C2/E5F8: 15 01 ORA $01,X C2/E5FA: FF 00 04 E0 SBC $E00400,X C2/E5FE: 15 01 ORA $01,X C2/E600: FF 00 04 D2 SBC $D20400,X C2/E604: 15 01 ORA $01,X C2/E606: FF 00 05 46 SBC $460500,X C2/E60A: 15 01 ORA $01,X C2/E60C: FE 00 05 INC $0500,X C2/E60F: 38 SEC C2/E610: 15 01 ORA $01,X C2/E612: FE 00 04 INC $0400,X C2/E615: FC 0E 01 JSR ($010E,X) C2/E618: FF 00 04 EE SBC $EE0400,X C2/E61C: 0E 01 FF ASL $FF01 C2/E61F: 00 04 BRK $04 C2/E621: E0 0E CPX #$0E C2/E623: 01 FF ORA ($FF,X) C2/E625: 00 04 BRK $04 C2/E627: F2 14 SBC ($14) C2/E629: 01 FF ORA ($FF,X) C2/E62B: 00 04 BRK $04 C2/E62D: E4 14 CPX $14 C2/E62F: 01 FF ORA ($FF,X) C2/E631: 00 04 BRK $04 C2/E633: 7E 15 01 ROR $0115,X C2/E636: FF 00 04 70 SBC $700400,X C2/E63A: 15 01 ORA $01,X C2/E63C: FF A0 02 00 SBC $0002A0,X C2/E640: B1 76 LDA ($76),Y C2/E642: 8D FC E9 STA $E9FC C2/E645: 88 DEY C2/E646: B1 76 LDA ($76),Y C2/E648: C9 09 D0 CMP #$D009 C2/E64B: 0D C8 B1 ORA $B1C8 C2/E64E: 76 85 ROR $85,X C2/E650: 10 C8 BPL $E61A C2/E652: B1 76 LDA ($76),Y C2/E654: 22 EB 17 C1 JSR $C117EB C2/E658: 6B RTL C2/E659: C2 20 REP #$20 C2/E65B: 0A ASL C2/E65C: AA TAX C2/E65D: BF D3 E5 C2 LDA $C2E5D3,X C2/E661: 85 8F STA $8F C2/E663: 7B TDC C2/E664: E2 20 SEP #$20 C2/E666: 80 49 BRA $E6B1 C2/E668: 20 54 EA JSR $EA54 C2/E66B: A0 01 LDY #$01 C2/E66D: 00 B1 BRK $B1 C2/E66F: 76 C9 ROR $C9,X C2/E671: 0D D0 06 ORA $06D0 C2/E674: 20 06 E8 JSR $E806 C2/E677: 4C 8E E8 JMP $E88E C2/E67A: C9 11 D0 CMP #$D011 C2/E67D: 13 20 ORA ($20,S),Y C2/E67F: 06 E8 ASL $E8 C2/E681: 22 D1 91 C1 JSR $C191D1 C2/E685: A9 FF 8D LDA #$8DFF C2/E688: 91 61 STA ($61),Y C2/E68A: AD 2F 2F LDA $2F2F C2/E68D: 8D 1E 20 STA $201E C2/E690: 6B RTL C2/E691: 48 PHA C2/E692: 20 06 E8 JSR $E806 C2/E695: 68 PLA C2/E696: C2 20 REP #$20 C2/E698: 0A ASL C2/E699: AA TAX C2/E69A: AD FB E9 LDA $E9FB C2/E69D: 29 FF 00 AND #$00FF C2/E6A0: F0 06 BEQ $E6A8 C2/E6A2: BF EB E4 C2 LDA $C2E4EB,X C2/E6A6: 80 04 BRA $E6AC C2/E6A8: BF 0F E5 C2 LDA $C2E50F,X C2/E6AC: 85 8F STA $8F C2/E6AE: 7B TDC C2/E6AF: E2 20 SEP #$20 C2/E6B1: A9 C2 85 LDA #$85C2 C2/E6B4: 91 A7 STA ($A7),Y C2/E6B6: 8F C9 FF F0 STA $F0FFC9 C2/E6BA: 10 C9 BPL $E685 C2/E6BC: FE F0 11 INC $11F0,X C2/E6BF: 0A ASL C2/E6C0: AA TAX C2/E6C1: FC D7 E6 JSR ($E6D7,X) C2/E6C4: A4 8F LDY $8F C2/E6C6: C8 INY C2/E6C7: 84 8F STY $8F C2/E6C9: 80 EA BRA $E6B5 C2/E6CB: A9 FF 8D LDA #$8DFF C2/E6CE: 91 61 STA ($61),Y C2/E6D0: AD 2F 2F LDA $2F2F C2/E6D3: 8D 1E 20 STA $201E C2/E6D6: 6B RTL Pointers C2/E6D7: FC E7 01 JSR ($01E7,X) C2/E6DA: E8 INX C2/E6DB: A7 E7 LDA [$E7] C2/E6DD: F4 E6 33 PEA $33E6 C2/E6E0: E7 72 SBC [$72] C2/E6E2: E7 A6 SBC [$A6] C2/E6E4: 00 4A BRK $4A C2/E6E6: B0 08 BCS $E6F0 C2/E6E8: E8 INX C2/E6E9: E0 08 CPX #$08 C2/E6EB: 00 D0 BRK $D0 C2/E6ED: F7 7B SBC [$7B],Y C2/E6EF: 60 RTS C2/E6F0: 8A TXA C2/E6F1: 29 07 60 AND #$6007 C2/E6F4: 22 21 FE C1 JSR $C1FE21 C2/E6F8: A0 01 LDY #$01 C2/E6FA: 00 C2 BRK $C2 C2/E6FC: 20 B7 8F JSR $8FB7 C2/E6FF: 85 1E STA $1E C2/E701: E6 8F INC $8F C2/E703: E6 8F INC $8F C2/E705: 7B TDC C2/E706: E2 20 SEP #$20 C2/E708: AD FB E9 LDA $E9FB C2/E70B: 20 E3 E6 JSR $E6E3 C2/E70E: 18 CLC C2/E70F: 69 04 8D ADC #$8D04 C2/E712: 6F 2C AD FB ADC $FBAD2C C2/E716: E9 8D 71 SBC #$718D C2/E719: 2C 8D 73 BIT $738D C2/E71C: 2C 8D 3E BIT $3E8D C2/E71F: 61 9C ADC ($9C,X) C2/E721: 3D 61 9C AND $9C61,X C2/E724: 70 2C BVS $E752 C2/E726: 9C 72 2C STZ $2C72 C2/E729: A9 C0 8D LDA #$8DC0 C2/E72C: 6E 2C 22 ROR $222C C2/E72F: 80 B8 BRA $E6E9 C2/E731: C1 60 CMP ($60,X) C2/E733: 22 21 FE C1 JSR $C1FE21 C2/E737: A0 01 LDY #$01 C2/E739: 00 C2 BRK $C2 C2/E73B: 20 B7 8F JSR $8FB7 C2/E73E: 85 1E STA $1E C2/E740: E6 8F INC $8F C2/E742: E6 8F INC $8F C2/E744: 7B TDC C2/E745: E2 20 SEP #$20 C2/E747: AD FC E9 LDA $E9FC C2/E74A: 20 E3 E6 JSR $E6E3 C2/E74D: 18 CLC C2/E74E: 69 04 8D ADC #$8D04 C2/E751: 6F 2C AD FC ADC $FCAD2C C2/E755: E9 8D 71 SBC #$718D C2/E758: 2C 8D 73 BIT $738D C2/E75B: 2C 8D 3E BIT $3E8D C2/E75E: 61 9C ADC ($9C,X) C2/E760: 3D 61 9C AND $9C61,X C2/E763: 70 2C BVS $E791 C2/E765: 9C 72 2C STZ $2C72 C2/E768: A9 C0 8D LDA #$8DC0 C2/E76B: 6E 2C 22 ROR $222C C2/E76E: 80 B8 BRA $E728 C2/E770: C1 60 CMP ($60,X) C2/E772: 22 21 FE C1 JSR $C1FE21 C2/E776: A0 01 LDY #$01 C2/E778: 00 C2 BRK $C2 C2/E77A: 20 B7 8F JSR $8FB7 C2/E77D: 85 1E STA $1E C2/E77F: E6 8F INC $8F C2/E781: E6 8F INC $8F C2/E783: 7B TDC C2/E784: E2 20 SEP #$20 C2/E786: 9C 6F 2C STZ $2C6F C2/E789: A9 0F 8D LDA #$8D0F C2/E78C: 70 2C BVS $E7BA C2/E78E: 8D 72 2C STA $2C72 C2/E791: 8D 3D 61 STA $613D C2/E794: 9C 3E 61 STZ $613E C2/E797: 9C 71 2C STZ $2C71 C2/E79A: 9C 73 2C STZ $2C73 C2/E79D: A9 00 8D LDA #$8D00 C2/E7A0: 6E 2C 22 ROR $222C C2/E7A3: 80 B8 BRA $E75D C2/E7A5: C1 60 CMP ($60,X) C2/E7A7: AD FB E9 LDA $E9FB C2/E7AA: 8D 71 2C STA $2C71 C2/E7AD: 8D 73 2C STA $2C73 C2/E7B0: 8D 3E 61 STA $613E C2/E7B3: 9C 3D 61 STZ $613D C2/E7B6: 9C 70 2C STZ $2C70 C2/E7B9: 9C 72 2C STZ $2C72 C2/E7BC: 20 E3 E6 JSR $E6E3 C2/E7BF: 48 PHA C2/E7C0: 18 CLC C2/E7C1: 69 04 85 ADC #$8504 C2/E7C4: 10 09 BPL $E7CF C2/E7C6: 80 8D BRA $E755 C2/E7C8: 6F 2C 8D 3F ADC $3F8D2C C2/E7CC: 61 A9 ADC ($A9,X) C2/E7CE: C0 8D 6E CPY #$6E8D C2/E7D1: 2C 68 C2 BIT $C268 C2/E7D4: 20 0A 0A JSR $0A0A C2/E7D7: 0A ASL C2/E7D8: 0A ASL C2/E7D9: 0A ASL C2/E7DA: 0A ASL C2/E7DB: 0A ASL C2/E7DC: AA TAX C2/E7DD: A9 01 01 LDA #$0101 C2/E7E0: 85 22 STA $22 C2/E7E2: E6 8F INC $8F C2/E7E4: A7 8F LDA [$8F] C2/E7E6: 85 24 STA $24 C2/E7E8: E6 8F INC $8F C2/E7EA: 7B TDC C2/E7EB: E2 20 SEP #$20 C2/E7ED: A5 10 LDA $10 C2/E7EF: 09 80 85 ORA #$8580 C2/E7F2: 10 A9 BPL $E79D C2/E7F4: C2 85 REP #$85 C2/E7F6: 26 22 ROL $22 C2/E7F8: C0 B1 C1 CPY #$C1B1 C2/E7FB: 60 RTS C2/E7FC: 22 43 FF C1 JSR $C1FF43 C2/E800: 60 RTS C2/E801: 22 51 FF C1 JSR $C1FF51 C2/E805: 60 RTS C2/E806: AD 1E 20 LDA $201E C2/E809: 8D FA E9 STA $E9FA C2/E80C: A0 02 LDY #$02 C2/E80E: 00 B1 BRK $B1 C2/E810: 76 8D ROR $8D,X C2/E812: FB XCE C2/E813: E9 49 FF SBC #$FF49 C2/E816: 85 10 STA $10 C2/E818: C8 INY C2/E819: B1 76 LDA ($76),Y C2/E81B: 8D FC E9 STA $E9FC C2/E81E: AD 1E 20 LDA $201E C2/E821: 25 10 AND $10 C2/E823: 0D FC E9 ORA $E9FC C2/E826: 8D FD E9 STA $E9FD C2/E829: AD FB E9 LDA $E9FB C2/E82C: D0 1D BNE $E84B C2/E82E: AD FA E9 LDA $E9FA C2/E831: 49 FF 85 EOR #$85FF C2/E834: 10 AD BPL $E7E3 C2/E836: FC E9 25 JSR ($25E9,X) C2/E839: 10 8D BPL $E7C8 C2/E83B: FC E9 49 JSR ($49E9,X) C2/E83E: FF 8D 91 61 SBC $61918D,X C2/E842: AD FD E9 LDA $E9FD C2/E845: 8D 1E 20 STA $201E C2/E848: 8D AB 61 STA $61AB C2/E84B: 60 RTS C2/E84C: 0C 0B 0A TSB $0A0B C2/E84F: 09 08 07 ORA #$0708 C2/E852: 06 07 ASL $07 C2/E854: 04 03 TSB $03 C2/E856: 02 02 COP $02 C2/E858: 02 02 COP $02 C2/E85A: 02 02 COP $02 C2/E85C: 02 02 COP $02 C2/E85E: 02 02 COP $02 C2/E860: 02 02 COP $02 C2/E862: 02 02 COP $02 C2/E864: 02 02 COP $02 C2/E866: 02 02 COP $02 C2/E868: 02 02 COP $02 C2/E86A: 02 02 COP $02 C2/E86C: 02 02 COP $02 C2/E86E: 02 02 COP $02 C2/E870: 02 02 COP $02 C2/E872: 02 02 COP $02 C2/E874: 02 02 COP $02 C2/E876: 02 02 COP $02 C2/E878: 02 02 COP $02 C2/E87A: 02 02 COP $02 C2/E87C: 02 02 COP $02 C2/E87E: 02 02 COP $02 C2/E880: 02 02 COP $02 C2/E882: 02 02 COP $02 C2/E884: 03 04 ORA $04,S C2/E886: 05 06 ORA $06 C2/E888: 07 08 ORA [$08] C2/E88A: 09 0A 0B ORA #$0B0A C2/E88D: 0C 9C B3 TSB $B39C C2/E890: EC A9 FF CPX $FFA9 C2/E893: 8D 91 61 STA $6191 C2/E896: AD FA E9 LDA $E9FA C2/E899: 8D 1E 20 STA $201E C2/E89C: AD B3 EC LDA $ECB3 C2/E89F: AA TAX C2/E8A0: BF 4C E8 C2 LDA $C2E84C,X C2/E8A4: 22 B2 9B C1 JSR $C19BB2 C2/E8A8: AD FC E9 LDA $E9FC C2/E8AB: 8D 1E 20 STA $201E C2/E8AE: AD B3 EC LDA $ECB3 C2/E8B1: AA TAX C2/E8B2: BF 6C E8 C2 LDA $C2E86C,X C2/E8B6: 22 B2 9B C1 JSR $C19BB2 C2/E8BA: EE B3 EC INC $ECB3 C2/E8BD: AD B3 EC LDA $ECB3 C2/E8C0: C9 20 D0 CMP #$D020 C2/E8C3: D2 A9 CMP ($A9) C2/E8C5: FF 8D 91 61 SBC $61918D,X C2/E8C9: AD 2F 2F LDA $2F2F C2/E8CC: 8D 1E 20 STA $201E C2/E8CF: 6B RTL C2/E8D0: 29 7F AND #$7F C2/E8D2: 0A ASL C2/E8D3: AA TAX C2/E8D4: FC D8 E8 JSR ($E8D8,X) C2/E8D7: 6B RTL Pointers C2/E8D8: 36 F8 C2/E8DA: 20 F8 C2/E8DC: 2B F8 C2/E8DE: EF F7 C2/E8F0: 36 F4 C2/E8E2: 12 F8 C2/E8E4: 05 F3 C2/E8E6: 20 F8 C2/E8E8: BF F2 C2/E8EA: 9C F4 C2/E8EC: 89 F4 C2/E8EE: 09 F8 C2/E8F0: 6B F4 C2/E8F2: D6 E9 C2/E8F4: C7 F7 C2/E8F6: 41 F7 C2/E8F8: 09 F8 C2/E8FA: ED F6 C2/E8FC: CA F4 C2/E8FE: A1 F7 C2/E900: 30 F6 C2/E902: 8D F5 C2/E904: 63 F7 C2/E906: D5 F6 C2/E908: A4 F6 C2/E90A: 7D F7 C2/E90C: 18 F4 C2/E90E: 39 F8 C2/E910: 3E F6 C2/E912: CA F8 C2/E914: 92 F3 C2/E916: 5D F3 C2/E918: B5 F3 C2/E91A: 0D F6 C2/E91C: C1 F5 C2/E91E: A1 F5 C2/E920: B9 F2 C2/E922: C4 F6 C2/E924: 3C F8 C2/E926: 47 F8 C2/E928: 5B F6 C2/E92A: 51 F3 C2/E92C: E9 F3 C2/E92E: 95 F7 C2/E930: D9 F3 C2/E932: 9E F5 C2/E934: F8 F5 C2/E936: D2 F5 C2/E938: A4 F5 C2/E93A: FB F3 C2/E93C: 99 F2 C2/E93E: 89 F2 C2/E940: 7B F2 C2/E942: 5D F2 C2/E944: 41 F2 C2/E946: 31 F2 C2/E948: 21 F2 C2/E94A: 11 F2 C2/E94C: FA F1 C2/E94E: 95 F1 C2/E950: 6B F1 C2/E952: 4D F1 C2/E954: 29 F1 C2/E956: 19 F1 C2/E958: 09 F1 C2/E95A: F9 F0 C2/E95C: DD F0 C2/E95E: C1 F0 C2/E960: 8E F0 C2/E962: 70 F0 C2/E964: 20 F0 C2/E966: 0F F0 C2/E968: FE EF C2/E96A: E3 EF C2/E96C: D2 EF C2/E96E: 7B EF C2/E970: 67 EF C2/E972: 59 EF C2/E974: 4B EF C2/E976: 48 EF C2/E978: 1F EF C2/E97A: 1C EF C2/E97C: 0A EF C2/E97E: F6 EE C2/E980: DE EE C2/E982: BD EE C2/E984: AC EE C2/E986: A7 EE C2/E988: 99 EE C2/E98A: 30 EE C2/E98C: 8D EE C2/E98E: 76 EE C2/E990: 0C EE C2/E992: FD ED C2/E994: F5 ED C2/E996: AC ED C2/E998: A3 ED C2/E99A: 8E ED C2/E99C: 6E ED C2/E99E: F6 EC C2/E9A0: 62 ED C2/E9A2: 52 EC C2/E9A4: 4B EC C2/E9A6: 43 EC C2/E9A8: 36 EC C2/E9AA: 29 EC C2/E9AC: 1C EC C2/E9AE: FE EB C2/E9B0: EE EB C2/E9B2: E1 EB C2/E9B4: C2 EB C2/E9B6: BC EB C2/E9B8: 97 EB C2/E9BA: 91 EB C2/E9BC: 2C EB C2/E9BE: 87 EB C2/E9C0: 4F EB C2/E9C2: 35 EB C2/E9C4: 1D EB C2/E9C6: CB EA C2/E9C8: BD EA C2/E9CA: A7 EA C2/E9CC: 88 EA C2/E9CE: 71 EA C2/E9D0: 65 EA C2/E9D2: 43 EA C2/E9D4: D7 E9 C2/E9D6: 60 EE C2/E9D8: AC 60 7B LDY $7B60 C2/E9DB: AA TAX C2/E9DC: A8 TAY C2/E9DD: BD C6 2E LDA $2EC6,X C2/E9E0: C9 0D F0 CMP #$F00D C2/E9E3: 0C C8 8A TSB $8AC8 C2/E9E6: 18 CLC C2/E9E7: 69 20 AA ADC #$AA20 C2/E9EA: E0 80 CPX #$80 C2/E9EC: 00 D0 BRK $D0 C2/E9EE: EE 60 84 INC $8460 C2/E9F1: 10 98 BPL $E98B C2/E9F3: 0A ASL C2/E9F4: A8 TAY C2/E9F5: C2 20 REP #$20 C2/E9F7: B9 33 80 LDA $8033,Y C2/E9FA: 38 SEC C2/E9FB: E9 08 00 SBC #$0008 C2/E9FE: 85 14 STA $14 C2/EA00: B9 3B 80 LDA $803B,Y C2/EA03: 38 SEC C2/EA04: E9 08 00 SBC #$0008 C2/EA07: 85 16 STA $16 C2/EA09: 7B TDC C2/EA0A: E2 20 SEP #$20 C2/EA0C: 7B TDC C2/EA0D: AA TAX C2/EA0E: BD 38 6A LDA $6A38,X C2/EA11: 9D 39 6A STA $6A39,X C2/EA14: A5 10 LDA $10 C2/EA16: 9D 38 6A STA $6A38,X C2/EA19: C2 20 REP #$20 C2/EA1B: BD 7E 6F LDA $6F7E,X C2/EA1E: 9D 82 6F STA $6F82,X C2/EA21: BD 80 6F LDA $6F80,X C2/EA24: 9D 84 6F STA $6F84,X C2/EA27: A5 14 LDA $14 C2/EA29: 9D 7E 6F STA $6F7E,X C2/EA2C: A5 16 LDA $16 C2/EA2E: 9D 80 6F STA $6F80,X C2/EA31: 8A TXA C2/EA32: 18 CLC C2/EA33: 69 80 00 ADC #$0080 C2/EA36: AA TAX C2/EA37: 7B TDC C2/EA38: E2 20 SEP #$20 C2/EA3A: E0 00 CPX #$00 C2/EA3C: 05 D0 ORA $D0 C2/EA3E: CF EE EE E9 CMP $E9EEEE C2/EA42: 60 RTS C2/EA43: A9 05 85 LDA #$8505 C2/EA46: 26 A9 ROL $A9 C2/EA48: 02 20 COP $20 C2/EA4A: F8 SED C2/EA4B: F4 A9 03 PEA $03A9 C2/EA4E: 20 E6 F6 JSR $F6E6 C2/EA51: 4C EB F9 JMP $F9EB C2/EA54: AF 3F 21 00 LDA $00213F C2/EA58: AF 37 21 00 LDA $002137 C2/EA5C: AF 3D 21 00 LDA $00213D C2/EA60: C9 A0 90 CMP #$90A0 C2/EA63: F0 60 BEQ $EAC5 C2/EA65: 20 CA F8 JSR $F8CA C2/EA68: AD 6F 89 LDA $896F C2/EA6B: 09 08 8D ORA #$8D08 C2/EA6E: 6F 89 60 20 ADC $206089 C2/EA72: 54 EA AD MVN $EA,$AD C2/EA75: 8D 89 29 STA $2989 C2/EA78: FE 8D 8D INC $8D8D,X C2/EA7B: 89 20 CA BIT #$CA20 C2/EA7E: F8 SED C2/EA7F: AD 6F 89 LDA $896F C2/EA82: 09 08 8D ORA #$8D08 C2/EA85: 6F 89 60 20 ADC $206089 C2/EA89: E9 F3 A9 SBC #$A9F3 C2/EA8C: 04 85 TSB $85 C2/EA8E: 26 A9 ROL $A9 C2/EA90: 07 20 ORA [$20] C2/EA92: F8 SED C2/EA93: F4 A9 08 PEA $08A9 C2/EA96: 20 E6 F6 JSR $F6E6 C2/EA99: EE AD 60 INC $60AD C2/EA9C: 60 RTS C2/EA9D: 82 01 91 BRL $C07BA1 C2/EAA0: 01 87 ORA ($87,X) C2/EAA2: 01 93 ORA ($93,X) C2/EAA4: 01 84 ORA ($84,X) C2/EAA6: 01 AD ORA ($AD,X) C2/EAA8: E7 E9 SBC [$E9] C2/EAAA: 0A ASL C2/EAAB: AA TAX C2/EAAC: C2 20 REP #$20 C2/EAAE: BF 9D EA C2 LDA $C2EA9D,X C2/EAB2: AA TAX C2/EAB3: 7B TDC C2/EAB4: E2 20 SEP #$20 C2/EAB6: 22 52 24 C1 JSR $C12452 C2/EABA: 4C 70 FA JMP $FA70 C2/EABD: A9 03 85 LDA #$8503 C2/EAC0: 26 A9 ROL $A9 C2/EAC2: 03 20 ORA $20,S C2/EAC4: F8 SED C2/EAC5: F4 A9 04 PEA $04A9 C2/EAC8: 4C E6 F6 JMP $F6E6 C2/EACB: 9C 67 7B STZ $7B67 C2/EACE: 22 86 C3 C1 JSR $C1C386 C2/EAD2: 22 26 02 C1 JSR $C10226 C2/EAD6: 22 7E B0 C1 JSR $C1B07E C2/EADA: 22 9E 9A C1 JSR $C19A9E C2/EADE: 48 PHA C2/EADF: AD 8D 89 LDA $898D C2/EAE2: 48 PHA C2/EAE3: 29 FE 8D AND #$8DFE C2/EAE6: 8D 89 AD STA $AD89 C2/EAE9: 6F 89 29 E7 ADC $E72989 C2/EAED: 09 50 8D ORA #$8D50 C2/EAF0: 6F 89 22 55 ADC $552289 C2/EAF4: 1E C1 68 ASL $68C1,X C2/EAF7: 8D 8D 89 STA $898D C2/EAFA: 68 PLA C2/EAFB: 29 03 0A AND #$0A03 C2/EAFE: 0A ASL C2/EAFF: 0A ASL C2/EB00: 0A ASL C2/EB01: 0A ASL C2/EB02: AA TAX C2/EB03: 7B TDC C2/EB04: A8 TAY C2/EB05: BD 80 7F LDA $7F80,X C2/EB08: 99 60 7E STA $7E60,Y C2/EB0B: C8 INY C2/EB0C: E8 INX C2/EB0D: C0 20 00 CPY #$0020 C2/EB10: D0 F3 BNE $EB05 C2/EB12: AD 7D 62 LDA $627D C2/EB15: 29 7F 8D AND #$8D7F C2/EB18: 7D 62 4C ADC $4C62,X C2/EB1B: 0F FA 20 4F ORA $4F20FA C2/EB1F: FA PLX C2/EB20: A9 3C 8F LDA #$8F3C C2/EB23: 23 21 AND $21,S C2/EB25: 00 9C BRK $9C C2/EB27: 1B TCS C2/EB28: 96 4C STX $4C,Y C2/EB2A: 1B TCS C2/EB2B: FA PLX C2/EB2C: 20 C1 F5 JSR $F5C1 C2/EB2F: 9C AC 60 STZ $60AC C2/EB32: 4C 99 F2 JMP $F299 C2/EB35: 20 2D F0 JSR $F02D C2/EB38: A2 3F LDX #$3F C2/EB3A: BE A0 00 LDX $00A0,Y C2/EB3D: 08 PHP C2/EB3E: 20 61 EC JSR $EC61 C2/EB41: A9 03 85 LDA #$8503 C2/EB44: 26 A9 ROL $A9 C2/EB46: 02 20 COP $20 C2/EB48: F8 SED C2/EB49: F4 A9 03 PEA $03A9 C2/EB4C: 4C E6 F6 JMP $F6E6 C2/EB4F: 20 2D F0 JSR $F02D C2/EB52: A2 8F LDX #$8F C2/EB54: 01 DA ORA ($DA,X) C2/EB56: 22 0A 24 C1 JSR $C1240A C2/EB5A: 20 70 FA JSR $FA70 C2/EB5D: 22 C6 9E C1 JSR $C19EC6 C2/EB61: FA PLX C2/EB62: 22 80 24 C1 JSR $C12480 C2/EB66: 20 87 FA JSR $FA87 C2/EB69: A2 9C LDX #$9C C2/EB6B: 01 22 ORA ($22,X) C2/EB6D: 80 24 BRA $EB93 C2/EB6F: C1 20 CMP ($20,X) C2/EB71: 87 FA STA [$FA] C2/EB73: 20 CA F1 JSR $F1CA C2/EB76: 20 4F FA JSR $FA4F C2/EB79: 9C 1B 96 STZ $961B C2/EB7C: A9 CC LDA #$CC C2/EB7E: 8F 24 21 STA $002124 C2/EB82: A9 01 LDA #$01 C2/EB84: 4C E6 F6 JMP $F6E6 C2/EB87: 20 47 F8 JSR $F847 C2/EB8A: 7B TDC C2/EB8B: EE AC 60 INC $60AC C2/EB8E: 4C 11 F0 JMP $F011 C2/EB91: 20 EB F9 JSR $F9EB C2/EB94: 4C FE EE JMP $EEFE C2/EB97: 20 C1 F5 JSR $F5C1 C2/EB9A: 20 CA F8 JSR $F8CA C2/EB9D: 9C AC 60 STZ $60AC C2/EBA0: 22 A1 AA C1 JSR $C1AAA1 C2/EBA4: A5 12 LDA $12 C2/EBA6: 30 13 BMI $EBBB C2/EBA8: 29 03 0A AND #$0A03 C2/EBAB: 0A ASL C2/EBAC: 0A ASL C2/EBAD: 0A ASL C2/EBAE: 0A ASL C2/EBAF: AA TAX C2/EBB0: BD C1 2E LDA $2EC1,X C2/EBB3: 10 06 BPL $EBBB C2/EBB5: 9C 2E 6F STZ $6F2E C2/EBB8: 9C 3E 6F STZ $6F3E C2/EBBB: 60 RTS C2/EBBC: 20 0F F0 JSR $F00F C2/EBBF: 4C CA F8 JMP $F8CA C2/EBC2: A2 9B LDX #$9B C2/EBC4: 01 22 ORA ($22,X) C2/EBC6: 80 24 BRA $EBEC C2/EBC8: C1 7B CMP ($7B,X) C2/EBCA: AA TAX C2/EBCB: BF 00 63 ED LDA $ED6300,X C2/EBCF: 9D 60 7F STA $7F60,X C2/EBD2: 9D 60 7D STA $7D60,X C2/EBD5: E8 INX C2/EBD6: E0 20 CPX #$20 C2/EBD8: 00 D0 BRK $D0 C2/EBDA: F0 20 BEQ $EBFC C2/EBDC: 8B PHB C2/EBDD: F9 4C 09 SBC $094C,Y C2/EBE0: F8 SED C2/EBE1: A2 94 LDX #$94 C2/EBE3: 01 22 ORA ($22,X) C2/EBE5: 52 24 EOR ($24) C2/EBE7: C1 20 CMP ($20,X) C2/EBE9: 70 FA BVS $EBE5 C2/EBEB: 4C EF F7 JMP $F7EF C2/EBEE: A2 8A LDX #$8A C2/EBF0: 01 22 ORA ($22,X) C2/EBF2: 80 24 BRA $EC18 C2/EBF4: C1 20 CMP ($20,X) C2/EBF6: 87 FA STA [$FA] C2/EBF8: 20 C7 F9 JSR $F9C7 C2/EBFB: 4C 09 F8 JMP $F809 C2/EBFE: 20 2D F0 JSR $F02D C2/EC01: A2 8C LDX #$8C C2/EC03: 01 DA ORA ($DA,X) C2/EC05: 22 00 24 C1 JSR $C12400 C2/EC09: 20 70 FA JSR $FA70 C2/EC0C: 22 C6 9E C1 JSR $C19EC6 C2/EC10: FA PLX C2/EC11: 22 80 24 C1 JSR $C12480 C2/EC15: 20 87 FA JSR $FA87 C2/EC18: EE B0 62 INC $62B0 C2/EC1B: 60 RTS C2/EC1C: A2 90 LDX #$90 C2/EC1E: 01 22 ORA ($22,X) C2/EC20: 52 24 EOR ($24) C2/EC22: C1 20 CMP ($20,X) C2/EC24: 70 FA BVS $EC20 C2/EC26: 4C 09 F8 JMP $F809 C2/EC29: A2 96 LDX #$96 C2/EC2B: 01 22 ORA ($22,X) C2/EC2D: 52 24 EOR ($24) C2/EC2F: C1 20 CMP ($20,X) C2/EC31: 70 FA BVS $EC2D C2/EC33: 4C 90 F5 JMP $F590 C2/EC36: A2 88 LDX #$88 C2/EC38: 01 22 ORA ($22,X) C2/EC3A: 52 24 EOR ($24) C2/EC3C: C1 20 CMP ($20,X) C2/EC3E: 70 FA BVS $EC3A C2/EC40: 4C 3E F6 JMP $F63E C2/EC43: A9 08 20 LDA #$2008 C2/EC46: 11 F0 ORA ($F0),Y C2/EC48: 4C D3 F9 JMP $F9D3 C2/EC4B: 20 CA F8 JSR $F8CA C2/EC4E: EE AC 60 INC $60AC C2/EC51: 60 RTS C2/EC52: 20 4F FA JSR $FA4F C2/EC55: A9 06 8D LDA #$8D06 C2/EC58: 1B TCS C2/EC59: 96 A9 STX $A9,Y C2/EC5B: CC 8F 24 CPY $248F C2/EC5E: 21 00 AND ($00,X) C2/EC60: 60 RTS C2/EC61: DA PHX C2/EC62: 5A PHY C2/EC63: A9 D8 85 LDA #$85D8 C2/EC66: F5 A2 SBC $A2,X C2/EC68: 00 D0 BRK $D0 C2/EC6A: 86 F3 STX $F3 C2/EC6C: A9 7E 85 LDA #$857E C2/EC6F: F8 SED C2/EC70: A2 3F LDX #$3F C2/EC72: AE 86 F6 LDX $F686 C2/EC75: 22 6D FF C2 JSR $C2FF6D C2/EC79: 7A PLY C2/EC7A: FA PLX C2/EC7B: 5A PHY C2/EC7C: 9C F0 E9 STZ $E9F0 C2/EC7F: CE F0 E9 DEC $E9F0 C2/EC82: AD 8D 89 LDA $898D C2/EC85: 29 12 8D AND #$8D12 C2/EC88: 8D 89 A9 STA $A989 C2/EC8B: 3F 85 14 A9 AND $A91485,X C2/EC8F: 7E 22 27 ROR $2722,X C2/EC92: C0 C2 DA CPY #$DAC2 C2/EC95: 5A PHY C2/EC96: A9 D8 85 LDA #$85D8 C2/EC99: F5 A2 SBC $A2,X C2/EC9B: F2 DA SBC ($DA) C2/EC9D: 86 F3 STX $F3 C2/EC9F: A9 7E 85 LDA #$857E C2/ECA2: F8 SED C2/ECA3: A2 3F LDX #$3F C2/ECA5: AE 86 F6 LDX $F686 C2/ECA8: 22 6D FF C2 JSR $C2FF6D C2/ECAC: 7A PLY C2/ECAD: FA PLX C2/ECAE: FA PLX C2/ECAF: 8B PHB C2/ECB0: A9 7F 48 LDA #$487F C2/ECB3: AB PLB C2/ECB4: A0 00 LDY #$00 C2/ECB6: C4 84 CPY $84 C2/ECB8: 10 A9 BPL $EC63 C2/ECBA: 20 85 12 JSR $1285 C2/ECBD: 7B TDC C2/ECBE: A8 TAY C2/ECBF: BF 3F AE 7E LDA $7EAE3F,X C2/ECC3: 91 10 STA ($10),Y C2/ECC5: E8 INX C2/ECC6: C8 INY C2/ECC7: C8 INY C2/ECC8: C0 40 00 CPY #$0040 C2/ECCB: D0 F2 BNE $ECBF C2/ECCD: C2 20 REP #$20 C2/ECCF: A5 10 LDA $10 C2/ECD1: 18 CLC C2/ECD2: 69 00 01 ADC #$0100 C2/ECD5: 85 10 STA $10 C2/ECD7: 7B TDC C2/ECD8: E2 20 SEP #$20 C2/ECDA: C6 12 DEC $12 C2/ECDC: D0 DF BNE $ECBD C2/ECDE: AB PLB C2/ECDF: A2 00 LDX #$00 C2/ECE1: 20 86 10 JSR $1086 C2/ECE4: A2 00 LDX #$00 C2/ECE6: C4 A0 CPY $A0 C2/ECE8: 00 00 BRK $00 C2/ECEA: A9 7F 22 LDA #$227F C2/ECED: 89 19 C1 BIT #$C119 C2/ECF0: EE EE E9 INC $E9EE C2/ECF3: 4C 09 F8 JMP $F809 C2/ECF6: 20 2D F0 JSR $F02D C2/ECF9: A2 3F LDX #$3F C2/ECFB: B6 A0 LDX $A0,Y C2/ECFD: 00 00 BRK $00 C2/ECFF: 20 61 EC JSR $EC61 C2/ED02: C2 20 REP #$20 C2/ED04: 7B TDC C2/ED05: AA TAX C2/ED06: 7B TDC C2/ED07: A8 TAY C2/ED08: B9 4E 6F LDA $6F4E,Y C2/ED0B: 9D 2E 6A STA $6A2E,X C2/ED0E: 9D 3E 6A STA $6A3E,X C2/ED11: B9 9E 74 LDA $749E,Y C2/ED14: 9D 7E 6F STA $6F7E,X C2/ED17: 9D 8E 6F STA $6F8E,X C2/ED1A: B9 EE 79 LDA $79EE,Y C2/ED1D: 9D CE 74 STA $74CE,X C2/ED20: 9D DE 74 STA $74DE,X C2/ED23: E8 INX C2/ED24: E8 INX C2/ED25: C8 INY C2/ED26: C8 INY C2/ED27: C0 10 00 CPY #$0010 C2/ED2A: D0 DC BNE $ED08 C2/ED2C: 8A TXA C2/ED2D: 18 CLC C2/ED2E: 69 70 00 ADC #$0070 C2/ED31: AA TAX C2/ED32: E0 00 CPX #$00 C2/ED34: 03 D0 ORA $D0,S C2/ED36: CF 7B E2 20 CMP $20E27B C2/ED3A: 7B TDC C2/ED3B: AA TAX C2/ED3C: 64 10 STZ $10 C2/ED3E: A5 10 LDA $10 C2/ED40: 18 CLC C2/ED41: 69 06 9D ADC #$9D06 C2/ED44: 35 6A AND $6A,X C2/ED46: 18 CLC C2/ED47: 69 06 9D ADC #$9D06 C2/ED4A: 45 6A EOR $6A C2/ED4C: 85 10 STA $10 C2/ED4E: FE 36 6A INC $6A36,X C2/ED51: C2 20 REP #$20 C2/ED53: 8A TXA C2/ED54: 18 CLC C2/ED55: 69 80 00 ADC #$0080 C2/ED58: AA TAX C2/ED59: 7B TDC C2/ED5A: E2 20 SEP #$20 C2/ED5C: E0 00 CPX #$00 C2/ED5E: 03 D0 ORA $D0,S C2/ED60: DD 60 20 CMP $2060,X C2/ED63: 2D F0 A2 AND $A2F0 C2/ED66: 3F AE A0 00 AND $00A0AE,X C2/ED6A: 04 4C TSB $4C C2/ED6C: 61 EC ADC ($EC,X) C2/ED6E: 22 86 C3 C1 JSR $C1C386 C2/ED72: 9C 67 7B STZ $7B67 C2/ED75: 22 26 02 C1 JSR $C10226 C2/ED79: 22 F1 C3 C1 JSR $C1C3F1 C2/ED7D: AD 6F 89 LDA $896F C2/ED80: 29 EF 8D AND #$8DEF C2/ED83: 6F 89 22 9E ADC $9E2289 C2/ED87: 9A TXS C2/ED88: C1 A5 CMP ($A5,X) C2/ED8A: 10 4C BPL $EDD8 C2/ED8C: 22 F3 20 67 JSR $6720F3 C2/ED90: F9 20 4F SBC $4F20,Y C2/ED93: FA PLX C2/ED94: A9 3C 8F LDA #$8F3C C2/ED97: 23 21 AND $21,S C2/ED99: 00 A9 BRK $A9 C2/ED9B: CC 8F 24 CPY $248F C2/ED9E: 21 00 AND ($00,X) C2/EDA0: 4C 09 F8 JMP $F809 C2/EDA3: 20 4F FA JSR $FA4F C2/EDA6: 9C 1B 96 STZ $961B C2/EDA9: 4C 09 F8 JMP $F809 C2/EDAC: 7B TDC C2/EDAD: AA TAX C2/EDAE: A9 08 85 LDA #$8508 C2/EDB1: 10 BF BPL $ED72 C2/EDB3: 11 C4 ORA ($C4),Y C2/EDB5: 7F 29 E3 09 ADC $09E329,X C2/EDB9: 10 9F BPL $ED5A C2/EDBB: 11 C4 ORA ($C4),Y C2/EDBD: 7F BF A1 C4 ADC $C4A1BF,X C2/EDC1: 7F 29 E3 09 ADC $09E329,X C2/EDC5: 10 9F BPL $ED66 C2/EDC7: A1 C4 LDA ($C4,X) C2/EDC9: 7F E8 E8 C6 ADC $C6E8E8,X C2/EDCD: 10 D0 BPL $ED9F C2/EDCF: E2 C2 SEP #$C2 C2/EDD1: 20 8A 18 JSR $188A C2/EDD4: 69 10 00 ADC #$0010 C2/EDD7: AA TAX C2/EDD8: 7B TDC C2/EDD9: E2 20 SEP #$20 C2/EDDB: E0 A0 CPX #$A0 C2/EDDD: 00 D0 BRK $D0 C2/EDDF: CE 20 CA DEC $CA20 C2/EDE2: F1 A9 SBC ($A9),Y C2/EDE4: 08 PHP C2/EDE5: 8D 55 6F STA $6F55 C2/EDE8: A9 10 8D LDA #$8D10 C2/EDEB: 65 6F ADC $6F C2/EDED: A9 18 8D LDA #$8D18 C2/EDF0: 75 6F ADC $6F,X C2/EDF2: 4C C7 F9 JMP $F9C7 C2/EDF5: 20 1B FA JSR $FA1B C2/EDF8: A9 04 4C LDA #$4C04 C2/EDFB: DA PHX C2/EDFC: F6 9C INC $9C,X C2/EDFE: 1B TCS C2/EDFF: 96 20 STX $20,Y C2/EE01: 4F FA A9 CC EOR $CCA9FA C2/EE05: 8F 24 21 00 STA $002124 C2/EE09: 4C C7 F9 JMP $F9C7 C2/EE0C: 20 4F FA JSR $FA4F C2/EE0F: A9 3C 8F LDA #$8F3C C2/EE12: 23 21 AND $21,S C2/EE14: 00 A2 BRK $A2 C2/EE16: 20 01 20 JSR $2001 C2/EE19: 78 SEI C2/EE1A: F1 20 SBC ($20),Y C2/EE1C: CA DEX C2/EE1D: F1 A9 SBC ($A9),Y C2/EE1F: 08 PHP C2/EE20: 8D 55 6F STA $6F55 C2/EE23: A9 10 8D LDA #$8D10 C2/EE26: 65 6F ADC $6F C2/EE28: A9 18 8D LDA #$8D18 C2/EE2B: 75 6F ADC $6F,X C2/EE2D: 4C 1B FA JMP $FA1B C2/EE30: 20 98 F0 JSR $F098 C2/EE33: AD 1F 20 LDA $201F C2/EE36: C9 02 D0 CMP #$D002 C2/EE39: 2E AD 1E ROL $1EAD C2/EE3C: 20 2D AB JSR $AB2D C2/EE3F: 61 2D ADC ($2D,X) C2/EE41: AC 2E F0 LDY $F02E C2/EE44: 03 7B ORA $7B,S C2/EE46: 80 02 BRA $EE4A C2/EE48: A9 01 8D LDA #$8D01 C2/EE4B: 87 6F STA [$6F] C2/EE4D: 8D 07 70 STA $7007 C2/EE50: 8D 87 70 STA $7087 C2/EE53: 8D 07 71 STA $7107 C2/EE56: 6A ROR C2/EE57: 6A ROR C2/EE58: 6A ROR C2/EE59: 29 40 8D AND #$8D40 C2/EE5C: BE 61 8D LDX $8D61,Y C2/EE5F: DE 61 8D DEC $8D61,X C2/EE62: FE 61 8D INC $8D61,X C2/EE65: 1E 62 60 ASL $6062,X C2/EE68: AD 1F 20 LDA $201F C2/EE6B: C9 03 D0 CMP #$D003 C2/EE6E: 06 EE ASL $EE C2/EE70: 87 70 STA [$70] C2/EE72: EE 07 71 INC $7107 C2/EE75: 60 RTS C2/EE76: 20 CA F1 JSR $F1CA C2/EE79: A9 03 20 LDA #$2003 C2/EE7C: E6 F6 INC $F6 C2/EE7E: 20 4F FA JSR $FA4F C2/EE81: A9 3C 8F LDA #$8F3C C2/EE84: 23 21 AND $21,S C2/EE86: 00 9C BRK $9C C2/EE88: 1B TCS C2/EE89: 96 4C STX $4C,Y C2/EE8B: 1B TCS C2/EE8C: FA PLX C2/EE8D: 20 C7 F7 JSR $F7C7 C2/EE90: 20 1B FA JSR $FA1B C2/EE93: A9 08 8D LDA #$8D08 C2/EE96: 1B TCS C2/EE97: 96 60 STX $60,Y C2/EE99: 20 CA F8 JSR $F8CA C2/EE9C: AD 6F 89 LDA $896F C2/EE9F: 09 08 8D ORA #$8D08 C2/EEA2: 6F 89 4C 33 ADC $334C89 C2/EEA6: FA PLX C2/EEA7: A9 10 4C LDA #$4C10 C2/EEAA: 11 F0 ORA ($F0),Y C2/EEAC: A9 07 85 LDA #$8507 C2/EEAF: 26 A9 ROL $A9 C2/EEB1: 02 20 COP $20 C2/EEB3: F8 SED C2/EEB4: F4 A9 03 PEA $03A9 C2/EEB7: 20 E6 F6 JSR $F6E6 C2/EEBA: 4C 1B FA JMP $FA1B C2/EEBD: 20 CA F8 JSR $F8CA C2/EEC0: 20 4F FA JSR $FA4F C2/EEC3: A9 CC 8F LDA #$8FCC C2/EEC6: 24 21 BIT $21 C2/EEC8: 00 A9 BRK $A9 C2/EECA: 03 8D ORA $8D,S C2/EECC: 1B TCS C2/EECD: 96 AD STX $AD,Y C2/EECF: 6F 89 09 08 ADC $080989 C2/EED3: 8D 6F 89 STA $896F C2/EED6: A9 02 20 LDA #$2002 C2/EED9: FE EE 4C INC $4CEE,X C2/EEDC: 33 FA AND ($FA,S),Y C2/EEDE: 20 73 F9 JSR $F973 C2/EEE1: 20 4F FA JSR $FA4F C2/EEE4: A9 CC 8F LDA #$8FCC C2/EEE7: 24 21 BIT $21 C2/EEE9: 00 9C BRK $9C C2/EEEB: 1B TCS C2/EEEC: 96 AD STX $AD,Y C2/EEEE: 6F 89 29 EF ADC $EF2989 C2/EEF2: 8D 6F 89 STA $896F C2/EEF5: 60 RTS C2/EEF6: 20 D3 F9 JSR $F9D3 C2/EEF9: EE AC 60 INC $60AC C2/EEFC: A9 02 85 LDA #$8502 C2/EEFF: 26 A9 ROL $A9 C2/EF01: 05 20 ORA $20 C2/EF03: F8 SED C2/EF04: F4 A9 06 PEA $06A9 C2/EF07: 4C E6 F6 JMP $F6E6 C2/EF0A: 20 1B FA JSR $FA1B C2/EF0D: 20 4F FA JSR $FA4F C2/EF10: A9 3C 8F LDA #$8F3C C2/EF13: 23 21 AND $21,S C2/EF15: 00 A9 BRK $A9 C2/EF17: 01 8D ORA ($8D,X) C2/EF19: 1B TCS C2/EF1A: 96 60 STX $60,Y C2/EF1C: 4C C7 F9 JMP $F9C7 C2/EF1F: 20 8B F9 JSR $F98B C2/EF22: 7B TDC C2/EF23: AA TAX C2/EF24: BF 01 C4 7F LDA $7FC401,X C2/EF28: 29 DF 9F AND #$9FDF C2/EF2B: 01 C4 ORA ($C4,X) C2/EF2D: 7F E8 E8 E0 ADC $E0E8E8,X C2/EF31: 40 RTI C2/EF32: 00 D0 BRK $D0 C2/EF34: EF 22 86 C3 SBC $C38622 C2/EF38: C1 20 CMP ($20,X) C2/EF3A: 4F FA A9 3C EOR $3CA9FA C2/EF3E: 8F 23 21 00 STA $002123 C2/EF42: A9 06 8D LDA #$8D06 C2/EF45: 1B TCS C2/EF46: 96 60 STX $60,Y C2/EF48: 4C EB F9 JMP $F9EB C2/EF4B: EE 99 00 INC $0099 C2/EF4E: EE AD 60 INC $60AD C2/EF51: 20 C7 F9 JSR $F9C7 C2/EF54: A9 08 4C LDA #$4C08 C2/EF57: 5B TCD C2/EF58: EF A9 10 85 SBC $8510A9 C2/EF5C: 26 A9 ROL $A9 C2/EF5E: 02 20 COP $20 C2/EF60: F8 SED C2/EF61: F4 A9 03 PEA $03A9 C2/EF64: 4C E6 F6 JMP $F6E6 C2/EF67: 20 63 F7 JSR $F763 C2/EF6A: A9 06 85 LDA #$8506 C2/EF6D: 26 A9 ROL $A9 C2/EF6F: 07 20 ORA [$20] C2/EF71: F8 SED C2/EF72: F4 A9 08 PEA $08A9 C2/EF75: 20 E6 F6 JSR $F6E6 C2/EF78: 4C 27 FA JMP $FA27 C2/EF7B: 20 D2 EF JSR $EFD2 C2/EF7E: 22 9E 9A C1 JSR $C19A9E C2/EF82: 7B TDC C2/EF83: AA TAX C2/EF84: A5 10 LDA $10 C2/EF86: 0A ASL C2/EF87: 0A ASL C2/EF88: 85 12 STA $12 C2/EF8A: BF 00 C4 7F LDA $7FC400,X C2/EF8E: C9 EE F0 CMP #$F0EE C2/EF91: 1F 18 65 12 ORA $126518,X C2/EF95: 9F 00 C4 7F STA $7FC400,X C2/EF99: 9F 00 C6 7F STA $7FC600,X C2/EF9D: BF 01 C4 7F LDA $7FC401,X C2/EFA1: 09 02 9F ORA #$9F02 C2/EFA4: 01 C4 ORA ($C4,X) C2/EFA6: 7F BF 01 C6 ADC $C601BF,X C2/EFAA: 7F 09 02 9F ADC $9F0209,X C2/EFAE: 01 C6 ORA ($C6,X) C2/EFB0: 7F E8 E8 E0 ADC $E0E8E8,X C2/EFB4: 40 RTI C2/EFB5: 00 D0 BRK $D0 C2/EFB7: D2 A5 CMP ($A5) C2/EFB9: 10 0A BPL $EFC5 C2/EFBB: 0A ASL C2/EFBC: 0A ASL C2/EFBD: 0A ASL C2/EFBE: 0A ASL C2/EFBF: AA TAX C2/EFC0: 7B TDC C2/EFC1: A8 TAY C2/EFC2: BD 80 7F LDA $7F80,X C2/EFC5: 99 60 7E STA $7E60,Y C2/EFC8: E8 INX C2/EFC9: C8 INY C2/EFCA: C0 20 00 CPY #$0020 C2/EFCD: D0 F3 BNE $EFC2 C2/EFCF: 4C D3 F9 JMP $F9D3 C2/EFD2: 20 EB F9 JSR $F9EB C2/EFD5: A9 01 85 LDA #$8501 C2/EFD8: 26 A9 ROL $A9 C2/EFDA: 07 20 ORA [$20] C2/EFDC: F8 SED C2/EFDD: F4 A9 08 PEA $08A9 C2/EFE0: 4C E6 F6 JMP $F6E6 C2/EFE3: 20 8B F9 JSR $F98B C2/EFE6: 7B TDC C2/EFE7: AA TAX C2/EFE8: BF 01 C4 7F LDA $7FC401,X C2/EFEC: 29 DF 9F AND #$9FDF C2/EFEF: 01 C4 ORA ($C4,X) C2/EFF1: 7F E8 E8 E0 ADC $E0E8E8,X C2/EFF5: 20 00 D0 JSR $D000 C2/EFF8: EF 22 86 C3 SBC $C38622 C2/EFFC: C1 60 CMP ($60,X) C2/EFFE: A9 10 20 LDA #$2010 C2/F001: 6F F6 22 86 ADC $8622F6 C2/F005: C3 C1 CMP $C1,S C2/F007: A2 60 LDX #$60 C2/F009: 00 22 BRK $22 C2/F00B: A7 C3 LDA [$C3] C2/F00D: C1 60 CMP ($60,X) C2/F00F: A9 03 85 LDA #$8503 C2/F012: 26 A9 ROL $A9 C2/F014: 03 20 ORA $20,S C2/F016: F8 SED C2/F017: F4 A9 04 PEA $04A9 C2/F01A: 20 E6 F6 JSR $F6E6 C2/F01D: 4C EB F9 JMP $F9EB C2/F020: A2 98 LDX #$98 C2/F022: 01 22 ORA ($22,X) C2/F024: 52 24 EOR ($24) C2/F026: C1 20 CMP ($20,X) C2/F028: 70 FA BVS $F024 C2/F02A: 4C 09 F8 JMP $F809 C2/F02D: 8B PHB C2/F02E: A9 7F 48 LDA #$487F C2/F031: AB PLB C2/F032: 7B TDC C2/F033: AA TAX C2/F034: C2 20 REP #$20 C2/F036: A9 3F 00 LDA #$003F C2/F039: 9D 00 C4 STA $C400,X C2/F03C: 9D 00 CC STA $CC00,X C2/F03F: 9D 00 D4 STA $D400,X C2/F042: 9D 00 DC STA $DC00,X C2/F045: E8 INX C2/F046: E8 INX C2/F047: E0 00 CPX #$00 C2/F049: 08 PHP C2/F04A: D0 ED BNE $F039 C2/F04C: 7B TDC C2/F04D: E2 20 SEP #$20 C2/F04F: AB PLB C2/F050: AD 8D 89 LDA $898D C2/F053: 29 FE 8D AND #$8DFE C2/F056: 8D 89 A2 STA $A289 C2/F059: 00 01 BRK $01 C2/F05B: 8E C4 E9 STX $E9C4 C2/F05E: 8E CA E9 STX $E9CA C2/F061: 7B TDC C2/F062: AA TAX C2/F063: 8E C6 E9 STX $E9C6 C2/F066: 8E C8 E9 STX $E9C8 C2/F069: 8E CC E9 STX $E9CC C2/F06C: 8E CE E9 STX $E9CE C2/F06F: 60 RTS C2/F070: 20 2D F0 JSR $F02D C2/F073: A2 8B LDX #$8B C2/F075: 01 DA ORA ($DA,X) C2/F077: 22 00 24 C1 JSR $C12400 C2/F07B: 20 70 FA JSR $FA70 C2/F07E: 22 C6 9E C1 JSR $C19EC6 C2/F082: FA PLX C2/F083: 22 80 24 C1 JSR $C12480 C2/F087: 20 87 FA JSR $FA87 C2/F08A: EE B0 62 INC $62B0 C2/F08D: 60 RTS C2/F08E: A2 89 LDX #$89 C2/F090: 01 22 ORA ($22,X) C2/F092: 52 24 EOR ($24) C2/F094: C1 20 CMP ($20,X) C2/F096: 70 FA BVS $F092 C2/F098: 7B TDC C2/F099: A8 TAY C2/F09A: AA TAX C2/F09B: BD 39 6A LDA $6A39,X C2/F09E: 9D 38 6A STA $6A38,X C2/F0A1: C2 20 REP #$20 C2/F0A3: BD 82 6F LDA $6F82,X C2/F0A6: 9D 7E 6F STA $6F7E,X C2/F0A9: BD 84 6F LDA $6F84,X C2/F0AC: 9D 80 6F STA $6F80,X C2/F0AF: 8A TXA C2/F0B0: 18 CLC C2/F0B1: 69 80 00 ADC #$0080 C2/F0B4: AA TAX C2/F0B5: 7B TDC C2/F0B6: E2 20 SEP #$20 C2/F0B8: C8 INY C2/F0B9: E0 00 CPX #$00 C2/F0BB: 02 D0 COP $D0 C2/F0BD: DD 4C 09 CMP $094C,X C2/F0C0: F8 SED C2/F0C1: A2 86 LDX #$86 C2/F0C3: 01 22 ORA ($22,X) C2/F0C5: 80 24 BRA $F0EB C2/F0C7: C1 20 CMP ($20,X) C2/F0C9: 87 FA STA [$FA] C2/F0CB: 20 1B FA JSR $FA1B C2/F0CE: 20 4F FA JSR $FA4F C2/F0D1: A9 CC 8F LDA #$8FCC C2/F0D4: 24 21 BIT $21 C2/F0D6: 00 9C BRK $9C C2/F0D8: 1B TCS C2/F0D9: 96 4C STX $4C,Y C2/F0DB: 09 F8 A9 ORA #$A9F8 C2/F0DE: 02 20 COP $20 C2/F0E0: 6F F6 A2 8D ADC $8DA2F6 C2/F0E4: 01 22 ORA ($22,X) C2/F0E6: 52 24 EOR ($24) C2/F0E8: C1 20 CMP ($20,X) C2/F0EA: 70 FA BVS $F0E6 C2/F0EC: 20 4F FA JSR $FA4F C2/F0EF: A9 CC 8F LDA #$8FCC C2/F0F2: 24 21 BIT $21 C2/F0F4: 00 9C BRK $9C C2/F0F6: 1B TCS C2/F0F7: 96 60 STX $60,Y C2/F0F9: A2 99 LDX #$99 C2/F0FB: 01 22 ORA ($22,X) C2/F0FD: 80 24 BRA $F123 C2/F0FF: C1 20 CMP ($20,X) C2/F101: 87 FA STA [$FA] C2/F103: 20 1B FA JSR $FA1B C2/F106: 4C 09 F8 JMP $F809 C2/F109: A2 95 LDX #$95 C2/F10B: 01 22 ORA ($22,X) C2/F10D: 52 24 EOR ($24) C2/F10F: C1 20 CMP ($20,X) C2/F111: 70 FA BVS $F10D C2/F113: 20 3E F6 JSR $F63E C2/F116: 4C 33 FA JMP $FA33 C2/F119: A2 9A LDX #$9A C2/F11B: 01 22 ORA ($22,X) C2/F11D: 80 24 BRA $F143 C2/F11F: C1 20 CMP ($20,X) C2/F121: 87 FA STA [$FA] C2/F123: 20 A3 F9 JSR $F9A3 C2/F126: 4C 09 F8 JMP $F809 C2/F129: A2 97 LDX #$97 C2/F12B: 01 22 ORA ($22,X) C2/F12D: 80 24 BRA $F153 C2/F12F: C1 20 CMP ($20,X) C2/F131: 87 FA STA [$FA] C2/F133: 20 97 F9 JSR $F997 C2/F136: 20 4F FA JSR $FA4F C2/F139: A9 3C 8F LDA #$8F3C C2/F13C: 23 21 AND $21,S C2/F13E: 00 9C BRK $9C C2/F140: 1B TCS C2/F141: 96 AD STX $AD,Y C2/F143: 6F 89 29 F7 ADC $F72989 C2/F147: 8D 6F 89 STA $896F C2/F14A: 4C 09 F8 JMP $F809 C2/F14D: A2 91 LDX #$91 C2/F14F: 01 22 ORA ($22,X) C2/F151: 80 24 BRA $F177 C2/F153: C1 20 CMP ($20,X) C2/F155: 87 FA STA [$FA] C2/F157: 20 27 FA JSR $FA27 C2/F15A: 20 4F FA JSR $FA4F C2/F15D: A9 3C 8F LDA #$8F3C C2/F160: 23 21 AND $21,S C2/F162: 00 A9 BRK $A9 C2/F164: 04 8D TSB $8D C2/F166: 1B TCS C2/F167: 96 4C STX $4C,Y C2/F169: 09 F8 A2 ORA #$A2F8 C2/F16C: 93 01 STA ($01,S),Y C2/F16E: 22 80 24 C1 JSR $C12480 C2/F172: 20 87 FA JSR $FA87 C2/F175: 4C 09 F8 JMP $F809 C2/F178: 86 10 STX $10 C2/F17A: 7B TDC C2/F17B: AA TAX C2/F17C: C2 20 REP #$20 C2/F17E: 7B TDC C2/F17F: AA TAX C2/F180: A9 08 F7 LDA #$F708 C2/F183: 9D 21 9A STA $9A21,X C2/F186: E8 INX C2/F187: E8 INX C2/F188: E8 INX C2/F189: E8 INX C2/F18A: E4 10 CPX $10 C2/F18C: D0 F5 BNE $F183 C2/F18E: 7B TDC C2/F18F: E2 20 SEP #$20 C2/F191: EE 97 61 INC $6197 C2/F194: 60 RTS C2/F195: A2 8E LDX #$8E C2/F197: 01 22 ORA ($22,X) C2/F199: 52 24 EOR ($24) C2/F19B: C1 20 CMP ($20,X) C2/F19D: 70 FA BVS $F199 C2/F19F: 20 0F FA JSR $FA0F C2/F1A2: 22 86 C3 C1 JSR $C1C386 C2/F1A6: A2 81 LDX #$81 C2/F1A8: 00 22 BRK $22 C2/F1AA: A7 C3 LDA [$C3] C2/F1AC: C1 20 CMP ($20,X) C2/F1AE: 4F FA A9 3C EOR $3CA9FA C2/F1B2: 8F 23 21 00 STA $002123 C2/F1B6: A2 00 LDX #$00 C2/F1B8: 02 20 COP $20 C2/F1BA: 78 SEI C2/F1BB: F1 20 SBC ($20),Y C2/F1BD: CA DEX C2/F1BE: F1 AD SBC ($AD),Y C2/F1C0: 6F 89 29 F7 ADC $F72989 C2/F1C4: 8D 6F 89 STA $896F C2/F1C7: 4C 09 F8 JMP $F809 C2/F1CA: 9C 56 6F STZ $6F56 C2/F1CD: A2 20 LDX #$20 C2/F1CF: 05 BD ORA $BD C2/F1D1: 2E 6A 9D ROL $9D6A C2/F1D4: 3E 6A 9D ROL $9D6A,X C2/F1D7: 4E 6A BD LSR $BD6A C2/F1DA: 7E 6F 9D ROR $9D6F,X C2/F1DD: 8E 6F 9D STX $9D6F C2/F1E0: 9E 6F BD STZ $BD6F,X C2/F1E3: CE 74 9D DEC $9D74 C2/F1E6: DE 74 9D DEC $9D74,X C2/F1E9: EE 74 E8 INC $E874 C2/F1EC: E0 30 CPX #$30 C2/F1EE: 05 D0 ORA $D0 C2/F1F0: DF EE 66 6F CMP $6F66EE,X C2/F1F4: A9 02 8D LDA #$8D02 C2/F1F7: 76 6F ROR $6F,X C2/F1F9: 60 RTS C2/F1FA: 9C AD 62 STZ $62AD C2/F1FD: 9C AE 62 STZ $62AE C2/F200: 20 6D F6 JSR $F66D C2/F203: A2 83 LDX #$83 C2/F205: 01 22 ORA ($22,X) C2/F207: 52 24 EOR ($24) C2/F209: C1 20 CMP ($20,X) C2/F20B: 70 FA BVS $F207 C2/F20D: 20 03 FA JSR $FA03 C2/F210: 60 RTS C2/F211: A2 82 LDX #$82 C2/F213: 01 22 ORA ($22,X) C2/F215: 80 24 BRA $F23B C2/F217: C1 20 CMP ($20,X) C2/F219: 87 FA STA [$FA] C2/F21B: 20 C7 F9 JSR $F9C7 C2/F21E: 4C 09 F8 JMP $F809 C2/F221: A2 80 LDX #$80 C2/F223: 01 22 ORA ($22,X) C2/F225: 80 24 BRA $F24B C2/F227: C1 20 CMP ($20,X) C2/F229: 87 FA STA [$FA] C2/F22B: 20 EB F9 JSR $F9EB C2/F22E: 4C 09 F8 JMP $F809 C2/F231: A2 92 LDX #$92 C2/F233: 01 22 ORA ($22,X) C2/F235: 52 24 EOR ($24) C2/F237: C1 20 CMP ($20,X) C2/F239: 70 FA BVS $F235 C2/F23B: 20 EB F9 JSR $F9EB C2/F23E: 4C 09 F8 JMP $F809 C2/F241: 9C 1B 96 STZ $961B C2/F244: 20 4F FA JSR $FA4F C2/F247: A9 CC 8F LDA #$8FCC C2/F24A: 24 21 BIT $21 C2/F24C: 00 A2 BRK $A2 C2/F24E: 87 01 STA [$01] C2/F250: 22 80 24 C1 JSR $C12480 C2/F254: 20 87 FA JSR $FA87 C2/F257: 20 1B FA JSR $FA1B C2/F25A: 4C 09 F8 JMP $F809 C2/F25D: A9 06 8D LDA #$8D06 C2/F260: 1B TCS C2/F261: 96 20 STX $20,Y C2/F263: 4F FA A9 3C EOR $3CA9FA C2/F267: 8F 23 21 00 STA $002123 C2/F26B: A2 84 LDX #$84 C2/F26D: 01 22 ORA ($22,X) C2/F26F: 80 24 BRA $F295 C2/F271: C1 20 CMP ($20,X) C2/F273: 87 FA STA [$FA] C2/F275: 20 A3 F9 JSR $F9A3 C2/F278: 4C 09 F8 JMP $F809 C2/F27B: A2 85 LDX #$85 C2/F27D: 01 22 ORA ($22,X) C2/F27F: 80 24 BRA $F2A5 C2/F281: C1 20 CMP ($20,X) C2/F283: 87 FA STA [$FA] C2/F285: EE B0 62 INC $62B0 C2/F288: 60 RTS C2/F289: A2 81 LDX #$81 C2/F28B: 01 22 ORA ($22,X) C2/F28D: 80 24 BRA $F2B3 C2/F28F: C1 20 CMP ($20,X) C2/F291: 87 FA STA [$FA] C2/F293: 20 27 FA JSR $FA27 C2/F296: 4C 09 F8 JMP $F809 C2/F299: 20 AF F9 JSR $F9AF C2/F29C: 20 4F FA JSR $FA4F C2/F29F: A9 3C 8F LDA #$8F3C C2/F2A2: 23 21 AND $21,S C2/F2A4: 00 A9 BRK $A9 C2/F2A6: CC 8F 24 CPY $248F C2/F2A9: 21 00 AND ($00,X) C2/F2AB: A9 07 8D LDA #$8D07 C2/F2AE: 1B TCS C2/F2AF: 96 AD STX $AD,Y C2/F2B1: 6F 89 29 F7 ADC $F72989 C2/F2B5: 8D 6F 89 STA $896F C2/F2B8: 60 RTS C2/F2B9: 20 30 F6 JSR $F630 C2/F2BC: 4C CA F8 JMP $F8CA C2/F2BF: 20 CA F8 JSR $F8CA C2/F2C2: A2 02 LDX #$02 C2/F2C4: 84 86 STY $86 C2/F2C6: 10 A9 BPL $F271 C2/F2C8: 13 22 ORA ($22,S),Y C2/F2CA: 00 B0 BRK $B0 C2/F2CC: C1 20 CMP ($20,X) C2/F2CE: 4F FA A9 CC EOR $CCA9FA C2/F2D2: 8F 24 21 00 STA $002124 C2/F2D6: 9C 1B 96 STZ $961B C2/F2D9: 22 7E B0 C1 JSR $C1B07E C2/F2DD: AD 6F 89 LDA $896F C2/F2E0: 09 48 8D ORA #$8D48 C2/F2E3: 6F 89 7B AA ADC $AA7B89 C2/F2E7: 8E F5 4A STX $4AF5 C2/F2EA: 8E F7 4A STX $4AF7 C2/F2ED: EE AD 60 INC $60AD C2/F2F0: 60 RTS C2/F2F1: 22 9E 9A C1 JSR $C19A9E C2/F2F5: A5 10 LDA $10 C2/F2F7: 30 0B BMI $F304 C2/F2F9: 0A ASL C2/F2FA: 0A ASL C2/F2FB: 0A ASL C2/F2FC: 0A ASL C2/F2FD: 0A ASL C2/F2FE: A8 TAY C2/F2FF: A9 30 99 LDA #$9930 C2/F302: BD 61 60 LDA $6061,X C2/F305: 22 86 C3 C1 JSR $C1C386 C2/F309: 9C 67 7B STZ $7B67 C2/F30C: 22 26 02 C1 JSR $C10226 C2/F310: 22 F1 C3 C1 JSR $C1C3F1 C2/F314: AD 6F 89 LDA $896F C2/F317: 29 EF 8D AND #$8DEF C2/F31A: 6F 89 22 A1 ADC $A12289 C2/F31E: AA TAX C2/F31F: C1 A5 CMP ($A5,X) C2/F321: 12 29 ORA ($29) C2/F323: 7F 38 E9 04 ADC $04E938,X C2/F327: 20 9E FA JSR $FA9E C2/F32A: 48 PHA C2/F32B: 22 5F 1E C1 JSR $C11E5F C2/F32F: 20 F1 F2 JSR $F2F1 C2/F332: 22 22 1F C1 JSR $C11F22 C2/F336: 22 26 02 C1 JSR $C10226 C2/F33A: 68 PLA C2/F33B: 49 FF 8D EOR #$8DFF C2/F33E: AB PLB C2/F33F: 60 RTS C2/F340: AD 7D 62 LDA $627D C2/F343: 29 7F 8D AND #$8D7F C2/F346: 7D 62 A9 ADC $A962,X C2/F349: 02 8D COP $8D C2/F34B: 0E 7B 8D ASL $8D7B C2/F34E: 0F 7B 60 20 ORA $20607B C2/F352: 5D F3 A9 EOR $A9F3,X C2/F355: 06 8D ASL $8D C2/F357: 1B TCS C2/F358: 96 9C STX $9C,Y C2/F35A: AC 60 60 LDY $6060 C2/F35D: EE AC 60 INC $60AC C2/F360: 20 EB F9 JSR $F9EB C2/F363: 20 4F FA JSR $FA4F C2/F366: 9C 1B 96 STZ $961B C2/F369: A9 3C 8F LDA #$8F3C C2/F36C: 23 21 AND $21,S C2/F36E: 00 22 BRK $22 C2/F370: A1 AA LDA ($AA,X) C2/F372: C1 A5 CMP ($A5,X) C2/F374: 12 10 ORA ($10) C2/F376: 0D 29 0F ORA $0F29 C2/F379: 38 SEC C2/F37A: E9 04 0A SBC #$0A04 C2/F37D: A8 TAY C2/F37E: A9 31 99 LDA #$9931 C2/F381: DC 80 60 JMP [$6080] C2/F384: 29 03 0A AND #$0A03 C2/F387: 0A ASL C2/F388: 0A ASL C2/F389: 0A ASL C2/F38A: 0A ASL C2/F38B: A8 TAY C2/F38C: A9 30 99 LDA #$9930 C2/F38F: BD 61 60 LDA $6061,X C2/F392: A9 08 85 LDA #$8508 C2/F395: 26 A9 ROL $A9 C2/F397: 05 20 ORA $20 C2/F399: F8 SED C2/F39A: F4 A9 06 PEA $06A9 C2/F39D: 20 E6 F6 JSR $F6E6 C2/F3A0: 20 1B FA JSR $FA1B C2/F3A3: 20 4F FA JSR $FA4F C2/F3A6: A9 3C 8F LDA #$8F3C C2/F3A9: 23 21 AND $21,S C2/F3AB: 00 A9 BRK $A9 C2/F3AD: 04 8D TSB $8D C2/F3AF: 1B TCS C2/F3B0: 96 EE STX $EE,Y C2/F3B2: AC 60 60 LDY $6060 C2/F3B5: A9 08 85 LDA #$8508 C2/F3B8: 26 A9 ROL $A9 C2/F3BA: 05 20 ORA $20 C2/F3BC: F8 SED C2/F3BD: F4 A9 06 PEA $06A9 C2/F3C0: 20 E6 F6 JSR $F6E6 C2/F3C3: 20 03 FA JSR $FA03 C2/F3C6: 20 4F FA JSR $FA4F C2/F3C9: A9 3C 8F LDA #$8F3C C2/F3CC: 23 21 AND $21,S C2/F3CE: 00 A9 BRK $A9 C2/F3D0: CC 8F 24 CPY $248F C2/F3D3: 21 00 AND ($00,X) C2/F3D5: 9C 1B 96 STZ $961B C2/F3D8: 60 RTS C2/F3D9: 20 1B FA JSR $FA1B C2/F3DC: A9 CC 8F LDA #$8FCC C2/F3DF: 24 21 BIT $21 C2/F3E1: 00 20 BRK $20 C2/F3E3: 4F FA 9C 1B EOR $1B9CFA C2/F3E7: 96 60 STX $60,Y C2/F3E9: 20 DF F9 JSR $F9DF C2/F3EC: 20 4F FA JSR $FA4F C2/F3EF: A9 CC 8F LDA #$8FCC C2/F3F2: 24 21 BIT $21 C2/F3F4: 00 A9 BRK $A9 C2/F3F6: 02 8D COP $8D C2/F3F8: 1B TCS C2/F3F9: 96 60 STX $60,Y C2/F3FB: A9 00 85 LDA #$8500 C2/F3FE: 26 A9 ROL $A9 C2/F400: 02 20 COP $20 C2/F402: F8 SED C2/F403: F4 A9 03 PEA $03A9 C2/F406: 20 E6 F6 JSR $F6E6 C2/F409: AD 6F 89 LDA $896F C2/F40C: 29 F7 8D AND #$8DF7 C2/F40F: 6F 89 20 BB ADC $BB2089 C2/F413: F9 EE AC SBC $ACEE,Y C2/F416: 60 RTS C2/F417: 60 RTS C2/F418: A9 08 85 LDA #$8508 C2/F41B: 26 A9 ROL $A9 C2/F41D: 05 20 ORA $20 C2/F41F: F8 SED C2/F420: F4 A9 06 PEA $06A9 C2/F423: 20 E6 F6 JSR $F6E6 C2/F426: 20 33 FA JSR $FA33 C2/F429: 20 4F FA JSR $FA4F C2/F42C: A9 CC 8F LDA #$8FCC C2/F42F: 24 21 BIT $21 C2/F431: 00 9C BRK $9C C2/F433: 1B TCS C2/F434: 96 60 STX $60,Y C2/F436: 20 33 FA JSR $FA33 C2/F439: 20 4F FA JSR $FA4F C2/F43C: A9 3C 8F LDA #$8F3C C2/F43F: 23 21 AND $21,S C2/F441: 00 9C BRK $9C C2/F443: 1B TCS C2/F444: 96 22 STX $22,Y C2/F446: 86 C3 STX $C3 C2/F448: C1 22 CMP ($22,X) C2/F44A: 9E 9A C1 STZ $C19A,X C2/F44D: A5 10 LDA $10 C2/F44F: 22 ED C3 C1 JSR $C1C3ED C2/F453: A5 10 LDA $10 C2/F455: 29 03 0A AND #$0A03 C2/F458: 0A ASL C2/F459: 0A ASL C2/F45A: 0A ASL C2/F45B: 0A ASL C2/F45C: A8 TAY C2/F45D: A9 30 99 LDA #$9930 C2/F460: BD 61 A9 LDA $A961,X C2/F463: 02 8D COP $8D C2/F465: 0E 7B 8D ASL $8D7B C2/F468: 0F 7B 60 20 ORA $20607B C2/F46C: 33 FA AND ($FA,S),Y C2/F46E: 20 4F FA JSR $FA4F C2/F471: A9 CC 8F LDA #$8FCC C2/F474: 24 21 BIT $21 C2/F476: 00 9C BRK $9C C2/F478: 1B TCS C2/F479: 96 EE STX $EE,Y C2/F47B: AC 60 EE LDY $EE60 C2/F47E: AD 60 A9 LDA $A960 C2/F481: 02 8D COP $8D C2/F483: 0E 7B 8D ASL $8D7B C2/F486: 0F 7B 60 20 ORA $20607B C2/F48A: 33 FA AND ($FA,S),Y C2/F48C: EE AC 60 INC $60AC C2/F48F: A9 02 8D LDA #$8D02 C2/F492: 0E 7B 8D ASL $8D7B C2/F495: 0F 7B 60 20 ORA $20607B C2/F499: 9C F4 6B STZ $6BF4 C2/F49C: EE AC 60 INC $60AC C2/F49F: A9 08 8D LDA #$8D08 C2/F4A2: 0E 7B 8D ASL $8D7B C2/F4A5: 0F 7B A2 02 ORA $02A27B C2/F4A9: 01 86 ORA ($86,X) C2/F4AB: 10 A9 BPL $F456 C2/F4AD: 12 22 ORA ($22) C2/F4AF: 00 B0 BRK $B0 C2/F4B1: C1 60 CMP ($60,X) C2/F4B3: 22 9E 9A C1 JSR $C19A9E C2/F4B7: A5 10 LDA $10 C2/F4B9: C2 20 REP #$20 C2/F4BB: 0A ASL C2/F4BC: AA TAX C2/F4BD: BF 8B CE C2 LDA $C2CE8B,X C2/F4C1: 18 CLC C2/F4C2: 69 10 00 ADC #$0010 C2/F4C5: AA TAX C2/F4C6: 7B TDC C2/F4C7: E2 20 SEP #$20 C2/F4C9: 60 RTS C2/F4CA: 20 B3 F4 JSR $F4B3 C2/F4CD: A9 01 9D LDA #$9D01 C2/F4D0: 35 6A AND $6A,X C2/F4D2: 9D 45 6A STA $6A45,X C2/F4D5: 9D 55 6A STA $6A55,X C2/F4D8: A9 00 9D LDA #$9D00 C2/F4DB: D8 CLD C2/F4DC: 74 A9 STZ $A9,X C2/F4DE: 55 9D EOR $9D,X C2/F4E0: E8 INX C2/F4E1: 74 A9 STZ $A9,X C2/F4E3: AA TAX C2/F4E4: 9D F8 74 STA $74F8,X C2/F4E7: A2 02 LDX #$02 C2/F4E9: 03 86 ORA $86,S C2/F4EB: 10 A9 BPL $F496 C2/F4ED: 10 22 BPL $F511 C2/F4EF: 00 B0 BRK $B0 C2/F4F1: C1 A9 CMP ($A9,X) C2/F4F3: 04 8D TSB $8D C2/F4F5: 0F 7B 60 85 ORA $85607B C2/F4F9: 22 A5 26 85 JSR $8526A5 C2/F4FD: 28 PLP C2/F4FE: AE 3D 61 LDX $613D C2/F501: 86 12 STX $12 C2/F503: 8A TXA C2/F504: 0A ASL C2/F505: 0A ASL C2/F506: 0A ASL C2/F507: 0A ASL C2/F508: 85 12 STA $12 C2/F50A: C2 20 REP #$20 C2/F50C: A5 12 LDA $12 C2/F50E: 4A LSR C2/F50F: 4A LSR C2/F510: 4A LSR C2/F511: 4A LSR C2/F512: 85 12 STA $12 C2/F514: AD 80 60 LDA $6080 C2/F517: 4A LSR C2/F518: 4A LSR C2/F519: 4A LSR C2/F51A: 4A LSR C2/F51B: 8D 80 60 STA $6080 C2/F51E: 64 24 STZ $24 C2/F520: 7B TDC C2/F521: E2 20 SEP #$20 C2/F523: AD 80 60 LDA $6080 C2/F526: 29 01 D0 AND #$D001 C2/F529: 45 A5 EOR $A5 C2/F52B: 12 29 ORA ($29) C2/F52D: 01 F0 ORA ($F0,X) C2/F52F: 3F A5 22 85 AND $8522A5,X C2/F533: 14 A6 TRB $A6 C2/F535: 24 A9 BIT $A9 C2/F537: 01 85 ORA ($85,X) C2/F539: 1A INC C2/F53A: 86 1E STX $1E C2/F53C: A9 10 85 LDA #$8510 C2/F53F: 10 BD BPL $F4FE C2/F541: 2E 6A 9D ROL $9D6A C2/F544: 3E 6A BD ROL $BD6A,X C2/F547: 7E 6F 9D ROR $9D6F,X C2/F54A: 8E 6F BD STX $BD6F C2/F54D: CE 74 9D DEC $9D74 C2/F550: DE 74 E8 DEC $E874,X C2/F553: C6 10 DEC $10 C2/F555: D0 E9 BNE $F540 C2/F557: DA PHX C2/F558: A6 1E LDX $1E C2/F55A: A5 1A LDA $1A C2/F55C: 9D 46 6A STA $6A46,X C2/F55F: E6 1A INC $1A C2/F561: BD 35 6A LDA $6A35,X C2/F564: 18 CLC C2/F565: 65 26 ADC $26 C2/F567: 9D 45 6A STA $6A45,X C2/F56A: FA PLX C2/F56B: C6 14 DEC $14 C2/F56D: D0 CB BNE $F53A C2/F56F: 66 13 ROR $13 C2/F571: 66 12 ROR $12 C2/F573: 6E 81 60 ROR $6081 C2/F576: 6E 80 60 ROR $6080 C2/F579: C2 20 REP #$20 C2/F57B: A5 24 LDA $24 C2/F57D: 18 CLC C2/F57E: 69 80 00 ADC #$0080 C2/F581: 85 24 STA $24 C2/F583: AA TAX C2/F584: 7B TDC C2/F585: E2 20 SEP #$20 C2/F587: E0 00 CPX #$00 C2/F589: 05 D0 ORA $D0 C2/F58B: 97 60 STA [$60],Y C2/F58D: 20 33 FA JSR $FA33 C2/F590: A9 08 LDA #$08 C2/F592: 85 26 STA $26 C2/F594: A9 05 LDA #$05 C2/F596: 20 F8 F4 JSR $F4F8 C2/F599: A9 06 LDA #$06 C2/F59B: 4C E6 F6 JMP $F6E6 C2/F59E: 4C 33 FA JMP $FA33 C2/F5A1: 4C 33 FA JMP $FA33 (identical to above.. could reuse these 3 bytes if we changed the table entry that pointed here.) C2/F5A4: A9 00 LDA #$00 C2/F5A6: 85 26 STA $26 C2/F5A8: A9 07 LDA #$07 C2/F5AA: 20 F8 F4 JSR $F4F8 C2/F5AD: A9 08 LDA #$08 C2/F5AF: 20 E6 F6 JSR $F6E6 C2/F5B2: 20 4F FA JSR $FA4F C2/F5B5: A9 3C LDA #$3C C2/F5B7: 8F 23 21 00 STA $002123 C2/F5BB: 9C 1B 96 STZ $961B C2/F5BE: 4C 27 FA JMP $FA27 C2/F5C1: EE AC 60 INC $60AC C2/F5C4: A9 00 LDA #$00 C2/F5C6: 85 26 STA $26 C2/F5C8: A9 05 LDA #$05 C2/F5CA: 20 F8 F4 JSR $F4F8 C2/F5CD: A9 06 LDA #$06 C2/F5CF: 4C E6 F6 JMP $F6E6 C2/F5D2: A0 00 28 LDY #$2800 C2/F5D5: 22 09 B1 C1 JSL $C1B109 C2/F5D9: AD 8D 89 LDA $898D C2/F5DC: 29 FE AND #$FE C2/F5DE: 8D 8D 89 STA $898D C2/F5E1: A0 03 00 LDY #$0003 C2/F5E4: B1 76 LDA ($76),Y C2/F5E6: 0A ASL C2/F5E7: AA TAX C2/F5E8: C2 20 REP #$20 C2/F5EA: BD 01 20 LDA $2001,X C2/F5ED: AA TAX C2/F5EE: 7B TDC C2/F5EF: E2 20 SEP #$20 C2/F5F1: 22 D1 24 C1 JSL $C124D1 C2/F5F5: 4C 09 F8 JMP $F809 C2/F5F8: A9 08 85 LDA #$8508 C2/F5FB: 26 A9 ROL $A9 C2/F5FD: 05 20 ORA $20 C2/F5FF: F8 SED C2/F600: F4 A9 06 PEA $06A9 C2/F603: 20 E6 F6 JSR $F6E6 C2/F606: 20 1B FA JSR $FA1B C2/F609: EE AC 60 INC $60AC C2/F60C: 60 RTS C2/F60D: A9 08 85 LDA #$8508 C2/F610: 26 A9 ROL $A9 C2/F612: 05 20 ORA $20 C2/F614: F8 SED C2/F615: F4 A9 06 PEA $06A9 C2/F618: 20 E6 F6 JSR $F6E6 C2/F61B: 20 27 FA JSR $FA27 C2/F61E: 20 4F FA JSR $FA4F C2/F621: A9 3C 8F LDA #$8F3C C2/F624: 23 21 AND $21,S C2/F626: 00 A9 BRK $A9 C2/F628: 05 8D ORA $8D C2/F62A: 1B TCS C2/F62B: 96 EE STX $EE,Y C2/F62D: AC 60 60 LDY $6060 C2/F630: A9 06 85 LDA #$8506 C2/F633: 26 A9 ROL $A9 C2/F635: 05 20 ORA $20 C2/F637: F8 SED C2/F638: F4 A9 06 PEA $06A9 C2/F63B: 4C E6 F6 JMP $F6E6 C2/F63E: 64 26 STZ $26 C2/F640: A9 03 20 LDA #$2003 C2/F643: F8 SED C2/F644: F4 A9 04 PEA $04A9 C2/F647: 20 E6 F6 JSR $F6E6 C2/F64A: 4C 1B FA JMP $FA1B C2/F64D: 00 05 BRK $05 C2/F64F: 02 01 COP $01 C2/F651: 01 00 ORA ($00,X) C2/F653: 00 01 BRK $01 C2/F655: 06 03 ASL $03 C2/F657: 02 02 COP $02 C2/F659: 01 01 ORA ($01,X) C2/F65B: 20 03 FA JSR $FA03 C2/F65E: 20 4F FA JSR $FA4F C2/F661: A9 3C 8F LDA #$8F3C C2/F664: 23 21 AND $21,S C2/F666: 00 A9 BRK $A9 C2/F668: CC 8F 24 CPY $248F C2/F66B: 21 00 AND ($00,X) C2/F66D: A9 08 85 LDA #$8508 C2/F670: 26 7B ROL $7B C2/F672: AA TAX C2/F673: C2 20 REP #$20 C2/F675: AD 3D 61 LDA $613D C2/F678: A0 10 LDY #$10 C2/F67A: 00 0A BRK $0A C2/F67C: 90 01 BCC $F67F C2/F67E: E8 INX C2/F67F: 88 DEY C2/F680: D0 F9 BNE $F67B C2/F682: E0 06 CPX #$06 C2/F684: 00 90 BRK $90 C2/F686: 03 A2 ORA $A2,S C2/F688: 06 00 ASL $00 C2/F68A: 7B TDC C2/F68B: E2 20 SEP #$20 C2/F68D: A9 06 8D LDA #$8D06 C2/F690: 1B TCS C2/F691: 96 BF STX $BF,Y C2/F693: 4D F6 C2 EOR $C2F6 C2/F696: F0 05 BEQ $F69D C2/F698: DA PHX C2/F699: 20 F8 F4 JSR $F4F8 C2/F69C: FA PLX C2/F69D: BF 54 F6 C2 LDA $C2F654,X C2/F6A1: 4C E6 F6 JMP $F6E6 C2/F6A4: 20 27 FA JSR $FA27 C2/F6A7: 20 4F FA JSR $FA4F C2/F6AA: A9 3C 8F LDA #$8F3C C2/F6AD: 23 21 AND $21,S C2/F6AF: 00 9C BRK $9C C2/F6B1: 1B TCS C2/F6B2: 96 EE STX $EE,Y C2/F6B4: AC 60 A9 LDY $A960 C2/F6B7: 03 85 ORA $85,S C2/F6B9: 26 A9 ROL $A9 C2/F6BB: 05 20 ORA $20 C2/F6BD: F8 SED C2/F6BE: F4 A9 06 PEA $06A9 C2/F6C1: 4C E6 F6 JMP $F6E6 C2/F6C4: 20 3F FA JSR $FA3F C2/F6C7: A9 08 85 LDA #$8508 C2/F6CA: 26 A9 ROL $A9 C2/F6CC: 02 20 COP $20 C2/F6CE: F8 SED C2/F6CF: F4 A9 03 PEA $03A9 C2/F6D2: 4C E6 F6 JMP $F6E6 C2/F6D5: 20 1B FA JSR $FA1B C2/F6D8: A9 28 85 LDA #$8528 C2/F6DB: 26 A9 ROL $A9 C2/F6DD: 01 20 ORA ($20,X) C2/F6DF: F8 SED C2/F6E0: F4 A9 02 PEA $02A9 C2/F6E3: 4C E6 F6 JMP $F6E6 C2/F6E6: 8D 0F 7B STA $7B0F C2/F6E9: 8D 0E 7B STA $7B0E C2/F6EC: 60 RTS C2/F6ED: 20 B3 F4 JSR $F4B3 C2/F6F0: A9 01 9D LDA #$9D01 C2/F6F3: 35 6A AND $6A,X C2/F6F5: 9D 45 6A STA $6A45,X C2/F6F8: A9 09 9D LDA #$9D09 C2/F6FB: 55 6A EOR $6A,X C2/F6FD: 9D 65 6A STA $6A65,X C2/F700: A9 11 9D LDA #$9D11 C2/F703: 75 6A ADC $6A,X C2/F705: 9D 85 6A STA $6A85,X C2/F708: A9 01 9D LDA #$9D01 C2/F70B: AC 6F 9D LDY $9D6F C2/F70E: BC 6F A9 LDY $A96F,X C2/F711: 02 9D COP $9D C2/F713: CC 6F 9D CPY $9D6F C2/F716: DC 6F A9 JMP [$A96F] C2/F719: 80 9D BRA $F6B8 C2/F71B: E8 INX C2/F71C: 74 9D STZ $9D,X C2/F71E: 08 PHP C2/F71F: 75 9D ADC $9D,X C2/F721: 28 PLP C2/F722: 75 7B ADC $7B,X C2/F724: 9D D9 74 STA $74D9,X C2/F727: 9D F9 74 STA $74F9,X C2/F72A: 9D 19 75 STA $7519,X C2/F72D: A9 FF 9D LDA #$9DFF C2/F730: E9 74 9D SBC #$9D74 C2/F733: 09 75 9D ORA #$9D75 C2/F736: 29 75 20 AND #$2075 C2/F739: 41 F7 EOR ($F7,X) C2/F73B: A9 07 8D LDA #$8D07 C2/F73E: 0F 7B 60 20 ORA $20607B C2/F742: 1B TCS C2/F743: FA PLX C2/F744: 22 86 C3 C1 JSR $C1C386 C2/F748: 22 9E 9A C1 JSR $C19A9E C2/F74C: A5 10 LDA $10 C2/F74E: 22 ED C3 C1 JSR $C1C3ED C2/F752: A9 02 8D LDA #$8D02 C2/F755: 0E 7B 8D ASL $8D7B C2/F758: 0F 7B AD 6F ORA $6FAD7B C2/F75C: 89 29 F7 BIT #$F729 C2/F75F: 8D 6F 89 STA $896F C2/F762: 60 RTS C2/F763: 20 1B FA JSR $FA1B C2/F766: 20 4F FA JSR $FA4F C2/F769: A9 3C 8F LDA #$8F3C C2/F76C: 23 21 AND $21,S C2/F76E: 00 A9 BRK $A9 C2/F770: 03 8D ORA $8D,S C2/F772: 1B TCS C2/F773: 96 A9 STX $A9,Y C2/F775: 02 8D COP $8D C2/F777: 0E 7B 8D ASL $8D7B C2/F77A: 0F 7B 60 20 ORA $20607B C2/F77E: F7 F9 SBC [$F9],Y C2/F780: 20 4F FA JSR $FA4F C2/F783: A9 3C 8F LDA #$8F3C C2/F786: 23 21 AND $21,S C2/F788: 00 9C BRK $9C C2/F78A: 1B TCS C2/F78B: 96 A9 STX $A9,Y C2/F78D: 02 8D COP $8D C2/F78F: 0E 7B 8D ASL $8D7B C2/F792: 0F 7B 60 20 ORA $20607B C2/F796: D3 F9 CMP ($F9,S),Y C2/F798: A9 02 8D LDA #$8D02 C2/F79B: 0E 7B 8D ASL $8D7B C2/F79E: 0F 7B 60 20 ORA $20607B C2/F7A2: 1B TCS C2/F7A3: FA PLX C2/F7A4: 20 4F FA JSR $FA4F C2/F7A7: A9 3C 8F LDA #$8F3C C2/F7AA: 23 21 AND $21,S C2/F7AC: 00 9C BRK $9C C2/F7AE: 1B TCS C2/F7AF: 96 22 STX $22,Y C2/F7B1: 86 C3 STX $C3 C2/F7B3: C1 22 CMP ($22,X) C2/F7B5: 9E 9A C1 STZ $C19A,X C2/F7B8: A5 10 LDA $10 C2/F7BA: 22 ED C3 C1 JSR $C1C3ED C2/F7BE: A9 02 8D LDA #$8D02 C2/F7C1: 0E 7B 8D ASL $8D7B C2/F7C4: 0F 7B 60 20 ORA $20607B C2/F7C8: 27 FA AND [$FA] C2/F7CA: 20 4F FA JSR $FA4F C2/F7CD: A9 3C 8F LDA #$8F3C C2/F7D0: 23 21 AND $21,S C2/F7D2: 00 22 BRK $22 C2/F7D4: 86 C3 STX $C3 C2/F7D6: C1 22 CMP ($22,X) C2/F7D8: 9E 9A C1 STZ $C19A,X C2/F7DB: A5 10 LDA $10 C2/F7DD: 22 ED C3 C1 JSR $C1C3ED C2/F7E1: A9 02 8D LDA #$8D02 C2/F7E4: 1B TCS C2/F7E5: 96 A9 STX $A9,Y C2/F7E7: 02 8D COP $8D C2/F7E9: 0E 7B 8D ASL $8D7B C2/F7EC: 0F 7B 60 20 ORA $20607B C2/F7F0: 33 FA AND ($FA,S),Y C2/F7F2: 20 4F FA JSR $FA4F C2/F7F5: A9 CC 8F LDA #$8FCC C2/F7F8: 24 21 BIT $21 C2/F7FA: 00 A9 BRK $A9 C2/F7FC: 01 8D ORA ($8D,X) C2/F7FE: 1B TCS C2/F7FF: 96 A9 STX $A9,Y C2/F801: 02 8D COP $8D C2/F803: 0E 7B 8D ASL $8D7B C2/F806: 0F 7B 60 A9 ORA $A9607B C2/F80A: 02 8D COP $8D C2/F80C: 0E 7B 8D ASL $8D7B C2/F80F: 0F 7B 60 EE ORA $EE607B C2/F813: AA TAX C2/F814: 60 RTS C2/F815: A9 06 8D LDA #$8D06 C2/F818: 0E 7B A9 ASL $A97B C2/F81B: 02 8D COP $8D C2/F81D: 0F 7B 60 EE ORA $EE607B C2/F821: AC 60 A9 LDY $A960 C2/F824: 02 8D COP $8D C2/F826: 0F 7B 4C 3F ORA $3F4C7B C2/F82A: FA PLX C2/F82B: A9 06 8D LDA #$8D06 C2/F82E: 0E 7B 8D ASL $8D7B C2/F831: 0F 7B 4C 3F ORA $3F4C7B C2/F835: FA PLX C2/F836: 4C 3F FA JMP $FA3F C2/F839: 4C 1B FA JMP $FA1B C2/F83C: AD 6F 89 LDA $896F C2/F83F: 29 F7 8D AND #$8DF7 C2/F842: 6F 89 4C 0F ADC $0F4C89 C2/F846: FA PLX C2/F847: C2 20 REP #$20 C2/F849: AD 80 60 LDA $6080 C2/F84C: 49 FF FF EOR #$FFFF C2/F84F: 85 22 STA $22 C2/F851: AD 7E 60 LDA $607E C2/F854: 25 22 AND $22 C2/F856: 48 PHA C2/F857: 7B TDC C2/F858: E2 20 SEP #$20 C2/F85A: FA PLX C2/F85B: D0 01 BNE $F85E C2/F85D: 60 RTS C2/F85E: 9C 67 7B STZ $7B67 C2/F861: 22 86 C3 C1 JSR $C1C386 C2/F865: 22 26 02 C1 JSR $C10226 C2/F869: 22 F1 C3 C1 JSR $C1C3F1 C2/F86D: 22 7E B0 C1 JSR $C1B07E C2/F871: 22 A1 AA C1 JSR $C1AAA1 C2/F875: A5 12 LDA $12 C2/F877: 10 16 BPL $F88F C2/F879: 29 7F 38 AND #$387F C2/F87C: E9 04 20 SBC #$2004 C2/F87F: 9E FA 22 STZ $22FA,X C2/F882: 5F 1E C1 22 EOR $22C11E,X C2/F886: 22 1F C1 22 JSR $22C11F C2/F88A: 26 02 ROL $02 C2/F88C: C1 80 CMP ($80,X) C2/F88E: 1F 29 03 0A ORA $0A0329,X C2/F892: 0A ASL C2/F893: 0A ASL C2/F894: 0A ASL C2/F895: 0A ASL C2/F896: AA TAX C2/F897: 7B TDC C2/F898: A8 TAY C2/F899: BD 80 7F LDA $7F80,X C2/F89C: 99 60 7E STA $7E60,Y C2/F89F: C8 INY C2/F8A0: E8 INX C2/F8A1: C0 20 00 CPY #$0020 C2/F8A4: D0 F3 BNE $F899 C2/F8A6: AD 6F 89 LDA $896F C2/F8A9: 09 10 8D ORA #$8D10 C2/F8AC: 6F 89 AD 7D ADC $7DAD89 C2/F8B0: 62 29 7F PER $C077DC C2/F8B3: 8D 7D 62 STA $627D C2/F8B6: 20 6F F3 JSR $F36F C2/F8B9: 22 26 02 C1 JSR $C10226 C2/F8BD: AD 6F 89 LDA $896F C2/F8C0: 29 F7 09 AND #$09F7 C2/F8C3: 40 RTI C2/F8C4: 8D 6F 89 STA $896F C2/F8C7: 4C 1B FA JMP $FA1B C2/F8CA: 9C 67 7B STZ $7B67 C2/F8CD: 22 86 C3 C1 JSR $C1C386 C2/F8D1: 22 26 02 C1 JSR $C10226 C2/F8D5: 22 7E B0 C1 JSR $C1B07E C2/F8D9: 22 A1 AA C1 JSR $C1AAA1 C2/F8DD: A5 12 LDA $12 C2/F8DF: 10 44 BPL $F925 C2/F8E1: 29 7F 38 AND #$387F C2/F8E4: E9 04 20 SBC #$2004 C2/F8E7: 9E FA 48 STZ $48FA,X C2/F8EA: 85 14 STA $14 C2/F8EC: 20 54 EA JSR $EA54 C2/F8EF: AD 8D 89 LDA $898D C2/F8F2: 48 PHA C2/F8F3: 29 FE 8D AND #$8DFE C2/F8F6: 8D 89 A5 STA $A589 C2/F8F9: 14 22 TRB $22 C2/F8FB: 5F 1E C1 22 EOR $22C11E,X C2/F8FF: 22 1F C1 22 JSR $22C11F C2/F903: F1 C3 SBC ($C3),Y C2/F905: C1 22 CMP ($22,X) C2/F907: 26 02 ROL $02 C2/F909: C1 20 CMP ($20,X) C2/F90B: 54 EA AD MVN $EA,$AD C2/F90E: 6F 89 29 E7 ADC $E72989 C2/F912: 8D 6F 89 STA $896F C2/F915: 68 PLA C2/F916: 8D 8D 89 STA $898D C2/F919: 68 PLA C2/F91A: 49 FF 8D EOR #$8DFF C2/F91D: AB PLB C2/F91E: 60 RTS C2/F91F: 22 26 02 C1 JSR $C10226 C2/F923: 80 37 BRA $F95C C2/F925: 48 PHA C2/F926: 20 54 EA JSR $EA54 C2/F929: AD 8D 89 LDA $898D C2/F92C: 48 PHA C2/F92D: 29 FE 8D AND #$8DFE C2/F930: 8D 89 AD STA $AD89 C2/F933: 6F 89 29 E7 ADC $E72989 C2/F937: 09 50 8D ORA #$8D50 C2/F93A: 6F 89 22 55 ADC $552289 C2/F93E: 1E C1 68 ASL $68C1,X C2/F941: 8D 8D 89 STA $898D C2/F944: 68 PLA C2/F945: 29 03 0A AND #$0A03 C2/F948: 0A ASL C2/F949: 0A ASL C2/F94A: 0A ASL C2/F94B: 0A ASL C2/F94C: AA TAX C2/F94D: 7B TDC C2/F94E: A8 TAY C2/F94F: BD 80 7F LDA $7F80,X C2/F952: 99 60 7E STA $7E60,Y C2/F955: C8 INY C2/F956: E8 INX C2/F957: C0 20 00 CPY #$0020 C2/F95A: D0 F3 BNE $F94F C2/F95C: AD 7D 62 LDA $627D C2/F95F: 29 7F 8D AND #$8D7F C2/F962: 7D 62 4C ADC $4C62,X C2/F965: 0F FA A2 02 ORA $02A2FA C2/F969: 04 86 TSB $86 C2/F96B: 10 A9 BPL $F916 C2/F96D: 01 22 ORA ($22,X) C2/F96F: 00 B0 BRK $B0 C2/F971: C1 60 CMP ($60,X) C2/F973: A2 02 LDX #$02 C2/F975: 45 86 EOR $86 C2/F977: 10 A9 BPL $F922 C2/F979: 12 22 ORA ($22) C2/F97B: 00 B0 BRK $B0 C2/F97D: C1 60 CMP ($60,X) C2/F97F: A2 02 LDX #$02 C2/F981: 04 86 TSB $86 C2/F983: 10 A9 BPL $F92E C2/F985: 03 22 ORA $22,S C2/F987: 00 B0 BRK $B0 C2/F989: C1 60 CMP ($60,X) C2/F98B: A2 02 LDX #$02 C2/F98D: 01 86 ORA ($86,X) C2/F98F: 10 A9 BPL $F93A C2/F991: 02 22 COP $22 C2/F993: 00 B0 BRK $B0 C2/F995: C1 60 CMP ($60,X) C2/F997: A2 02 LDX #$02 C2/F999: 01 86 ORA ($86,X) C2/F99B: 10 A9 BPL $F946 C2/F99D: 14 22 TRB $22 C2/F99F: 00 B0 BRK $B0 C2/F9A1: C1 60 CMP ($60,X) C2/F9A3: A2 02 LDX #$02 C2/F9A5: 04 86 TSB $86 C2/F9A7: 10 A9 BPL $F952 C2/F9A9: 12 22 ORA ($22) C2/F9AB: 00 B0 BRK $B0 C2/F9AD: C1 60 CMP ($60,X) C2/F9AF: A2 02 LDX #$02 C2/F9B1: 41 86 EOR ($86,X) C2/F9B3: 10 A9 BPL $F95E C2/F9B5: 14 22 TRB $22 C2/F9B7: 00 B0 BRK $B0 C2/F9B9: C1 60 CMP ($60,X) C2/F9BB: A2 02 LDX #$02 C2/F9BD: 02 86 COP $86 C2/F9BF: 10 A9 BPL $F96A C2/F9C1: 04 22 TSB $22 C2/F9C3: 00 B0 BRK $B0 C2/F9C5: C1 60 CMP ($60,X) C2/F9C7: A2 02 LDX #$02 C2/F9C9: 05 86 ORA $86 C2/F9CB: 10 A9 BPL $F976 C2/F9CD: 12 22 ORA ($22) C2/F9CF: 00 B0 BRK $B0 C2/F9D1: C1 60 CMP ($60,X) C2/F9D3: A2 02 LDX #$02 C2/F9D5: 41 86 EOR ($86,X) C2/F9D7: 10 A9 BPL $F982 C2/F9D9: 12 22 ORA ($22) C2/F9DB: 00 B0 BRK $B0 C2/F9DD: C1 60 CMP ($60,X) C2/F9DF: A2 02 LDX #$02 C2/F9E1: 04 86 TSB $86 C2/F9E3: 10 A9 BPL $F98E C2/F9E5: 10 22 BPL $FA09 C2/F9E7: 00 B0 BRK $B0 C2/F9E9: C1 60 CMP ($60,X) C2/F9EB: A2 02 LDX #$02 C2/F9ED: 02 86 COP $86 C2/F9EF: 10 A9 BPL $F99A C2/F9F1: 10 22 BPL $FA15 C2/F9F3: 00 B0 BRK $B0 C2/F9F5: C1 60 CMP ($60,X) C2/F9F7: A2 02 LDX #$02 C2/F9F9: 41 86 EOR ($86,X) C2/F9FB: 10 A9 BPL $F9A6 C2/F9FD: 10 22 BPL $FA21 C2/F9FF: 00 B0 BRK $B0 C2/FA01: C1 60 CMP ($60,X) C2/FA03: A2 02 LDX #$02 C2/FA05: 04 86 TSB $86 C2/FA07: 10 A9 BPL $F9B2 C2/FA09: 11 22 ORA ($22),Y C2/FA0B: 00 B0 BRK $B0 C2/FA0D: C1 60 CMP ($60,X) C2/FA0F: A2 02 LDX #$02 C2/FA11: 01 86 ORA ($86,X) C2/FA13: 10 A9 BPL $F9BE C2/FA15: 04 22 TSB $22 C2/FA17: 00 B0 BRK $B0 C2/FA19: C1 60 CMP ($60,X) C2/FA1B: A2 02 LDX #$02 C2/FA1D: 01 86 ORA ($86,X) C2/FA1F: 10 A9 BPL $F9CA C2/FA21: 12 22 ORA ($22) C2/FA23: 00 B0 BRK $B0 C2/FA25: C1 60 CMP ($60,X) C2/FA27: A2 02 LDX #$02 C2/FA29: 01 86 ORA ($86,X) C2/FA2B: 10 A9 BPL $F9D6 C2/FA2D: 10 22 BPL $FA51 C2/FA2F: 00 B0 BRK $B0 C2/FA31: C1 60 CMP ($60,X) C2/FA33: A2 02 LDX #$02 C2/FA35: 04 86 TSB $86 C2/FA37: 10 A9 BPL $F9E2 C2/FA39: 13 22 ORA ($22,S),Y C2/FA3B: 00 B0 BRK $B0 C2/FA3D: C1 60 CMP ($60,X) C2/FA3F: A2 02 LDX #$02 C2/FA41: 03 86 ORA $86,S C2/FA43: 10 A9 BPL $F9EE C2/FA45: 10 22 BPL $FA69 C2/FA47: 00 B0 BRK $B0 C2/FA49: C1 60 CMP ($60,X) C2/FA4B: 20 4F FA JSR $FA4F C2/FA4E: 6B RTL C2/FA4F: 7B TDC C2/FA50: AA TAX C2/FA51: A8 TAY C2/FA52: A9 FF 9D LDA #$9DFF C2/FA55: 21 9A AND ($9A,X) C2/FA57: 99 1F 96 STA $961F,Y C2/FA5A: 1A INC C2/FA5B: 9D 22 9A STA $9A22,X C2/FA5E: 99 20 96 STA $9620,Y C2/FA61: C8 INY C2/FA62: C8 INY C2/FA63: E8 INX C2/FA64: E8 INX C2/FA65: E8 INX C2/FA66: E8 INX C2/FA67: E0 5C CPX #$5C C2/FA69: 02 D0 COP $D0 C2/FA6B: E6 EE INC $EE C2/FA6D: 97 61 STA [$61],Y C2/FA6F: 60 RTS C2/FA70: AE 69 61 LDX $6169 C2/FA73: 7B TDC C2/FA74: A8 TAY C2/FA75: BF 20 78 D2 LDA $D27820,X C2/FA79: 99 60 7E STA $7E60,Y C2/FA7C: 99 60 7C STA $7C60,Y C2/FA7F: E8 INX C2/FA80: C8 INY C2/FA81: C0 20 00 CPY #$0020 C2/FA84: D0 EF BNE $FA75 C2/FA86: 60 RTS C2/FA87: AE 69 61 LDX $6169 C2/FA8A: 7B TDC C2/FA8B: A8 TAY C2/FA8C: BF 20 78 D2 LDA $D27820,X C2/FA90: 99 60 7F STA $7F60,Y C2/FA93: 99 60 7D STA $7D60,Y C2/FA96: E8 INX C2/FA97: C8 INY C2/FA98: C0 20 00 CPY #$0020 C2/FA9B: D0 EF BNE $FA8C C2/FA9D: 60 RTS C2/FA9E: AA TAX C2/FA9F: BF 01 1A C1 LDA $C11A01,X C2/FAA3: 60 RTS (Blank/Free space - 457 bytes) (Note that the first 7 bytes are NOT available in FF3us 1.1) C2/FAA4: FF FF FF FF C2/FAA8: FF FF FF FF C2/FAAC: FF FF FF FF C2/FAB0: FF FF FF FF C2/FAB4: FF FF FF FF C2/FAB8: FF FF FF FF C2/FABC: FF FF FF FF C2/FAC0: FF FF FF FF C2/FAC4: FF FF FF FF C2/FAC8: FF FF FF FF C2/FACC: FF FF FF FF C2/FAD0: FF FF FF FF C2/FAD4: FF FF FF FF C2/FAD8: FF FF FF FF C2/FADC: FF FF FF FF C2/FAE0: FF FF FF FF C2/FAE4: FF FF FF FF C2/FAE8: FF FF FF FF C2/FAEC: FF FF FF FF C2/FAF0: FF FF FF FF C2/FAF4: FF FF FF FF C2/FAF8: FF FF FF FF C2/FAFC: FF FF FF FF C2/FB00: FF FF FF FF C2/FB04: FF FF FF FF C2/FB08: FF FF FF FF C2/FB0C: FF FF FF FF C2/FB10: FF FF FF FF C2/FB14: FF FF FF FF C2/FB18: FF FF FF FF C2/FB1C: FF FF FF FF C2/FB20: FF FF FF FF C2/FB24: FF FF FF FF C2/FB28: FF FF FF FF C2/FB2C: FF FF FF FF C2/FB30: FF FF FF FF C2/FB34: FF FF FF FF C2/FB38: FF FF FF FF C2/FB3C: FF FF FF FF C2/FB40: FF FF FF FF C2/FB44: FF FF FF FF C2/FB48: FF FF FF FF C2/FB4C: FF FF FF FF C2/FB50: FF FF FF FF C2/FB54: FF FF FF FF C2/FB58: FF FF FF FF C2/FB5C: FF FF FF FF C2/FB60: FF FF FF FF C2/FB64: FF FF FF FF C2/FB68: FF FF FF FF C2/FB6C: FF FF FF FF C2/FB70: FF FF FF FF C2/FB74: FF FF FF FF C2/FB78: FF FF FF FF C2/FB7C: FF FF FF FF C2/FB80: FF FF FF FF C2/FB84: FF FF FF FF C2/FB88: FF FF FF FF C2/FB8C: FF FF FF FF C2/FB90: FF FF FF FF C2/FB94: FF FF FF FF C2/FB98: FF FF FF FF C2/FB9C: FF FF FF FF C2/FBA0: FF FF FF FF C2/FBA4: FF FF FF FF C2/FBA8: FF FF FF FF C2/FBAC: FF FF FF FF C2/FBB0: FF FF FF FF C2/FBB4: FF FF FF FF C2/FBB8: FF FF FF FF C2/FBBC: FF FF FF FF C2/FBC0: FF FF FF FF C2/FBC4: FF FF FF FF C2/FBC8: FF FF FF FF C2/FBCC: FF FF FF FF C2/FBD0: FF FF FF FF C2/FBD4: FF FF FF FF C2/FBD8: FF FF FF FF C2/FBDC: FF FF FF FF C2/FBE0: FF FF FF FF C2/FBE4: FF FF FF FF C2/FBE8: FF FF FF FF C2/FBEC: FF FF FF FF C2/FBF0: FF FF FF FF C2/FBF4: FF FF FF FF C2/FBF8: FF FF FF FF C2/FBFC: FF FF FF FF C2/FC00: FF FF FF FF C2/FC04: FF FF FF FF C2/FC08: FF FF FF FF C2/FC0C: FF FF FF FF C2/FC10: FF FF FF FF C2/FC14: FF FF FF FF C2/FC18: FF FF FF FF C2/FC1C: FF FF FF FF C2/FC20: FF FF FF FF C2/FC24: FF FF FF FF C2/FC28: FF FF FF FF C2/FC2C: FF FF FF FF C2/FC30: FF FF FF FF C2/FC34: FF FF FF FF C2/FC38: FF FF FF FF C2/FC3C: FF FF FF FF C2/FC40: FF FF FF FF C2/FC44: FF FF FF FF C2/FC48: FF FF FF FF C2/FC4C: FF FF FF FF C2/FC50: FF FF FF FF C2/FC54: FF FF FF FF C2/FC58: FF FF FF FF C2/FC5C: FF FF FF FF C2/FC60: FF FF FF FF C2/FC64: FF FF FF FF C2/FC68: FF FF FF FF C2/FC6C: FF C2/FC6D: 00 00 24 C2/FC70: 03 48 ORA $48,S C2/FC72: 06 6A ASL $6A C2/FC74: 09 8C 0C ORA #$0C8C C2/FC77: AB PLB C2/FC78: 0F C8 12 E2 ORA $E212C8 C2/FC7C: 15 F9 ORA $F9,X C2/FC7E: 18 CLC C2/FC7F: 0B PHD C2/FC80: 1C 1A 1F TRB $1F1A C2/FC83: 23 22 AND $22,S C2/FC85: 28 PLP C2/FC86: 25 26 AND $26 C2/FC88: 28 PLP C2/FC89: 1F 2B 11 2E ORA $2E112B,X C2/FC8D: FB XCE C2/FC8E: 30 DF BMI $FC6F C2/FC90: 33 BA AND ($BA,S),Y C2/FC92: 36 8C ROL $8C,X C2/FC94: 39 56 3C AND $3C56,Y C2/FC97: 17 3F ORA [$3F],Y C2/FC99: CE 41 7A DEC $7A41 C2/FC9C: 44 1C 47 MVP $1C,$47 C2/FC9F: B3 49 LDA ($49,S),Y C2/FCA1: 3F 4C BF 4E AND $4EBF4C,X C2/FCA5: 33 51 AND ($51,S),Y C2/FCA7: 9B TXY C2/FCA8: 53 F5 EOR ($F5,S),Y C2/FCAA: 55 42 EOR $42,X C2/FCAC: 58 CLI C2/FCAD: 82 5A B3 BRL $C0B00A C2/FCB0: 5C D7 5E EB JMP $EB5ED7 C2/FCB4: 60 RTS C2/FCB5: F1 62 SBC ($62),Y C2/FCB7: E8 INX C2/FCB8: 64 CF STZ $CF C2/FCBA: 66 A6 ROR $A6 C2/FCBC: 68 PLA C2/FCBD: 6D 6A 23 ADC $236A C2/FCC0: 6C C9 6D JMP ($6DC9) C2/FCC3: 5E 6F E2 LSR $E26F,X C2/FCC6: 70 54 BVS $FD1C C2/FCC8: 72 B5 ADC ($B5) C2/FCCA: 73 04 ADC ($04,S),Y C2/FCCC: 75 41 ADC $41,X C2/FCCE: 76 6B ROR $6B,X C2/FCD0: 77 84 ADC [$84],Y C2/FCD2: 78 SEI C2/FCD3: 89 79 7C BIT #$7C79 C2/FCD6: 7A PLY C2/FCD7: 5C 7B 29 7C JMP $7C297B C2/FCDB: E3 7C SBC $7C,S C2/FCDD: 89 7D 1D BIT #$1D7D C2/FCE0: 7E 9C 7E ROR $7E9C,X C2/FCE3: 09 7F 61 ORA #$617F C2/FCE6: 7F A6 7F D8 ADC $D87FA6,X C2/FCEA: 7F F5 7F FF ADC $FF7FF5,X C2/FCEE: 7F F5 7F D8 ADC $D87FF5,X C2/FCF2: 7F A6 7F 61 ADC $617FA6,X C2/FCF6: 7F 09 7F 9C ADC $9C7F09,X C2/FCFA: 7E 1D 7E ROR $7E1D,X C2/FCFD: 89 7D E3 BIT #$E37D C2/FD00: 7C 29 7C JMP ($7C29,X) C2/FD03: 5C 7B 7C 7A JMP $7A7C7B C2/FD07: 89 79 84 BIT #$8479 C2/FD0A: 78 SEI C2/FD0B: 6B RTL C2/FD0C: 77 41 ADC [$41],Y C2/FD0E: 76 04 ROR $04,X C2/FD10: 75 B5 ADC $B5,X C2/FD12: 73 54 ADC ($54,S),Y C2/FD14: 72 E2 ADC ($E2) C2/FD16: 70 5E BVS $FD76 C2/FD18: 6F C9 6D 23 ADC $236DC9 C2/FD1C: 6C 6D 6A JMP ($6A6D) C2/FD1F: A6 68 LDX $68 C2/FD21: CF 66 E8 64 CMP $64E866 C2/FD25: F1 62 SBC ($62),Y C2/FD27: EB XBA C2/FD28: 60 RTS C2/FD29: D7 5E CMP [$5E],Y C2/FD2B: B3 5C LDA ($5C,S),Y C2/FD2D: 82 5A 42 BRL $C03F8A C2/FD30: 58 CLI C2/FD31: F5 55 SBC $55,X C2/FD33: 9A TXS C2/FD34: 53 33 EOR ($33,S),Y C2/FD36: 51 BF EOR ($BF),Y C2/FD38: 4E 3F 4C LSR $4C3F C2/FD3B: B3 49 LDA ($49,S),Y C2/FD3D: 1C 47 7A TRB $7A47 C2/FD40: 44 CE 41 MVP $CE,$41 C2/FD43: 17 3F ORA [$3F],Y C2/FD45: 56 3C LSR $3C,X C2/FD47: 8C 39 BA STY $BA39 C2/FD4A: 36 DE ROL $DE,X C2/FD4C: 33 FB AND ($FB,S),Y C2/FD4E: 30 11 BMI $FD61 C2/FD50: 2E 1F 2B ROL $2B1F C2/FD53: 26 28 ROL $28 C2/FD55: 28 PLP C2/FD56: 25 23 AND $23 C2/FD58: 22 1A 1F 0B JSR $0B1F1A C2/FD5C: 1C F8 18 TRB $18F8 C2/FD5F: E2 15 SEP #$15 C2/FD61: C8 INY C2/FD62: 12 AB ORA ($AB) C2/FD64: 0F 8C 0C 6A ORA $6A0C8C C2/FD68: 09 48 06 ORA #$0648 C2/FD6B: 24 03 BIT $03 C2/FD6D: 00 00 BRK $00 C2/FD6F: DC FC B8 JMP [$B8FC] C2/FD72: F9 95 F6 SBC $F695,Y C2/FD75: 74 F3 STZ $F3,X C2/FD77: 55 F0 EOR $F0,X C2/FD79: 38 SEC C2/FD7A: ED 1E EA SBC $EA1E C2/FD7D: 07 E7 ORA [$E7] C2/FD7F: F5 E3 SBC $E3,X C2/FD81: E6 E0 INC $E0 C2/FD83: DC DD D8 JMP [$D8DD] C2/FD86: DA PHX C2/FD87: D9 D7 E1 CMP $E1D7,Y C2/FD8A: D4 EF PEI $EF C2/FD8C: D1 04 CMP ($04),Y C2/FD8E: CF 21 CC 46 CMP $46CC21 C2/FD92: C9 73 C6 CMP #$C673 C2/FD95: AA TAX C2/FD96: C3 E9 CMP $E9,S C2/FD98: C0 32 BE CPY #$BE32 C2/FD9B: 86 BB STX $BB C2/FD9D: E3 B8 SBC $B8,S C2/FD9F: 4C B6 C1 JMP $C1B6 C2/FDA2: B3 41 LDA ($41,S),Y C2/FDA4: B1 CD LDA ($CD),Y C2/FDA6: AE 65 AC LDX $AC65 C2/FDA9: 0B PHD C2/FDAA: AA TAX C2/FDAB: BE A7 7E LDX $7EA7,Y C2/FDAE: A5 4C LDA $4C C2/FDB0: A3 29 LDA $29,S C2/FDB2: A1 14 LDA ($14,X) C2/FDB4: 9F 0F 9D 18 STA $189D0F,X C2/FDB8: 9B TXY C2/FDB9: 31 99 AND ($99),Y C2/FDBB: 5A PHY C2/FDBC: 97 93 STA [$93],Y C2/FDBE: 95 DD STA $DD,X C2/FDC0: 93 37 STA ($37,S),Y C2/FDC2: 92 A2 STA ($A2) C2/FDC4: 90 1E BCC $FDE4 C2/FDC6: 8F AC 8D 4B STA $4B8DAC C2/FDCA: 8C FC 8A STY $8AFC C2/FDCD: BF 89 95 88 LDA $889589,X C2/FDD1: 7C 87 77 JMP ($7787,X) C2/FDD4: 86 84 STX $84 C2/FDD6: 85 A4 STA $A4 C2/FDD8: 84 D7 STY $D7 C2/FDDA: 83 1D STA $1D,S C2/FDDC: 83 77 STA $77,S C2/FDDE: 82 E3 81 BRL $C07FC4 C2/FDE1: 64 81 STZ $81 C2/FDE3: F7 80 SBC [$80],Y C2/FDE5: 9F 80 5A 80 STA $805A80,X C2/FDE9: 28 PLP C2/FDEA: 80 0B BRA $FDF7 C2/FDEC: 80 01 BRA $FDEF C2/FDEE: 80 0B BRA $FDFB C2/FDF0: 80 28 BRA $FE1A C2/FDF2: 80 5A BRA $FE4E C2/FDF4: 80 9F BRA $FD95 C2/FDF6: 80 F7 BRA $FDEF C2/FDF8: 80 64 BRA $FE5E C2/FDFA: 81 E3 STA ($E3,X) C2/FDFC: 81 77 STA ($77,X) C2/FDFE: 82 1D 83 BRL $C0811E C2/FE01: D7 83 CMP [$83],Y C2/FE03: A4 84 LDY $84 C2/FE05: 84 85 STY $85 C2/FE07: 77 86 ADC [$86],Y C2/FE09: 7D 87 95 ADC $9587,X C2/FE0C: 88 DEY C2/FE0D: BF 89 FC 8A LDA $8AFC89,X C2/FE11: 4B PHK C2/FE12: 8C AC 8D STY $8DAC C2/FE15: 1E 8F A2 ASL $A28F,X C2/FE18: 90 37 BCC $FE51 C2/FE1A: 92 DD STA ($DD) C2/FE1C: 93 93 STA ($93,S),Y C2/FE1E: 95 5A STA $5A,X C2/FE20: 97 32 STA [$32],Y C2/FE22: 99 18 9B STA $9B18,Y C2/FE25: 0F 9D 15 9F ORA $9F159D C2/FE29: 2A ROL C2/FE2A: A1 4D LDA ($4D,X) C2/FE2C: A3 7E LDA $7E,S C2/FE2E: A5 BE LDA $BE C2/FE30: A7 0B LDA [$0B] C2/FE32: AA TAX C2/FE33: 66 AC ROR $AC C2/FE35: CD AE 41 CMP $41AE C2/FE38: B1 C1 LDA ($C1),Y C2/FE3A: B3 4D LDA ($4D,S),Y C2/FE3C: B6 E4 LDX $E4,Y C2/FE3E: B8 CLV C2/FE3F: 86 BB STX $BB C2/FE41: 33 BE AND ($BE,S),Y C2/FE43: EA NOP C2/FE44: C0 AA C3 CPY #$C3AA C2/FE47: 74 C6 STZ $C6,X C2/FE49: 47 C9 EOR [$C9] C2/FE4B: 22 CC 05 CF JSR $CF05CC C2/FE4F: F0 D1 BEQ $FE22 C2/FE51: E2 D4 SEP #$D4 C2/FE53: DA PHX C2/FE54: D7 D9 CMP [$D9],Y C2/FE56: DA PHX C2/FE57: DD DD E7 CMP $E7DD,X C2/FE5A: E0 F5 CPX #$F5 C2/FE5C: E3 08 SBC $08,S C2/FE5E: E7 1F SBC [$1F] C2/FE60: EA NOP C2/FE61: 39 ED 55 AND $55ED,Y C2/FE64: F0 75 BEQ $FEDB C2/FE66: F3 96 SBC ($96,S),Y C2/FE68: F6 B9 INC $B9,X C2/FE6A: F9 DC FC SBC $FCDC,Y C2/FE6D: 00 03 BRK $03 C2/FE6F: 06 09 ASL $09 C2/FE71: 0C 10 13 TSB $1310 C2/FE74: 16 19 ASL $19,X C2/FE76: 1C 1F 22 TRB $221F C2/FE79: 25 28 AND $28 C2/FE7B: 2B PLD C2/FE7C: 2E 31 33 ROL $3331 C2/FE7F: 36 39 ROL $39,X C2/FE81: 3C 3F 41 BIT $413F,X C2/FE84: 44 47 49 MVP $47,$49 C2/FE87: 4C 4E 51 JMP $514E C2/FE8A: 53 55 EOR ($55,S),Y C2/FE8C: 58 CLI C2/FE8D: 5A PHY C2/FE8E: 5C 5E 60 62 JMP $62605E C2/FE92: 64 66 STZ $66 C2/FE94: 68 PLA C2/FE95: 6A ROR C2/FE96: 6B RTL C2/FE97: 6D 6F 70 ADC $706F C2/FE9A: 71 73 ADC ($73),Y C2/FE9C: 74 75 STZ $75,X C2/FE9E: 76 78 ROR $78,X C2/FEA0: 79 7A 7A ADC $7A7A,Y C2/FEA3: 7B TDC C2/FEA4: 7C 7D 7D JMP ($7D7D,X) C2/FEA7: 7E 7E 7E ROR $7E7E,X C2/FEAA: 7F 7F 7F 7F ADC $7F7F7F,X C2/FEAE: 7F 7F 7F 7E ADC $7E7F7F,X C2/FEB2: 7E 7E 7D ROR $7D7E,X C2/FEB5: 7D 7C 7B ADC $7B7C,X C2/FEB8: 7A PLY C2/FEB9: 7A PLY C2/FEBA: 79 78 76 ADC $7678,Y C2/FEBD: 75 74 ADC $74,X C2/FEBF: 73 71 ADC ($71,S),Y C2/FEC1: 70 6F BVS $FF32 C2/FEC3: 6D 6B 6A ADC $6A6B C2/FEC6: 68 PLA C2/FEC7: 66 64 ROR $64 C2/FEC9: 62 60 5E PER $C05D2C C2/FECC: 5C 5A 58 55 JMP $55585A C2/FED0: 53 51 EOR ($51,S),Y C2/FED2: 4E 4C 49 LSR $494C C2/FED5: 47 44 EOR [$44] C2/FED7: 41 3F EOR ($3F,X) C2/FED9: 3C 39 36 BIT $3639,X C2/FEDC: 33 31 AND ($31,S),Y C2/FEDE: 2E 2B 28 ROL $282B C2/FEE1: 25 22 AND $22 C2/FEE3: 1F 1C 19 16 ORA $16191C,X C2/FEE7: 13 10 ORA ($10,S),Y C2/FEE9: 0C 09 06 TSB $0609 C2/FEEC: 03 00 ORA $00,S C2/FEEE: FD FA F7 SBC $F7FA,X C2/FEF1: F4 F0 ED PEA $EDF0 C2/FEF4: EA NOP C2/FEF5: E7 E4 SBC [$E4] C2/FEF7: E1 DE SBC ($DE,X) C2/FEF9: DB STP C2/FEFA: D8 CLD C2/FEFB: D5 D2 CMP $D2,X C2/FEFD: CF CD CA C7 CMP $C7CACD C2/FF01: C4 C1 CPY $C1 C2/FF03: BF BC B9 B7 LDA $B7B9BC,X C2/FF07: B4 B2 LDY $B2,X C2/FF09: AF AD AB A8 LDA $A8ABAD C2/FF0D: A6 A4 LDX $A4 C2/FF0F: A2 A0 LDX #$A0 C2/FF11: 9E 9C 9A STZ $9A9C,X C2/FF14: 98 TYA C2/FF15: 96 95 STX $95,Y C2/FF17: 93 91 STA ($91,S),Y C2/FF19: 90 8F BCC $FEAA C2/FF1B: 8D 8C 8B STA $8B8C C2/FF1E: 8A TXA C2/FF1F: 88 DEY C2/FF20: 87 86 STA [$86] C2/FF22: 86 85 STX $85 C2/FF24: 84 83 STY $83 C2/FF26: 83 82 STA $82,S C2/FF28: 82 82 81 BRL $C080AD C2/FF2B: 81 81 STA ($81,X) C2/FF2D: 81 81 STA ($81,X) C2/FF2F: 81 81 STA ($81,X) C2/FF31: 82 82 82 BRL $C081B6 C2/FF34: 83 83 STA $83,S C2/FF36: 84 85 STY $85 C2/FF38: 86 86 STX $86 C2/FF3A: 87 88 STA [$88] C2/FF3C: 8A TXA C2/FF3D: 8B PHB C2/FF3E: 8C 8D 8F STY $8F8D C2/FF41: 90 91 BCC $FED4 C2/FF43: 93 95 STA ($95,S),Y C2/FF45: 96 98 STX $98,Y C2/FF47: 9A TXS C2/FF48: 9C 9E A0 STZ $A09E C2/FF4B: A2 A4 LDX #$A4 C2/FF4D: A6 A8 LDX $A8 C2/FF4F: AB PLB C2/FF50: AD AF B2 LDA $B2AF C2/FF53: B4 B7 LDY $B7,X C2/FF55: B9 BC BF LDA $BFBC,Y C2/FF58: C1 C4 CMP ($C4,X) C2/FF5A: C7 CA CMP [$CA] C2/FF5C: CD CF D2 CMP $D2CF C2/FF5F: D5 D8 CMP $D8,X C2/FF61: DB STP C2/FF62: DE E1 E4 DEC $E4E1,X C2/FF65: E7 EA SBC [$EA] C2/FF67: ED F0 F4 SBC $F4F0 C2/FF6A: F7 FA SBC [$FA],Y C2/FF6C: FD (Decompress Data) ($00F3 = 24-bit address of input data block. $00F6 - Bit 0 of $00F8 = 17-bit address to write to in WRAM. Our other output buffer is a temporary one of 800h bytes in length. It resides in Bank 7F, from Offsets F800h to FFFFh. The initial offset written to is FFDEh, wrapping to F800h after FFFFh is passed, going up to FFFFh again and wrapping to F800h as needed, etc.) (Input block format: First 2 bytes: 16-bit number of bytes (including control bytes and these 2 bytes) to read from block. Control byte. For N going from 0 through 7, ascending: Bit N: Type of the (N+1)th value read from the input block after this control byte 1 = 1 byte to copy to output blocks. 0 = 2 bytes containing a pointer to elsewhere in temporary output block and a quantity of bytes to copy within output block. Data value from input block (8 in a row, unless there are no values left to read from block): If corresponding control bit was 1, a given value is just 1 plain data byte to copy to output block. If corresponding control bit was 0, data value takes 2 bytes and has the format: Byte 1 = Bits 0-7 of a 16-bit pointer to earlier in output block Byte 2, Bits 0-2 = Bits 8-10 of a 16-bit pointer to earlier in temporary output buffer. Bits 11-15 of pointer will always be set, so it's F800h - FFFFh. Byte 2, Bits 3-7 = Add 3 to get Quantity of bytes to copy from one place to another in our output block. Once 8 data values have been read in a row, and provided there are still more values to be read from input block, the next value read will be a new Control Byte, and the process will repeat.) C2/FF6D: 8B PHB C2/FF6E: 0B PHD C2/FF6F: A2 00 00 LDX #$0000 C2/FF72: DA PHX C2/FF73: 2B PLD (Set direct page register to 0) C2/FF74: C2 20 REP #$20 (Set 16-bit A) C2/FF76: A7 F3 LDA [$F3] ($F3 is pointer to location of data to copy/decompress) (read first 16-bit word from input data, which tells us the total # of bytes [including this size and the control bytes] to read from the data block.) C2/FF78: 85 FC STA $FC (save that quantity.) (btw, the quantity had better be accurate. once this routine reads a control byte, it will _always_ read at least one more byte (and increment Y). also, if it's told to read a 2-byte pointer, it will _always_ read both bytes (incrementing Y twice). should Y surpass $FC due to the latter being inaccurate, the instruction at C2/FFF9 will keep looping, and we'll exit the loop *much* later than we should have.) C2/FF7A: A5 F6 LDA $F6 C2/FF7C: 8F 81 21 00 STA $002181 (Set lower 2 bytes of address to read/write in WRAM) C2/FF80: E2 20 SEP #$20 (Set 8-bit A) C2/FF82: A5 F8 LDA $F8 C2/FF84: 29 01 AND #$01 C2/FF86: 8F 83 21 00 STA $002183 (Set Bit 17 of address to read/write in WRAM [so it's bottom bit of Bank; add to 7Eh]) C2/FF8A: A9 01 LDA #$01 C2/FF8C: 85 STA $FE (setting to 1 will force us to read control byte from input data first time we hit C2/FFA2.) C2/FF8E: A0 02 00 LDY #$0002 (move input data pointer to first actual data byte) C2/FF91: A9 7F LDA #$7F C2/FF93: 48 PHA C2/FF94: AB PLB (Set data bank register to #$7F) C2/FF95: A2 00 F8 LDX #$F800 C2/FF98: 7B TDC C2/FF99: 9D 00 00 STA $0000,X (Sets memory from $F800 to $FFFF to 0) C2/FF9C: E8 INX C2/FF9D: D0 FA BNE $FF99 C2/FF9F: A2 DE FF LDX #$FFDE (start pointing near end of temporary output buffer) C2/FFA2: C6 FE DEC $FE (decrement # of bits left to read from control byte) C2/FFA4: D0 09 BNE $FFAF (if we haven't exhausted all of them, branch) C2/FFA6: A9 08 LDA #$08 C2/FFA8: 85 FE STA $FE (or if we have, reset # of bits left to read to 8, as we're about to load a brand new control byte.) C2/FFAA: B7 F3 LDA [$F3],Y (read control byte from input block?) C2/FFAC: 85 FF STA $FF (save it) C2/FFAE: C8 INY (point to next byte of input block) C2/FFAF: 46 FF LSR $FF (get currently bottom bit of control byte) (if it's 1, read next byte from input block, and copy to output blocks. it it's 0, read next 2 bytes from input block, to get a pointer earlier into our output block, and a number of bytes to copy.) C2/FFB1: 90 11 BCC $FFC4 (branch if it's not set) C2/FFB3: B7 F3 LDA [$F3],Y (read byte from input block) C2/FFB5: 8F 80 21 00 STA $002180 (Store value in WRAM) C2/FFB9: 9D 00 00 STA $0000,X (also copy byte to temporary output buffer, which has the last 800h bytes output, and they can be referenced for decompression.) C2/FFBC: E8 INX (increment output block pointer) C2/FFBD: D0 37 BNE $FFF6 (branch if it hasn't wrapped past FFFFh to 0 yet.) C2/FFBF: A2 00 F8 LDX #$F800 (if it has wrapped, set it to F800h) C2/FFC2: 80 32 BRA $FFF6 (and branch) C2/FFC4: B7 F3 LDA [$F3],Y (read byte from input block. it will give us Bits 0-7 of a pointer that's directed earlier in our output block.) C2/FFC6: EB XBA (preserve in top half of A) C2/FFC7: C8 INY (increment input block pointer) C2/FFC8: 84 F9 STY $F9 (save it) C2/FFCA: B7 F3 LDA [$F3],Y (read next byte from input block) C2/FFCC: 4A LSR C2/FFCD: 4A LSR C2/FFCE: 4A LSR (Divide A by 8 , as we want Bits 3-7) C2/FFCF: 18 CLC C2/FFD0: 69 03 ADC #$03 C2/FFD2: 85 FB STA $FB ($FB = ([$F3],Y / 8) + 3) (this is our quantity of bytes to copy within our output block) C2/FFD4: B7 F3 LDA [$F3],Y (read second byte from input block again) C2/FFD6: 09 F8 ORA #$F8 (always set Bits 3-7. Bits 0-2 will give us Bits 8-10 of our output block pointer.) C2/FFD8: EB XBA (put in top half of A, and get previously read byte back into bottom.) C2/FFD9: A8 TAY (Y = F800h + [ (second read byte AND 07h) * 256] + first read byte.) C2/FFDA: B9 00 00 LDA $0000,Y (read byte from somewhere earlier in our temporary output buffer) C2/FFDD: 8F 80 21 00 STA $002180 (Store value in WRAM) C2/FFE1: 9D 00 00 STA $0000,X (also copy it to temporary output buffer at current position) C2/FFE4: E8 INX (increment output block pointer) C2/FFE5: D0 03 BNE $FFEA (branch if it hasn't wrapped past FFFFh to 0 yet.) C2/FFE7: A2 00 F8 LDX #$F800 (if it has wrapped, set it to F800h) C2/FFEA: C8 INY (increment pointer for earlier in output block) C2/FFEB: D0 03 BNE $FFF0 (branch if it hasn't wrapped past FFFFh to 0 yet.) C2/FFED: A0 00 F8 LDY #$F800 (if it has wrapped, set it to F800h) C2/FFF0: C6 FB DEC $FB (decrement remaining quantity of bytes to copy within output block) C2/FFF2: D0 E6 BNE $FFDA (loop if it's not 0, as we haven't copied them all yet) C2/FFF4: A4 F9 LDY $F9 (restore input block pointer) C2/FFF6: C8 INY (increment input block pointer) C2/FFF7: C4 FC CPY $FC (has it reached number of bytes to read yet?) C2/FFF9: D0 A7 BNE $FFA2 (loop if not) C2/FFFB: 7B TDC C2/FFFC: EB XBA C2/FFFD: 2B PLD C2/FFFE: AB PLB C2/FFFF: 6B RTL