Final Fantasy VI/ROM map/Assembly C26: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
(assembly C26)
 
m (Xkeeper moved page Final Fantasy VI:ROM map/Assembly C26 to Final Fantasy VI/ROM map/Assembly C26: normalize subpages and titles)
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
Learn spell rate taught by esper
{{subpage|game=Final Fantasy VI:ROM map}}
==C2/602A learn spell based on esper==
  C2/602A: DA          PHX
  C2/602A: DA          PHX
  C2/602B: 20 93 62    JSR $6293    (Multiply A by #$0B and store in X)
  C2/602B: 20 93 62    JSR $6293    (Multiply A by #$0B and store in X)
Line 19: Line 19:
  C2/6049: FA          PLX  
  C2/6049: FA          PLX  
  C2/604A: 60          RTS  
  C2/604A: 60          RTS  
==C2/604B learn spell==
Learn Spell
  C2/604B: F0 1F        BEQ $606C  (If no spell to learn)
  C2/604B: F0 1F        BEQ $606C  (If no spell to learn)
  C2/604D: EB          XBA  
  C2/604D: EB          XBA  
Line 40: Line 38:
  C2/606A: 04 F0        TSB $F0
  C2/606A: 04 F0        TSB $F0
  C2/606C: 60          RTS  
  C2/606C: 60          RTS  
==C2/606D unknow==
  C2/606D: 64 F8        STZ $F8
  C2/606D: 64 F8        STZ $F8
  C2/606F: 7B          TDC          (Clear 16-bit A)
  C2/606F: 7B          TDC          (Clear 16-bit A)
Line 100: Line 97:
                                       experience on a wussy character boosted multiple
                                       experience on a wussy character boosted multiple
                                       levels.)
                                       levels.)
==C2/60C2 add bonus when level up==
  (Gain level, raise HP and MP, and give any Esper bonus)
  (Gain level, raise HP and MP, and give any Esper bonus)
  C2/60C2: 08          PHP  
  C2/60C2: 08          PHP  
  C2/60C3: FE 08 16    INC $1608,X    (increment current level)
  C2/60C3: FE 08 16    INC $1608,X    (increment current level)
Line 173: Line 168:
  C2/6131: 28          PLP  
  C2/6131: 28          PLP  
  C2/6132: 60          RTS  
  C2/6132: 60          RTS  
==C2/6133 unknow==
  C2/6133: 5A          PHY
  C2/6133: 5A          PHY
  C2/6134: A0 35 00    LDY #$0035
  C2/6134: A0 35 00    LDY #$0035
Line 189: Line 183:
  C2/614C: 7A          PLY  
  C2/614C: 7A          PLY  
  C2/614D: 60          RTS  
  C2/614D: 60          RTS  
==C2/614E pointers: esper bonus==
(Code Pointers)
  C2/614E: 70 61  (~10% HP bonus)  (HP due to X)
  C2/614E: 70 61  (~10% HP bonus)  (HP due to X)
  C2/6150: 74 61  (~30% HP bonus)  (HP due to X)
  C2/6150: 74 61  (~30% HP bonus)  (HP due to X)
Line 210: Line 201:
  C2/616C: 98 61  (MagPwr bonus)  (+1 due to X)
  C2/616C: 98 61  (MagPwr bonus)  (+1 due to X)
  C2/616E: 98 61  (MagPwr bonus)  (+2 due to X)
  C2/616E: 98 61  (MagPwr bonus)  (+2 due to X)
==C2/6170 esper bonus: HP or MP==
(Esper HP or MP bonus at level-up)
  C2/6170: A9 1A        LDA #$1A    (26 => 10.12625% bonus)   
  C2/6170: A9 1A        LDA #$1A    (26 => 10.12625% bonus)   
  C2/6172: 80 06        BRA $617A
  C2/6172: 80 06        BRA $617A
Line 238: Line 226:
  C2/6195: F6 FD        INC $FD,X    (if bottom byte overflowed from add, boost top byte)
  C2/6195: F6 FD        INC $FD,X    (if bottom byte overflowed from add, boost top byte)
  C2/6197: 60          RTS  
  C2/6197: 60          RTS  
==C2/6198 esper bonus: vigor, speed, stamina or magic power==
  (Esper stat bonus at level-up.  Vigor, Speed, Stamina, or MagPwr.
  (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.)
   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/6198: C8          INY          (enter here = 3 INYs = point to MagPwr)
  C2/6199: C8          INY          (enter here = 2 INYs = point to Stamina)
  C2/6199: C8          INY          (enter here = 2 INYs = point to Stamina)
Line 262: Line 248:
  C2/61AC: 9D 1A 16    STA $161A,X  (save updated stat)
  C2/61AC: 9D 1A 16    STA $161A,X  (save updated stat)
  C2/61AF: 60          RTS
  C2/61AF: 60          RTS
==C2/61B0 esper bonus: double natural HP gain by level (unused)==
  (Give double natural HP gain for level?  Can't say I know when this happens...)
  (Give double natural HP gain for level?  Can't say I know when this happens...)
  C2/61B0: 7B          TDC            (Clear 16-bit A)
  C2/61B0: 7B          TDC            (Clear 16-bit A)
  C2/61B1: AA          TAX            (X = 0)
  C2/61B1: AA          TAX            (X = 0)
  C2/61B2: A5 FC        LDA $FC
  C2/61B2: A5 FC        LDA $FC
  C2/61B4: 80 D8        BRA $618E
  C2/61B4: 80 D8        BRA $618E
==C2/61B6 unknow==
  C2/61B6: A2 00 00    LDX #$0000  (point to start of Terra's magic learned at
  C2/61B6: A2 00 00    LDX #$0000  (point to start of Terra's magic learned at
                                     level up block)
                                     level up block)
Line 284: Line 267:
  C2/61C7: C9 02        CMP #$02    (if it character #2, Cyan?)
  C2/61C7: C9 02        CMP #$02    (if it character #2, Cyan?)
  C2/61C9: D0 15        BNE $61E0    (if not, check for Sabin)
  C2/61C9: D0 15        BNE $61E0    (if not, check for Sabin)
==C2/61CB level up: sword tech learning==
  (Cyan learning SwdTechs at level up.
  (Cyan learning SwdTechs at level up.
   His data block is just an array of 8 bytes: the level for learning each SwdTech)
   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/61CB: 20 22 62    JSR $6222    (are any SwdTechs learned at the current level?)
  C2/61CE: F0 51        BEQ $6221    (if not, exit)
  C2/61CE: F0 51        BEQ $6221    (if not, exit)
Line 300: Line 281:
  C2/61DB: A9 42        LDA #$42
  C2/61DB: A9 42        LDA #$42
  C2/61DD: 4C D4 5F    JMP $5FD4
  C2/61DD: 4C D4 5F    JMP $5FD4
==C2/61E0 level up: blitz learning==
  (Sabin learning Blitzes at level up.
  (Sabin learning Blitzes at level up.
   His data block is just an array of 8 bytes: the level for learning each Blitz)
   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
  C2/61E0: A2 08 00    LDX #$0008  (point to start of Sabin's Blitzes learned
                                     at level up block)
                                     at level up block)
Line 320: Line 299:
  C2/61F7: A9 33        LDA #$33
  C2/61F7: A9 33        LDA #$33
  C2/61F9: 4C D4 5F    JMP $5FD4
  C2/61F9: 4C D4 5F    JMP $5FD4
==C2/61FC level up: Terra and Celes learning of spells==
  (Terra and Celes natural magic learning at level up)
  (Terra and Celes natural magic learning at level up)
  C2/61FC: 5A          PHY  
  C2/61FC: 5A          PHY  
  C2/61FD: EB          XBA  
  C2/61FD: EB          XBA  
Line 352: Line 329:
  C2/6220: 7A          PLY  
  C2/6220: 7A          PLY  
  C2/6221: 60          RTS  
  C2/6221: 60          RTS  
==C2/6222 handle blitz or sword tech learned abilities==
  (Handles Sabin's Blitzes learned or Cyan's SwdTechs learned, depending on X value)
  (Handles Sabin's Blitzes learned or Cyan's SwdTechs learned, depending on X value)
  C2/6222: A9 01        LDA #$01
  C2/6222: A9 01        LDA #$01
  C2/6224: 85 EE        STA $EE      (start by marking SwdTech/Blitz #0)
  C2/6224: 85 EE        STA $EE      (start by marking SwdTech/Blitz #0)
Line 371: Line 346:
                                       the SwdTech/Blitz to learn)
                                       the SwdTech/Blitz to learn)
  C2/6234: 60          RTS  
  C2/6234: 60          RTS  
==C2/6235 add experience to character==
  Add Experience for battle to character
  Add Experience for battle to character
  If XP over 15,000,000 sets XP to 15,000,000
  If XP over 15,000,000 sets XP to 15,000,000
  C2/6235: 08          PHP
  C2/6235: 08          PHP
  C2/6236: C2 21        REP #$21
  C2/6236: C2 21        REP #$21
Line 408: Line 381:
  C2/6274: 28          PLP  
  C2/6274: 28          PLP  
  C2/6275: 60          RTS  
  C2/6275: 60          RTS  
==C2/6276 data: experience cap==
  Data (Experience cap: 15000000)
  Data (Experience cap: 15000000)
  C2/6276: C0
  C2/6276: C0
  C2/6277: E1
  C2/6277: E1
  C2/6278: E4
  C2/6278: E4
==C2/6279 unknow==
  C2/6279: A9 05      LDA #$05
  C2/6279: A9 05      LDA #$05
  C2/627B: 20 11 64    JSR $6411
  C2/627B: 20 11 64    JSR $6411
  C2/627E: A9 0A      LDA #$0A
  C2/627E: A9 0A      LDA #$0A
  C2/6280: 4C 11 64    JMP $6411
  C2/6280: 4C 11 64    JMP $6411
==C2/6283 set address for spells knows by character==
  Stores address for spells known by character in $F4
  Stores address for spells known by character in $F4
  C2/6283: 08          PHP
  C2/6283: 08          PHP
  C2/6284: EB          XBA  
  C2/6284: EB          XBA  
Line 434: Line 402:
  C2/6291: 28          PLP  
  C2/6291: 28          PLP  
  C2/6292: 60          RTS  
  C2/6292: 60          RTS  
==C2/6293 math: X = A * 0B==
  Multiply A by #$0B and store in X
  Multiply A by #$0B and store in X
  C2/6293: EB          XBA
  C2/6293: EB          XBA
  C2/6294: A9 0B        LDA #$0B
  C2/6294: A9 0B        LDA #$0B
Line 443: Line 409:
  C2/6299: AA          TAX  
  C2/6299: AA          TAX  
  C2/629A: 60          RTS  
  C2/629A: 60          RTS  
==C2/629B copy function==
  (Copy $3A28-$3A2B variables into ($76) buffer)
  (Copy $3A28-$3A2B variables into ($76) buffer)
  C2/629B: 8D 28 3A    STA $3A28
  C2/629B: 8D 28 3A    STA $3A28
  C2/629E: 48          PHA  
  C2/629E: 48          PHA  
Line 467: Line 431:
  C2/62BD: 68          PLA  
  C2/62BD: 68          PLA  
  C2/62BE: 60          RTS  
  C2/62BE: 60          RTS  
==C2/62BF unknow==
  ??? Function
  ??? Function
  Calls 629B, setting the accumulator to 16-bit before.
  Calls 629B, setting the accumulator to 16-bit before.
  C2/62BF: 08          PHP
  C2/62BF: 08          PHP
  C2/62C0: C2 20        REP #$20    (Set 16-bit Accumulator)
  C2/62C0: C2 20        REP #$20    (Set 16-bit Accumulator)
Line 477: Line 439:
  C2/62C5: 28          PLP  
  C2/62C5: 28          PLP  
  C2/62C6: 60          RTS  
  C2/62C6: 60          RTS  
==C2/62C7 add item to inventory==
  (Add/restore characters' items to inventory.  This function is called:
  (Add/restore characters' items to inventory.  This function is called:
   - At the end of a character's turn when they Steal or Metamorph something.
   - At the end of a character's turn when they Steal or Metamorph something.
Line 488: Line 449:
     turn.  [The game does support equipment that doesn't deplete when you use it as
     turn.  [The game does support equipment that doesn't deplete when you use it as
     an Item, though no such equipment exists.])
     an Item, though no such equipment exists.])
  C2/62C7: A2 06        LDX #$06
  C2/62C7: A2 06        LDX #$06
  C2/62C9: BD 18 30    LDA $3018,X
  C2/62C9: BD 18 30    LDA $3018,X
Line 509: Line 469:
  C2/62EC: 10 DB        BPL $62C9    (loop for all 4 party members)
  C2/62EC: 10 DB        BPL $62C9    (loop for all 4 party members)
  C2/62EE: 60          RTS  
  C2/62EE: 60          RTS  
==C2/62EF display damage/healing==
  (Call C2/12F5 to do actual damage/healing at the end of a "strike", then queue
  (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
   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
   Taken/Healed variable means the damage taken or healed is nonexistent and won't
   be displayed, as opposed to a displayable 0.)
   be displayed, as opposed to a displayable 0.)
  C2/62EF: DA          PHX
  C2/62EF: DA          PHX
  C2/62F0: 5A          PHY  
  C2/62F0: 5A          PHY  
Line 610: Line 568:
  C2/6396: FA          PLX  
  C2/6396: FA          PLX  
  C2/6397: 60          RTS  
  C2/6397: 60          RTS  
==C2/6398 display damage==
  (For less than 5 targets damaged or healed, use a "cascading" damage display.
  (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.)
   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?
  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,
                                     Why the hell not branch to C2/63B4, cut the BCC there,
Line 635: Line 591:
                                     be clear here.  either we skipped the LSR above, or
                                     be clear here.  either we skipped the LSR above, or
                                     it was done on an even number.)
                                     it was done on an even number.)
==C2/63B4 display damage simultaneously==
  (For 5+ targets damaged or healed, have all their damage/healing numbers pop up
  (For 5+ targets damaged or healed, have all their damage/healing numbers pop up
   simultaneously.)
   simultaneously.)
  C2/63B4: 90 24        BCC $63DA  (exit function if less than 5 targets have damage dealt?)
  C2/63B4: 90 24        BCC $63DA  (exit function if less than 5 targets have damage dealt?)
  C2/63B6: 08          PHP  
  C2/63B6: 08          PHP  
Line 659: Line 613:
  C2/63D9: 28          PLP  
  C2/63D9: 28          PLP  
  C2/63DA: 60          RTS  
  C2/63DA: 60          RTS  
==C2/63D8 copy function==
  (Copy 8 words (16 bytes) from $A0 to ((7E:3A32) + #$2C6E))
  (Copy 8 words (16 bytes) from $A0 to ((7E:3A32) + #$2C6E))
  (C1 inspection shows $2C6E to be the area where animation  
  (C1 inspection shows $2C6E to be the area where animation  
  scripts are read from. Thus, $3A32 stores the beginning  
  scripts are read from. Thus, $3A32 stores the beginning  
  offset for the animation script.)
  offset for the animation script.)
  C2/63DB: DA          PHX
  C2/63DB: DA          PHX
  C2/63DC: 5A          PHY  
  C2/63DC: 5A          PHY  
Line 687: Line 639:
  C2/63FE: FA          PLX  
  C2/63FE: FA          PLX  
  C2/63FF: 60          RTS  
  C2/63FF: 60          RTS  
==C2/6400 null function==
  (Zero $A0 through $AF)
  (Zero $A0 through $AF)
  C2/6400: DA          PHX
  C2/6400: DA          PHX
  C2/6401: 08          PHP  
  C2/6401: 08          PHP  
Line 703: Line 653:
  C2/640F: FA          PLX  
  C2/640F: FA          PLX  
  C2/6410: 60          RTS  
  C2/6410: 60          RTS  
==C2/6411 unknow==
  C2/6411: DA          PHX
  C2/6411: DA          PHX
  C2/6412: 5A          PHY  
  C2/6412: 5A          PHY  
Line 723: Line 672:
  C2/642B: FA          PLX  
  C2/642B: FA          PLX  
  C2/642C: 60          RTS  
  C2/642C: 60          RTS  
==C2/642D monster commands script FA==
  Monster command script command #$FA
  Monster command script command #$FA
  C2/642D: C2 20        REP #$20    (Set 16-bit accumulator)
  C2/642D: C2 20        REP #$20    (Set 16-bit accumulator)
  C2/642F: A5 B8        LDA $B8    (Byte 2 & 3)
  C2/642F: A5 B8        LDA $B8    (Byte 2 & 3)
Line 735: Line 682:
  C2/6439: A9 14        LDA #$14
  C2/6439: A9 14        LDA #$14
  C2/643B: 4C BF 62    JMP $62BF
  C2/643B: 4C BF 62    JMP $62BF
==C2/643E unknow (unused)==
  (Well, well, well...  it's a shame that this function is
  (Well, well, well...  it's a shame that this function is
   apparently never called.)
   apparently never called.)
Line 760: Line 706:
  C2/6465: 20 91 4E    JSR $4E91  (queue up something.  you tell me what.)
  C2/6465: 20 91 4E    JSR $4E91  (queue up something.  you tell me what.)
  C2/6468: 60          RTS  
  C2/6468: 60          RTS  
==C2/6469 free space==
  (Blank Space - 919 bytes)
  (Blank Space - 919 bytes)
  C2/6469: FF FF FF FF
  C2/6469: FF FF FF FF
Line 993: Line 938:
  C2/67F9: FF FF FF FF
  C2/67F9: FF FF FF FF
  C2/67FD: FF FF FF
  C2/67FD: FF FF FF
==C2/6800 decompress cinematics block and do selected cinematic==
  C2/6800: 4C 13 68     JMP $6813
C2/6800: 4C
  C2/6801: 13 68       ORA ($68,S),Y
  C2/6803: 4C 0C 68    JMP $680C
  C2/6803: 4C 0C 68    JMP $680C
  C2/6806: 4C 1A 68    JMP $681A
  C2/6806: 4C 1A 68    JMP $681A
  C2/6809: 4C 21 68    JMP $6821
  C2/6809: 4C 21 68    JMP $6821
  C2/680C: 20 28 68    JSR $6828
  C2/680C: 20 28 68    JSR $6828
  C2/680F: 5C 00 50 7E  JMP $7E5000
  C2/680F: 5C 00 50 7E  JMP $7E5000 (do title screen cinematic)
  C2/6813: 20 28 68    JSR $6828
  C2/6813: 20 28 68    JSR $6828
  C2/6816: 5C 03 50 7E  JMP $7E5003
  C2/6816: 5C 03 50 7E  JMP $7E5003 (do opening credits cinematic)
  C2/681A: 20 28 68    JSR $6828
  C2/681A: 20 28 68    JSR $6828
  C2/681D: 5C 06 50 7E  JMP $7E5006
  C2/681D: 5C 06 50 7E  JMP $7E5006 (do floating island cinematic)
  C2/6821: 20 28 68    JSR $6828
  C2/6821: 20 28 68    JSR $6828
  C2/6824: 5C 09 50 7E  JMP $7E5009
  C2/6824: 5C 09 50 7E  JMP $7E5009 (do world tearing apart cinematic)
  C2/6828: 08          PHP  
  C2/6828: 08          PHP  
  C2/6829: C2 30        REP #$30
  C2/6829: C2 30        REP #$30
Line 1,017: Line 960:
  C2/6830: C2 10        REP #$10
  C2/6830: C2 10        REP #$10
  C2/6832: E2 20        SEP #$20
  C2/6832: E2 20        SEP #$20
  C2/6834: A9 00 48    LDA #$4800
  C2/6834: A9 00       LDA #$00
C2/6836: 48          PHA
  C2/6837: AB          PLB  
  C2/6837: AB          PLB  
  C2/6838: A2 00       LDX #$00
  C2/6838: A2 00 00    LDX #$0000
  C2/683A: 00 DA        BRK $DA
  C2/683B: DA           PHX
  C2/683C: 2B          PLD  
  C2/683C: 2B          PLD  
  C2/683D: A2 00       LDX #$00
  C2/683D: A2 00 00    LDX #$0000
  C2/683F: 00 86       BRK $86
  C2/6840: 86 00        STX $00
  C2/6841: 00 A9        BRK $A9
  C2/6842: A9 7E       LDA #$7E
  C2/6843: 7E 8D 83    ROR $838D,X
  C2/6844: 8D 83 21     STA $2183
  C2/6846: 21 A0       AND ($A0,X)
  C2/6847: A0 6C 68    LDY #$686C
C2/6848: 6C 68 84     JMP ($8468)
  C2/684A: 84 F3        STY $F3
  C2/684B: F3 A9       SBC ($A9,S),Y
  C2/684C: A9 C2        LDA #$C2
  C2/684D: C2 85       REP #$85
  C2/684E: 85 F5        STA $F5
  C2/684F: F5 A0       SBC $A0,X
  C2/6850: A0 00 50     LDY #$5000
  C2/6851: 00 50       BRK $50
  C2/6853: 84 F6        STY $F6
  C2/6853: 84 F6        STY $F6
  C2/6855: A9 7E 85    LDA #$857E
  C2/6855: A9 7E       LDA #$7E
  C2/6858: F8           SED
  C2/6857: 85 F8        STA $F8
  C2/6859: 8B          PHB  
  C2/6859: 8B          PHB  
  C2/685A: A9 7E 48    LDA #$487E
  C2/685A: A9 7E       LDA #$7E
C2/685C: 48          PHA
  C2/685D: AB          PLB  
  C2/685D: AB          PLB  
  C2/685E: 22 6D FF C2  JSR $C2FF6D
  C2/685E: 22 6D FF C2  JSR $C2FF6D
Line 1,047: Line 991:
  C2/6869: 68          PLA  
  C2/6869: 68          PLA  
  C2/686A: 28          PLP  
  C2/686A: 28          PLP  
  C2/686B: 60          RTS  
  C2/686B: 60          RTS
 
==C2/686C data (compressed)==
  (Compressed data - format explained in Function C2/FF6D)
  (Compressed data - format explained in Function C2/FF6D)
   
  ('''Decompressed data available [[Final_Fantasy_VI:7E5000_from_C2686C|here]]''')
  C2/686C: F4 21  (block is 8692 bytes in length, including control bytes)
  C2/686C: F4 21  (block is 8692 bytes in length, including control bytes)
  C2/686E: FF     (control byte.  all 8 bits are set, indicating that the
  C2/686E: FF 4C 0C 50 4C F3 57 4C C4 (control byte + compressed data)
                  next 8 values to read are all bytes of data meant to
  C2/6877: FF 69 4C F2 6C 08 C2 30 48 (control byte + compressed data)
                  be copied to output buffer.)
  C2/6880: FF DA 5A 8B 0B 20 2F 50 20 (etc.)
  C2/686F: 4C
  C2/6889: FF 7F 50 20 F7 50 20 A8 50
C2/6870: 0C
  C2/6892: FF 20 43 50 20 4E 50 C2 30
  C2/6871: 50
  C2/689B: FF 2B AB 7A FA 68 28 6B E2
  C2/6872: 4C
  C2/68A4: FF 20 A9 7E 48 AB A2 00 00
  C2/6873: F3
  C2/68AD: FB DA 2B 13 00 86 00 20 62 50
  C2/6874: 57
  C2/68B7: FF 60 A9 F0 8F 00 13 00 22
  C2/6875: 4C
  C2/68C0: FF 04 00 C5 60 A9 8F 8F 00
  C2/6876: C4
  C2/68C9: FF 21 00 7B 8F 00 42 00 8F
  C2/6877: FF     (next control byte)
  C2/68D2: FD 0B 35 00 0C 42 00 60 A9 5C
  C2/6878: 69
  C2/68DC: FF 8D 00 15 8D 04 15 A2 33
  C2/6879: 4C
  C2/68E5: FF 72 8E 01 15 A2 64 72 8E
  C2/687A: F2
  C2/68EE: FF 05 15 A9 7E 8D 03 15 8D
  C2/687B: 6C
  C2/68F7: FF 07 15 60 20 11 77 7B 20
  C2/687C: 08
  C2/6900: FF 93 50 20 15 78 20 4F 78
  C2/687D: C2
  C2/6909: FF 20 85 74 20 FA 78 60 8F
  C2/687E: 30
  C2/6912: DF 02 13 00 A9 10 23 08 A9 02
C2/687F: 48
  C2/691C: FB 8F 01 25 20 7B A5 19 30 18
  C2/6880: FF     (control byte)
  C2/6926: FF 0A AA FC DF 50 A5 06 89
  C2/6881: DA
  C2/692F: FF 80 D0 08 20 0F 75 20 FD
  C2/6882: 5A
  C2/6938: FF 71 80 E8 A9 FF 8D 00 02
  C2/6883: 8B
  C2/6941: FF A0 0F 00 84 15 A9 00 A0
  C2/6884: 0B
  C2/694A: FF A0 55 20 DC 74 A4 15 F0
  C2/6885: 20
  C2/6953: FE 95 28 F4 60 AE 51 80 52 97
  C2/6886: 2F
  C2/695D: FF 52 A6 52 E0 52 EC 52 3F
  C2/6887: 50
  C2/6966: FF 53 77 53 8A 53 9C 53 B5
  C2/6888: 20
  C2/696F: D7 53 BC 53 86 08 0D 8B 00 31 51
  C2/6889: FF    (control byte)
  C2/697A: FA 96 20 EE A3 B0 7B A8 85 19 84
  C2/688A: 7F
  C2/6985: F7 25 84 27 6A 08 4E 50 60 55
  C2/688B: 50
  C2/698F: FF 51 A5 51 00 00 63 10 BD
  C2/688C: 20
  C2/6998: DF 77 00 00 FF 7F 1B 99 20 06
  C2/688D: F7
  C2/69A2: FF 53 A2 00 30 A0 65 74 20
  C2/688E: 50
  C2/69AB: AF 24 73 A2 20 38 31 31 42 39 43
  C2/688F: 20
  C2/69B6: BF 7B A9 01 20 3A 73 36 09 45
  C2/6890: A8
  C2/69C0: D9 74 57 19 40 01 35 51 57 11 A0 00
C2/6891: 50
  C2/69CC: FF 01 84 25 A0 2C 01 84 15
  C2/6892: FF     (control byte)
  C2/69D5: FF E6 19 A9 0F 85 32 60 A4
  C2/6893: 20
  C2/69DE: FF 15 D0 04 A9 FF 85 19 60
C2/6894: 43
  C2/69E7: 16 48 09 63 7B 3C 09 40 53 09 3C 09 37 49
  C2/6895: 50
  C2/69F5: 55 C3 91 11 C0 38 29 40 38 29 60 38 29
  C2/6896: 20
  C2/6A02: E5 E0 38 29 A0 38 29 B1 01 03 7C A9
  C2/6897: 4E
  C2/6A0E: 09 04 59 09 BA 01 23 E2 21 C3 01 EC 29 CC 01
  C2/6898: 50
  C2/6A1D: D9 43 E2 21 D5 01 E3 7B E3 11 A9 01
  C2/6899: C2
  C2/6A29: 1B A0 39 AC 08 A0 3C A5 00 7C 19 14 02
  C2/689A: 30
  C2/6A36: FD C8 AC 08 C2 20 A9 40 30 9D
  C2/689B: FF    (control byte)
  C2/6A40: 53 01 37 0D 00 28 3A 60 33 72 C0 33 1A
C2/689C: 2B
  C2/6A4D: 7E 82 09 12 E6 19 A0 43 04 A6 00
  C2/689D: AB
  C2/6A58: 97 FF 8F 05 73 00 FF 61 00 82 09 0A
  C2/689E: 7A
  C2/6A64: 9F 20 97 78 A0 1E 1E 12 82 09 35
  C2/689F: FA
  C2/6A6F: 66 A8 00 C5 53 AD 00 A8 00 31 54 8D 1A
C2/68A0: 68
  C2/6A7C: 79 AF 94 0A 36 09 83 7B A9 02 64 21
  C2/68A1: 28
  C2/6A88: 4D A3 56 19 A0 4A 79 11 82 09 07 62 02
  C2/68A2: 6B
C2/6A95: F1 F0 A5 00 82 09 7B 01 A0 C0 03 84
C2/68A3: E2
  C2/6AA1: D1 15 33 09 52 19 E4 09 60 A8 00 DB 76
  C2/68A4: FF    (control byte)
  C2/6AAE: BE 2C 1A 5C 7A 9D 00 35 0D 00 40
  C2/68A5: 20
  C2/6AB9: FF 9D 01 33 A9 A0 9D 01 34
  C2/68A6: A9
  C2/6AC2: 4A E4 42 5F F0 22 90 F8 2A 82 09 33 62 02
  C2/68A7: 7E
  C2/6AD0: 0E 73 01 15 A2 00 8E 09 A6 22 2A 13 E4 11
  C2/68A8: 48
  C2/6ADE: C4 37 01 2C 03 08 64 21 42 23 82 09 0E A9
  C2/68A9: AB
  C2/6AEC: EB 40 04 20 0B 01 A5 00 20 BD 5C
  C2/68AA: A2
  C2/6AF7: FE 82 09 0D E6 19 64 31 A9 80
C2/68AB: 00
  C2/6B01: CF 85 33 A0 A0 D2 02 82 09 08 A0
  C2/68AC: 00
  C2/6B0C: FD E0 B8 1A A5 18 29 03 D0 06
  C2/68AD: FB    (control byte.  all bits but Bit 2 are set.  that means
  C2/6B16: 2F C2 20 E6 27 5B 1A 02 81 02 87 09
                  that the first 5 next values to read are all bytes of data
  C2/6B22: FD 7B A0 00 60 AA 7C C9 53 CD
                  meant to be copied to output buffer, as are the last 2.
  C2/6B2C: FF 53 D5 53 A6 1D FE 00 3A
                  however, the 6th value read is a 2-byte value that yields
  C2/6B35: FF 9E 01 37 A5 33 30 56 A6
                  both a pointer earlier into our output buffer, and a
  C2/6B3E: FF 1D 7B A8 9E 01 38 A6 1D
                  quantity of bytes to copy within that buffer. again,
  C2/6B47: FF BD 01 37 18 7D 01 38 20
                  the format is explained in Function C2/FF6D.)
  C2/6B50: FF A5 54 48 AF 12 42 00 29
C2/68AE: DA
  C2/6B59: 7F 40 F0 F8 A9 08 8F 1B 30 08
  C2/68AF: 2B
  C2/6B63: BE D6 03 68 8F 1C 21 00 DF 0B A6
C2/68B0: 13
  C2/6B6E: FF 1D C2 20 AF 35 21 00 99
  C2/68B1: 00
  C2/6B77: EF 80 41 E2 20 BE 0B 38 18 69
  C2/68B2: 86
  C2/6B81: DF 04 9D 01 38 C8 FF 03 C0 C0
  C2/68B3: 00 20 (not normal input data, but a pointer+quantity indicating
  C2/6B8B: FF 00 D0 B6 FE 01 37 38 60
                  bytes to read from elsewhere in output block, and copy
  C2/6B94: FD 18 A2 03 35 54 39 54 41 54
                  to current position in output block.)
  C2/6B9E: D6 AB 1B 00 39 B3 03 5B B7 0B A9 10
  C2/68B5: 62    (normal data bytes again)
  C2/6BAA: F4 FC 03 BE 9B 0A D5 C3 00 45 99 02
  C2/68B6: 50
  C2/6BB6: F5 45 F2 93 B3 08 24 18 69 40 EB
  C2/68B7: FF    (control byte)
  C2/6BC1: FF A5 00 EB AA BF 6D FE C2
  C2/68B8: 60
  C2/6BCA: BE A2 03 B3 54 B7 54 C1 16 1C A9
  C2/68B9: A9
  C2/6BD5: FB 01 9D 1D 04 18 29 01 F0 0F
  C2/68BA: F0
C2/6BDF: DE BE 03 00 39 C9 40 B2 00 DA 54
  C2/68BB: 8F
  C2/6BEA: F7 FE 00 39 0B 0C A9 40 8F 05
  C2/68BC: 00
  C2/6BF4: DD 42 31 00 04 42 00 A7 04 8F 06
  C2/68BD: 13
  C2/6BFF: F7 42 00 EA CA 0C 64 F2 A0 FC
  C2/68BE: 00
  C2/6C09: FF 00 64 E2 64 E9 64 EA AF
  C2/68BF: 22
  C2/6C12: 7F 15 42 00 85 E8 AF 14 DC 04
C2/68C0: FF 04 00
  C2/6C1C: FD E7 A7 04 C5 E2 90 02 80 07
  C2/68C3: C5 60
C2/6C26: FE 2F 02 00 01 80 0C 7B A5 EA
C2/68C5: A9 8F 8F
  C2/6C30: FF 38 E5 E2 C2 20 49 FF FF
  C2/68C8: 00 FF
  C2/6C39: FF 1A 99 FA 3D A5 E7 18 65
C2/68CA: 21 00
  C2/6C42: FF E9 85 E9 E2 20 E6 E2 88
  C2/68CC: 7B
  C2/6C4B: F6 10 05 D0 D0 A2 03 3D 55 41 55
C2/68CD: 8F 00 42 00
  C2/6C56: FF 59 55 A0 FF FF 84 10 A0
C2/68D1: 8F FD 0B 35
  C2/6C5F: FF 40 00 84 0E A9 7F 85 14
  C2/68D5: 00 0C
  C2/6C68: F2 5F 0B 27 AB 13 86 13 36 C2 20 A5
  C2/68D7: 42 00
  C2/6C74: FF 27 C9 1F 01 F0 2F C9 00
  C2/68D9: 60
  C2/6C7D: FF 01 B0 24 29 07 00 D0 1F
  C2/68DA: A9 5C FF
  C2/6C86: FF A5 27 38 E9 08 00 29 F8
  C2/68DD: 8D 00 15
  C2/6C8F: FF FF 0A 0A 0A 18 69 C0 23
  C2/68E0: 8D 04 15
  C2/6C98: DB 85 12 50 45 85 10 8E 0B 38 60
C2/68E3: A2 33
  C2/6CA3: F3 E2 20 1F 15 0D 0C A4 55 A8 55
  C2/68E5: FF 72 8E 01
  C2/6CAE: 4B B2 55 95 1C 0F F8 02 B0 00 0C BE 0B
  C2/68E9: 15 A2
  C2/6CBB: FF 33 85 32 DE 01 33 38 60
  C2/68EB: 64 72
  C2/6CC4: FA 70 03 32 0D 0C CC 55 D2 55 EB
C2/68ED: 8E FF 05
  C2/6CCF: 73 55 20 B6 03 97 0C 80 9D 00 3C 05
  C2/68F0: 15 A9
  C2/6CDB: F7 A9 3E 56 F1 12 20 5F 75 38
  C2/68F2: 7E 8D 03
  C2/6CE5: FD 60 A5 0C 36 F0 17 C9 01 F0
  C2/68F5: 15 8D
  C2/6CEF: BF 07 A6 1D DE 00 36 9E 05 02
  C2/68F7: FF 07 15 60
  C2/6CF9: F7 A0 F9 56 AD 00 E6 36 80 ED
  C2/68FB: 20 11 77
  C2/6D03: 7F BD 01 3B C9 FE D0 03 AD 03
  C2/68FE: 7B
  C2/6D0D: AB C2 20 C0 03 AA C2 05 75 C6 05 20
C2/68FF: 20 FF 93
  C2/6D19: F8 B5 0B B7 05 9A 0C 3A 4C DC 55 7B
  C2/6902: 50 20
  C2/6D25: FF E6 34 A5 18 18 65 34 AA
  C2/6904: 15 78
  C2/6D2E: FF BF 00 FD C0 60 23 7C 01
  C2/6906: 20 4F 78
  C2/6D37: DF 59 56 02 D9 56 1E 26 79 56
C2/6909: FF 20 85 74
  C2/6D41: FF 02 99 56 03 B9 56 04 D9
  C2/690D: 20 FA 78
  C2/6D4A: FF 56 FE 63 10 DE 66 5B 56
  C2/6910: 60
  C2/6D53: FF B4 45 2E 35 08 31 E8 2C
  C2/6911: 8F DF 02 13
  C2/6D5C: FF C7 28 A6 24 A5 1C 84 18
  C2/6915: 00 A9
  C2/6D65: FF 64 14 63 10 BB 21 36 11
  C2/6917: 10 23
  C2/6D6E: FF 7F 73 00 00 39 52 D7 45
  C2/6919: 08
  C2/6D77: DF 51 39 EC 2C E7 44 16 85 20
  C2/691A: A9 02 FB
  C2/6D81: EF 84 18 84 14 4D 2E 7B 5A 00
  C2/691D: 8F 01 25 20
  C2/6D8B: FF 00 94 3D 53 35 EE 2C AA
  C2/6921: 7B
  C2/6D94: 1B 24 A5 66 06 64 1C 4D 0E 89 1E 51 0E
  C2/6922: A5 19
  C2/6DA1: FF D6 45 00 00 AA 20 A7 20
  C2/6924: 30 18
  C2/6DAA: CF 85 1C 43 18 89 2E 89 4E CC 24
  C2/6926: FF 0A AA FC
  C2/6DB5: F8 13 09 B9 9E 51 0E 63 10 AA 7C FD
  C2/692A: DF 50 A5 06
  C2/6DC1: 9F 56 01 57 36 57 AB 13 FE 05 29
  C2/692E: 89 FF 80
  C2/6DCC: 5F 03 F0 37 0A AA F1 05 46 DE 06
  C2/6931: D0 08
  C2/6DD7: 2E F1 12 E2 20 DA FE 05 FA F8 02 FB 16
C2/6933: 20 0F 75
  C2/6DE4: 77 29 7F 69 28 04 34 A6 1D C4 05
  C2/6936: 20 FD FF
  C2/6DEF: BC BE 0B E9 05 F0 05 20 8D C6 05 18
C2/6939: 71 80
C2/6DFB: FF 60 00 00 4E 57 66 57 4E
  C2/693B: E8
  C2/6E04: FF 57 7F 57 01 7E 57 01 84
C2/693C: A9 FF 8D
  C2/6E0D: 6A 2D 17 91 2D 17 9E 2D 0F FE AB 2D 17
C2/693F: 00 02
  C2/6E1A: D5 B0 2D 17 BD 2D 17 CA 3F 17 00 01
  C2/6941: FF A0 0F 00
  C2/6E26: DF 08 00 4C 35 03 24 07 35 10
  C2/6945: 84 15
  C2/6E30: FF 00 60 35 08 10 62 35 03
  C2/6947: A9 00 A0
  C2/6E39: F7 08 00 64 6A 07 66 35 08 20
C2/694A: FF A0 55 20
  C2/6E43: D5 68 6E 0F 6A 6A 07 6C 77 07 6E 35
  C2/694E: DC 74 A4
  C2/6E4F: FE 5D 0F 75 03 10 00 4E 75 08
  C2/6951: 15 F0
  C2/6E59: 97 00 60 75 6B 07 75 6F 0F 96 07 66
  C2/6953: FE 95 28
  C2/6E65: A9 75 78 07 9A 0F 6A 96 07 6C A3 07 6E
C2/6956: F4 60 AE
  C2/6E72: FF 75 40 A8 40 70 B0 48 68
  C2/6959: 51 80
  C2/6E7B: FF A8 70 68 60 A8 80 D0 88
  C2/695B: 52 97
C2/6E84: FF 58 90 A8 98 88 50 58 70
  C2/695D: FF 52 A6 52
  C2/6E8D: FF 60 90 60 10 78 08 C2 30
  C2/6961: E0 52
  C2/6E96: FF 48 DA 5A 8B 0B 20 2F 50
  C2/6963: EC 52 3F
  C2/6E9F: FF 20 13 58 20 72 58 20 43
  C2/6966: FF 53 77 53
  C2/6EA8: FD 50 0B 01 C2 30 2B AB 7A FA
  C2/696A: 8A
  C2/6EB2: 77 68 28 6B 5D 00 20 3C 58 69 02
  C2/696B: 53 9C
  C2/6EBD: F2 72 38 04 7D 28 64 38 FF 61 60 8B
  C2/696D: 53 B5
  C2/6EC9: FF A9 00 48 AB A9 03 8D 01
  C2/696F: D7 53
  C2/6ED2: FF 21 A6 00 8E 02 21 A9 07
  C2/6971: BC 53 86
  C2/6EDB: FF 8D 05 21 A9 78 8D 07 21
  C2/6974: 08
  C2/6EE4: FF A9 7C 8D 08 21 A9 74 8D
C2/6975: 0D 8B 00
  C2/6EED: FF 09 21 8D 0A 21 A9 22 8D
  C2/6978: 31 51
  C2/6EF6: FF 0B 21 A9 77 8D 0C 21 7B
  C2/697A: FA
  C2/6EFF: 6F 8D 1A 21 AB 85 30 AD 58 90 F8
  C2/697B: 96 20
C2/6F0A: FE B2 38 22 0C 00 EE 60 B5 58
  C2/697D: EE A3 B0
  C2/6F14: FF 4C 5A 66 5A 70 5A 20 70
  C2/6980: 7B
  C2/6F1D: EF 5C 20 5D 5B 1A 10 22 09 00
  C2/6981: A8
  C2/6F27: FF EE 22 03 00 EE AB 20 45
  C2/6982: 85 19
  C2/6F30: 51 5C 08 01 28 0B 43 61 60 4A 29 80 4A 29
C2/6984: 84 F7
  C2/6F3E: F1 A0 4A 29 37 79 BA B9 A9 68 85 39
  C2/6986: 25 84
  C2/6F4A: FF A9 48 85 3A A9 78 85 3B
  C2/6988: 27 6A
C2/6F53: EF A9 C0 85 3C 70 03 3D A9 90
  C2/698A: 08
  C2/6F5D: FF 85 3E 64 29 64 2A A0 38
  C2/698B: 4E 50 60
  C2/6F66: 7F 00 84 2B 64 37 64 38 72 00
  C2/698E: 55 FF
  C2/6F70: 7B C0 5F 77 00 7B 20 08 5B B1 02
  C2/6990: 51 A5
  C2/6F7B: 32 36 01 02 35 01 33 0B 90 64 B1 12 BF 08
C2/6992: 51 00
  C2/6F89: 40 46 01 A7 12 C9 00 46 01 05 1A 44 11 06 3B 13
  C2/6994: 00 63
  C2/6F99: BF 31 A0 70 64 A9 03 A8 22 10
  C2/6996: 10 BD
  C2/6FA3: 24 52 21 ED 00 30 52 21 C3 01 50 52 21 FF 39
  C2/6998: DF 77 00 00
  C2/6FB2: B2 72 00 27 30 09 72 00 ED 5A 8D 1A 92
C2/699C: FF 7F 1B 99
  C2/6FBF: DE B1 09 7B 9D 01 39 9A 0C 36 A9
  C2/69A0: 20 06 FF
  C2/6FCA: F9 5A 9C 04 2F 02 A0 FF 9D 00 38
  C2/69A3: 53 A2
  C2/6FD5: 50 F4 02 B6 21 9A 04 BF 01 0A 03 0E 28 C8 19
  C2/69A5: 00 30
  C2/6FE4: 55 60 CF 61 02 BE 09 07 03 0E 2D C8 19
C2/69A7: A0 65
  C2/6FF1: FD 80 CF 19 E6 19 A9 01 85 32
  C2/69A9: 74 20
  C2/6FFB: 76 63 00 A0 CA (continued at C2/7000)
  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

Latest revision as of 02:41, 24 January 2024

This is a sub-page of Final Fantasy VI/ROM map.

C2/602A learn spell based on 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     (Add amount to known% for 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 

C2/604B learn spell

C2/604B: F0 1F        BEQ $606C   (If 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
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
C2/6064: A9 80        LDA #$80
C2/6066: 91 F4        STA ($F4),Y
C2/6068: A5 F1        LDA $F1
C2/606A: 04 F0        TSB $F0
C2/606C: 60           RTS 

C2/606D unknow

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
C2/60AA: F0 05        BEQ $60B1
C2/60AC: 64 F2        STZ $F2
C2/60AE: 20 D4 5F     JSR $5FD4
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
C2/60BC: 20 B6 61     JSR $61B6
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.)

C2/60C2 add bonus when level up

(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 

C2/6133 unknow

C2/6133: 5A           PHY
C2/6134: A0 35 00     LDY #$0035
C2/6137: B1 F4        LDA ($F4),Y
C2/6139: C9 80        CMP #$80
C2/613B: D0 0C        BNE $6149
C2/613D: A9 FF        LDA #$FF
C2/613F: 91 F4        STA ($F4),Y
C2/6141: 8C 35 2F     STY $2F35
C2/6144: A9 32        LDA #$32
C2/6146: 20 D4 5F     JSR $5FD4
C2/6149: 88           DEY 
C2/614A: 10 EB        BPL $6137
C2/614C: 7A           PLY 
C2/614D: 60           RTS 

C2/614E pointers: esper bonus

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)

C2/6170 esper bonus: HP or MP

C2/6170: A9 1A        LDA #$1A     (26 => 10.12625% 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 

C2/6198 esper bonus: vigor, speed, stamina or magic power

(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,
                                    respectively)
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

C2/61B0 esper bonus: double natural HP gain by level (unused)

(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

C2/61B6 unknow

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)

C2/61CB level up: sword tech learning

(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
C2/61DB: A9 42        LDA #$42
C2/61DD: 4C D4 5F     JMP $5FD4

C2/61E0 level up: blitz learning

(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
C2/61F7: A9 33        LDA #$33
C2/61F9: 4C D4 5F     JMP $5FD4

C2/61FC level up: Terra and Celes learning of spells

(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 entry in spell list ??)
C2/6211: C9 FF        CMP #$FF       
C2/6213: F0 04        BEQ $6219     
C2/6215: A9 80        LDA #$80
C2/6217: 91 F4        STA ($F4),Y
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 

C2/6222 handle blitz or sword tech learned abilities

(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 

C2/6235 add experience to character

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 

C2/6276 data: experience cap

Data (Experience cap: 15000000)
C2/6276: C0
C2/6277: E1
C2/6278: E4

C2/6279 unknow

C2/6279: A9 05       LDA #$05
C2/627B: 20 11 64    JSR $6411
C2/627E: A9 0A       LDA #$0A
C2/6280: 4C 11 64    JMP $6411

C2/6283 set address for spells knows by character

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 

C2/6293 math: X = A * 0B

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 

C2/629B copy function

(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
C2/62AB: 9D 6E 2D     STA $2D6E,X 
C2/62AE: AD 2A 3A     LDA $3A2A   (Final Damage)
C2/62B1: 9D 70 2D     STA $2D70,X (Store in damage taken)
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 

C2/62BF unknow

??? 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 

C2/62C7 add item to inventory

(Add/restore characters' items 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
C2/62DB: A9 01        LDA #$01
C2/62DD: 8D 75 2E     STA $2E75
C2/62E0: A9 05        LDA #$05
C2/62E2: 20 11 64     JSR $6411
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     (loop for all 4 party members)
C2/62EE: 60           RTS 

C2/62EF display damage/healing

(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
C2/62F3: 64 F2        STZ $F2
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   (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     (will be nonzero if any target has 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
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
C2/6366: 20 B4 63     JSR $63B4
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
C2/6384: 20 B4 63     JSR $63B4
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 

C2/6398 display damage

(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   (If no damage)
C2/63A2: 3A           DEC 
C2/63A3: 8D 2A 3A     STA $3A2A   (Store in final damage)
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/63AB: 20 9B 62     JSR $629B   (Copy $3A28-$3A2B variables into ($76) buffer)
C2/63AE: CA           DEX
C2/63AF: 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.)

C2/63B4 display damage simultaneously

(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 $3A28-$3A2B variables into ($76) buffer)
C2/63BE: AD 34 3A     LDA $3A34
C2/63C1: EE 34 3A     INC $3A34
C2/63C4: EB           XBA 
C2/63C5: A9 14        LDA #$14
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
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 

C2/63D8 copy function

(Copy 8 words (16 bytes) from $A0 to ((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
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
C2/63FC: 28           PLP 
C2/63FD: 7A           PLY 
C2/63FE: FA           PLX 
C2/63FF: 60           RTS 

C2/6400 null function

(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  (loop 4 times)
C2/640E: 28           PLP 
C2/640F: FA           PLX 
C2/6410: 60           RTS 

C2/6411 unknow

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
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 

C2/642D monster commands script FA

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 final damage)?
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

C2/643E unknow (unused)

(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 

C2/6469 free space

(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 decompress cinematics block and do selected cinematic

C2/6800: 4C 13 68     JMP $6813
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 (do title screen cinematic)
C2/6813: 20 28 68     JSR $6828
C2/6816: 5C 03 50 7E  JMP $7E5003 (do opening credits cinematic)
C2/681A: 20 28 68     JSR $6828
C2/681D: 5C 06 50 7E  JMP $7E5006 (do floating island cinematic)
C2/6821: 20 28 68     JSR $6828
C2/6824: 5C 09 50 7E  JMP $7E5009 (do world tearing apart cinematic)
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        LDA #$00
C2/6836: 48           PHA
C2/6837: AB           PLB 
C2/6838: A2 00 00     LDX #$0000
C2/683B: DA           PHX
C2/683C: 2B           PLD 
C2/683D: A2 00 00     LDX #$0000
C2/6840: 86 00        STX $00
C2/6842: A9 7E        LDA #$7E
C2/6844: 8D 83 21     STA $2183
C2/6847: A0 6C 68     LDY #$686C
C2/684A: 84 F3        STY $F3
C2/684C: A9 C2        LDA #$C2
C2/684E: 85 F5        STA $F5
C2/6850: A0 00 50     LDY #$5000
C2/6853: 84 F6        STY $F6
C2/6855: A9 7E        LDA #$7E
C2/6857: 85 F8        STA $F8
C2/6859: 8B           PHB 
C2/685A: A9 7E        LDA #$7E
C2/685C: 48           PHA 
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

C2/686C data (compressed)

(Compressed data - format explained in Function C2/FF6D)
(Decompressed data available here)
C2/686C: F4 21  (block is 8692 bytes in length, including control bytes)
C2/686E: FF 4C 0C 50 4C F3 57 4C C4 (control byte + compressed data)
C2/6877: FF 69 4C F2 6C 08 C2 30 48 (control byte + compressed data)
C2/6880: FF DA 5A 8B 0B 20 2F 50 20 (etc.)
C2/6889: FF 7F 50 20 F7 50 20 A8 50
C2/6892: FF 20 43 50 20 4E 50 C2 30
C2/689B: FF 2B AB 7A FA 68 28 6B E2
C2/68A4: FF 20 A9 7E 48 AB A2 00 00
C2/68AD: FB DA 2B 13 00 86 00 20 62 50
C2/68B7: FF 60 A9 F0 8F 00 13 00 22
C2/68C0: FF 04 00 C5 60 A9 8F 8F 00
C2/68C9: FF 21 00 7B 8F 00 42 00 8F
C2/68D2: FD 0B 35 00 0C 42 00 60 A9 5C
C2/68DC: FF 8D 00 15 8D 04 15 A2 33
C2/68E5: FF 72 8E 01 15 A2 64 72 8E
C2/68EE: FF 05 15 A9 7E 8D 03 15 8D
C2/68F7: FF 07 15 60 20 11 77 7B 20
C2/6900: FF 93 50 20 15 78 20 4F 78
C2/6909: FF 20 85 74 20 FA 78 60 8F
C2/6912: DF 02 13 00 A9 10 23 08 A9 02
C2/691C: FB 8F 01 25 20 7B A5 19 30 18
C2/6926: FF 0A AA FC DF 50 A5 06 89
C2/692F: FF 80 D0 08 20 0F 75 20 FD
C2/6938: FF 71 80 E8 A9 FF 8D 00 02
C2/6941: FF A0 0F 00 84 15 A9 00 A0
C2/694A: FF A0 55 20 DC 74 A4 15 F0
C2/6953: FE 95 28 F4 60 AE 51 80 52 97
C2/695D: FF 52 A6 52 E0 52 EC 52 3F
C2/6966: FF 53 77 53 8A 53 9C 53 B5
C2/696F: D7 53 BC 53 86 08 0D 8B 00 31 51
C2/697A: FA 96 20 EE A3 B0 7B A8 85 19 84
C2/6985: F7 25 84 27 6A 08 4E 50 60 55
C2/698F: FF 51 A5 51 00 00 63 10 BD
C2/6998: DF 77 00 00 FF 7F 1B 99 20 06
C2/69A2: FF 53 A2 00 30 A0 65 74 20
C2/69AB: AF 24 73 A2 20 38 31 31 42 39 43
C2/69B6: BF 7B A9 01 20 3A 73 36 09 45
C2/69C0: D9 74 57 19 40 01 35 51 57 11 A0 00
C2/69CC: FF 01 84 25 A0 2C 01 84 15
C2/69D5: FF E6 19 A9 0F 85 32 60 A4
C2/69DE: FF 15 D0 04 A9 FF 85 19 60
C2/69E7: 16 48 09 63 7B 3C 09 40 53 09 3C 09 37 49
C2/69F5: 55 C3 91 11 C0 38 29 40 38 29 60 38 29
C2/6A02: E5 E0 38 29 A0 38 29 B1 01 03 7C A9
C2/6A0E: 09 04 59 09 BA 01 23 E2 21 C3 01 EC 29 CC 01
C2/6A1D: D9 43 E2 21 D5 01 E3 7B E3 11 A9 01
C2/6A29: 1B A0 39 AC 08 A0 3C A5 00 7C 19 14 02
C2/6A36: FD C8 AC 08 C2 20 A9 40 30 9D
C2/6A40: 53 01 37 0D 00 28 3A 60 33 72 C0 33 1A
C2/6A4D: 7E 82 09 12 E6 19 A0 43 04 A6 00
C2/6A58: 97 FF 8F 05 73 00 FF 61 00 82 09 0A
C2/6A64: 9F 20 97 78 A0 1E 1E 12 82 09 35
C2/6A6F: 66 A8 00 C5 53 AD 00 A8 00 31 54 8D 1A
C2/6A7C: 79 AF 94 0A 36 09 83 7B A9 02 64 21
C2/6A88: 4D A3 56 19 A0 4A 79 11 82 09 07 62 02
C2/6A95: F1 F0 A5 00 82 09 7B 01 A0 C0 03 84
C2/6AA1: D1 15 33 09 52 19 E4 09 60 A8 00 DB 76
C2/6AAE: BE 2C 1A 5C 7A 9D 00 35 0D 00 40
C2/6AB9: FF 9D 01 33 A9 A0 9D 01 34
C2/6AC2: 4A E4 42 5F F0 22 90 F8 2A 82 09 33 62 02
C2/6AD0: 0E 73 01 15 A2 00 8E 09 A6 22 2A 13 E4 11
C2/6ADE: C4 37 01 2C 03 08 64 21 42 23 82 09 0E A9
C2/6AEC: EB 40 04 20 0B 01 A5 00 20 BD 5C
C2/6AF7: FE 82 09 0D E6 19 64 31 A9 80
C2/6B01: CF 85 33 A0 A0 D2 02 82 09 08 A0
C2/6B0C: FD E0 B8 1A A5 18 29 03 D0 06
C2/6B16: 2F C2 20 E6 27 5B 1A 02 81 02 87 09
C2/6B22: FD 7B A0 00 60 AA 7C C9 53 CD
C2/6B2C: FF 53 D5 53 A6 1D FE 00 3A
C2/6B35: FF 9E 01 37 A5 33 30 56 A6
C2/6B3E: FF 1D 7B A8 9E 01 38 A6 1D
C2/6B47: FF BD 01 37 18 7D 01 38 20
C2/6B50: FF A5 54 48 AF 12 42 00 29
C2/6B59: 7F 40 F0 F8 A9 08 8F 1B 30 08
C2/6B63: BE D6 03 68 8F 1C 21 00 DF 0B A6
C2/6B6E: FF 1D C2 20 AF 35 21 00 99
C2/6B77: EF 80 41 E2 20 BE 0B 38 18 69
C2/6B81: DF 04 9D 01 38 C8 FF 03 C0 C0
C2/6B8B: FF 00 D0 B6 FE 01 37 38 60
C2/6B94: FD 18 A2 03 35 54 39 54 41 54
C2/6B9E: D6 AB 1B 00 39 B3 03 5B B7 0B A9 10
C2/6BAA: F4 FC 03 BE 9B 0A D5 C3 00 45 99 02
C2/6BB6: F5 45 F2 93 B3 08 24 18 69 40 EB
C2/6BC1: FF A5 00 EB AA BF 6D FE C2
C2/6BCA: BE A2 03 B3 54 B7 54 C1 16 1C A9
C2/6BD5: FB 01 9D 1D 04 18 29 01 F0 0F
C2/6BDF: DE BE 03 00 39 C9 40 B2 00 DA 54
C2/6BEA: F7 FE 00 39 0B 0C A9 40 8F 05
C2/6BF4: DD 42 31 00 04 42 00 A7 04 8F 06
C2/6BFF: F7 42 00 EA CA 0C 64 F2 A0 FC
C2/6C09: FF 00 64 E2 64 E9 64 EA AF
C2/6C12: 7F 15 42 00 85 E8 AF 14 DC 04
C2/6C1C: FD E7 A7 04 C5 E2 90 02 80 07
C2/6C26: FE 2F 02 00 01 80 0C 7B A5 EA
C2/6C30: FF 38 E5 E2 C2 20 49 FF FF
C2/6C39: FF 1A 99 FA 3D A5 E7 18 65
C2/6C42: FF E9 85 E9 E2 20 E6 E2 88
C2/6C4B: F6 10 05 D0 D0 A2 03 3D 55 41 55
C2/6C56: FF 59 55 A0 FF FF 84 10 A0
C2/6C5F: FF 40 00 84 0E A9 7F 85 14
C2/6C68: F2 5F 0B 27 AB 13 86 13 36 C2 20 A5
C2/6C74: FF 27 C9 1F 01 F0 2F C9 00
C2/6C7D: FF 01 B0 24 29 07 00 D0 1F
C2/6C86: FF A5 27 38 E9 08 00 29 F8
C2/6C8F: FF FF 0A 0A 0A 18 69 C0 23
C2/6C98: DB 85 12 50 45 85 10 8E 0B 38 60
C2/6CA3: F3 E2 20 1F 15 0D 0C A4 55 A8 55
C2/6CAE: 4B B2 55 95 1C 0F F8 02 B0 00 0C BE 0B
C2/6CBB: FF 33 85 32 DE 01 33 38 60
C2/6CC4: FA 70 03 32 0D 0C CC 55 D2 55 EB
C2/6CCF: 73 55 20 B6 03 97 0C 80 9D 00 3C 05
C2/6CDB: F7 A9 3E 56 F1 12 20 5F 75 38
C2/6CE5: FD 60 A5 0C 36 F0 17 C9 01 F0
C2/6CEF: BF 07 A6 1D DE 00 36 9E 05 02
C2/6CF9: F7 A0 F9 56 AD 00 E6 36 80 ED
C2/6D03: 7F BD 01 3B C9 FE D0 03 AD 03
C2/6D0D: AB C2 20 C0 03 AA C2 05 75 C6 05 20
C2/6D19: F8 B5 0B B7 05 9A 0C 3A 4C DC 55 7B
C2/6D25: FF E6 34 A5 18 18 65 34 AA
C2/6D2E: FF BF 00 FD C0 60 23 7C 01
C2/6D37: DF 59 56 02 D9 56 1E 26 79 56
C2/6D41: FF 02 99 56 03 B9 56 04 D9
C2/6D4A: FF 56 FE 63 10 DE 66 5B 56
C2/6D53: FF B4 45 2E 35 08 31 E8 2C
C2/6D5C: FF C7 28 A6 24 A5 1C 84 18
C2/6D65: FF 64 14 63 10 BB 21 36 11
C2/6D6E: FF 7F 73 00 00 39 52 D7 45
C2/6D77: DF 51 39 EC 2C E7 44 16 85 20
C2/6D81: EF 84 18 84 14 4D 2E 7B 5A 00
C2/6D8B: FF 00 94 3D 53 35 EE 2C AA
C2/6D94: 1B 24 A5 66 06 64 1C 4D 0E 89 1E 51 0E
C2/6DA1: FF D6 45 00 00 AA 20 A7 20
C2/6DAA: CF 85 1C 43 18 89 2E 89 4E CC 24
C2/6DB5: F8 13 09 B9 9E 51 0E 63 10 AA 7C FD
C2/6DC1: 9F 56 01 57 36 57 AB 13 FE 05 29
C2/6DCC: 5F 03 F0 37 0A AA F1 05 46 DE 06
C2/6DD7: 2E F1 12 E2 20 DA FE 05 FA F8 02 FB 16
C2/6DE4: 77 29 7F 69 28 04 34 A6 1D C4 05
C2/6DEF: BC BE 0B E9 05 F0 05 20 8D C6 05 18
C2/6DFB: FF 60 00 00 4E 57 66 57 4E
C2/6E04: FF 57 7F 57 01 7E 57 01 84
C2/6E0D: 6A 2D 17 91 2D 17 9E 2D 0F FE AB 2D 17
C2/6E1A: D5 B0 2D 17 BD 2D 17 CA 3F 17 00 01
C2/6E26: DF 08 00 4C 35 03 24 07 35 10
C2/6E30: FF 00 60 35 08 10 62 35 03
C2/6E39: F7 08 00 64 6A 07 66 35 08 20
C2/6E43: D5 68 6E 0F 6A 6A 07 6C 77 07 6E 35
C2/6E4F: FE 5D 0F 75 03 10 00 4E 75 08
C2/6E59: 97 00 60 75 6B 07 75 6F 0F 96 07 66
C2/6E65: A9 75 78 07 9A 0F 6A 96 07 6C A3 07 6E
C2/6E72: FF 75 40 A8 40 70 B0 48 68
C2/6E7B: FF A8 70 68 60 A8 80 D0 88
C2/6E84: FF 58 90 A8 98 88 50 58 70
C2/6E8D: FF 60 90 60 10 78 08 C2 30
C2/6E96: FF 48 DA 5A 8B 0B 20 2F 50
C2/6E9F: FF 20 13 58 20 72 58 20 43
C2/6EA8: FD 50 0B 01 C2 30 2B AB 7A FA
C2/6EB2: 77 68 28 6B 5D 00 20 3C 58 69 02
C2/6EBD: F2 72 38 04 7D 28 64 38 FF 61 60 8B
C2/6EC9: FF A9 00 48 AB A9 03 8D 01
C2/6ED2: FF 21 A6 00 8E 02 21 A9 07
C2/6EDB: FF 8D 05 21 A9 78 8D 07 21
C2/6EE4: FF A9 7C 8D 08 21 A9 74 8D
C2/6EED: FF 09 21 8D 0A 21 A9 22 8D
C2/6EF6: FF 0B 21 A9 77 8D 0C 21 7B
C2/6EFF: 6F 8D 1A 21 AB 85 30 AD 58 90 F8
C2/6F0A: FE B2 38 22 0C 00 EE 60 B5 58
C2/6F14: FF 4C 5A 66 5A 70 5A 20 70
C2/6F1D: EF 5C 20 5D 5B 1A 10 22 09 00
C2/6F27: FF EE 22 03 00 EE AB 20 45
C2/6F30: 51 5C 08 01 28 0B 43 61 60 4A 29 80 4A 29
C2/6F3E: F1 A0 4A 29 37 79 BA B9 A9 68 85 39
C2/6F4A: FF A9 48 85 3A A9 78 85 3B
C2/6F53: EF A9 C0 85 3C 70 03 3D A9 90
C2/6F5D: FF 85 3E 64 29 64 2A A0 38
C2/6F66: 7F 00 84 2B 64 37 64 38 72 00
C2/6F70: 7B C0 5F 77 00 7B 20 08 5B B1 02
C2/6F7B: 32 36 01 02 35 01 33 0B 90 64 B1 12 BF 08
C2/6F89: 40 46 01 A7 12 C9 00 46 01 05 1A 44 11 06 3B 13
C2/6F99: BF 31 A0 70 64 A9 03 A8 22 10
C2/6FA3: 24 52 21 ED 00 30 52 21 C3 01 50 52 21 FF 39
C2/6FB2: B2 72 00 27 30 09 72 00 ED 5A 8D 1A 92
C2/6FBF: DE B1 09 7B 9D 01 39 9A 0C 36 A9
C2/6FCA: F9 5A 9C 04 2F 02 A0 FF 9D 00 38
C2/6FD5: 50 F4 02 B6 21 9A 04 BF 01 0A 03 0E 28 C8 19
C2/6FE4: 55 60 CF 61 02 BE 09 07 03 0E 2D C8 19
C2/6FF1: FD 80 CF 19 E6 19 A9 01 85 32
C2/6FFB: 76 63 00 A0 CA (continued at C2/7000)