Final Fantasy VI:ROM map/Assembly C26

From Data Crystal
Revision as of 03:32, 20 December 2013 by HatZen08 (talk | contribs) (clean up)
Jump to: navigation, search

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

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,
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
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"
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
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
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/64B1: FF FF FF FF
C2/64B5: FF FF FF FF
C2/64B9: FF FF FF FF
C2/64C1: FF FF FF FF
C2/64C5: FF FF FF FF
C2/64C9: FF FF FF FF
C2/64D1: FF FF FF FF
C2/64D5: FF FF FF FF
C2/64D9: FF FF FF FF
C2/64E1: FF FF FF FF
C2/64E5: FF FF FF FF
C2/64E9: FF FF FF FF
C2/64F1: FF FF FF FF
C2/64F5: FF FF FF FF
C2/64F9: 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/65B1: FF FF FF FF
C2/65B5: FF FF FF FF
C2/65B9: FF FF FF FF
C2/65C1: FF FF FF FF
C2/65C5: FF FF FF FF
C2/65C9: FF FF FF FF
C2/65D1: FF FF FF FF
C2/65D5: FF FF FF FF
C2/65D9: FF FF FF FF
C2/65E1: FF FF FF FF
C2/65E5: FF FF FF FF
C2/65E9: FF FF FF FF
C2/65F1: FF FF FF FF
C2/65F5: FF FF FF FF
C2/65F9: 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/66B1: FF FF FF FF
C2/66B5: FF FF FF FF
C2/66B9: FF FF FF FF
C2/66C1: FF FF FF FF
C2/66C5: FF FF FF FF
C2/66C9: FF FF FF FF
C2/66D1: FF FF FF FF
C2/66D5: FF FF FF FF
C2/66D9: FF FF FF FF
C2/66E1: FF FF FF FF
C2/66E5: FF FF FF FF
C2/66E9: FF FF FF FF
C2/66F1: FF FF FF FF
C2/66F5: FF FF FF FF
C2/66F9: 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/67B1: FF FF FF FF
C2/67B5: FF FF FF FF
C2/67B9: FF FF FF FF
C2/67C1: FF FF FF FF
C2/67C5: FF FF FF FF
C2/67C9: FF FF FF FF
C2/67D1: FF FF FF FF
C2/67D5: FF FF FF FF
C2/67D9: FF FF FF FF
C2/67E1: FF FF FF FF
C2/67E5: FF FF FF FF
C2/67E9: FF FF FF FF
C2/67F1: FF FF FF FF
C2/67F5: FF FF FF FF
C2/67F9: FF FF FF FF

C2/6800 unknow

C2/6800: 4C
C2/6801: 13 68        ORA ($68,S),Y
C2/6803: 4C 0C 68     JMP $680C
C2/6806: 4C 1A 68     JMP $681A
C2/6809: 4C 21 68     JMP $6821
C2/680C: 20 28 68     JSR $6828
C2/680F: 5C 00 50 7E  JMP $7E5000
C2/6813: 20 28 68     JSR $6828
C2/6816: 5C 03 50 7E  JMP $7E5003
C2/681A: 20 28 68     JSR $6828
C2/681D: 5C 06 50 7E  JMP $7E5006
C2/6821: 20 28 68     JSR $6828
C2/6824: 5C 09 50 7E  JMP $7E5009
C2/6828: 08           PHP 
C2/6829: C2 30        REP #$30
C2/682B: 48           PHA 
C2/682C: DA           PHX 
C2/682D: 5A           PHY 
C2/682E: 8B           PHB 
C2/682F: 0B           PHD 
C2/6830: C2 10        REP #$10
C2/6832: E2 20        SEP #$20
C2/6834: A9 00 48     LDA #$4800
C2/6837: AB           PLB 
C2/6838: A2 00        LDX #$00
C2/683A: 00 DA        BRK $DA
C2/683C: 2B           PLD 
C2/683D: A2 00        LDX #$00
C2/683F: 00 86        BRK $86
C2/6841: 00 A9        BRK $A9
C2/6843: 7E 8D 83     ROR $838D,X
C2/6846: 21 A0        AND ($A0,X)
C2/6848: 6C 68 84     JMP ($8468)
C2/684B: F3 A9        SBC ($A9,S),Y
C2/684D: C2 85        REP #$85
C2/684F: F5 A0        SBC $A0,X
C2/6851: 00 50        BRK $50
C2/6853: 84 F6        STY $F6
C2/6855: A9 7E 85     LDA #$857E
C2/6858: F8           SED 
C2/6859: 8B           PHB 
C2/685A: A9 7E 48     LDA #$487E
C2/685D: AB           PLB 
C2/685E: 22 6D FF C2  JSR $C2FF6D
C2/6862: AB           PLB 
C2/6863: C2 30        REP #$30
C2/6865: 2B           PLD 
C2/6866: AB           PLB 
C2/6867: 7A           PLY 
C2/6868: FA           PLX 
C2/6869: 68           PLA 
C2/686A: 28           PLP 
C2/686B: 60           RTS 

C2/686C data (compressed)

(Compressed data - format explained in Function C2/FF6D)
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
                 next 8 values to read are all bytes of data meant to
                 be copied to output buffer.)
C2/686F: 4C
C2/6870: 0C
C2/6871: 50
C2/6872: 4C
C2/6873: F3
C2/6874: 57
C2/6875: 4C
C2/6876: C4
C2/6877: FF     (next control byte)
C2/6878: 69
C2/6879: 4C
C2/687A: F2
C2/687B: 6C
C2/687C: 08
C2/687D: C2
C2/687E: 30
C2/687F: 48
C2/6880: FF     (control byte)
C2/6881: DA
C2/6882: 5A
C2/6883: 8B
C2/6884: 0B
C2/6885: 20
C2/6886: 2F
C2/6887: 50
C2/6888: 20
C2/6889: FF     (control byte)
C2/688A: 7F
C2/688B: 50
C2/688C: 20
C2/688D: F7
C2/688E: 50
C2/688F: 20
C2/6890: A8
C2/6891: 50
C2/6892: FF     (control byte)
C2/6893: 20
C2/6894: 43
C2/6895: 50
C2/6896: 20
C2/6897: 4E
C2/6898: 50
C2/6899: C2
C2/689A: 30
C2/689B: FF     (control byte)
C2/689C: 2B
C2/689D: AB
C2/689E: 7A
C2/689F: FA
C2/68A0: 68
C2/68A1: 28
C2/68A2: 6B
C2/68A3: E2
C2/68A4: FF     (control byte)
C2/68A5: 20
C2/68A6: A9
C2/68A7: 7E
C2/68A8: 48
C2/68A9: AB
C2/68AA: A2
C2/68AB: 00
C2/68AC: 00
C2/68AD: FB     (control byte.  all bits but Bit 2 are set.  that means
                 that the first 5 next values to read are all bytes of data
                 meant to be copied to output buffer, as are the last 2.
                 however, the 6th value read is a 2-byte value that yields
                 both a pointer earlier into our output buffer, and a
                 quantity of bytes to copy within that buffer.  again,
                 the format is explained in Function C2/FF6D.)
C2/68AE: DA
C2/68AF: 2B
C2/68B0: 13
C2/68B1: 00
C2/68B2: 86
C2/68B3: 00 20  (not normal input data, but a pointer+quantity indicating
                 bytes to read from elsewhere in output block, and copy
                 to current position in output block.)
C2/68B5: 62     (normal data bytes again)
C2/68B6: 50
C2/68B7: FF     (control byte)
C2/68B8: 60
C2/68B9: A9
C2/68BA: F0
C2/68BB: 8F
C2/68BC: 00
C2/68BD: 13
C2/68BE: 00
C2/68BF: 22
C2/68C0: FF 04 00
C2/68C3: C5 60
C2/68C5: A9 8F 8F
C2/68C8: 00 FF
C2/68CA: 21 00
C2/68CC: 7B
C2/68CD: 8F 00 42 00
C2/68D1: 8F FD 0B 35
C2/68D5: 00 0C
C2/68D7: 42 00
C2/68D9: 60
C2/68DA: A9 5C FF
C2/68DD: 8D 00 15
C2/68E0: 8D 04 15
C2/68E3: A2 33
C2/68E5: FF 72 8E 01
C2/68E9: 15 A2
C2/68EB: 64 72
C2/68ED: 8E FF 05
C2/68F0: 15 A9
C2/68F2: 7E 8D 03
C2/68F5: 15 8D
C2/68F7: FF 07 15 60
C2/68FB: 20 11 77
C2/68FE: 7B
C2/68FF: 20 FF 93
C2/6902: 50 20
C2/6904: 15 78
C2/6906: 20 4F 78
C2/6909: FF 20 85 74
C2/690D: 20 FA 78
C2/6910: 60
C2/6911: 8F DF 02 13
C2/6915: 00 A9
C2/6917: 10 23
C2/6919: 08
C2/691A: A9 02 FB
C2/691D: 8F 01 25 20
C2/6921: 7B
C2/6922: A5 19
C2/6924: 30 18
C2/6926: FF 0A AA FC
C2/692A: DF 50 A5 06
C2/692E: 89 FF 80
C2/6931: D0 08
C2/6933: 20 0F 75
C2/6936: 20 FD FF
C2/6939: 71 80
C2/693B: E8
C2/693C: A9 FF 8D
C2/693F: 00 02
C2/6941: FF A0 0F 00
C2/6945: 84 15
C2/6947: A9 00 A0
C2/694A: FF A0 55 20
C2/694E: DC 74 A4
C2/6951: 15 F0
C2/6953: FE 95 28
C2/6956: F4 60 AE
C2/6959: 51 80
C2/695B: 52 97
C2/695D: FF 52 A6 52
C2/6961: E0 52
C2/6963: EC 52 3F
C2/6966: FF 53 77 53
C2/696A: 8A
C2/696B: 53 9C
C2/696D: 53 B5
C2/696F: D7 53
C2/6971: BC 53 86
C2/6974: 08
C2/6975: 0D 8B 00
C2/6978: 31 51
C2/697A: FA
C2/697B: 96 20
C2/697D: EE A3 B0
C2/6980: 7B
C2/6981: A8
C2/6982: 85 19
C2/6984: 84 F7
C2/6986: 25 84
C2/6988: 27 6A
C2/698A: 08
C2/698B: 4E 50 60
C2/698E: 55 FF
C2/6990: 51 A5
C2/6992: 51 00
C2/6994: 00 63
C2/6996: 10 BD
C2/6998: DF 77 00 00
C2/699C: FF 7F 1B 99
C2/69A0: 20 06 FF
C2/69A3: 53 A2
C2/69A5: 00 30
C2/69A7: A0 65
C2/69A9: 74 20
C2/69AB: AF 24 73 A2
C2/69AF: 20 38 31
C2/69B2: 31 42
C2/69B4: 39 43 BF
C2/69B7: 7B
C2/69B8: A9 01 20
C2/69BB: 3A
C2/69BC: 73 36
C2/69BE: 09 45 D9
C2/69C1: 74 57
C2/69C3: 19 40 01
C2/69C6: 35 51
C2/69C8: 57 11
C2/69CA: A0 00
C2/69CC: FF 01 84 25
C2/69D0: A0 2C
C2/69D2: 01 84
C2/69D4: 15 FF
C2/69D6: E6 19
C2/69D8: A9 0F 85
C2/69DB: 32 60
C2/69DD: A4 FF
C2/69DF: 15 D0
C2/69E1: 04 A9
C2/69E3: FF 85 19 60
C2/69E7: 16 48
C2/69E9: 09 63 7B
C2/69EC: 3C 09 40
C2/69EF: 53 09
C2/69F1: 3C 09 37
C2/69F4: 49 55 C3
C2/69F7: 91 11
C2/69F9: C0 38 29
C2/69FC: 40
C2/69FD: 38
C2/69FE: 29 60 38
C2/6A01: 29 E5 E0
C2/6A04: 38
C2/6A05: 29 A0 38
C2/6A08: 29 B1 01
C2/6A0B: 03 7C
C2/6A0D: A9 09 04
C2/6A10: 59 09 BA
C2/6A13: 01 23
C2/6A15: E2 21
C2/6A17: C3 01
C2/6A19: EC 29 CC
C2/6A1C: 01 D9
C2/6A1E: 43 E2
C2/6A20: 21 D5
C2/6A22: 01 E3
C2/6A24: 7B
C2/6A25: E3 11
C2/6A27: A9 01 1B
C2/6A2A: A0 39
C2/6A2C: AC 08 A0
C2/6A2F: 3C A5 00
C2/6A32: 7C 19 14
C2/6A35: 02 FD
C2/6A37: C8
C2/6A38: AC 08 C2
C2/6A3B: 20 A9 40
C2/6A3E: 30 9D
C2/6A40: 53 01
C2/6A42: 37 0D
C2/6A44: 00 28
C2/6A46: 3A
C2/6A47: 60
C2/6A48: 33 72
C2/6A4A: C0 33 1A
C2/6A4D: 7E 82 09
C2/6A50: 12 E6
C2/6A52: 19 A0 43
C2/6A55: 04 A6
C2/6A57: 00 97
C2/6A59: FF 8F 05 73
C2/6A5D: 00 FF
C2/6A5F: 61 00
C2/6A61: 82 09 0A
C2/6A64: 9F 20 97 78
C2/6A68: A0 1E
C2/6A6A: 1E 12 82
C2/6A6D: 09 35 66
C2/6A70: A8
C2/6A71: 00 C5
C2/6A73: 53 AD
C2/6A75: 00 A8
C2/6A77: 00 31
C2/6A79: 54 8D 1A
C2/6A7C: 79 AF 94
C2/6A7F: 0A
C2/6A80: 36 09
C2/6A82: 83 7B
C2/6A84: A9 02 64
C2/6A87: 21 4D
C2/6A89: A3 56
C2/6A8B: 19 A0 4A
C2/6A8E: 79 11 82
C2/6A91: 09 07 62
C2/6A94: 02 F1
C2/6A96: F0 A5
C2/6A98: 00 82
C2/6A9A: 09 7B 01
C2/6A9D: A0 C0
C2/6A9F: 03 84
C2/6AA1: D1 15
C2/6AA3: 33 09
C2/6AA5: 52 19
C2/6AA7: E4 09
C2/6AA9: 60
C2/6AAA: A8
C2/6AAB: 00 DB
C2/6AAD: 76 BE
C2/6AAF: 2C 1A 5C
C2/6AB2: 7A
C2/6AB3: 9D 00 35
C2/6AB6: 0D 00 40
C2/6AB9: FF 9D 01 33
C2/6ABD: A9 A0 9D
C2/6AC0: 01 34
C2/6AC2: 4A
C2/6AC3: E4 42
C2/6AC5: 5F F0 22 90
C2/6AC9: F8
C2/6ACA: 2A
C2/6ACB: 82 09 33
C2/6ACE: 62 02 0E
C2/6AD1: 73 01
C2/6AD3: 15 A2
C2/6AD5: 00 8E
C2/6AD7: 09 A6 22
C2/6ADA: 2A
C2/6ADB: 13 E4
C2/6ADD: 11 C4
C2/6ADF: 37 01
C2/6AE1: 2C 03 08
C2/6AE4: 64 21
C2/6AE6: 42 23
C2/6AE8: 82 09 0E
C2/6AEB: A9 EB 40
C2/6AEE: 04 20
C2/6AF0: 0B
C2/6AF1: 01 A5
C2/6AF3: 00 20
C2/6AF5: BD 5C FE     LDA $FE5C,X
C2/6AF8: 82 09 0D     BRL $C07804
C2/6AFB: E6 19        INC $19
C2/6AFD: 64 31        STZ $31
C2/6AFF: A9 80 CF     LDA #$CF80
C2/6B02: 85 33        STA $33
C2/6B04: A0 A0        LDY #$A0
C2/6B06: D2 02        CMP ($02)
C2/6B08: 82 09 08     BRL $C07314
C2/6B0B: A0 FD        LDY #$FD
C2/6B0D: E0 B8        CPX #$B8
C2/6B0F: 1A           INC 
C2/6B10: A5 18        LDA $18
C2/6B12: 29 03 D0     AND #$D003
C2/6B15: 06 2F        ASL $2F
C2/6B17: C2 20        REP #$20
C2/6B19: E6 27        INC $27
C2/6B1B: 5B           TCD 
C2/6B1C: 1A           INC 
C2/6B1D: 02 81        COP $81
C2/6B1F: 02 87        COP $87
C2/6B21: 09 FD 7B     ORA #$7BFD
C2/6B24: A0 00        LDY #$00
C2/6B26: 60           RTS 
C2/6B27: AA           TAX 
C2/6B28: 7C C9 53     JMP ($53C9,X)
C2/6B2B: CD FF 53     CMP $53FF
C2/6B2E: D5 53        CMP $53,X
C2/6B30: A6 1D        LDX $1D
C2/6B32: FE 00 3A     INC $3A00,X
C2/6B35: FF 9E 01 37  SBC $37019E,X
C2/6B39: A5 33        LDA $33
C2/6B3B: 30 56        BMI $6B93
C2/6B3D: A6 FF        LDX $FF
C2/6B3F: 1D 7B A8     ORA $A87B,X
C2/6B42: 9E 01 38     STZ $3801,X
C2/6B45: A6 1D        LDX $1D
C2/6B47: FF BD 01 37  SBC $3701BD,X
C2/6B4B: 18           CLC 
C2/6B4C: 7D 01 38     ADC $3801,X
C2/6B4F: 20 FF A5     JSR $A5FF
C2/6B52: 54 48 AF     MVN $48,$AF
C2/6B55: 12 42        ORA ($42)
C2/6B57: 00 29        BRK $29
C2/6B59: 7F 40 F0 F8  ADC $F8F040,X
C2/6B5D: A9 08 8F     LDA #$8F08
C2/6B60: 1B           TCS 
C2/6B61: 30 08        BMI $6B6B
C2/6B63: BE D6 03     LDX $03D6,Y
C2/6B66: 68           PLA 
C2/6B67: 8F 1C 21 00  STA $00211C
C2/6B6B: DF 0B A6 FF  CMP $FFA60B,X
C2/6B6F: 1D C2 20     ORA $20C2,X
C2/6B72: AF 35 21 00  LDA $002135
C2/6B76: 99 EF 80     STA $80EF,Y
C2/6B79: 41 E2        EOR ($E2,X)
C2/6B7B: 20 BE 0B     JSR $0BBE
C2/6B7E: 38           SEC 
C2/6B7F: 18           CLC 
C2/6B80: 69 DF 04     ADC #$04DF
C2/6B83: 9D 01 38     STA $3801,X
C2/6B86: C8           INY 
C2/6B87: FF 03 C0 C0  SBC $C0C003,X
C2/6B8B: FF 00 D0 B6  SBC $B6D000,X
C2/6B8F: FE 01 37     INC $3701,X
C2/6B92: 38           SEC 
C2/6B93: 60           RTS 
C2/6B94: FD 18 A2     SBC $A218,X
C2/6B97: 03 35        ORA $35,S
C2/6B99: 54 39 54     MVN $39,$54
C2/6B9C: 41 54        EOR ($54,X)
C2/6B9E: D6 AB        DEC $AB,X
C2/6BA0: 1B           TCS 
C2/6BA1: 00 39        BRK $39
C2/6BA3: B3 03        LDA ($03,S),Y
C2/6BA5: 5B           TCD 
C2/6BA6: B7 0B        LDA [$0B],Y
C2/6BA8: A9 10 F4     LDA #$F410
C2/6BAB: FC 03 BE     JSR ($BE03,X)
C2/6BAE: 9B           TXY 
C2/6BAF: 0A           ASL 
C2/6BB0: D5 C3        CMP $C3,X
C2/6BB2: 00 45        BRK $45
C2/6BB4: 99 02 F5     STA $F502,Y
C2/6BB7: 45 F2        EOR $F2
C2/6BB9: 93 B3        STA ($B3,S),Y
C2/6BBB: 08           PHP 
C2/6BBC: 24 18        BIT $18
C2/6BBE: 69 40 EB     ADC #$EB40
C2/6BC1: FF A5 00 EB  SBC $EB00A5,X
C2/6BC5: AA           TAX 
C2/6BC6: BF 6D FE C2  LDA $C2FE6D,X
C2/6BCA: BE A2 03     LDX $03A2,Y
C2/6BCD: B3 54        LDA ($54,S),Y
C2/6BCF: B7 54        LDA [$54],Y
C2/6BD1: C1 16        CMP ($16,X)
C2/6BD3: 1C A9 FB     TRB $FBA9
C2/6BD6: 01 9D        ORA ($9D,X)
C2/6BD8: 1D 04 18     ORA $1804,X
C2/6BDB: 29 01 F0     AND #$F001
C2/6BDE: 0F DE BE 03  ORA $03BEDE
C2/6BE2: 00 39        BRK $39
C2/6BE4: C9 40 B2     CMP #$B240
C2/6BE7: 00 DA        BRK $DA
C2/6BE9: 54 F7 FE     MVN $F7,$FE
C2/6BEC: 00 39        BRK $39
C2/6BEE: 0B           PHD 
C2/6BEF: 0C A9 40     TSB $40A9
C2/6BF2: 8F 05 DD 42  STA $42DD05
C2/6BF6: 31 00        AND ($00),Y
C2/6BF8: 04 42        TSB $42
C2/6BFA: 00 A7        BRK $A7
C2/6BFC: 04 8F        TSB $8F
C2/6BFE: 06 F7        ASL $F7
C2/6C00: 42 00        WDM $00
C2/6C02: EA           NOP 
C2/6C03: CA           DEX 
C2/6C04: 0C 64 F2     TSB $F264
C2/6C07: A0 FC        LDY #$FC
C2/6C09: FF 00 64 E2  SBC $E26400,X
C2/6C0D: 64 E9        STZ $E9
C2/6C0F: 64 EA        STZ $EA
C2/6C11: AF 7F 15 42  LDA $42157F
C2/6C15: 00 85        BRK $85
C2/6C17: E8           INX 
C2/6C18: AF 14 DC 04  LDA $04DC14
C2/6C1C: FD E7 A7     SBC $A7E7,X
C2/6C1F: 04 C5        TSB $C5
C2/6C21: E2 90        SEP #$90
C2/6C23: 02 80        COP $80
C2/6C25: 07 FE        ORA [$FE]
C2/6C27: 2F 02 00 01  AND $010002
C2/6C2B: 80 0C        BRA $6C39
C2/6C2D: 7B           TDC 
C2/6C2E: A5 EA        LDA $EA
C2/6C30: FF 38 E5 E2  SBC $E2E538,X
C2/6C34: C2 20        REP #$20
C2/6C36: 49 FF FF     EOR #$FFFF
C2/6C39: FF 1A 99 FA  SBC $FA991A,X
C2/6C3D: 3D A5 E7     AND $E7A5,X
C2/6C40: 18           CLC 
C2/6C41: 65 FF        ADC $FF
C2/6C43: E9 85 E9     SBC #$E985
C2/6C46: E2 20        SEP #$20
C2/6C48: E6 E2        INC $E2
C2/6C4A: 88           DEY 
C2/6C4B: F6 10        INC $10,X
C2/6C4D: 05 D0        ORA $D0
C2/6C4F: D0 A2        BNE $6BF3
C2/6C51: 03 3D        ORA $3D,S
C2/6C53: 55 41        EOR $41,X
C2/6C55: 55 FF        EOR $FF,X
C2/6C57: 59 55 A0     EOR $A055,Y
C2/6C5A: FF FF 84 10  SBC $1084FF,X
C2/6C5E: A0 FF        LDY #$FF
C2/6C60: 40           RTI 
C2/6C61: 00 84        BRK $84
C2/6C63: 0E A9 7F     ASL $7FA9
C2/6C66: 85 14        STA $14
C2/6C68: F2 5F        SBC ($5F)
C2/6C6A: 0B           PHD 
C2/6C6B: 27 AB        AND [$AB]
C2/6C6D: 13 86        ORA ($86,S),Y
C2/6C6F: 13 36        ORA ($36,S),Y
C2/6C71: C2 20        REP #$20
C2/6C73: A5 FF        LDA $FF
C2/6C75: 27 C9        AND [$C9]
C2/6C77: 1F 01 F0 2F  ORA $2FF001,X
C2/6C7B: C9 00 FF     CMP #$FF00
C2/6C7E: 01 B0        ORA ($B0,X)
C2/6C80: 24 29        BIT $29
C2/6C82: 07 00        ORA [$00]
C2/6C84: D0 1F        BNE $6CA5
C2/6C86: FF A5 27 38  SBC $3827A5,X
C2/6C8A: E9 08 00     SBC #$0008
C2/6C8D: 29 F8 FF     AND #$FFF8
C2/6C90: FF 0A 0A 0A  SBC $0A0A0A,X
C2/6C94: 18           CLC 
C2/6C95: 69 C0 23     ADC #$23C0
C2/6C98: DB           STP 
C2/6C99: 85 12        STA $12
C2/6C9B: 50 45        BVC $6CE2
C2/6C9D: 85 10        STA $10
C2/6C9F: 8E 0B 38     STX $380B
C2/6CA2: 60           RTS 
C2/6CA3: F3 E2        SBC ($E2,S),Y
C2/6CA5: 20 1F 15     JSR $151F
C2/6CA8: 0D 0C A4     ORA $A40C
C2/6CAB: 55 A8        EOR $A8,X
C2/6CAD: 55 4B        EOR $4B,X
C2/6CAF: B2 55        LDA ($55)
C2/6CB1: 95 1C        STA $1C,X
C2/6CB3: 0F F8 02 B0  ORA $B002F8
C2/6CB7: 00 0C        BRK $0C
C2/6CB9: BE 0B FF     LDX $FF0B,Y
C2/6CBC: 33 85        AND ($85,S),Y
C2/6CBE: 32 DE        AND ($DE)
C2/6CC0: 01 33        ORA ($33,X)
C2/6CC2: 38           SEC 
C2/6CC3: 60           RTS 
C2/6CC4: FA           PLX 
C2/6CC5: 70 03        BVS $6CCA
C2/6CC7: 32 0D        AND ($0D)
C2/6CC9: 0C CC 55     TSB $55CC
C2/6CCC: D2 55        CMP ($55)
C2/6CCE: EB           XBA 
C2/6CCF: 73 55        ADC ($55,S),Y
C2/6CD1: 20 B6 03     JSR $03B6
C2/6CD4: 97 0C        STA [$0C],Y
C2/6CD6: 80 9D        BRA $6C75
C2/6CD8: 00 3C        BRK $3C
C2/6CDA: 05 F7        ORA $F7
C2/6CDC: A9 3E 56     LDA #$563E
C2/6CDF: F1 12        SBC ($12),Y
C2/6CE1: 20 5F 75     JSR $755F
C2/6CE4: 38           SEC 
C2/6CE5: FD 60 A5     SBC $A560,X
C2/6CE8: 0C 36 F0     TSB $F036
C2/6CEB: 17 C9        ORA [$C9],Y
C2/6CED: 01 F0        ORA ($F0,X)
C2/6CEF: BF 07 A6 1D  LDA $1DA607,X
C2/6CF3: DE 00 36     DEC $3600,X
C2/6CF6: 9E 05 02     STZ $0205,X
C2/6CF9: F7 A0        SBC [$A0],Y
C2/6CFB: F9 56 AD     SBC $AD56,Y
C2/6CFE: 00 E6        BRK $E6
C2/6D00: 36 80        ROL $80,X
C2/6D02: ED 7F BD     SBC $BD7F
C2/6D05: 01 3B        ORA ($3B,X)
C2/6D07: C9 FE D0     CMP #$D0FE
C2/6D0A: 03 AD        ORA $AD,S
C2/6D0C: 03 AB        ORA $AB,S
C2/6D0E: C2 20        REP #$20
C2/6D10: C0 03 AA     CPY #$AA03
C2/6D13: C2 05        REP #$05
C2/6D15: 75 C6        ADC $C6,X
C2/6D17: 05 20        ORA $20
C2/6D19: F8           SED 
C2/6D1A: B5 0B        LDA $0B,X
C2/6D1C: B7 05        LDA [$05],Y
C2/6D1E: 9A           TXS 
C2/6D1F: 0C 3A 4C     TSB $4C3A
C2/6D22: DC 55 7B     JMP [$7B55]
C2/6D25: FF E6 34 A5  SBC $A534E6,X
C2/6D29: 18           CLC 
C2/6D2A: 18           CLC 
C2/6D2B: 65 34        ADC $34
C2/6D2D: AA           TAX 
C2/6D2E: FF BF 00 FD  SBC $FD00BF,X
C2/6D32: C0 60 23     CPY #$2360
C2/6D35: 7C 01 DF     JMP ($DF01,X)
C2/6D38: 59 56 02     EOR $0256,Y
C2/6D3B: D9 56 1E     CMP $1E56,Y
C2/6D3E: 26 79        ROL $79
C2/6D40: 56 FF        LSR $FF,X
C2/6D42: 02 99        COP $99
C2/6D44: 56 03        LSR $03,X
C2/6D46: B9 56 04     LDA $0456,Y
C2/6D49: D9 FF 56     CMP $56FF,Y
C2/6D4C: FE 63 10     INC $1063,X
C2/6D4F: DE 66 5B     DEC $5B66,X
C2/6D52: 56 FF        LSR $FF,X
C2/6D54: B4 45        LDY $45,X
C2/6D56: 2E 35 08     ROL $0835
C2/6D59: 31 E8        AND ($E8),Y
C2/6D5B: 2C FF C7     BIT $C7FF
C2/6D5E: 28           PLP 
C2/6D5F: A6 24        LDX $24
C2/6D61: A5 1C        LDA $1C
C2/6D63: 84 18        STY $18
C2/6D65: FF 64 14 63  SBC $631464,X
C2/6D69: 10 BB        BPL $6D26
C2/6D6B: 21 36        AND ($36,X)
C2/6D6D: 11 FF        ORA ($FF),Y
C2/6D6F: 7F 73 00 00  ADC $000073,X
C2/6D73: 39 52 D7     AND $D752,Y
C2/6D76: 45 DF        EOR $DF
C2/6D78: 51 39        EOR ($39),Y
C2/6D7A: EC 2C E7     CPX $E72C
C2/6D7D: 44 16 85     MVP $16,$85
C2/6D80: 20 EF 84     JSR $84EF
C2/6D83: 18           CLC 
C2/6D84: 84 14        STY $14
C2/6D86: 4D 2E 7B     EOR $7B2E
C2/6D89: 5A           PHY 
C2/6D8A: 00 FF        BRK $FF
C2/6D8C: 00 94        BRK $94
C2/6D8E: 3D 53 35     AND $3553,X
C2/6D91: EE 2C AA     INC $AA2C
C2/6D94: 1B           TCS 
C2/6D95: 24 A5        BIT $A5
C2/6D97: 66 06        ROR $06
C2/6D99: 64 1C        STZ $1C
C2/6D9B: 4D 0E 89     EOR $890E
C2/6D9E: 1E 51 0E     ASL $0E51,X
C2/6DA1: FF D6 45 00  SBC $0045D6,X
C2/6DA5: 00 AA        BRK $AA
C2/6DA7: 20 A7 20     JSR $20A7
C2/6DAA: CF 85 1C 43  CMP $431C85
C2/6DAE: 18           CLC 
C2/6DAF: 89 2E 89     BIT #$892E
C2/6DB2: 4E CC 24     LSR $24CC
C2/6DB5: F8           SED 
C2/6DB6: 13 09        ORA ($09,S),Y
C2/6DB8: B9 9E 51     LDA $519E,Y
C2/6DBB: 0E 63 10     ASL $1063
C2/6DBE: AA           TAX 
C2/6DBF: 7C FD 9F     JMP ($9FFD,X)
C2/6DC2: 56 01        LSR $01,X
C2/6DC4: 57 36        EOR [$36],Y
C2/6DC6: 57 AB        EOR [$AB],Y
C2/6DC8: 13 FE        ORA ($FE,S),Y
C2/6DCA: 05 29        ORA $29
C2/6DCC: 5F 03 F0 37  EOR $37F003,X
C2/6DD0: 0A           ASL 
C2/6DD1: AA           TAX 
C2/6DD2: F1 05        SBC ($05),Y
C2/6DD4: 46 DE        LSR $DE
C2/6DD6: 06 2E        ASL $2E
C2/6DD8: F1 12        SBC ($12),Y
C2/6DDA: E2 20        SEP #$20
C2/6DDC: DA           PHX 
C2/6DDD: FE 05 FA     INC $FA05,X
C2/6DE0: F8           SED 
C2/6DE1: 02 FB        COP $FB
C2/6DE3: 16 77        ASL $77,X
C2/6DE5: 29 7F 69     AND #$697F
C2/6DE8: 28           PLP 
C2/6DE9: 04 34        TSB $34
C2/6DEB: A6 1D        LDX $1D
C2/6DED: C4 05        CPY $05
C2/6DEF: BC BE 0B     LDY $0BBE,X
C2/6DF2: E9 05 F0     SBC #$F005
C2/6DF5: 05 20        ORA $20
C2/6DF7: 8D C6 05     STA $05C6
C2/6DFA: 18           CLC 
C2/6DFB: FF 60 00 00  SBC $000060,X
C2/6DFF: 4E 57 66     LSR $6657
C2/6E02: 57 4E        EOR [$4E],Y
C2/6E04: FF 57 7F 57  SBC $577F57,X
C2/6E08: 01 7E        ORA ($7E,X)
C2/6E0A: 57 01        EOR [$01],Y
C2/6E0C: 84 6A        STY $6A
C2/6E0E: 2D 17 91     AND $9117
C2/6E11: 2D 17 9E     AND $9E17
C2/6E14: 2D 0F FE     AND $FE0F
C2/6E17: AB           PLB 
C2/6E18: 2D 17 D5     AND $D517
C2/6E1B: B0 2D        BCS $6E4A
C2/6E1D: 17 BD        ORA [$BD],Y
C2/6E1F: 2D 17 CA     AND $CA17
C2/6E22: 3F 17 00 01  AND $010017,X
C2/6E26: DF 08 00 4C  CMP $4C0008,X
C2/6E2A: 35 03        AND $03,X
C2/6E2C: 24 07        BIT $07
C2/6E2E: 35 10        AND $10,X
C2/6E30: FF 00 60 35  SBC $356000,X
C2/6E34: 08           PHP 
C2/6E35: 10 62        BPL $6E99
C2/6E37: 35 03        AND $03,X
C2/6E39: F7 08        SBC [$08],Y
C2/6E3B: 00 64        BRK $64
C2/6E3D: 6A           ROR 
C2/6E3E: 07 66        ORA [$66]
C2/6E40: 35 08        AND $08,X
C2/6E42: 20 D5 68     JSR $68D5
C2/6E45: 6E 0F 6A     ROR $6A0F
C2/6E48: 6A           ROR 
C2/6E49: 07 6C        ORA [$6C]
C2/6E4B: 77 07        ADC [$07],Y
C2/6E4D: 6E 35 FE     ROR $FE35
C2/6E50: 5D 0F 75     EOR $750F,X
C2/6E53: 03 10        ORA $10,S
C2/6E55: 00 4E        BRK $4E
C2/6E57: 75 08        ADC $08,X
C2/6E59: 97 00        STA [$00],Y
C2/6E5B: 60           RTS 
C2/6E5C: 75 6B        ADC $6B,X
C2/6E5E: 07 75        ORA [$75]
C2/6E60: 6F 0F 96 07  ADC $07960F
C2/6E64: 66 A9        ROR $A9
C2/6E66: 75 78        ADC $78,X
C2/6E68: 07 9A        ORA [$9A]
C2/6E6A: 0F 6A 96 07  ORA $07966A
C2/6E6E: 6C A3 07     JMP ($07A3)
C2/6E71: 6E FF 75     ROR $75FF
C2/6E74: 40           RTI 
C2/6E75: A8           TAY 
C2/6E76: 40           RTI 
C2/6E77: 70 B0        BVS $6E29
C2/6E79: 48           PHA 
C2/6E7A: 68           PLA 
C2/6E7B: FF A8 70 68  SBC $6870A8,X
C2/6E7F: 60           RTS 
C2/6E80: A8           TAY 
C2/6E81: 80 D0        BRA $6E53
C2/6E83: 88           DEY 
C2/6E84: FF 58 90 A8  SBC $A89058,X
C2/6E88: 98           TYA 
C2/6E89: 88           DEY 
C2/6E8A: 50 58        BVC $6EE4
C2/6E8C: 70 FF        BVS $6E8D
C2/6E8E: 60           RTS 
C2/6E8F: 90 60        BCC $6EF1
C2/6E91: 10 78        BPL $6F0B
C2/6E93: 08           PHP 
C2/6E94: C2 30        REP #$30
C2/6E96: FF 48 DA 5A  SBC $5ADA48,X
C2/6E9A: 8B           PHB 
C2/6E9B: 0B           PHD 
C2/6E9C: 20 2F 50     JSR $502F
C2/6E9F: FF 20 13 58  SBC $581320,X
C2/6EA3: 20 72 58     JSR $5872
C2/6EA6: 20 43 FD     JSR $FD43
C2/6EA9: 50 0B        BVC $6EB6
C2/6EAB: 01 C2        ORA ($C2,X)
C2/6EAD: 30 2B        BMI $6EDA
C2/6EAF: AB           PLB 
C2/6EB0: 7A           PLY 
C2/6EB1: FA           PLX 
C2/6EB2: 77 68        ADC [$68],Y
C2/6EB4: 28           PLP 
C2/6EB5: 6B           RTL 

C2/6EB6: 5D 00 20     EOR $2000,X
C2/6EB9: 3C 58 69     BIT $6958,X
C2/6EBC: 02 F2        COP $F2
C2/6EBE: 72 38        ADC ($38)
C2/6EC0: 04 7D        TSB $7D
C2/6EC2: 28           PLP 
C2/6EC3: 64 38        STZ $38
C2/6EC5: FF 61 60 8B  SBC $8B6061,X
C2/6EC9: FF A9 00 48  SBC $4800A9,X
C2/6ECD: AB           PLB 
C2/6ECE: A9 03 8D     LDA #$8D03
C2/6ED1: 01 FF        ORA ($FF,X)
C2/6ED3: 21 A6        AND ($A6,X)
C2/6ED5: 00 8E        BRK $8E
C2/6ED7: 02 21        COP $21
C2/6ED9: A9 07 FF     LDA #$FF07
C2/6EDC: 8D 05 21     STA $2105
C2/6EDF: A9 78 8D     LDA #$8D78
C2/6EE2: 07 21        ORA [$21]
C2/6EE4: FF A9 7C 8D  SBC $8D7CA9,X
C2/6EE8: 08           PHP 
C2/6EE9: 21 A9        AND ($A9,X)
C2/6EEB: 74 8D        STZ $8D,X
C2/6EED: FF 09 21 8D  SBC $8D2109,X
C2/6EF1: 0A           ASL 
C2/6EF2: 21 A9        AND ($A9,X)
C2/6EF4: 22 8D FF 0B  JSR $0BFF8D
C2/6EF8: 21 A9        AND ($A9,X)
C2/6EFA: 77 8D        ADC [$8D],Y
C2/6EFC: 0C 21 7B     TSB $7B21
C2/6EFF: 6F 8D 1A 21  ADC $211A8D
C2/6F03: AB           PLB 
C2/6F04: 85 30        STA $30
C2/6F06: AD 58 90     LDA $9058
C2/6F09: F8           SED 
C2/6F0A: FE B2 38     INC $38B2,X
C2/6F0D: 22 0C 00 EE  JSR $EE000C
C2/6F11: 60           RTS 
C2/6F12: B5 58        LDA $58,X
C2/6F14: FF 4C 5A 66  SBC $665A4C,X
C2/6F18: 5A           PHY 
C2/6F19: 70 5A        BVS $6F75
C2/6F1B: 20 70 EF     JSR $EF70
C2/6F1E: 5C 20 5D 5B  JMP $5B5D20
C2/6F22: 1A           INC 
C2/6F23: 10 22        BPL $6F47
C2/6F25: 09 00 FF     ORA #$FF00
C2/6F28: EE 22 03     INC $0322
C2/6F2B: 00 EE        BRK $EE
C2/6F2D: AB           PLB 
C2/6F2E: 20 45 51     JSR $5145
C2/6F31: 5C 08 01 28  JMP $280108
C2/6F35: 0B           PHD 
C2/6F36: 43 61        EOR $61,S
C2/6F38: 60           RTS 
C2/6F39: 4A           LSR 
C2/6F3A: 29 80 4A     AND #$4A80
C2/6F3D: 29 F1 A0     AND #$A0F1
C2/6F40: 4A           LSR 
C2/6F41: 29 37 79     AND #$7937
C2/6F44: BA           TSX 
C2/6F45: B9 A9 68     LDA $68A9,Y
C2/6F48: 85 39        STA $39
C2/6F4A: FF A9 48 85  SBC $8548A9,X
C2/6F4E: 3A           DEC 
C2/6F4F: A9 78 85     LDA #$8578
C2/6F52: 3B           TSC 
C2/6F53: EF A9 C0 85  SBC $85C0A9
C2/6F57: 3C 70 03     BIT $0370,X
C2/6F5A: 3D A9 90     AND $90A9,X
C2/6F5D: FF 85 3E 64  SBC $643E85,X
C2/6F61: 29 64 2A     AND #$2A64
C2/6F64: A0 38        LDY #$38
C2/6F66: 7F 00 84 2B  ADC $2B8400,X
C2/6F6A: 64 37        STZ $37
C2/6F6C: 64 38        STZ $38
C2/6F6E: 72 00        ADC ($00)
C2/6F70: 7B           TDC 
C2/6F71: C0 5F 77     CPY #$775F
C2/6F74: 00 7B        BRK $7B
C2/6F76: 20 08 5B     JSR $5B08
C2/6F79: B1 02        LDA ($02),Y
C2/6F7B: 32 36        AND ($36)
C2/6F7D: 01 02        ORA ($02,X)
C2/6F7F: 35 01        AND $01,X
C2/6F81: 33 0B        AND ($0B,S),Y
C2/6F83: 90 64        BCC $6FE9
C2/6F85: B1 12        LDA ($12),Y
C2/6F87: BF 08 40 46  LDA $464008,X
C2/6F8B: 01 A7        ORA ($A7,X)
C2/6F8D: 12 C9        ORA ($C9)
C2/6F8F: 00 46        BRK $46
C2/6F91: 01 05        ORA ($05,X)
C2/6F93: 1A           INC 
C2/6F94: 44 11 06     MVP $11,$06
C2/6F97: 3B           TSC 
C2/6F98: 13 BF        ORA ($BF,S),Y
C2/6F9A: 31 A0        AND ($A0),Y
C2/6F9C: 70 64        BVS $7002
C2/6F9E: A9 03 A8     LDA #$A803
C2/6FA1: 22 10 24 52  JSR $522410
C2/6FA5: 21 ED        AND ($ED,X)
C2/6FA7: 00 30        BRK $30
C2/6FA9: 52 21        EOR ($21)
C2/6FAB: C3 01        CMP $01,S
C2/6FAD: 50 52        BVC $7001
C2/6FAF: 21 FF        AND ($FF,X)
C2/6FB1: 39 B2 72     AND $72B2,Y
C2/6FB4: 00 27        BRK $27
C2/6FB6: 30 09        BMI $6FC1
C2/6FB8: 72 00        ADC ($00)
C2/6FBA: ED 5A 8D     SBC $8D5A
C2/6FBD: 1A           INC 
C2/6FBE: 92 DE        STA ($DE)
C2/6FC0: B1 09        LDA ($09),Y
C2/6FC2: 7B           TDC 
C2/6FC3: 9D 01 39     STA $3901,X
C2/6FC6: 9A           TXS 
C2/6FC7: 0C 36 A9     TSB $A936
C2/6FCA: F9 5A 9C     SBC $9C5A,Y
C2/6FCD: 04 2F        TSB $2F
C2/6FCF: 02 A0        COP $A0
C2/6FD1: FF 9D 00 38  SBC $38009D,X
C2/6FD5: 50 F4        BVC $6FCB
C2/6FD7: 02 B6        COP $B6
C2/6FD9: 21 9A        AND ($9A,X)
C2/6FDB: 04 BF        TSB $BF
C2/6FDD: 01 0A        ORA ($0A,X)
C2/6FDF: 03 0E        ORA $0E,S
C2/6FE1: 28           PLP 
C2/6FE2: C8           INY 
C2/6FE3: 19 55 60     ORA $6055,Y
C2/6FE6: CF 61 02 BE  CMP $BE0261
C2/6FEA: 09 07 03     ORA #$0307
C2/6FED: 0E 2D C8     ASL $C82D
C2/6FF0: 19 FD 80     ORA $80FD,Y
C2/6FF3: CF 19 E6 19  CMP $19E619
C2/6FF7: A9 01 85     LDA #$8501
C2/6FFA: 32 76        AND ($76)
C2/6FFC: 63 00        ADC $00,S
C2/6FFE: A0 CA        LDY #$CA