Final Fantasy VI/ROM map/Assembly C24

From Data Crystal
< Final Fantasy VI‎ | ROM map
Revision as of 18:20, 29 October 2013 by HatZen08 (talk | contribs) (assembly C24)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Special effect $4A (Super Ball)

C2/402C: A9 7D        LDA #$7D
C2/402E: 85 B6        STA $B6     (Set Animation)
C2/4030: 20 5A 4B     JSR $4B5A   (0 to 255)
C2/4033: 29 03        AND #$03    (0 to 3)
C2/4035: 80 02        BRA $4039
C2/4037: A9 07        LDA #$07    (Special Effect $2C, Launcher, jumps here)
C2/4039: 8D 05 34     STA $3405   (# of hits to do.  this is a zero-based counter, so
                                   a value of 0 means 1 hit.)
C2/403C: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/403E: B9 18 30     LDA $3018,Y
C2/4041: 85 A6        STA $A6     (mark attacker as "reflected off of", which will later
                                   trigger function C2/3483 and cause him/her to be
                                   treated as the missile launcher or ball thrower.)
C2/4043: 60           RTS 


Special Effect 2 (Atma Weapon)

C2/4044: A9 20        LDA #$20
C2/4046: 0C A2 11     TSB $11A2   (Set attack to ignore defense)
C2/4049: A9 02        LDA #$02
C2/404B: 04 B2        TSB $B2     (Set no critical & ignore True Knight)
C2/404D: 60           RTS 


Warp effect (Warp Stone uses same effect)

C2/404E: A5 B1        LDA $B1
C2/4050: 89 04        BIT #$04    (is "Can't Escape" flag set by an active enemy?)
C2/4052: D0 06        BNE $405A   (branch if so)
C2/4054: A9 02        LDA #$02
C2/4056: 8D 6E 3A     STA $3A6E
C2/4059: 60           RTS 


C2/405A: A9 0A        LDA #$0A
C2/405C: 8D 01 34     STA $3401   (Display can't run text)
C2/405F: 80 3B        BRA $409C   (Miss all targets)


Bababreath from 42E1

C2/4061: 64 EE        STZ $EE
C2/4063: A2 06        LDX #$06
C2/4065: BD A0 3A     LDA $3AA0,X
C2/4068: 4A           LSR 
C2/4069: 90 11        BCC $407C
C2/406B: BD E4 3E     LDA $3EE4,X (Status byte 1)
C2/406E: 89 C2        BIT #$C2    (Check for Dead, Zombie, or Petrify)
C2/4070: F0 0A        BEQ $407C   (Branch if none set)
C2/4072: BD 18 30     LDA $3018,X
C2/4075: 2C 2C 3F     BIT $3F2C
C2/4078: D0 02        BNE $407C   (branch if airborne from jump?)
C2/407A: 85 EE        STA $EE
C2/407C: CA           DEX 
C2/407D: CA           DEX 
C2/407E: 10 E5        BPL $4065   (Loop through all 4 characters)
C2/4080: A5 EE        LDA $EE
C2/4082: D0 09        BNE $408D   (if any character is Dead/Zombied/Petrified and not
                                   airborne, use it as target instead.  if there're
                                   multiple such characters, use the one who's closest
                                   to the start of the party lineup.)
C2/4084: AD 76 3A     LDA $3A76   (Number of characters in party)
C2/4087: C9 02        CMP #$02
C2/4089: B0 2F        BCS $40BA   (Exit function if 2+ characters alive, retaining
                                   the initial target)
C2/408B: 80 0F        BRA $409C   (Miss all targets, because we don't want to blow away
                                   the only living character.)

C2/408D: 85 B8        STA $B8     (save the Dead/Zombied/Petrified character as sole
                                   target)
C2/408F: 64 B9        STZ $B9     (clear any monster targets)
C2/4091: BB           TYX 
C2/4092: 4C C2 57     JMP $57C2


Special effect $50 - Possess
106/256 chance to miss

C2/4095: 20 5A 4B     JSR $4B5A   (Random Number Function 0 to 255)
C2/4098: C9 96        CMP #$96
C2/409A: 90 1E        BCC $40BA   (Exit function if A < #$96)
C2/409C: 64 A4        STZ $A4     (Make target nothing)
C2/409E: 64 A5        STZ $A5
C2/40A0: 60           RTS 


L? Pearl from 42E1

C2/40A1: AD 62 18     LDA $1862   (the following code will divide our 24-bit
                                   gold, held in $1860 - $1862, by 10.) 
C2/40A4: EB           XBA 
C2/40A5: AD 61 18     LDA $1861
C2/40A8: A2 0A        LDX #$0A
C2/40AA: 20 92 47     JSR $4792   (Divides top 2 bytes of gold by 10.  put
                                   quotient in A, and remainder in X.)
C2/40AD: 8A           TXA 
C2/40AE: EB           XBA 
C2/40AF: AD 60 18     LDA $1860   (16-bit A = (above remainder * 256)
                                   + bottom byte of gold)
C2/40B2: A2 0A        LDX #$0A
C2/40B4: 20 92 47     JSR $4792   (X = gold amount MOD 10, i.e. the ones digit
                                   of GP)
C2/40B7: 8E A8 11     STX $11A8   (Save as Hit rate / level multiplier for
                                   LX spells)
C2/40BA: 60           RTS 


Escape

C2/40BB: C0 08        CPY #$08
C2/40BD: B0 FB        BCS $40BA  (Exit if character)
C2/40BF: A9 22        LDA #$22
C2/40C1: 85 B5        STA $B5
C2/40C3: A9 10        LDA #$10
C2/40C5: 04 A0        TSB $A0
C2/40C7: 60           RTS 


Special effect $4B - Smoke Bomb

C2/40C8: A9 04        LDA #$04
C2/40CA: 24 B1        BIT $B1     (is "Can't Escape" flag set by an active enemy?)
C2/40CC: F0 EC        BEQ $40BA   (Exit if not)
C2/40CE: 20 9C 40     JSR $409C   (Set to no targets)
C2/40D1: 9C A9 11     STZ $11A9   (Clear special effect)
C2/40D4: A9 09        LDA #$09
C2/40D6: 8D 01 34     STA $3401   (Display text #9)
C2/40D9: 60           RTS 


Forcefield

C2/40DA: 7B           TDC         (Clear Accumulator)
C2/40DB: A9 FF        LDA #$FF
C2/40DD: 4D C8 3E     EOR $3EC8   
C2/40E0: F0 BA        BEQ $409C   (Miss if all elements nullified)
C2/40E2: 20 2A 52     JSR $522A   (Randomly pick a set bit)
C2/40E5: 0C C8 3E     TSB $3EC8   (Set that bit in $3EC8)
C2/40E8: 20 F0 51     JSR $51F0
C2/40EB: 8A           TXA 
C2/40EC: 18           CLC 
C2/40ED: 69 37        ADC #$37
C2/40EF: 80 E5        BRA $40D6


Quadra Slam, Quadra Slice, etc.
4 Random attacks

C2/40F1: A9 03        LDA #$03
C2/40F3: 8D 70 3A     STA $3A70   (# of attacks)
C2/40F6: A9 40        LDA #$40
C2/40F8: 04 BA        TSB $BA     (Sets randomize target)
C2/40FA: 9C A9 11     STZ $11A9   (Clears special effect)
C2/40FD: 60           RTS 


Blow Fish

C2/40FE: A9 60        LDA #$60
C2/4100: 0C A2 11     TSB $11A2   (Set Ignore defense, and no split damage)
C2/4103: 9C 14 34     STZ $3414   (Set to not modify damage)
C2/4106: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/4108: A9 E8 03     LDA #$03E8  
C2/410B: 8D B0 11     STA $11B0   (Set damage to 1000)
C2/410E: 60           RTS 


Flare Star

C2/410F: 9C 14 34     STZ $3414   (Set to not modify damage)
C2/4112: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/4114: A5 A2        LDA $A2     (Bitfield of targets)
C2/4116: 20 2A 52     JSR $522A   (A = a random target present in $A2)
C2/4119: 20 F9 51     JSR $51F9   (Y = [Number of highest target set in A] * 2.
                                   so we're obtaining a target index.)
C2/411C: A5 A2        LDA $A2
C2/411E: 20 0E 52     JSR $520E   (X = number of bits set in A, so # of targets)
C2/4121: E2 20        SEP #$20    (Set 8-bit Accumulator)
C2/4123: B9 18 3B     LDA $3B18,Y (Level)
C2/4126: EB           XBA 
C2/4127: AD A6 11     LDA $11A6   (Spell Power)
C2/412A: 20 81 47     JSR $4781   (Spell Power * Level)
C2/412D: 20 92 47     JSR $4792   (Divide by X, the number of targets)
C2/4130: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/4132: 8D B0 11     STA $11B0   (Store in maximum damage)
C2/4135: 60           RTS 


(Special effect $4C - Elixir and Megalixir.  In Item data, this appears as
 Special effect $04)
     
C2/4136: A9 80        LDA #$80
C2/4138: 1C A3 11     TRB $11A3   (Clears concern MP)
C2/413B: 60           RTS 


(Special effect $28 - Mind Blast)

C2/413C: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/413E: A0 06        LDY #$06
C2/4140: A5 A4        LDA $A4
C2/4142: 20 2A 52     JSR $522A   (Randomly pick an entity from among the targets)
C2/4145: 99 5C 3A     STA $3A5C,Y (add them to "Mind Blast victims" list.  the
                                   other Mind blast special effect will later try
                                   to give an ailment to each entry in the list.
                                   and yes, there can be duplicates.)
C2/4148: 88           DEY 
C2/4149: 88           DEY 
C2/414A: 10 F4        BPL $4140   (Do four times)
C2/414C: 60           RTS 


(Miss random targets
 Special Effect $29 - N. Cross
 Each target will have a 50% chance of being untargeted.)

C2/414D: 20 5A 4B     JSR $4B5A   (random #: 0 to 255)
C2/4150: 14 A4        TRB $A4
C2/4152: 20 5A 4B     JSR $4B5A   (random #: 0 to 255)
C2/4155: 14 A5        TRB $A5
C2/4157: 60           RTS 


(Dice Effect)

C2/4158: 9C 14 34     STZ $3414   (Set to not modify damage)
C2/415B: A9 20        LDA #$20    
C2/415D: 0C A4 11     TSB $11A4   (Makes unblockable)
C2/4160: A9 0F        LDA #$0F
C2/4162: 85 B6        STA $B6     (Third die defaults to null to start with)
C2/4164: 7B           TDC 
C2/4165: 20 5A 4B     JSR $4B5A   (Random Number Function 0 to 255)
C2/4168: 48           PHA 
C2/4169: 29 0F        AND #$0F    (0 to 15)
C2/416B: A2 06        LDX #$06    (will divide bottom nibble of random number by 6)
C2/416D: 20 92 47     JSR $4792   (Division A/X.  X will hold A MOD X)
C2/4170: 86 B7        STX $B7     (First die roll, 0 to 5 -- 3/16 chance of 0 thru 3 each,
                                   2/16 chance of 4 thru 5 each)
C2/4172: E8           INX 
C2/4173: 86 EE        STX $EE     (Save first die roll, 1 to 6)
C2/4175: 68           PLA         (Retrieve our 0-255 random number)
C2/4176: A2 60        LDX #$60    (will divide top nibble of random number by 6)
C2/4178: 20 92 47     JSR $4792   (Division A/X)
C2/417B: 8A           TXA         (get MOD of division)
C2/417C: 29 F0        AND #$F0    (0 to 5)
C2/417E: 05 B7        ORA $B7
C2/4180: 85 B7        STA $B7     ($B7: bottom nibble = 1st die roll 0 thru 5,
                                   top nibble = 2nd die roll 0 thru 5)
C2/4182: 4A           LSR 
C2/4183: 4A           LSR 
C2/4184: 4A           LSR 
C2/4185: 4A           LSR 
C2/4186: 1A           INC         (2nd die roll, converted to a 1 thru 6 value)
C2/4187: EB           XBA         (1 to 6)
C2/4188: A5 EE        LDA $EE     (Get first die roll, 1 to 6)
C2/418A: 20 81 47     JSR $4781   (Multiply)
C2/418D: 85 EE        STA $EE     ($EE = 1st roll * 2nd roll, where each roll is 1 thru 6)
C2/418F: AD A8 11     LDA $11A8   (# of dice)
C2/4192: C9 03        CMP #$03
C2/4194: 90 15        BCC $41AB   (Branch if less than 3 dice, i.e. there's 2)
C2/4196: 7B           TDC         (Clear Accumulator)
C2/4197: AD 1E 02     LDA $021E   (our 1-60 frame counter?  because 6 divides evenly into 60,
                                   the third die has the same odds for all sides; it is NOT
                                   slanted against you like the first two dice.)
C2/419A: A2 06        LDX #$06
C2/419C: 20 92 47     JSR $4792   (Division A/X)
C2/419F: 8A           TXA         (new random number MOD 6)
C2/41A0: 85 B6        STA $B6     (save third die roll)
C2/41A2: 1A           INC         
C2/41A3: EB           XBA         (3rd die roll, converted to a 1 thru 6 value)
C2/41A4: A5 EE        LDA $EE     
C2/41A6: 20 81 47     JSR $4781   ( (1st roll * 2nd roll) * 3rd roll)
C2/41A9: 85 EE        STA $EE     ($EE = 1st roll * 2nd roll * 3rd roll, where each roll
                                   is 1 thru 6)
C2/41AB: A2 00        LDX #$00    
C2/41AD: A5 B6        LDA $B6     (holds third die roll [0 to 5] if 3 dice,
                                   or F if only 2 dice)
C2/41AF: 0A           ASL 
C2/41B0: 0A           ASL 
C2/41B1: 0A           ASL 
C2/41B2: 0A           ASL 
C2/41B3: 05 B6        ORA $B6     (A: if 2 dice, A = FF.  if 3 dice, A top nibble = 3rd die roll,
                                   and A bottom nibble = 3rd die roll)
C2/41B5: C5 B7        CMP $B7     (does 3rd die roll match both 1st and 2nd?
                                   obviously, it can NEVER if A = FF)
C2/41B7: D0 02        BNE $41BB   (if no match, branch)
C2/41B9: A6 B6        LDX $B6     (X = 0 if there's not 3 matching dice.  if there are,
                                   we've got a bonus coming, so let X be the 0 thru 5
                                   roll value)
C2/41BB: A5 EE        LDA $EE     (depending on # of dice, retrieve either:
                                    1st roll * 2nd roll   OR
                                    1st roll * 2nd roll * 3rd roll)
C2/41BD: EB           XBA 
C2/41BE: AD AF 11     LDA $11AF   (Level)
C2/41C1: 0A           ASL 
C2/41C2: 20 81 47     JSR $4781   ( (1st roll * 2nd roll * 3rd roll) * (Level * 2) )
C2/41C5: C2 20        REP #$20    (set 16 bit-Accumulator)
C2/41C7: 85 EE        STA $EE     (overall damage = 
                                   2 Dice: 1st roll * 2nd roll * Level * 2,
                                   3 Dice: 1st roll * 2nd roll * 3rd roll * Level * 2)
C2/41C9: 18           CLC 
C2/41CA: 8D B0 11     STA $11B0   (save damage)
C2/41CD: A5 EE        LDA $EE
C2/41CF: 6D B0 11     ADC $11B0   (Add [Level * 1st roll * 2nd roll * 3rd roll * 2]
                                   or [Level * 1st roll * 2nd roll * 2] to damage)
C2/41D2: 90 02        BCC $41D6   (branch if it didn't overflow)
C2/41D4: 7B           TDC 
C2/41D5: 3A           DEC         (set running damage to 65535)
C2/41D6: CA           DEX 
C2/41D7: 10 F0        BPL $41C9   (Add the damage to itself X times, where X is the value
                                   as commented at C2/41B9.  This loop serves to multiply
                                   3 matching dice by the roll value once more.

                                   if X is 0 (i.e. no 3 matching dice, or 3 matching dice with
                                   a value of 1), the added damage is never saved.  only the
                                   initial, unmultiplied damage is saved.  which makes
                                   sense, because multiplying by 1 shouldn't boost the damage,
                                   and we shouldn't get a bonus without 3 matching dice.

                                   after this loop, the damage will be:
                                     Roll * Roll * Roll * Level * 2 * Roll
                                   if there are 3 matching dice. )

C2/41D9: E2 20        SEP #$20    (8-bit Accumulator)
C2/41DB: A5 B5        LDA $B5     
C2/41DD: C9 00        CMP #$00
C2/41DF: D0 02        BNE $41E3   (Branch if command not Fight)
C2/41E1: A9 26        LDA #$26
C2/41E3: 85 B5        STA $B5     (Store a dice toss animation?)
C2/41E5: 60           RTS 


Revenge

C2/41E6: 9C 14 34     STZ $3414   (Set to not modify damage)
C2/41E9: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/41EB: 38           SEC 
C2/41EC: B9 1C 3C     LDA $3C1C,Y (Max HP)
C2/41EF: F9 F4 3B     SBC $3BF4,Y (HP)
C2/41F2: 8D B0 11     STA $11B0   (Damage = Max HP - HP)
C2/41F5: 60           RTS 


Palidor from $42E1
Makes not jump if you have Petrify, Sleep, Stop, Hide, or Freeze status

C2/41F6: A9 10        LDA #$10
C2/41F8: 0C 46 3A     TSB $3A46
C2/41FB: C2 20        REP #$20
C2/41FD: A2 12        LDX #$12
C2/41FF: BD E4 3E     LDA $3EE4,X
C2/4202: 89 40 80     BIT #$8040  (Check for Petrify or Sleep)
C2/4205: D0 08        BNE $420F   (branch if any set)
C2/4207: BD F8 3E     LDA $3EF8,X
C2/420A: 89 10 22     BIT #$2210  (Check for Stop, Hide, or Freeze)
C2/420D: F0 07        BEQ $4216   (branch if none set)
C2/420F: BD 18 30     LDA $3018,X
C2/4212: 14 A2        TRB $A2     (Remove from being a target)
C2/4214: 14 A4        TRB $A4
C2/4216: CA           DEX 
C2/4217: CA           DEX 
C2/4218: 10 E5        BPL $41FF
C2/421A: 60           RTS 


Empowerer

C2/421B: AD A3 11     LDA $11A3
C2/421E: 49 80        EOR #$80    (Toggle Concern MP)
C2/4220: 8D A3 11     STA $11A3
C2/4223: 10 05        BPL $422A   (Branch if not Concern MP -- this means we're
                                   currently on the first "strike", which affects HP)
C2/4225: A9 12        LDA #$12
C2/4227: 85 B5        STA $B5     (save Nothing [Mimic] as command animation.
                                   this means the spell animation won't be repeated
                                   for the MP-draining phase of Empowerer.)
C2/4229: 60           RTS 

C2/422A: EE 70 3A     INC $3A70   (make the attack, including this special effect,
                                   get repeated)
C2/422D: 4E A6 11     LSR $11A6
C2/4230: 4E A6 11     LSR $11A6   (Cut Spell Power to 1/4 for 2nd "strike", which
                                   will affect MP)
C2/4233: 60           RTS 


Spiraler

C2/4234: BB           TYX
C2/4235: BD 18 30     LDA $3018,X
C2/4238: 14 A2        TRB $A2
C2/423A: 14 A4        TRB $A4      (Miss yourself)
C2/423C: 0C 4C 2F     TSB $2F4C    (mark attacker to be removed from the battlefield?)
C2/423F: 20 4A 38     JSR $384A    (Mark death and hide to be set)
C2/4242: C2 20        REP #$20     (Set 16-bit Accumulator)
C2/4244: 9E F4 3B     STZ $3BF4,X  (Zeroes HP of attacker)
C2/4247: 9E 08 3C     STZ $3C08,X  (Zeroes MP of attacker)
C2/424A: 60           RTS 


Discard

C2/424B: 20 9C 40     JSR $409C   (Miss all targets?)
C2/424E: A9 20        LDA #$20
C2/4250: 0C A4 11     TSB $11A4   (Set Can't be dodged)
C2/4253: BE 58 33     LDX $3358,Y (whom you are Seizing)
C2/4256: 30 F2        BMI $424A   (Exit if not Seizing anybody)
C2/4258: BD 18 30     LDA $3018,X
C2/425B: 85 B8        STA $B8
C2/425D: 64 B9        STZ $B9
C2/425F: BB           TYX 
C2/4260: 4C C2 57     JMP $57C2


Mantra

C2/4263: A9 60        LDA #$60
C2/4265: 0C A2 11     TSB $11A2   (Set no split damage, & ignore defense)
C2/4268: 9C 14 34     STZ $3414   (Set to not modify damage)
C2/426B: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/426D: B9 18 30     LDA $3018,Y
C2/4270: 14 A4        TRB $A4     (Make miss yourself)
C2/4272: AE C9 3E     LDX $3EC9   (Number of targets)
C2/4275: CA           DEX 
C2/4276: B9 F4 3B     LDA $3BF4,Y
C2/4279: 20 92 47     JSR $4792   (HP / (Number of targets - 1) )
C2/427C: 8D B0 11     STA $11B0   (Set damage)
C2/427F: 60           RTS 


Special Effect $42
Cuts damage to 1/4

C2/4280: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/4282: 4E B0 11     LSR $11B0   (Halves damage)
C2/4285: C2 20        REP #$20    (Special effect $41 jumps here)
C2/4287: 4E B0 11     LSR $11B0   (Halves damage) 
C2/428A: 60           RTS 


Suplex code from 42E1
(Picks a random target)

C2/428B: A9 10        LDA #$10
C2/428D: 04 B0        TSB $B0
C2/428F: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/4291: A5 A2        LDA $A2
C2/4293: 85 EE        STA $EE     (Copy targets to temporary variable)
C2/4295: A2 0A        LDX #$0A
C2/4297: BD 88 3C     LDA $3C88,X (Monster data - Special Byte 2)
C2/429A: 89 04 00     BIT #$0004
C2/429D: F0 05        BEQ $42A4   (Check next target if this one can be Suplexed)
C2/429F: BD 20 30     LDA $3020,X
C2/42A2: 14 EE        TRB $EE     (Clear this monster from potential targets)
C2/42A4: CA           DEX
C2/42A5: CA           DEX
C2/42A6: 10 EF        BPL $4297   (Loop for all 6 monster targets)
C2/42A8: A5 EE        LDA $EE
C2/42AA: D0 02        BNE $42AE   (Branch if some targets left in temporary variable,
                                   which means we'll actually be attacking something
                                   that can be Suplexed!)
C2/42AC: A5 A2        LDA $A2     (original Targets)
C2/42AE: 20 2A 52     JSR $522A   (Randomly pick a bit)
C2/42B1: 85 B8        STA $B8     (save our one target)
C2/42B3: BB           TYX 
C2/42B4: 4C C2 57     JMP $57C2


Reflect???

C2/42B7: C2 20        REP #$20
C2/42B9: A2 12        LDX #$12
C2/42BB: BD F7 3E     LDA $3EF7,X
C2/42BE: 30 05        BMI $42C5   (Branch if reflect status)
C2/42C0: BD 18 30     LDA $3018,X
C2/42C3: 14 A4        TRB $A4     (Make miss target)
C2/42C5: CA           DEX 
C2/42C6: CA           DEX 
C2/42C7: 10 F2        BPL $42BB
C2/42C9: 60           RTS 


Quick

C2/42CA: AD 02 34     LDA $3402
C2/42CD: 10 09        BPL $42D8   (If already under influence of Quick)
C2/42CF: 8C 04 34     STY $3404
C2/42D2: A9 02        LDA #$02
C2/42D4: 8D 02 34     STA $3402
C2/42D7: 60           RTS 


C2/42D8: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/42DA: B9 18 30     LDA $3018,Y
C2/42DD: 0C 5A 3A     TSB $3A5A   (Set target as missed)
C2/42E0: 60           RTS 


Table for special effects code pointers 2

C2/42E1: 8A 3E
C2/42E3: 8B 3E
C2/42E5: 44 40 ($02)
C2/42E7: 8A 3E
C2/42E9: 8A 3E
C2/42EB: 73 3F ($05)
C2/42ED: 6E 3F ($06)
C2/42EF: 22 3F ($07)
C2/42F1: 8A 3E
C2/42F3: 58 41 ($09)
C2/42F5: 89 3F ($0A)
C2/42F7: 9F 3F ($0B)
C2/42F9: 7E 3F ($0C)
C2/42FB: 8A 3E
C2/42FD: CA 3E ($0E)
C2/42FF: 50 3F ($0F)
C2/4301: 8A 3E
C2/4303: 65 3F ($11)
C2/4305: 8A 3E
C2/4307: F6 41 ($13)
C2/4309: 8A 3E
C2/430B: 63 42 ($15)
C2/430D: 34 42 ($16)
C2/430F: 8A 3E
C2/4311: 4E 40 ($18)
C2/4313: FC 3F ($19)
C2/4315: FE 40 ($1A)
C2/4317: 54 3F ($1B)
C2/4319: B7 42 ($1C)
C2/431B: A1 40 ($1D)
C2/431D: A0 3E ($1E)
C2/431F: 8A 3E 
C2/4321: 8A 3E 
C2/4323: 8A 3E
C2/4325: 8A 3E
C2/4327: 8A 3E
C2/4329: 8A 3E 
C2/432B: 8A 3E
C2/432D: 8A 3E 
C2/432F: BB 40 ($27)
C2/4331: 3C 41 ($28)
C2/4333: 4D 41 ($29)
C2/4335: 0F 41 ($2A)
C2/4337: 8A 3E
C2/4339: 37 40 ($2C)
C2/433B: 8A 3E
C2/433D: 8A 3E 
C2/433F: 8A 3E
C2/4341: 8B 42 ($30)
C2/4343: DA 40 ($31)
C2/4345: F1 40 ($32)
C2/4347: 61 40 ($33)
C2/4349: 8A 3E
C2/434B: 8A 3E 
C2/434D: 1B 42 ($36)
C2/434F: 8A 3E
C2/4351: 8A 3E
C2/4353: 8A 3E
C2/4354: 8A 3E 
C2/4357: 8A 3E
C2/4359: 8A 3E
C2/435B: E6 41 ($3D)
C2/435D: 8A 3E
C2/435F: 8A 3E 
C2/4361: 8A 3E
C2/4363: 85 42 ($41)
C2/4365: 80 42 ($42)
C2/4367: CA 42 ($43)
C2/4369: 4B 42 ($44)
C2/436B: 8A 3E
C2/436D: 8A 3E 
C2/436F: 8A 3E
C2/4371: 8A 3E 
C2/4373: AD 3F ($49)
C2/4375: 2C 40 ($4A)
C2/4377: C8 40 ($4B)
C2/4379: 36 41 ($4C)
C2/437B: 4E 40 ($4D)
C2/437D: 8A 3E 
C2/437F: 8A 3E 
C2/4381: 95 40 ($50)
C2/4383: B7 3F ($51)
C2/4385: 8A 3E
C2/4387: 8A 3E 
C2/4389: 8A 3E 
C2/438B: 8A 3E
C2/438D: 8A 3E     
C2/438F: 8A 3E     


Set new status for attack

C2/4391: DA           PHX
C2/4392: 08           PHP 
C2/4393: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/4395: A0 12        LDY #$12
C2/4397: B9 A0 3A     LDA $3AA0,Y
C2/439A: 4A           LSR 
C2/439B: 90 62        BCC $43FF   (Skip this character if bit 0 of $3AA0,Y is not set)
C2/439D: 20 0D 45     JSR $450D   (Get new status)
C2/43A0: A5 FC        LDA $FC
C2/43A2: F0 0F        BEQ $43B3   (If no status to add)
C2/43A4: 85 F0        STA $F0
C2/43A6: A2 1E        LDX #$1E
C2/43A8: 06 F0        ASL $F0
C2/43AA: 90 03        BCC $43AF     (Skip if status not to be set)
C2/43AC: FC B0 46     JSR ($46B0,X) (Call for each status to be set)
C2/43AF: CA           DEX 
C2/43B0: CA           DEX 
C2/43B1: 10 F5        BPL $43A8     (Loop through all status in byte 1 & 2)
C2/43B3: A5 FE        LDA $FE
C2/43B5: F0 0F        BEQ $43C6
C2/43B7: 85 F0        STA $F0
C2/43B9: A2 1E        LDX #$1E
C2/43BB: 06 F0        ASL $F0
C2/43BD: 90 03        BCC $43C2
C2/43BF: FC D0 46     JSR ($46D0,X) (Call for each status to be set byte 3 & 4)
C2/43C2: CA           DEX 
C2/43C3: CA           DEX 
C2/43C4: 10 F5        BPL $43BB

(Note: the subtraction of blocked statuses from "statuses to clear" below takes place
 later than the removal of blocked statuses from "statuses to set".  i think this is
 because the special case set status functions called in $46B0 AND 46D0 can mark
 additional statuses to be cleared.  so Square performed the block checks after these
 calls to make sure we don't clear any statuses to which we're immune.)

C2/43C6: A5 F4        LDA $F4       (status to clear bytes 1-2)
C2/43C8: 39 1C 33     AND $331C,Y   (blocked status bytes 1-2)
C2/43CB: 85 F4        STA $F4       (remove blocked from statuses to clear)
C2/43CD: F0 0F        BEQ $43DE
C2/43CF: 85 F0        STA $F0
C2/43D1: A2 1E        LDX #$1E
C2/43D3: 06 F0        ASL $F0
C2/43D5: 90 03        BCC $43DA
C2/43D7: FC F0 46     JSR ($46F0,X) (Call for each status to be clear byte 1 & 2)
C2/43DA: CA           DEX 
C2/43DB: CA           DEX 
C2/43DC: 10 F5        BPL $43D3
C2/43DE: A5 F6        LDA $F6       (status to clear bytes 3-4)
C2/43E0: 39 30 33     AND $3330,Y   (blocked status bytes 3-4)
C2/43E3: 85 F6        STA $F6       (don't try to clear blocked statuses)
C2/43E5: F0 0F        BEQ $43F6
C2/43E7: 85 F0        STA $F0
C2/43E9: A2 1E        LDX #$1E
C2/43EB: 06 F0        ASL $F0
C2/43ED: 90 03        BCC $43F2
C2/43EF: FC 10 47     JSR ($4710,X) (Call for each status to be clear byte 3 & 4)
C2/43F2: CA           DEX 
C2/43F3: CA           DEX 
C2/43F4: 10 F5        BPL $43EB
C2/43F6: 20 7F 44     JSR $447F   (Get new status)
C2/43F9: 20 85 45     JSR $4585   (Store in 3EE4 & 3EF8)
C2/43FC: 20 FF 44     JSR $44FF   (Clear set and clear status bytes)
C2/43FF: 88           DEY 
C2/4400: 88           DEY 
C2/4401: 10 94        BPL $4397   (loop for all 10 targets on screen)
C2/4403: 28           PLP 
C2/4404: FA           PLX 
C2/4405: 60           RTS 


(Determine statuses that will be set/removed when attack hits;
 miss if attack doesn't change target's status)

C2/4406: 08           PHP
C2/4407: C2 20        REP #$20
C2/4409: B9 E4 3E     LDA $3EE4,Y   (get current status bytes 1-2)
C2/440C: 85 F8        STA $F8
C2/440E: B9 F8 3E     LDA $3EF8,Y   (get current status bytes 3-4)
C2/4411: 85 FA        STA $FA
C2/4413: 20 90 44     JSR $4490   (Initialize intermediate "status to set" bytes in
                                   $F4 - $F7 and "status to clear" bytes in $FC - $FF.
                                   Mark Clear / Freeze to be removed if necessary.)
C2/4416: E2 20        SEP #$20
C2/4418: A5 B3        LDA $B3
C2/441A: 30 04        BMI $4420   (if not Ignore Clear)
C2/441C: A9 10        LDA #$10
C2/441E: 14 F4        TRB $F4     (remove Vanish from Status to Clear)
C2/4420: B9 95 3C     LDA $3C95,Y
C2/4423: 10 18        BPL $443D   (Branch if not undead)
C2/4425: A9 08        LDA #$08
C2/4427: 2C A2 11     BIT $11A2
C2/442A: F0 11        BEQ $443D   (Branch if attack doesn't reverse damage on undead)
C2/442C: 4A           LSR 
C2/442D: 2C A4 11     BIT $11A4
C2/4430: F0 0B        BEQ $443D   (Branch if not lift status)
C2/4432: AD AA 11     LDA $11AA
C2/4435: 89 82        BIT #$82
C2/4437: F0 04        BEQ $443D   (Branch if attack doesn't involve Death or Zombie)
C2/4439: A9 80        LDA #$80
C2/443B: 04 FC        TSB $FC     (mark Death in Status to set)
C2/443D: C2 20        REP #$20
C2/443F: A5 FC        LDA $FC
C2/4441: 20 32 0E     JSR $0E32    (update Status to set Bytes 1-2)
C2/4444: A5 FE        LDA $FE
C2/4446: 19 E8 3D     ORA $3DE8,Y
C2/4449: 99 E8 3D     STA $3DE8,Y  (update Status to set Bytes 3-4)
C2/444C: A5 F4        LDA $F4
C2/444E: 19 FC 3D     ORA $3DFC,Y
C2/4451: 99 FC 3D     STA $3DFC,Y  (update Status to clear Bytes 1-2)
C2/4454: A5 F6        LDA $F6
C2/4456: 19 10 3E     ORA $3E10,Y
C2/4459: 99 10 3E     STA $3E10,Y  (update Status to clear Bytes 3-4)
C2/445C: AD A7 11     LDA $11A7
C2/445F: 4A           LSR          
C2/4460: 90 1B        BCC $447D   (if "spell misses if protected from ailments" bit
                                   is unset, exit function)
C2/4462: A5 FC        LDA $FC   
C2/4464: 05 F4        ORA $F4
C2/4466: 39 1C 33     AND $331C,Y  (are there any statuses we're trying to set or clear
                                    that aren't blocked?)  (bytes 1-2)
C2/4469: D0 12        BNE $447D    (if there are, exit function)
C2/446B: A5 FE        LDA $FE
C2/446D: 05 F6        ORA $F6
C2/446F: 39 30 33     AND $3330,Y  (are there any statuses we're trying to set or clear
                                    that aren't blocked?)  (bytes 3-4)
C2/4472: D0 09        BNE $447D    (if there are, exit function)
C2/4474: B9 18 30     LDA $3018,Y
C2/4477: 8D 48 3A     STA $3A48
C2/447A: 0C 5A 3A     TSB $3A5A   (Spell misses if prot. from ailments)
C2/447D: 28           PLP 
C2/447E: 60           RTS 


Get status after attack

C2/447F: A5 F8        LDA $F8     (status)
C2/4481: 04 FC        TSB $FC     (Status to set)
C2/4483: A5 F4        LDA $F4     (Status to clear)
C2/4485: 14 FC        TRB $FC     (Status to set)
C2/4487: A5 FA        LDA $FA     (Status byte 3 & 4)
C2/4489: 04 FE        TSB $FE     (Status to set byte 3 & 4)
C2/448B: A5 F6        LDA $F6     (Status to clear byte 3 & 4)
C2/448D: 14 FE        TRB $FE     (Status to set byte 3 & 4)
C2/448F: 60           RTS 


(Initialize intermediate "status to set" bytes in $F4 - $F7 and
 "status to clear" bytes in $FC - $FF.
 Mark Clear / Freeze to be removed if necessary.)

C2/4490: DA           PHX
C2/4491: E2 20        SEP #$20    (Set 8-bit Accumulator)
C2/4493: AD A4 11     LDA $11A4   (Special Byte 2)
C2/4496: 29 0C        AND #$0C
C2/4498: 4A           LSR 
C2/4499: AA           TAX         (X = 0 if set status, 2 = lift status,
                                   4 = toggle status)
C2/449A: C2 20        REP #$20
C2/449C: 64 FC        STZ $FC     (Clear status to clear and set bytes)
C2/449E: 64 FE        STZ $FE
C2/44A0: 64 F4        STZ $F4
C2/44A2: 64 F6        STZ $F6
C2/44A4: FC D1 44     JSR ($44D1,X)
C2/44A7: AD A2 11     LDA $11A2   
C2/44AA: 4A           LSR 
C2/44AB: B0 0E        BCS $44BB   (branch if physical attack)
C2/44AD: A9 10 00     LDA #$10
C2/44B0: 24 F8        BIT $F8
C2/44B2: F0 07        BEQ $44BB   (branch if target not vanished)
C2/44B4: 2C AA 11     BIT $11AA
C2/44B7: D0 02        BNE $44BB   (branch if attack causes Clear)
C2/44B9: 04 F4        TSB $F4     (mark Clear status to be cleared)
C2/44BB: AD A1 11     LDA $11A1
C2/44BE: 4A           LSR 
C2/44BF: 90 0E        BCC $44CF   (Exit if not element Fire)
C2/44C1: A9 00 02     LDA #$0200
C2/44C4: 24 FA        BIT $FA
C2/44C6: F0 07        BEQ $44CF   (Exit if target not Frozen)
C2/44C8: 2C AC 11     BIT $11AC
C2/44CB: D0 02        BNE $44CF   (Exit if attack setting Freeze)
C2/44CD: 04 F6        TSB $F6     (mark Freeze status to be cleared)
C2/44CF: FA           PLX 
C2/44D0: 60           RTS 


Code Pointers

C2/44D1: D7 44
C2/44D3: EA 44
C2/44D5: F9 44

(Spell wants to set status)
C2/44D7: AD AA 11     LDA $11AA   (get status bytes 1-2 from spell)
C2/44DA: 85 FC        STA $FC     (store in status to set)
C2/44DC: A5 F8        LDA $F8     (get current status 1-2)
C2/44DE: 14 FC        TRB $FC     (don't try to set anything you already have)
C2/44E0: AD AC 11     LDA $11AC   (get status bytes 3-4 from spell)
C2/44E3: 85 FE        STA $FE     (store in status to set)
C2/44E5: A5 FA        LDA $FA     (get current status 3-4)
C2/44E7: 14 FE        TRB $FE     (don't try to set anything you already have)
C2/44E9: 60           RTS 

(Spell wants to clear status)
C2/44EA: AD AA 11     LDA $11AA   (get status bytes 1-2 from spell)
C2/44ED: 25 F8        AND $F8     (current status 1-2)     
C2/44EF: 85 F4        STA $F4     (only try to clear statuses you do have)
C2/44F1: AD AC 11     LDA $11AC   (get status bytes 3-4 from spell)
C2/44F4: 25 FA        AND $FA     (current status 3-4)
C2/44F6: 85 F6        STA $F6     (only try to clear statuses you do have)
C2/44F8: 60           RTS 

(Spell wants to toggle status)
C2/44F9: 20 D7 44     JSR $44D7   (mark spell statuses you don't already have
                                   to be set)
C2/44FC: 4C EA 44     JMP $44EA   (and mark the ones you do already have to
                                   be cleared)


Clear status to set and status to clear bytes

C2/44FF: 7B           TDC
C2/4500: 99 D4 3D     STA $3DD4,Y
C2/4503: 99 E8 3D     STA $3DE8,Y
C2/4506: 99 FC 3D     STA $3DFC,Y
C2/4509: 99 10 3E     STA $3E10,Y
C2/450C: 60           RTS 


(Put Status to be Set / Clear into $F?
 Quasi New Status in $3E60 & $3E74)

C2/450D: B9 FC 3D     LDA $3DFC,Y
C2/4510: 85 F4        STA $F4      (Status to Clear bytes 1-2)
C2/4512: B9 10 3E     LDA $3E10,Y
C2/4515: 85 F6        STA $F6      (Status to Clear bytes 3-4)

C2/4517: B9 D4 3D     LDA $3DD4,Y
C2/451A: 39 1C 33     AND $331C,Y  
C2/451D: 85 FC        STA $FC      (Status to Set bytes 1-2, excluding blocked statuses)
C2/451F: B9 E8 3D     LDA $3DE8,Y
C2/4522: 39 30 33     AND $3330,Y
C2/4525: 85 FE        STA $FE      (Status to Set bytes 3-4, excluding blocked statuses)

C2/4527: B9 E4 3E     LDA $3EE4,Y  (Load Status of targets, bytes 1-2)
C2/452A: 85 F8        STA $F8
C2/452C: 29 40 00     AND #$0040   (If target already had Petrify, set it in Status to Set)
C2/452F: 04 FC        TSB $FC

(Note: I think the above is done in preparation for the special case functions at
 $46B0 and 46D0.  These are called when a status is inflicted, and cause side effects like
 clearing other statuses [provided you're not immune to them], and messing with
 assorted variables.  A classic example is Slow booting out Haste, and vice versa.)

 The above code means that just as Muddled/Mute/Clear/Dark/etc are cleared/prevented when
 Petrify status is first _acquired_, they will also be cleared/prevented as long as Petrify
 is POSSESSED.)

C2/4531: B9 F8 3E     LDA $3EF8,Y  (Status bytes 3 & 4)
C2/4534: 85 FA        STA $FA

(This chunk will:
 If Current HP > 1/8 Max HP and Near Fatal status is currently set, mark Near Fatal
 status to be cleared.
 If Current HP <= 1/8 Max HP and Near Fatal status isn't currently set, mark Near Fatal
 status to be set. )
++++++
C2/4536: B9 1C 3C     LDA $3C1C,Y  (Max HP)
C2/4539: 4A           LSR 
C2/453A: 4A           LSR 
C2/453B: 4A           LSR          (Divide by 8)
C2/453C: D9 F4 3B     CMP $3BF4,Y  (Current HP)

C2/453F: A9 00 02     LDA #$0200
C2/4542: 24 F8        BIT $F8
C2/4544: D0 04        BNE $454A   (Branch if Near Fatal status possessed)
C2/4546: 90 06        BCC $454E   (Branch if Current HP > Max HP / 8)
C2/4548: 04 FC        TSB $FC     (Mark Near Fatal in Status to Set)
C2/454A: B0 02        BCS $454E   (Branch if Current HP <= Max HP / 8)
C2/454C: 04 F4        TSB $F4     (Mark Near Fatal in Status to Clear)
++++++

C2/454E: A5 FB        LDA $FB
C2/4550: 10 14        BPL $4566   (If no Wound in Status to Set)
C2/4552: B9 4D 3E     LDA $3E4D,Y
C2/4555: 29 02 00     AND #$0002  (Bit set by Overcast)
C2/4558: F0 0C        BEQ $4566   (Branch if not set)
C2/455A: 05 FC        ORA $FC     (Put Zombie in Status to Set)
C2/455C: 29 7F FF     AND #$FF7F  (Clear Wound from Status to Set)
C2/455F: 85 FC        STA $FC
C2/4561: A9 00 01     LDA #$0100  
C2/4564: 04 F4        TSB $F4     (Set Condemned in Status to Clear)

C2/4566: B9 DF 32     LDA $32DF,Y
C2/4569: 10 19        BPL $4584   (Exit function if attack doesn't target them?)

C2/456B: A5 FC        LDA $FC
C2/456D: 48           PHA 
C2/456E: A5 FE        LDA $FE
C2/4570: 48           PHA 
C2/4571: 20 7F 44     JSR $447F   (Get new status)
C2/4574: A5 FC        LDA $FC
C2/4576: 99 60 3E     STA $3E60,Y
C2/4579: A5 FE        LDA $FE
C2/457B: 99 74 3E     STA $3E74,Y
C2/457E: 68           PLA 
C2/457F: 85 FE        STA $FE
C2/4581: 68           PLA 
C2/4582: 85 FC        STA $FC
C2/4584: 60           RTS 


(Store new status in character/monster status bytes.
 Clear some statuses if target has Zombie.)

C2/4585: A5 FC        LDA $FC
C2/4587: 89 02 00     BIT #$0200
C2/458A: F0 03        BEQ $458F   (Branch if not Zombie)
C2/458C: 29 FA 4D     AND #$4DFA  (Clear Dark and Poison)
                                  (Clear Near Fatal, Berserk, Muddled, Sleep)
C2/458F: 99 E4 3E     STA $3EE4,Y (Store new status in Bytes 1 and 2)
C2/4592: A5 FE        LDA $FE
C2/4594: 99 F8 3E     STA $3EF8,Y (Store new status in Bytes 3 and 4)
C2/4597: 60           RTS 


C2/4598: 48           PHA
C2/4599: A5 F8        LDA $F8
C2/459B: 05 FC        ORA $FC
C2/459D: 23 01        AND $01,S
C2/459F: 04 F4        TSB $F4    (if a status is possessed or it's set in Status to Set,
                                  and it's set in value passed to function, turn it on
                                  in Set to Clear)
C2/45A1: 68           PLA 
C2/45A2: 60           RTS 


(Zombie - set)

C2/45A3: A9 80 00     LDA #$0080  
C2/45A6: 20 98 45     JSR $4598  (if Death is possessed or set by the spell, mark it to
                                  be cleared)
C2/45A9: 20 A9 46     JSR $46A9  (mark character as having died?)
C2/45AA: A9 80        LDA #$46
C2/45AC: 80 13        BRA $45C1


(Zombie - clear)

C2/45AE: 20 9C 46     JSR $469C
C2/45B1: 80 0E        BRA $45C1


(Muddle - set)

C2/45B3: B9 18 30     LDA $3018,Y
C2/45B6: 0C 53 2F     TSB $2F53
C2/45B9: 80 06        BRA $45C1


(Muddle - clear)

C2/45BB: B9 18 30     LDA $3018,Y
C2/45BE: 1C 53 2F     TRB $2F53
C2/45C1: DA           PHX 
C2/45C2: BE 18 30     LDX $3018,Y
C2/45C5: 8A           TXA 
C2/45C6: 0C 4A 3A     TSB $3A4A
C2/45C9: FA           PLX 
C2/45CA: 60           RTS 


C2/45CB: DA           PHX
C2/45CC: BE 19 30     LDX $3019,Y
C2/45CF: 8A           TXA 
C2/45D0: 0C 44 2F     TSB $2F44
C2/45D3: FA           PLX 
C2/45D4: 60           RTS 


C2/45D5: DA           PHX
C2/45D6: BE 19 30     LDX $3019,Y
C2/45D9: 8A           TXA 
C2/45DA: 1C 44 2F     TRB $2F44
C2/45DD: FA           PLX 
C2/45DE: 60           RTS 


(Imp - set or clear)

C2/45DF: A9 88 00     LDA #$0088
C2/45E2: 20 4C 46     JSR $464C
C2/45E5: C0 08        CPY #$08     (Rage - clear   enters here)
C2/45E7: B0 08        BCS $45F1    (Exit function if monster)
C2/45E9: DA           PHX 
C2/45EA: 98           TYA 
C2/45EB: 4A           LSR 
C2/45EC: AA           TAX 
C2/45ED: FE 30 2F     INC $2F30,X  (flag character's properties to be recalculated from
                                    his/her equipment at end of turn.)
C2/45F0: FA           PLX 
C2/45F1: 60           RTS 


C2/45F2: 20 9C 46     JSR $469C
C2/45F5: A9 00 40     LDA #$4000
C2/45F8: 20 56 46     JSR $4656
C2/45FB: A9 40 00     LDA #$0040
C2/45FE: 80 4C        BRA $464C


(Death - set)
C2/4600: A9 40 01     LDA #$0140   
C2/4603: 20 98 45     JSR $4598    (if Petrify or Condemned are possessed or set by the spell,
                                    mark them to be cleared)
C2/4606: A9 80 00     LDA #$0080
C2/4609: 14 F4        TRB $F4      (remove Death from statuses to be cleared)

(Petrify - set)
C2/460B: 20 A9 46     JSR $46A9    (Mark as having died)
C2/460E: A9 15 FE     LDA #$FE15  
C2/4611: 20 98 45     JSR $4598    (if Dark, Poison, Clear, Near Fatal, Image, Mute, Berserk,
                                    Muddled, Seizure, or Sleep are possessed by the target or
                                    set by the spell, mark them to be cleared)
C2/4614: A5           LDA $FA
C2/4616: 05 FE        ORA $FE
C2/4618: 29 FF 9B     AND #$9BFF   (if Dance, Regen, Slow, Haste, Stop, Shell, Safe, Reflect,
                                    Rage, Freeze, Morph, Spell Chant, or Float are possessed
                                    by the target or set by the spell, mark them to be cleared)
C2/461B: 04 F6        TSB $F6
C2/461D: B9 4C 3E     LDA $3E4C,Y
C2/4620: 29 FF BF     AND #$BFFF
C2/4623: 99 4C 3E     STA $3E4C,Y  (clear HP Leak quasi-status that was set by Phantasm)
C2/4626: B9 A0 3A     LDA $3AA0,Y
C2/4629: 29 7F FF     AND #$FF7F
C2/462C: 99 A0 3A     STA $3AA0,Y
C2/462F: A9 40 00     LDA #$0040
C2/4632: 80 18        BRA $464C


(Sleep - set)

C2/4634: 08           PHP 
C2/4635: E2 20        SEP #$20     (Set 8-bit A)
C2/4637: A9 12        LDA #$12
C2/4639: 99 F9 3C     STA $3CF9,Y  (Time until Sleep wears off)
C2/463C: 28           PLP 
C2/463D: 80 E7        BRA $4626


(Condemned - set)

C2/463F: A9 20 00     LDA #$0020
C2/4642: 80 08        BRA $464C
C2/4644: A9 10 00     LDA #$0010   (Condemned - clear  enters here)
C2/4647: 80 03        BRA $464C
C2/4649: A9 08 00     LDA #$0008   (Mute - set or clear  enter here)
C2/464C: 19 04 32     ORA $3204,Y
C2/464F: 99 04 32     STA $3204,Y
C2/4652: 60           RTS 


(Sleep - clear)

C2/4653: A9 00 40     LDA #$4000
C2/4656: 19 A0 3A     ORA $3AA0,Y
C2/4659: 99 A0 3A     STA $3AA0,Y
C2/465C: 60           RTS 


(Seizure - set)

C2/465D: A9 02 00     LDA #$0002
C2/4660: 04 F6        TSB $F6      (mark Regen to be cleared)
C2/4662: 60           RTS


(Regen - set)

C2/4663: A9 00 40     LDA #$4000
C2/4666: 04 F4        TSB $F4      (mark Seizure to be cleared)
C2/4668: 60           RTS 


(Slow - set)

C2/4669: A9 08 00     LDA #$0008
C2/466C: 80 03        BRA $4671    (mark Haste to be cleared)


(Haste - set)

C2/466E: A9 04 00     LDA #$0004   (mark Slow to be cleared)
C2/4671: 04 F6        TSB $F6     
C2/4673: A9 04 00     LDA #$0004   (Haste - clear  and  Slow - clear  enter here)
C2/4676: 80 D4        BRA $464C    (was BRA ???)


(Morph - set or clear)

C2/4678: A9 02 00     LDA #$0002
C2/467B: 80 CF        BRA $464C


(Stop - set)

C2/467D: 08           PHP
C2/467E: E2 20        SEP #$20     (Set 8-bit A)
C2/4680: A9 12        LDA #$12
C2/4682: 99 F1 3A     STA $3AF1,Y  (Time until Stop wears off)
C2/4685: 28           PLP 
C2/4686: 60           RTS 


(Reflect - set)

C2/4687: 08           PHP
C2/4688: E2 20        SEP #$20     (Set 8-bit A)
C2/468A: A9 1A        LDA #$1A
C2/468C: 99 0C 3F     STA $3F0C,Y  (Time until Reflect wears off, though permanency
                                    can prevent its removal)
C2/468F: 28           PLP 
C2/4690: 60           RTS 


(Freeze - set)

C2/4691: 08           PHP
C2/4692: E2 20        SEP #$20     (Set 8-bit A)
C2/4694: A9 22        LDA #$22
C2/4696: 99 0D 3F     STA $3F0D,Y  (Time until Freeze wears off)
C2/4699: 28           PLP 
C2/469A: 60           RTS 


(Do nothing:
 Dark, Poison, M-Tek,
 Near Fatal, Image, Berserk,
 Dance, Shell, Safe,
 Rage [set only], Life 3, Spell, Hide, Dog Block, Float)

C2/469B: 60           RTS


C2/469C: DA           PHX
C2/469D: BE 19 30     LDX $3019,Y
C2/46A0: 8A           TXA 
C2/46A1: 0C 2F 2F     TSB $2F2F
C2/46A4: 1C 3A 3A     TRB $3A3A
C2/46A7: FA           PLX 
C2/46A8: 60           RTS 


C2/46A9: B9 18 30     LDA $3018,Y
C2/46AC: 0C 56 3A     TSB $3A56   (Mark this character as having died)
C2/46AF: 60           RTS 


Not actual code - data (table of pointers to code, for changing status)

Set status pointers ("side effects" to perform upon setting of a status):

C2/46B0: 9B 46 (Dark)        (Jumps to RTS)
C2/46B2: A3 45 (Zombie)
C2/46B4: 9B 46 (Poison)      (Jumps to RTS)
C2/46B6: 9B 46 (M-Tek)       (Jumps to RTS)
C2/46B8: CB 45 (Clear)
C2/46BA: DF 45 (Imp)
C2/46BC: 0B 46 (Petrify)
C2/46BE: 00 46 (Death)
C2/46C0: 3F 46 (Condemned)
C2/46C2: 9B 46 (Near Fatal)  (Jumps to RTS)
C2/46C4: 9B 46 (Image)       (Jumps to RTS)
C2/46C6: 49 46 (Mute)
C2/46C8: 9B 46 (Berserk)     (Jumps to RTS)
C2/46CA: B3 45 (Muddle)
C2/46CC: 5D 46 (Seizure)
C2/46CE: 34 46 (Sleep)
C2/46D0: 9B 46 (Dance)       (Jumps to RTS)
C2/46D2: 63 46 (Regen)
C2/46D4: 69 46 (Slow)
C2/46D6: 6E 46 (Haste)
C2/46D8: 7D 46 (Stop)
C2/46DA: 9B 46 (Shell)       (Jumps to RTS)
C2/46DC: 9B 46 (Safe)        (Jumps to RTS)
C2/46DE: 87 46 (Reflect)
C2/46E0: 9B 46 (Rage)        (Jumps to RTS)
C2/46E2: 91 46 (Freeze)
C2/46E4: 9B 46 (Life 3)      (Jumps to RTS)
C2/46E6: 78 46 (Morph)
C2/46E8: 9B 46 (Spell)       (Jumps to RTS)
C2/46EA: 9B 46 (Hide)        (Jumps to RTS)
C2/46EC: 9B 46 (Dog Block)   (Jumps to RTS)
C2/46EE: 9B 46 (Float)       (Jumps to RTS)


Clear status pointers ("side effects" to perform upon clearing of a status):

C2/46F0: 9B 46 (Dark)        (Jumps to RTS)
C2/46F2: AE 45 (Zombie)
C2/46F4: 9B 46 (Poison)      (Jumps to RTS)
C2/46F6: 9B 46 (M-Tek)       (Jumps to RTS)
C2/46F8: D5 45 (Clear)
C2/46FA: DF 45 (Imp)
C2/46FC: F2 45 (Petrify)
C2/46FE: F2 45 (Death)
C2/4700: 44 46 (Condemned)
C2/4702: 9B 46 (Near Fatal)  (Jumps to RTS)
C2/4704: 9B 46 (Image)       (Jumps to RTS)
C2/4706: 49 46 (Mute)
C2/4708: 9B 46 (Berserk)     (Jumps to RTS)
C2/470A: BB 45 (Muddle)
C2/470C: 9B 46 (Seizure)     (Jumps to RTS)
C2/470E: 53 46 (Sleep)
C2/4710: 9B 46 (Dance)       (Jumps to RTS)
C2/4712: 9B 46 (Regen)       (Jumps to RTS)
C2/4714: 73 46 (Slow)
C2/4716: 73 46 (Haste)
C2/4718: 9B 46 (Stop)        (Jumps to RTS)
C2/471A: 9B 46 (Shell)       (Jumps to RTS)
C2/471C: 9B 46 (Safe)        (Jumps to RTS)
C2/471E: 9B 46 (Reflect)     (Jumps to RTS)
C2/4720: E5 45 (Rage)
C2/4722: 9B 46 (Freeze)      (Jumps to RTS)
C2/4724: 9B 46 (Life 3)      (Jumps to RTS)
C2/4726: 78 46 (Morph)
C2/4728: 9B 46 (Spell)       (Jumps to RTS)
C2/472A: 9B 46 (Hide)        (Jumps to RTS)
C2/472C: 9B 46 (Dog Block)   (Jumps to RTS)
C2/472E: 9B 46 (Float)       (Jumps to RTS)


??? Function (Called from other bank)

C2/4730: DA           PHX
C2/4731: 5A           PHY
C2/4732: 8B           PHB 
C2/4733: 08           PHP 
C2/4734: E2 30        SEP #$30
C2/4736: 48           PHA 
C2/4737: A9 7E        LDA #$7E
C2/4739: 48           PHA 
C2/473A: AB           PLB 
C2/473B: 68           PLA 
C2/473C: 18           CLC 
C2/473D: FC 4B 47     JSR ($474B,X)
C2/4740: 20 90 44     JSR $4490   (Initialize intermediate "status to set" bytes in
                                   $F4 - $F7 and "status to clear" bytes in $FC - $FF.
                                   Mark Clear / Freeze to be removed if necessary.)
C2/4743: 20 7F 44     JSR $447F   (get new status)
C2/4746: 28           PLP 
C2/4747: AB           PLB 
C2/4748: 7A           PLY 
C2/4749: FA           PLX 
C2/474A: 6B           RTL 


Pointers

C2/474B: 4F 47
C2/474D: 78 47


C2/474F: 20 66 29     JSR $2966
C2/4752: AD A4 11     LDA $11A4
C2/4755: 10 1E        BPL $4775   (Branch if damage based on HP)
C2/4757: AD A6 11     LDA $11A6   (Spell Power)
C2/475A: 85 E8        STA $E8
C2/475C: C2 30        REP #$30
C2/475E: AD B2 11     LDA $11B2
C2/4761: 20 3C 28     JSR $283C
C2/4764: C9 10 27     CMP #$2710  (10,000)
C2/4767: 90 03        BCC $476C
C2/4769: A9 0F 27     LDA #$270F  (9999)
C2/476C: E2 10        SEP #$10
C2/476E: 20 CB 0D     JSR $0DCB   
C2/4771: 8D B0 11     STA $11B0   (Damage)
C2/4774: 60           RTS 


C2/4775: 4C 69 2B     JMP $2B69


C2/4778: 20 37 2A     JSR $2A37
C2/477B: A9 01        LDA #$01
C2/477D: 0C A2 11     TSB $11A2   (Sets physical attack)
C2/4780: 60           RTS 


Multiplication Function
Multiplies low bit of A * high bit of A. Stores result in 16-bit A.

C2/4781: 08           PHP
C2/4782: C2 20        REP #$20
C2/4784: 8F 02 42 00  STA $004202
C2/4788: EA           NOP 
C2/4789: EA           NOP 
C2/478A: EA           NOP 
C2/478B: EA           NOP 
C2/478C: AF 16 42 00  LDA $004216
C2/4790: 28           PLP 
C2/4791: 60           RTS 


Division Function
Divides 16-bit A / 8-bit X
Stores answer in 16-bit A. Stores remainder in 8-bit X

C2/4792: 5A           PHY
C2/4793: 08           PHP 
C2/4794: C2 20        REP #$20
C2/4796: 8F 04 42 00  STA $004204
C2/479A: E2 30        SEP #$30
C2/479C: 8A           TXA 
C2/479D: 8F 06 42 00  STA $004206
C2/47A1: EA           NOP 
C2/47A2: EA           NOP 
C2/47A3: EA           NOP 
C2/47A4: EA           NOP 
C2/47A5: EA           NOP 
C2/47A6: EA           NOP 
C2/47A7: EA           NOP 
C2/47A8: EA           NOP 
C2/47A9: AF 16 42 00  LDA $004216
C2/47AD: AA           TAX 
C2/47AE: C2 20        REP #$20
C2/47B0: AF 14 42 00  LDA $004214
C2/47B4: 28           PLP 
C2/47B5: 7A           PLY 
C2/47B6: 60           RTS 


Multiplication Function 2
Results:
16-bit A = (8-bit $E8 * 16-bit A) / 256
24-bit $E8 = 3 byte (8-bit $E8 * 16-bit A)
16-bit $EC = 8-bit $E8 * high byte of A

C2/47B7: 08           PHP
C2/47B8: E2 20        SEP #$20
C2/47BA: 64 EA        STZ $EA
C2/47BC: 85 E9        STA $E9
C2/47BE: A5 E8        LDA $E8
C2/47C0: 20 81 47     JSR $4781
C2/47C3: C2 21        REP #$21
C2/47C5: 85 EC        STA $EC
C2/47C7: A5 E8        LDA $E8
C2/47C9: 20 81 47     JSR $4781
C2/47CC: 85 E8        STA $E8
C2/47CE: A5 EC        LDA $EC
C2/47D0: 65 E9        ADC $E9
C2/47D2: 85 E9        STA $E9
C2/47D4: 28           PLP 
C2/47D5: 60           RTS 


Multiplies A (1 byte) by * 1.5

C2/47D6: 48           PHA
C2/47D7: 4A           LSR 
C2/47D8: 18           CLC 
C2/47D9: 63 01        ADC $01,S
C2/47DB: 90 02        BCC $47DF
C2/47DD: A9 FF        LDA #$FF
C2/47DF: 83 01        STA $01,S
C2/47E1: 68           PLA 
C2/47E2: 60           RTS 

Remove character from party

C2/47E3: DA           PHX
C2/47E4: BD D9 3E     LDA $3ED9,X
C2/47E7: AA           TAX 
C2/47E8: 9E 50 18     STZ $1850,X
C2/47EB: FA           PLX 
C2/47EC: 60           RTS 


C2/47ED: AD E0 3E     LDA $3EE0   
C2/47F0: F0 09        BEQ $47FB   (branch if in 4-tier final multi-battle)
C2/47F2: AD 6E 3A     LDA $3A6E   (Method used to end combat?)
C2/47F5: F0 04        BEQ $47FB   (Branch if no special end?)
C2/47F7: AA           TAX 
C2/47F8: 7C F5 48     JMP ($48F5,X)


C2/47FB: AD D1 1D     LDA $1DD1   ($1DD1 = $3EB8)
C2/47FE: 29 20        AND #$20
C2/4800: F0 05        BEQ $4807   
C2/4802: 0C BC 3E     TSB $3EBC   
C2/4805: 80 19        BRA $4820
C2/4807: AD 95 3A     LDA $3A95
C2/480A: D0 E0        BNE $47EC   (Exit if $3A95 != 0)
C2/480C: AD 74 3A     LDA $3A74   
C2/480F: D0 22        BNE $4833
C2/4811: AD 8A 3A     LDA $3A8A   
C2/4814: F0 0C        BEQ $4822   (If no characters engulfed)
C2/4816: CD 8D 3A     CMP $3A8D   
C2/4819: D0 07        BNE $4822
C2/481B: A9 80        LDA #$80
C2/481D: 0C BC 3E     TSB $3EBC   
C2/4820: 80 7F        BRA $48A1
C2/4822: AD 39 3A     LDA $3A39   
C2/4825: D0 70        BNE $4897   (If 1 or more characters escaped)
C2/4827: AD 97 3A     LDA $3A97   
C2/482A: D0 02        BNE $482E
C2/482C: A9 29        LDA #$29
C2/482E: 20 CA 5F     JSR $5FCA   
C2/4831: 80 5C        BRA $488F
C2/4833: AD 77 3A     LDA $3A77   (Number of monsters left in combat)
C2/4836: D0 B4        BNE $47EC   (Exit if 1 or more monsters still alive)
C2/4838: AD E0 3E     LDA $3EE0   
C2/483B: D0 03        BNE $4840
C2/483D: 20 76 4A     JSR $4A76
C2/4840: AE 0B 30     LDX $300B   (Which character is Gau)
C2/4843: 30 1C        BMI $4861   (branch if Gau not in party.  note that "in party" can
                                   mean Gau's actively in the party, or that he's Leapt on
                                   the Veldt, you're fighting on the Veldt, and there's a
                                   free spot in your party for him to return.)
C2/4845: A9 01        LDA #$01
C2/4847: 1C E4 11     TRB $11E4
C2/484A: F0 15        BEQ $4861
C2/484C: 20 5A 4B     JSR $4B5A   (0 to 255)
C2/484F: C9 A0        CMP #$A0    
C2/4851: B0 0E        BCS $4861   (3 in 8 chance branch)
C2/4853: AD BD 3E     LDA $3EBD   
C2/4856: 89 02        BIT #$02    (maybe this bit is set after you've enlisted Gau the
                                   first time?)
C2/4858: D0 74        BNE $48CE   (branch if it is set)
C2/485A: AD 76 3A     LDA $3A76   (Number of characters in party)
C2/485D: C9 02        CMP #$02
C2/485F: B0 6D        BCS $48CE   (Branch if 2 or more characters in party -- this ensures
                                   that Sabin and Cyan are both *alive* to see the original
                                   Gau hijinx)
C2/4861: AE 03 30     LDX $3003   (Which character is Shadow)
C2/4864: 30 26        BMI $488C   (Branch if Shadow not in party)
C2/4866: 20 5A 4B     JSR $4B5A   (0 to 255)
C2/4869: C9 10        CMP #$10    
C2/486B: B0 1F        BCS $488C   (15 in 16 chance branch)
C2/486D: AD 1F 20     LDA $201F   (get encounter type:  0 = front, 1 = back,
                                   2 = pincer, 3 = side)
C2/4870: D0 1A        BNE $488C   (if not a front attack, branch)
C2/4872: AD 76 3A     LDA $3A76   (Number of characters in party)
C2/4875: C9 02        CMP #$02
C2/4877: 90 13        BCC $488C   (Branch if less than 2 characters in party)
C2/4879: BD E4 3E     LDA $3EE4,X
C2/487C: 89 C2        BIT #$C2    (Check for Dead, Zombie, or Petrify)
C2/487E: D0 0C        BNE $488C   (Branch if any set on Shadow)
C2/4880: A9 08        LDA #$08
C2/4882: 2C BD 3E     BIT $3EBD
C2/4885: D0 05        BNE $488C
C2/4887: 2C DE 1E     BIT $1EDE   (Which characters are in party)
C2/488A: D0 1A        BNE $48A6   (Branch if Shadow in party)
C2/488C: 20 57 5D     JSR $5D57
C2/488F: 20 36 49     JSR $4936
C2/4892: 68           PLA 
C2/4893: 68           PLA 
C2/4894: 4C C5 00     JMP $00C5


(Warp)
C2/4897: A9 FF        LDA #$FF
C2/4899: 8D 05 02     STA $0205
C2/489C: A9 10        LDA #$10
C2/489E: 0C BC 3E     TSB $3EBC
(   FB 02-Usual monster script way to end a battle  enters here)
C2/48A1: 20 03 49     JSR $4903
C2/48A4: 80 E9        BRA $488F


(Shadow randomly leaves after battle)

C2/48A6: 1C DE 1E     TRB $1EDE    (Remove Shadow from party)
C2/48A9: 20 E3 47     JSR $47E3
C2/48AC: C2 10        REP #$10
C2/48AE: BC 10 30     LDY $3010,X  (get offset to character info block)
C2/48B1: A9 FF        LDA #$FF
C2/48B3: 99 1E 16     STA $161E,Y  (clear his equipped Esper)
C2/48B6: E2 10        SEP #$10
C2/48B8: A9 FE        LDA #$FE
C2/48BA: 20 92 07     JSR $0792
C2/48BD: A9 02        LDA #$02
C2/48BF: 0C 49 2F     TSB $2F49    (turn on "No Winning Stand" aka
                                    "No victory dance" in extra formation
                                    data.  this bit is checked at C1/0124.)
C2/48C2: A2 0B        LDX #$0B
C2/48C4: 68           PLA 
C2/48C5: 68           PLA 
C2/48C6: A9 23        LDA #$23
C2/48C8: 20 91 4E     JSR $4E91
C2/48CB: 4C 19 00     JMP $0019


(Gau arrives after Veldt battle)

C2/48CE: BD 18 30     LDA $3018,X
C2/48D1: 0C 4E 2F     TSB $2F4E
C2/48D4: 0C 40 3A     TSB $3A40   (mark Gau as a "character acting as enemy" target)
C2/48D7: A9 04        LDA #$04
C2/48D9: 0C 46 3A     TSB $3A46
C2/48DC: A2 1B        LDX #$1B
C2/48DE: 80 E4        BRA $48C4


(Gau leapt)
C2/48E0: AE 0B 30     LDX $300B  (which character is Gau)
C2/48E3: 20 E3 47     JSR $47E3
C2/48E6: A9 08        LDA #$08
C2/48E8: 1C DF 1E     TRB $1EDF  (remove Gau from party)
(   FB 09-Used by returning Gau when he joins the party  enters here)
C2/48EB: 20 07 4A     JSR $4A07
C2/48EE: 80 9F        BRA $488F


(Banon fell)
C2/48F0: A9 36        LDA #$36
C2/48F2: 20 CA 5F     JSR $5FCA
C2/48F5: 80 98        BRA $488F


Pointers for Special Combat Endings
Code pointers

C2/48F7: 97 48    (02-Warp)
C2/48F9: E0 48    (04-Gau leapt)
C2/48FB: F0 48    (06-Banon fell)
C2/48FD: A1 48    (08-FB 02-Usual monster script way to end a battle)
C2/48FF: EB 48    (0A-FB 09-Used by returning Gau when he joins the
                   party)
C2/4901: 22 4A    (0C-Annihilation perhaps?)


C2/4903: 20 36 0B     JSR $0B36     (Establish new value for Morph supply based on its
                                     previous value and the current Morph timer)
C2/4906: A2 06        LDX #$06
C2/4908: 9E 04 3B     STZ $3B04,X   (Zero this entity's Morph gauge)
C2/490B: 8A           TXA 
C2/490C: 4A           LSR 
C2/490D: 85 10        STA $10
C2/490F: A9 03        LDA #$03
C2/4911: 20 11 64     JSR $6411
C2/4914: CA           DEX 
C2/4915: CA           DEX 
C2/4916: 10 F0        BPL $4908
C2/4918: A9 80        LDA #$80
C2/491A: 04 B1        TSB $B1
C2/491C: A2 20        LDX #$20
C2/491E: A9 01        LDA #$01
C2/4920: 20 11 64     JSR $6411
C2/4923: CA           DEX 
C2/4924: D0 F8        BNE $491E
C2/4926: A9 0F        LDA #$0F
C2/4928: 0C 8C 3A     TSB $3A8C   (mark all characters to have their applicable items
                                   added to inventory.  in particular, this will
                                   handle an item they tried to use (the game depletes
                                   it on issuing the command), but were killed before
                                   before they could actually execute the command and
                                   use it.)
C2/492B: 20 C7 62     JSR $62C7   (add items [back] to inventory)
C2/492E: A9 0A        LDA #$0A
C2/4930: 20 11 64     JSR $6411
C2/4933: 4C 95 20     JMP $2095


C2/4936: A2 06        LDX #$06
C2/4938: BD D8 3E     LDA $3ED8,X  (get which character this is)
C2/493B: 30 3E        BMI $497B    (if it's undefined, skip it)
C2/493D: C9 10        CMP #$10
C2/493F: F0 04        BEQ $4945    (branch if it's 1st ghost)
C2/4941: C9 11        CMP #$11
C2/4943: D0 07        BNE $494C    (branch if it's not 2nd ghost)
C2/4945: BD E4 3E     LDA $3EE4,X  (Check for Dead, Zombie, or Petrify)
C2/4948: 89 C2        BIT #$C2
C2/494A: D0 08        BNE $4954    (branch if one or more ^)
C2/494C: BD 18 30     LDA $3018,X
C2/494F: 2C 88 3A     BIT $3A88    (was this character flagged to be removed from
                                    party? [by Possessing or getting hit by
                                    BabaBreath])
C2/4952: F0 03        BEQ $4957    (branch if not)
C2/4954: 20 E3 47     JSR $47E3
C2/4957: BD F9 3E     LDA $3EF9,X  (in-battle status byte 4)
C2/495A: 29 C0        AND #$C0     (only keep Dog Block and Float after battle)
C2/495C: EB           XBA 
C2/495D: BD E4 3E     LDA $3EE4,X  (in-battle status byte 1)
C2/4960: C2 30        REP #$30     (Set 16-bit Accumulator, 16-bit X and Y)
C2/4962: BC 10 30     LDY $3010,X  (get offset to character info block)
C2/4965: 99 14 16     STA $1614,Y  (save in-battle status bytes 1 and 4 to our
                                    two out-of-battle status bytes)
C2/4968: BD F4 3B     LDA $3BF4,X
C2/496B: 99 09 16     STA $1609,Y  (save current HP in out-of-battle stat)
C2/496E: BD 30 3C     LDA $3C30,X
C2/4971: F0 06        BEQ $4979    (Branch if max MP is zero)
C2/4973: BD 08 3C     LDA $3C08,X
C2/4976: 99 0D 16     STA $160D,Y  (otherwise, save current MP in out-of-battle stat)
C2/4979: E2 30        SEP #$30
C2/497B: CA           DEX 
C2/497C: CA           DEX 
C2/497D: 10 B9        BPL $4938    (loop for all 4 party members)
C2/497F: C2 10        REP #$10
C2/4981: A2 FF 00     LDX #$00FF
C2/4984: A0 FB 04     LDY #$04FB
C2/4987: B9 86 26     LDA $2686,Y
C2/498A: 9D 69 18     STA $1869,X
C2/498D: 1A           INC 
C2/498E: F0 03        BEQ $4993
C2/4990: B9 89 26     LDA $2689,Y
C2/4993: 9D 69 19     STA $1969,X
C2/4996: 88           DEY 
C2/4997: 88           DEY 
C2/4998: 88           DEY 
C2/4999: 88           DEY 
C2/499A: 88           DEY 
C2/499B: CA           DEX 
C2/499C: 10 E9        BPL $4987
C2/499E: AD 97 3A     LDA $3A97
C2/49A1: F0 21        BEQ $49C4    (branch if not Colosseum brawl?)
C2/49A3: AD 05 02     LDA $0205    (item wagered)
C2/49A6: C9 FF        CMP #$FF     
C2/49A8: F0 1A        BEQ $49C4    (branch if null)
C2/49AA: A2 FF 00     LDX #$00FF
C2/49AD: DD 69 18     CMP $1869,X  (is item wagered in this slot?)
C2/49B0: D0 0F        BNE $49C1    (branch if not)
C2/49B2: DE 69 19     DEC $1969,X  (if it was, decrement the item's count as
                                    a Colosseum fee)
C2/49B5: F0 02        BEQ $49B9    (if there's none of the item left, empty
                                    out its slot)
C2/49B7: 10 08        BPL $49C1    (if there's a nonzero and positive quantity
                                    of the item, don't empty out its slot)
C2/49B9: A9 FF        LDA #$FF
C2/49BB: 9D 69 18     STA $1869,X  (store Empty item)
C2/49BE: 9E 69 19     STZ $1969,X  (with a quantity of 0)
C2/49C1: CA           DEX          (move to next lowest item slot)
C2/49C2: 10 E9        BPL $49AD    (loop for all 256 item slots)
C2/49C4: E2 10        SEP #$10
C2/49C6: AE FA 33     LDX $33FA
C2/49C9: 30 0A        BMI $49D5   (If Doom Gaze not in battle)
C2/49CB: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/49CD: BD F4 3B     LDA $3BF4,X (Monster's HP)
C2/49D0: 8D BE 3E     STA $3EBE   (Set Doom Gaze's HP to monsters's HP)
C2/49D3: E2 20        SEP #$20    (Set 8-bit A)
C2/49D5: A2 13        LDX #$13
C2/49D7: BD B4 3E     LDA $3EB4,X  (copy in-battle event bytes)
C2/49DA: 9D C9 1D     STA $1DC9,X  ( back into normal out-of-battle event bytes)
C2/49DD: CA           DEX 
C2/49DE: 10 F7        BPL $49D7    (loop 14 times)
C2/49E0: AD 4B 2F     LDA $2F4B
C2/49E3: 89 02        BIT #$02
C2/49E5: D0 1F        BNE $4A06   (exit if this formation has "Don't appear on Veldt"
                                   property)
C2/49E7: A2 0A        LDX #$0A
C2/49E9: BD 02 20     LDA $2002,X (Get MSB of monster #)
C2/49EC: D0 14        BNE $4A02   (If they're a boss, don't mark formation as found,
                                   but check next monster)
C2/49EE: AD D5 3E     LDA $3ED5   
C2/49F1: 4A           LSR         (Move bit 8 of formation # into Carry and out of A)
C2/49F2: D0 12        BNE $4A06   (If any of bits 9-15 were set, the formation # is
                                   over 511.  skip it.) 
C2/49F4: AD D4 3E     LDA $3ED4   (Get bits 0-7 of battle formation)
C2/49F7: 20 17 52     JSR $5217   (X=formation DIV 8, A=2^(formation MOD 8) )
C2/49FA: 1D DD 1D     ORA $1DDD,X
C2/49FD: 9D DD 1D     STA $1DDD,X (Update structure of encountered groups for Veldt)
C2/4A00: 80 04        BRA $4A06   (Once Veldt structure is updated once, we can exit)
C2/4A02: CA           DEX 
C2/4A03: CA           DEX 
C2/4A04: 10 E3        BPL $49E9   (Move to next enemy and loop)
C2/4A06: 60           RTS 


(Add rages learned in battle)

C2/4A07: A2 0A        LDX #$0A
C2/4A09: BD 02 20     LDA $2002,X
C2/4A0C: D0 0F        BNE $4A1D    (Branch if monster # >= 256)
C2/4A0E: DA           PHX 
C2/4A0F: 18           CLC 
C2/4A10: BD 01 20     LDA $2001,X  (Low byte of monster #)
C2/4A13: 20 17 52     JSR $5217    (X = monster # DIV 8, A = 2^(monster # MOD 8))
C2/4A16: 1D 2C 1D     ORA $1D2C,X
C2/4A19: 9D 2C 1D     STA $1D2C,X  (Add rage to list of known ones)
C2/4A1C: FA           PLX 
C2/4A1D: CA           DEX 
C2/4A1E: CA           DEX 
C2/4A1F: 10 E8        BPL $4A09    (Check for all monsters)
C2/4A21: 60           RTS 


C2/4A22: 20 67 02     JSR $0267
C2/4A25: 20 03 49     JSR $4903
C2/4A28: 20 36 49     JSR $4936
C2/4A2B: A2 12        LDX #$12
C2/4A2D: E0 08        CPX #$08
C2/4A2F: B0 34        BCS $4A65    (branch if monster)
C2/4A31: BD A0 3A     LDA $3AA0,X
C2/4A34: 4A           LSR 
C2/4A35: 90 1D        BCC $4A54
C2/4A37: BD E4 3E     LDA $3EE4,X
C2/4A3A: 89 C2        BIT #$C2     (Check for Dead, Zombie, or Petrify)
C2/4A3C: D0 16        BNE $4A54    (branch if some possessed)
C2/4A3E: BD 05 32     LDA $3205,X
C2/4A41: 89 04        BIT #$04
C2/4A43: F0 0F        BEQ $4A54
C2/4A45: C2 20        REP #$20     (set 16-bit A)
C2/4A47: BD F8 3E     LDA $3EF8,X  (status bytes 3 and 4)
C2/4A4A: 29 FE EE     AND #$EEFE
C2/4A4D: 9D F8 3E     STA $3EF8,X  (clear Dance, Rage, and Spell Chant statuses)
C2/4A50: E2 20        SEP #$20     (set 8-bit A)
C2/4A52: 80 14        BRA $4A68
C2/4A54: A9 FF        LDA #$FF
C2/4A56: 9D D8 3E     STA $3ED8,X  (indicate null for "which character this is")
C2/4A59: BD 18 30     LDA $3018,X
C2/4A5C: 1C 2C 3F     TRB $3F2C    (clear entity from jumpers)
C2/4A5F: 1C 2E 3F     TRB $3F2E
C2/4A62: 1C 2F 3F     TRB $3F2F
C2/4A65: 20 9E 4A     JSR $4A9E    (Clear all statuses)
C2/4A68: CA           DEX 
C2/4A69: CA           DEX 
C2/4A6A: 10 C1        BPL $4A2D    (loop for all onscreen entities)
C2/4A6C: A9 0C        LDA #$0C
C2/4A6E: 20 11 64     JSR $6411
C2/4A71: 68           PLA 
C2/4A72: 68           PLA 
C2/4A73: 4C 16 00     JMP $0016


C2/4A76: C2 20        REP #$20
C2/4A78: A2 04        LDX #$04
C2/4A7A: BF AB 4A C2  LDA $C24AAB,X
C2/4A7E: CD E0 11     CMP $11E0      (is Battle formation one of the first
                                      3 tiers of the final 4-tier multi-battle?)
C2/4A81: D0 14        BNE $4A97      (branch and check another if no match)
C2/4A83: BF AD 4A C2  LDA $C24AAD,X
C2/4A87: 8D E0 11     STA $11E0      (update Battle formation to the next
                                      one of the tiers)
C2/4A8A: E2 20        SEP #$20
C2/4A8C: BF B3 4A C2  LDA $C24AB3,X
C2/4A90: 8D E1 3E     STA $3EE1
C2/4A93: 68           PLA 
C2/4A94: 68           PLA            (clear caller address from stack?)
C2/4A95: 80 8B        BRA $4A22      (.. this will result in us returning
                                      somewhere other than C2/483D)
C2/4A97: CA           DEX
C2/4A98: CA           DEX 
C2/4A99: 10 DF        BPL $4A7A      (loop 3 times)
C2/4A9B: E2 20        SEP #$20
C2/4A9D: 60           RTS            (return normally)


Clears all statuses

C2/4A9E: 9E E4 3E     STZ $3EE4,X   (Clear Status Byte 1)
C2/4AA1: 9E E5 3E     STZ $3EE5,X   (Clear Status Byte 2)
C2/4AA4: 9E F8 3E     STZ $3EF8,X   (Clear Status Byte 3)
C2/4AA7: 9E F9 3E     STZ $3EF9,X   (Clear Status Byte 4)
C2/4AAA: 60           RTS 


Data for changing formations in last battle

C2/4AAB: D7 01     (Short Arm, Long Arm, Face)
C2/4AAD: 00 02     (Hit, Tiger, Tools)
C2/4AAF: 01 02     (Girl, Sleep)
C2/4AB1: 02 02     (Final Kefka)

C2/4AB3: 90 90
C2/4AB5: 90 90
C2/4AB7: 8F 8F


C2/4AB9: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/4ABB: AD 4C 2F     LDA $2F4C
C2/4ABE: 49 FF FF     EOR #$FFFF
C2/4AC1: 2D 4E 2F     AND $2F4E
C2/4AC4: 8D 4E 2F     STA $2F4E
C2/4AC7: 8D 78 3A     STA $3A78
C2/4ACA: 9C 74 3A     STZ $3A74
C2/4ACD: 9C 42 3A     STZ $3A42
C2/4AD0: E2 20        SEP #$20
C2/4AD2: A2 06        LDX #$06
C2/4AD4: BD A0 3A     LDA $3AA0,X
C2/4AD7: 4A           LSR 
C2/4AD8: BD 18 30     LDA $3018,X
C2/4ADB: 2C 4C 2F     BIT $2F4C
C2/4ADE: D0 22        BNE $4B02
C2/4AE0: 2C 4E 2F     BIT $2F4E
C2/4AE3: D0 0E        BNE $4AF3
C2/4AE5: 90 1B        BCC $4B02
C2/4AE7: 0C 78 3A     TSB $3A78
C2/4AEA: EB           XBA 
C2/4AEB: BD E4 3E     LDA $3EE4,X
C2/4AEE: 89 C2        BIT #$C2     (zombie, Petrify or death status?)
C2/4AF0: D0 10        BNE $4B02    (if so, branch)
C2/4AF2: EB           XBA 
C2/4AF3: 2D 08 34     AND $3408
C2/4AF6: 0C 74 3A     TSB $3A74
C2/4AF9: 2D 40 3A     AND $3A40
C2/4AFC: 0C 42 3A     TSB $3A42
C2/4AFF: 1C 74 3A     TRB $3A74
C2/4B02: CA           DEX 
C2/4B03: CA           DEX 
C2/4B04: 10 CE        BPL $4AD4
C2/4B06: A2 0A        LDX #$0A
C2/4B08: BD A8 3A     LDA $3AA8,X
C2/4B0B: 4A           LSR 
C2/4B0C: BD 21 30     LDA $3021,X
C2/4B0F: 2C 4D 2F     BIT $2F4D
C2/4B12: D0 1E        BNE $4B32
C2/4B14: 2C 4F 2F     BIT $2F4F
C2/4B17: D0 13        BNE $4B2C
C2/4B19: 90 17        BCC $4B32
C2/4B1B: 0C 79 3A     TSB $3A79
C2/4B1E: 2C 3A 3A     BIT $3A3A
C2/4B21: D0 0F        BNE $4B32
C2/4B23: EB           XBA 
C2/4B24: BD EC 3E     LDA $3EEC,X
C2/4B27: 89 C2        BIT #$C2
C2/4B29: D0 07        BNE $4B32
C2/4B2B: EB           XBA 
C2/4B2C: 2D 09 34     AND $3409
C2/4B2F: 0C 75 3A     TSB $3A75
C2/4B32: CA           DEX 
C2/4B33: CA           DEX 
C2/4B34: 10 D2        BPL $4B08
C2/4B36: DA           PHX 
C2/4B37: 08           PHP 
C2/4B38: AD 74 3A     LDA $3A74
C2/4B3B: 20 0E 52     JSR $520E
C2/4B3E: 8E 76 3A     STX $3A76   (Set Number of characters in party
                                   to number of bits set in $3A74)
C2/4B41: AD 75 3A     LDA $3A75
C2/4B44: EB           XBA 
C2/4B45: AD 42 3A     LDA $3A42
C2/4B48: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/4B4A: 20 0E 52     JSR $520E   
C2/4B4D: 8E 77 3A     STX $3A77   (Set to number of bits set in $3A42 & $3A75)
C2/4B50: 28           PLP 
C2/4B51: FA           PLX 
C2/4B52: 60           RTS 


Random Number Generator 1 (0 or 1, carry clear or set)

C2/4B53: 48           PHA
C2/4B54: 20 5A 4B     JSR $4B5A
C2/4B57: 4A           LSR 
C2/4B58: 68           PLA 
C2/4B59: 60           RTS 


Random Number Generator 2 (0 to 255)

C2/4B5A: DA           PHX
C2/4B5B: E6 BE        INC $BE
C2/4B5D: A6 BE        LDX $BE
C2/4B5F: BF 00 FD C0  LDA $C0FD00,X
C2/4B63: FA           PLX 
C2/4B64: 60           RTS 


Random Number Generator 3 (0 to accumulator - 1)

C2/4B65: DA           PHX
C2/4B66: 08           PHP 
C2/4B67: E2 30        SEP #$30    (Set 8-bit A, X, Y)
C2/4B69: EB           XBA 
C2/4B6A: 48           PHA         (save top half of A)
C2/4B6B: E6 BE        INC $BE
C2/4B6D: A6 BE        LDX $BE
C2/4B6F: BF 00 FD C0  LDA $C0FD00,X
C2/4B73: 20 81 47     JSR $4781   (16-bit A = (input 8-bit A) * (Random Number Table value) )
C2/4B76: 68           PLA         (restore top half of A)
C2/4B77: EB           XBA         (now bottom half of A =
                                   (input 8-bit A * Random Table value) / 256)
C2/4B78: 28           PLP 
C2/4B79: FA           PLX 
C2/4B7A: 60           RTS 


C2/4B7B: 38           SEC
C2/4B7C: 6E 07 34     ROR $3407
C2/4B7F: A9 01        LDA #$01
C2/4B81: 04 B1        TSB $B1
C2/4B83: F4 18 00     PEA $0018
C2/4B86: BD CD 32     LDA $32CD,X
C2/4B89: 30 68        BMI $4BF3
C2/4B8B: 0A           ASL 
C2/4B8C: A8           TAY 
C2/4B8D: 20 76 02     JSR $0276
C2/4B90: C9 1F        CMP #$1F
C2/4B92: D0 08        BNE $4B9C
C2/4B94: 20 54 4C     JSR $4C54
C2/4B97: 20 F4 4B     JSR $4BF4
C2/4B9A: 80 EA        BRA $4B86
C2/4B9C: BD CD 32     LDA $32CD,X
C2/4B9F: A8           TAY 
C2/4BA0: B9 84 31     LDA $3184,Y
C2/4BA3: DD CD 32     CMP $32CD,X
C2/4BA6: D0 02        BNE $4BAA
C2/4BA8: A9 FF        LDA #$FF
C2/4BAA: 9D CD 32     STA $32CD,X
C2/4BAD: A9 FF        LDA #$FF
C2/4BAF: 99 84 31     STA $3184,Y
C2/4BB2: A5 B5        LDA $B5
C2/4BB4: C9 1E        CMP #$1E
C2/4BB6: B0 1D        BCS $4BD5
C2/4BB8: E0 08        CPX #$08
C2/4BBA: B0 19        BCS $4BD5
C2/4BBC: BD 18 30     LDA $3018,X
C2/4BBF: 2C 39 3A     BIT $3A39
C2/4BC2: D0 1F        BNE $4BE3
C2/4BC4: 2C 40 3A     BIT $3A40
C2/4BC7: D0 0C        BNE $4BD5
C2/4BC9: AD 77 3A     LDA $3A77
C2/4BCC: F0 15        BEQ $4BE3
C2/4BCE: BD A0 3A     LDA $3AA0,X
C2/4BD1: 89 50        BIT #$50
C2/4BD3: D0 0E        BNE $4BE3
C2/4BD5: BD 04 32     LDA $3204,X
C2/4BD8: 09 04        ORA #$04
C2/4BDA: 9D 04 32     STA $3204,X
C2/4BDD: 20 D3 13     JSR $13D3
C2/4BE0: 20 1E 02     JSR $021E
C2/4BE3: BD CD 32     LDA $32CD,X
C2/4BE6: 1A           INC 
C2/4BE7: D0 07        BNE $4BF0
C2/4BE9: A5 B0        LDA $B0
C2/4BEB: 30 06        BMI $4BF3
C2/4BED: 4C 67 02     JMP $0267
C2/4BF0: 8E 07 34     STX $3407
C2/4BF3: 60           RTS 


C2/4BF4: 08           PHP
C2/4BF5: C2 20        REP #$20     (Set 16-bit accumulator)
C2/4BF7: 9C 98 3A     STZ $3A98
C2/4BFA: BD 18 30     LDA $3018,X
C2/4BFD: 1C FC 33     TRB $33FC
C2/4C00: F0 50        BEQ $4C52
C2/4C02: 1C 56 3A     TRB $3A56
C2/4C05: D0 21        BNE $4C28
C2/4C07: AD 03 34     LDA $3403
C2/4C0A: 30 05        BMI $4C11
C2/4C0C: EC 04 34     CPX $3404
C2/4C0F: D0 1F        BNE $4C30
C2/4C11: BD 60 3E     LDA $3E60,X    (Quasi Status after attack, bytes 1-2)
C2/4C14: 89 00 B0     BIT #$B000
C2/4C17: D0 17        BNE $4C30      (if Sleep, Muddled or Berserk is set, branch)
C2/4C19: BD 74 3E     LDA $3E74,X    (Quasi Status after attack, bytes 3-4)
C2/4C1C: 89 10 02     BIT #$0210
C2/4C1F: D0 0F        BNE $4C30      (if freeze or stop is set, branch)
C2/4C21: BD 94 33     LDA $3394,X
C2/4C24: 10 0A        BPL $4C30
C2/4C26: 80 0B        BRA $4C33
C2/4C28: BD 18 30     LDA $3018,X
C2/4C2B: 0C FE 33     TSB $33FE
C2/4C2E: F0 E1        BEQ $4C11
C2/4C30: CE 98 3A     DEC $3A98
C2/4C33: BD 68 32     LDA $3268,X
C2/4C36: 85 F0        STA $F0
C2/4C38: BD 20 3D     LDA $3D20,X
C2/4C3B: 85 F2        STA $F2
C2/4C3D: BD 41 32     LDA $3241,X
C2/4C40: 85 F4        STA $F4
C2/4C42: 18           CLC 
C2/4C43: 20 2F 1A     JSR $1A2F
C2/4C46: A5 F2        LDA $F2
C2/4C48: 9D 20 3D     STA $3D20,X
C2/4C4B: E2 20        SEP #$20
C2/4C4D: A5 F5        LDA $F5
C2/4C4F: 9D 41 32     STA $3241,X
C2/4C52: 28           PLP 
C2/4C53: 60           RTS 


C2/4C54: DA           PHX
C2/4C55: E8           INX 
C2/4C56: 20 01 03     JSR $0301
C2/4C59: FA           PLX 
C2/4C5A: 60           RTS 


Counter attacks (retort, interceptor, black belt)

C2/4C5B: A2 12        LDX #$12
C2/4C5D: BD A0 3A     LDA $3AA0,X
C2/4C60: 4A           LSR 
C2/4C61: 90 5B        BCC $4CBE
C2/4C63: AD 1A 34     LDA $341A   (did attack have X-Zone/Odin/Snare special effect,
                                   or Air Anchor special effect?)
C2/4C66: F0 56        BEQ $4CBE   (branch and skip counter if so)
C2/4C68: 64 B8        STZ $B8
C2/4C6A: 64 B9        STZ $B9
C2/4C6C: BD E0 32     LDA $32E0,X (Top bit = 1 if target of this attack?
                                   Bottom seven bits = index of entity who last
                                   attacked them?)
C2/4C6F: 10 15        BPL $4C86   (Branch if this attack does not target them)
C2/4C71: 0A           ASL 
C2/4C72: 85 EE        STA $EE     (multiply attacker index by 2 so we can access
                                   their data)
C2/4C74: E4 EE        CPX $EE
C2/4C76: F0 0E        BEQ $4C86   (Branch if targeting yourself)
C2/4C78: A8           TAY         (Y = attacker index)
C2/4C79: C2 20        REP #$20    (Set 16-bit accumulator)
C2/4C7B: B9 18 30     LDA $3018,Y
C2/4C7E: 85 B8        STA $B8     (Put attacker in $B8)
C2/4C80: BD 18 30     LDA $3018,X
C2/4C83: 1C FE 33     TRB $33FE
C2/4C86: C2 20        REP #$20
C2/4C88: BD 18 30     LDA $3018,X
C2/4C8B: 2C 56 3A     BIT $3A56   
C2/4C8E: E2 20        SEP #$20    (Set 8-bit accumulator)
C2/4C90: D0 0B        BNE $4C9D   (Branch if died already this combat)
C2/4C92: A5 B1        LDA $B1
C2/4C94: 4A           LSR 
C2/4C95: B0 27        BCS $4CBE   (No counter)
C2/4C97: A5 B8        LDA $B8
C2/4C99: 05 B9        ORA $B9
C2/4C9B: F0 21        BEQ $4CBE   (No counter if not target of attack, or if
                                   targeting yourself)
C2/4C9D: BD 69 32     LDA $3269,X  (top byte of offset to monster's
                                    counterattack script)
C2/4CA0: 30 0F        BMI $4CB1    (branch if it has no counterattack script)
C2/4CA2: BD CD 32     LDA $32CD,X
C2/4CA5: 10 0A        BPL $4CB1
C2/4CA7: A9 1F        LDA #$1F
C2/4CA9: 8D 7A 3A     STA $3A7A   (Set command to #$1F (counter attack))   
C2/4CAC: 20 B2 4E     JSR $4EB2
C2/4CAF: 80 0D        BRA $4CBE
C2/4CB1: E0 08        CPX #$08
C2/4CB3: B0 09        BCS $4CBE   (Branch if monster)
C2/4CB5: AD A2 11     LDA $11A2
C2/4CB8: 4A           LSR 
C2/4CB9: 90 03        BCC $4CBE   (Branch if magical attack)
C2/4CBB: 20 C3 4C     JSR $4CC3   (Do Retort counter [or Dog Block counter,
                                   or Black Belt counter])
C2/4CBE: CA           DEX 
C2/4CBF: CA           DEX 
C2/4CC0: 10 9B        BPL $4C5D   (Check for each character and monster)
C2/4CC2: 60           RTS 


Retort

C2/4CC3: BD 4C 3E     LDA $3E4C,X
C2/4CC6: 4A           LSR 
C2/4CC7: 90 0D        BCC $4CD6   (Branch if no retort, check dog block)
C2/4CC9: A9 07        LDA #$07
C2/4CCB: 8D 7A 3A     STA $3A7A   (Store Swdtech in command)
C2/4CCE: A9 56        LDA #$56
C2/4CD0: 8D 7B 3A     STA $3A7B   (Store Retort in attack)
C2/4CD3: 4C B2 4E     JMP $4EB2


Dog Block

C2/4CD6: A5 B9        LDA $B9
C2/4CD8: F0 E8        BEQ $4CC2   (Exit function if attacked by party)
C2/4CDA: EC 16 34     CPX $3416   (was this target protected by a Dog block on
                                   this turn?  [or if it's a multi-strike attack
                                   and Interceptor status was hacked onto multiple
                                   characters, then was this target the most
                                   recently protected on the turn?])
C2/4CDD: D0 15        BNE $4CF4   (if target wasn't protected by a dog block,
                                   branch to Black Belt)
C2/4CDF: 20 5A 4B     JSR $4B5A   (random: 0 to 255)
C2/4CE2: 4A           LSR 
C2/4CE3: 90 0F        BCC $4CF4   (50% chance branch to Black Belt)
C2/4CE5: 4A           LSR         (Carry will determine which Interceptor
                                   counterattack is used: 50% chance of each)
C2/4CE6: 7B           TDC 
C2/4CE7: 69 FC        ADC #$FC
C2/4CE9: 8D 7B 3A     STA $3A7B   (Store Wild Fang or Take Down in attack)
C2/4CEC: A9 02        LDA #$02
C2/4CEE: 8D 7A 3A     STA $3A7A   (Store Magic in command)
C2/4CF1: 4C B2 4E     JMP $4EB2


Black Belt Counter

C2/4CF4: BD 18 30     LDA $3018,X
C2/4CF7: 2C 19 34     BIT $3419   (was this target damaged [by an attacker other
                                   than themselves] this turn?  the target's bit
                                   will be 0 in $3419 if they were.)
C2/4CFA: D0 C6        BNE $4CC2   (Exit if they weren't)
C2/4CFC: BD 58 3C     LDA $3C58,X
C2/4CFF: 89 02        BIT #$02    (Check for Black Belt)
C2/4D01: F0 BF        BEQ $4CC2   (Exit if no Black Belt)
C2/4D03: 20 5A 4B     JSR $4B5A   (0 to 255)
C2/4D06: C9 C0        CMP #$C0
C2/4D08: B0 B8        BCS $4CC2   (25% chance of exit)
C2/4D0A: 9B           TXY 
C2/4D0B: F4 CA A0     PEA $A0CA   (Death, Petrify, M-Tek, Zombie, Sleep, Muddled)
C2/4D0E: F4 11 32     PEA $3211   (Stop, Dance, Freeze, Spell, Hide)
C2/4D11: 20 64 58     JSR $5864
C2/4D14: 90 AC        BCC $4CC2   (Exit if any set)
C2/4D16: 9C 7A 3A     STZ $3A7A   (Store Fight in command)
C2/4D19: 9C 7B 3A     STZ $3A7B
C2/4D1C: 4C B2 4E     JMP $4EB2


C2/4D1F: AC 6A 3A     LDY $3A6A
C2/4D22: B9 AE 2B     LDA $2BAE,Y
C2/4D25: 30 45        BMI $4D6C   (Exit function)
C2/4D27: 0A           ASL 
C2/4D28: AA           TAX 
C2/4D29: 20 66 4E     JSR $4E66
C2/4D2C: A9 7B        LDA #$7B
C2/4D2E: 20 92 07     JSR $0792
C2/4D31: A9 FF        LDA #$FF
C2/4D33: 99 AE 2B     STA $2BAE,Y
C2/4D36: 98           TYA 
C2/4D37: 69 08        ADC #$08
C2/4D39: 29 18        AND #$18
C2/4D3B: 8D 6A 3A     STA $3A6A
C2/4D3E: 20 6D 4D     JSR $4D6D
C2/4D41: B9 B0 2B     LDA $2BB0,Y
C2/4D44: EB           XBA 
C2/4D45: B9 AF 2B     LDA $2BAF,Y
C2/4D48: 20 89 4D     JSR $4D89
C2/4D4B: 20 77 4D     JSR $4D77
C2/4D4E: 20 CB 4E     JSR $4ECB
C2/4D51: B9 AF 2B     LDA $2BAF,Y
C2/4D54: C9 17        CMP #$17
C2/4D56: D0 C7        BNE $4D1F
C2/4D58: C8           INY 
C2/4D59: C8           INY 
C2/4D5A: C8           INY 
C2/4D5B: 20 6D 4D     JSR $4D6D
C2/4D5E: B9 B0 2B     LDA $2BB0,Y
C2/4D61: EB           XBA 
C2/4D62: A9 17        LDA #$17
C2/4D64: 20 77 4D     JSR $4D77
C2/4D67: 20 CB 4E     JSR $4ECB
C2/4D6A: 80 B3        BRA $4D1F
C2/4D6C: 60           RTS 


C2/4D6D: 08           PHP
C2/4D6E: C2 20        REP #$20
C2/4D70: B9 B1 2B     LDA $2BB1,Y
C2/4D73: 85 B8        STA $B8
C2/4D75: 28           PLP 
C2/4D76: 60           RTS 


Clears target if attacker is Zombied or Muddled

C2/4D77: 08           PHP
C2/4D78: C2 20        REP #$20     (set 16-bit accumulator)
C2/4D7A: 8D 7A 3A     STA $3A7A
C2/4D7D: BD E4 3E     LDA $3EE4,X
C2/4D80: 89 02 20     BIT #$2002
C2/4D83: F0 02        BEQ $4D87    (branch if not Zombie or Muddle)
C2/4D85: 64 B8        STZ $B8      (clear targets)
C2/4D87: 28           PLP 
C2/4D88: 60           RTS 


C2/4D89: DA           PHX
C2/4D8A: 5A           PHY 
C2/4D8B: 9B           TXY 
C2/4D8C: C9 17        CMP #$17   
C2/4D8E: D0 02        BNE $4D92   (Branch if not X-Magic)
C2/4D90: A9 02        LDA #$02    (Set command to Magic)

C2/4D92: C9 19        CMP #$19    
C2/4D94: D0 11        BNE $4DA7   (Branch if not Summon)
C2/4D96: 48           PHA 
C2/4D97: EB           XBA 
C2/4D98: C9 FF        CMP #$FF    (Check if no Esper equipped)
C2/4D9A: D0 03        BNE $4D9F
C2/4D9C: B9 44 33     LDA $3344,Y
C2/4D9F: EB           XBA 
C2/4DA0: B9 18 30     LDA $3018,Y
C2/4DA3: 0C 2E 3F     TSB $3F2E   
C2/4DA6: 68           PLA

C2/4DA7: C9 01        CMP #$01
C2/4DA9: F0 04        BEQ $4DAF   (Branch if Item)
C2/4DAB: C9 08        CMP #$08
C2/4DAD: D0 05        BNE $4DB4   (Branch if not Throw)
C2/4DAF: EB           XBA 
C2/4DB0: 99 F4 32     STA $32F4,Y (store as item to add back to inventory.  this can
                                   happen with:
                                   1) Equipment Magic that doesn't destroy the item
                                      [no items have this, but the game supports it]
                                   2) the item user's turn never happens.  perhaps the
                                      character who acted before them won the battle.)
C2/4DB3: EB           XBA 

C2/4DB4: C9 0F        CMP #$0F
C2/4DB6: D0 23        BNE $4DDB   (Branch if not Slot)
C2/4DB8: 48           PHA         (save command #)
C2/4DB9: EB           XBA           (get our Slot index)
C2/4DBA: AA           TAX 
C2/4DBB: BF 4A 4E C2  LDA $C24E4A,X   (get spell # used by this Slot combo)
C2/4DBF: E0 02        CPX #$02
C2/4DC1: B0 0F        BCS $4DD2       (branch if it's Bahamut or higher -- i.e. neither form
                                       of Joker Doom)
C2/4DC3: 48           PHA             (save spell #)
C2/4DC4: BF 52 4E C2  LDA $C24E52,X   (get Joker Doom targeting)
C2/4DC8: 95 B8        STA $B8,X       (if X is 0 [7-7-Bar], mark all party members in $B8
                                       if X is 1 [7-7-7], mark all enemies in $B9)
C2/4DCA: A5 B8        LDA $B8
C2/4DCC: 4D 40 3A     EOR $3A40     
C2/4DCF: 85 B8        STA $B8         (toggle whether characters acting as enemies are targeted.
                                       e.g. Shadow in Colosseum or Gau returning from Veldt leap)
C2/4DD1: 68           PLA             (restore spell #)
C2/4DD2: C9 FF        CMP #$FF
C2/4DD4: D0 03        BNE $4DD9   (branch if not Bar-Bar-Bar)
C2/4DD6: 20 DC 37     JSR $37DC   (Pick random esper)
C2/4DD9: EB           XBA 
C2/4DDA: 68           PLA         (restore command #)

C2/4DDB: C9 13        CMP #$13
C2/4DDD: D0 0D        BNE $4DEC   (Branch if not Dance)
C2/4DDF: 48           PHA 
C2/4DE0: EB           XBA 
C2/4DE1: 99 E1 32     STA $32E1,Y
C2/4DE4: 8D 6F 3A     STA $3A6F
C2/4DE7: 20 9C 05     JSR $059C   (Pick dance and dance move)
C2/4DEA: EB           XBA 
C2/4DEB: 68           PLA 

C2/4DEC: C9 10        CMP #$10
C2/4DEE: D0 0A        BNE $4DFA   (Branch if not Rage)
C2/4DF0: 48           PHA 
C2/4DF1: EB           XBA 
C2/4DF2: 99 A8 33     STA $33A8,Y (Which rage is being used)
C2/4DF5: 20 D1 05     JSR $05D1   (Picks a Rage [when Muddled/Berserked/etc], and picks
                                   the Rage move)
C2/4DF8: EB           XBA
C2/4DF9: 68           PLA 

C2/4DFA: C9 0A        CMP #$0A
C2/4DFC: D0 15        BNE $4E13   (Branch if not Blitz)
C2/4DFE: 48           PHA 
C2/4DFF: EB           XBA 
C2/4E00: 48           PHA 
C2/4E01: 30 0D        BMI $4E10   (If no blitz selected)
C2/4E03: AA           TAX 
C2/4E04: 20 57 1E     JSR $1E57
C2/4E07: 2C 28 1D     BIT $1D28
C2/4E0A: D0 04        BNE $4E10   (Branch if selected blitz is known)
C2/4E0C: A9 FF        LDA #$FF
C2/4E0E: 83 01        STA $01,S   (replace spell/attack # with null)
C2/4E10: 68           PLA 
C2/4E11: EB           XBA 
C2/4E12: 68           PLA 

C2/4E13: A2 04        LDX #$04
C2/4E15: DF 3C 4E C2  CMP $C24E3C,X   (does our command match one that needs its
                                       spell # calculated?)
C2/4E19: D0 0B        BNE $4E26       (branch if not)
C2/4E1B: EB           XBA 
C2/4E1C: 18           CLC 
C2/4E1D: 7F 41 4E C2  ADC $C24E41,X   (add the first spell # for this command to our
                                       current index.  ex - for Pummel, Blitz #0, we'd
                                       end up with 55h.)
C2/4E21: 90 02        BCC $4E25       (branch if the spell # didn't overflow)
C2/4E23: A9 EE        LDA #$EE        (load Battle as spell #)
C2/4E25: EB           XBA             (put spell # in top of A, and look at command # again)
C2/4E26: CA           DEX 
C2/4E27: 10 EC        BPL $4E15       (loop for all 5 commands)

C2/4E29: 48           PHA 
C2/4E2A: 18           CLC             (clear Carry)
C2/4E2B: 20 17 52     JSR $5217       (X = A DIV 8, A = 2 ^ (A MOD 8) )
C2/4E2E: 3F 46 4E C2  AND $C24E46,X   (compare to bitfield of commands that need to retarget)
C2/4E32: F0 04        BEQ $4E38       (Branch if command doesn't need to retarget)
C2/4E34: 64 B8        STZ $B8    
C2/4E36: 64 B9        STZ $B9         (clear targets)
C2/4E38: 68           PLA 
C2/4E39: 7A           PLY 
C2/4E3A: FA           PLX 
C2/4E3B: 60           RTS 


(Data - commands that need their spell # calculated)

C2/4E3C: 19   (Summon)
C2/4E3D: 0C   (Lore)
C2/4E3E: 1D   (Magitek)
C2/4E3F: 0A   (Blitz)
C2/4E40: 07   (Swdtech)


(Data - first spell # for each of above commands)

C2/4E41: 36   (Espers)    
C2/4E42: 8B   (Lores)   
C2/4E43: 83   (Magitek commands)
C2/4E44: 5D   (Blitzes)
C2/4E45: 55   (Swdtech)


(Data - commands that need to retarget.  8 commands per byte.)

C2/4E46: 80   (Swdtech)
C2/4E47: 04   (Blitz)
C2/4E48: 0B   (Rage, Leap, Dance)
C2/4E49: 00   (Nothing)


(Data - spell numbers for Slot attacks)

C2/4E4A: 94   (L.5 Doom -- used by Joker Doom)
C2/4E4B: 94   (L.5 Doom -- used by Joker Doom)
C2/4E4C: 43   (Bahamut)
C2/4E4D: FF   (Nothing -- used by Triple Bar?)
C2/4E4E: 80   (H-Bomb)
C2/4E4F: 7F   (Chocobop)
C2/4E50: 81   (7-Flush)
C2/4E51: FE   (Lagomorph)


(Data - Joker Doom targeting)

C2/4E52: 0F   (7-7-bar => your whole party)
C2/4E53: 3F   (7-7-7  => whole enemy party)


C2/4E54: DA           PHX
C2/4E55: A2 7F        LDX #$7F
C2/4E57: BD 84 31     LDA $3184,X
C2/4E5A: 30 04        BMI $4E60
C2/4E5C: CA           DEX 
C2/4E5D: 10 F8        BPL $4E57
C2/4E5F: E8           INX 
C2/4E60: 8A           TXA 
C2/4E61: 9D 84 31     STA $3184,X
C2/4E64: FA           PLX 
C2/4E65: 60           RTS 


(Add character/monster to queue of who will wait to act.  One place this is called 
 is right after a character's command is input, and before they enter their
 "ready stance".  Monsters' ready stances aren't visible [and are generally
 negligible in length], but monsters still use this queue too.)

C2/4E66: 8A           TXA
C2/4E67: DA           PHX 
C2/4E68: AE 65 3A     LDX $3A65     (get next available Wait Queue slot)
C2/4E6B: 9D 20 37     STA $3720,X   (store current entity in that slot)
C2/4E6E: FA           PLX 
C2/4E6F: EE 65 3A     INC $3A65     (point to next queue slot after this one.  this is
                                     circular: if we've gone past slot #255, we'll restart on
                                     #0.  that shouldn't be a problem unless 256+ fighters
                                     get queued up at once somehow.)
C2/4E72: A9 FE        LDA #$FE
C2/4E74: 4C 43 0A     JMP $0A43


(Add character/monster to queue of who will act next.  One place this is called is
 when someone's "wait timer" after inputting a command elapses and they can leave
 their ready stance to attack.)

C2/4E77: 8A           TXA
C2/4E78: DA           PHX 
C2/4E79: AE 67 3A     LDX $3A67     (get next available Action Queue slot)
C2/4E7C: 9D 20 38     STA $3820,X   (store current entity in that slot)
C2/4E7F: FA           PLX 
C2/4E80: EE 67 3A     INC $3A67     (point to next queue slot after this one.  this is
                                     circular: if we've gone past slot #255, we'll restart on
                                     #0.  that shouldn't be a problem unless 256+ fighters
                                     get queued up at once somehow.)
C2/4E83: 60           RTS 


C2/4E84: 8A           TXA
C2/4E85: DA           PHX 
C2/4E86: AE 69 3A     LDX $3A69
C2/4E89: 9D 20 39     STA $3920,X
C2/4E8C: FA           PLX 
C2/4E8D: EE 69 3A     INC $3A69
C2/4E90: 60           RTS 


C2/4E91: 5A           PHY
C2/4E92: 08           PHP 
C2/4E93: E2 20        SEP #$20
C2/4E95: 8D 7A 3A     STA $3A7A   (Set command)
C2/4E98: 8E 7B 3A     STX $3A7B   (Set attack)
C2/4E9B: 20 54 4E     JSR $4E54
C2/4E9E: 48           PHA 
C2/4E9F: AD 0A 34     LDA $340A
C2/4EA2: C9 FF        CMP #$FF
C2/4EA4: D0 39        BNE $4EDF
C2/4EA6: A3 01        LDA $01,S
C2/4EA8: 8D 0A 34     STA $340A
C2/4EAB: 80 32        BRA $4EDF


C2/4EAD: A5 B1        LDA $B1
C2/4EAF: 4A           LSR 
C2/4EB0: 90 19        BCC $4ECB
C2/4EB2: 5A           PHY 
C2/4EB3: 08           PHP 
C2/4EB4: E2 20        SEP #$20
C2/4EB6: 20 54 4E     JSR $4E54
C2/4EB9: 48           PHA 
C2/4EBA: BD CD 32     LDA $32CD,X
C2/4EBD: C9 FF        CMP #$FF
C2/4EBF: D0 1E        BNE $4EDF
C2/4EC1: 20 84 4E     JSR $4E84
C2/4EC4: A3 01        LDA $01,S
C2/4EC6: 9D CD 32     STA $32CD,X
C2/4EC9: 80 14        BRA $4EDF


C2/4ECB: 5A           PHY
C2/4ECC: 08           PHP 
C2/4ECD: E2 20        SEP #$20    (Set 8-bit Accumulator)
C2/4ECF: 20 54 4E     JSR $4E54
C2/4ED2: 48           PHA 
C2/4ED3: BD CC 32     LDA $32CC,X
C2/4ED6: C9 FF        CMP #$FF
C2/4ED8: D0 05        BNE $4EDF
C2/4EDA: A3 01        LDA $01,S
C2/4EDC: 9D CC 32     STA $32CC,X
C2/4EDF: A8           TAY 
C2/4EE0: D9 84 31     CMP $3184,Y
C2/4EE3: F0 07        BEQ $4EEC
C2/4EE5: B9 84 31     LDA $3184,Y
C2/4EE8: 30 02        BMI $4EEC
C2/4EEA: 80 F3        BRA $4EDF
C2/4EEC: 68           PLA 
C2/4EED: 99 84 31     STA $3184,Y
C2/4EF0: 0A           ASL 
C2/4EF1: A8           TAY 
C2/4EF2: 20 08 4F     JSR $4F08    (Determine MP cost of a spell/attack)
C2/4EF5: 99 20 36     STA $3620,Y  (save MP cost)
C2/4EF8: C2 20        REP #$20     (Set 16-bit Accumulator)
C2/4EFA: AD 7A 3A     LDA $3A7A
C2/4EFD: 99 20 34     STA $3420,Y  (save command #)
C2/4F00: A5 B8        LDA $B8
C2/4F02: 99 20 35     STA $3520,Y
C2/4F05: 28           PLP 
C2/4F06: 7A           PLY 
C2/4F07: 60           RTS 


(Determine MP cost of a spell/attack)

C2/4F08: DA           PHX
C2/4F09: 08           PHP 
C2/4F0A: 7B           TDC        (16-bit A = 0.  this means the returned spell cost will
                                  default to zero.)
C2/4F0B: A9 40        LDA #$40
C2/4F0D: 14 B1        TRB $B1
C2/4F0F: D0 42        BNE $4F53

C2/4F11: AD 7A 3A     LDA $3A7A  (get command #)
C2/4F14: C9 19        CMP #$19
C2/4F16: F0 0C        BEQ $4F24  (branch if it's Summon)
C2/4F18: C9 0C        CMP #$0C
C2/4F1A: F0 08        BEQ $4F24  (branch if it's Lore)
C2/4F1C: C9 02        CMP #$02
C2/4F1E: F0 04        BEQ $4F24  (branch if it's Magic)
C2/4F20: C9 17        CMP #$17
C2/4F22: D0 2F        BNE $4F53  (branch if it's not X-Magic)
C2/4F24: C2 10        REP #$10   (Set 16-bit X and Y)
C2/4F26: AD 7B 3A     LDA $3A7B  (get attack #)
C2/4F29: E0 08 00     CPX #$0008
C2/4F2C: B0 19        BCS $4F47  (branch if it's a monster attacker.  they don't have
                                  menus containing MP data, nor relics that can
                                  alter MP costs.)
C2/4F2E: DA           PHX
C2/4F2F: AA           TAX
C2/4F30: BD 84 30     LDA $3084,X  (get this spell's index relative to start of Magic menu?
                                    i believe the Lore menu follows the Magic menu in memory.)
C2/4F33: FA           PLX 
C2/4F34: C9 FF        CMP #$FF
C2/4F36: F0 1B        BEQ $4F53   (if it's somehow not in the menu, branch?)
C2/4F38: C2 20        REP #$20    (Set 16-bit Accumulator)
C2/4F3A: 0A           ASL 
C2/4F3B: 0A           ASL         (multiply offset by 4, as each spell menu entry has 4 bytes:
                                    Spell index number, Unknown [related to spell availability],
                                    Spell aiming, MP cost)
C2/4F3C: 7D 2C 30     ADC $302C,X (add starting address of character's Magic menu?)
C2/4F3F: AA           TAX 
C2/4F40: E2 20        SEP #$20    (Set 8-bit Accumulator)
C2/4F42: BD 03 00     LDA $0003,X (get MP cost from character's menu data.  it usually
                                   matches the spell data, but Gold Hairpin, Economizer,
                                   and Step Mine's special formula can make it vary.)
C2/4F45: 80 0D        BRA $4F54   (clean up stack and exit)
C2/4F47: EB           XBA 
C2/4F48: A9 0E        LDA #$0E
C2/4F4A: 20 81 47     JSR $4781   (attack # * 14)
C2/4F4D: AA           TAX 
C2/4F4E: BF C5 6A C4  LDA $C46AC5,X  (read MP cost from spell data)
C2/4F52: EB           XBA 
C2/4F53: EB           XBA 
C2/4F54: 28           PLP 
C2/4F55: FA           PLX 
C2/4F56: 60           RTS 


Monster command script command #$F7

C2/4F57: A5 B6        LDA $B6
C2/4F59: EB           XBA 
C2/4F5A: A9 0F        LDA #$0F
C2/4F5C: 4C BF 62     JMP $62BF


Command #$26 - Doom cast when Condemned countdown reaches 0; Safe, Shell, or Reflect*
               cast when character enters Near Fatal (* no items actually do this,
               but it's supported); or revival due to Life 3.

C2/4F5F: A5 B8        LDA $B8      (get spell ID?)
C2/4F61: A6 B6        LDX $B6      (get target?)
C2/4F63: 85 B6        STA $B6      (save spell ID)
C2/4F65: C9 0D        CMP #$0D
C2/4F67: D0 0F        BNE $4F78    (branch if we're not casting Doom)
C2/4F69: BD 04 32     LDA $3204,X
C2/4F6C: 09 10        ORA #$10
C2/4F6E: 9D 04 32     STA $3204,X  (set flag to zero and disable the Condemned counter
                                    after turn.  this is done in case instant death is
                                    thwarted, and thus Condemned status isn't removed
                                    and C2/4644 never executes.)
C2/4F71: AD 77 3A     LDA $3A77
C2/4F74: F0 69        BEQ $4FDF   (Exit function if no monsters are alive)
C2/4F76: A9 0D        LDA #$0D    (Set spell to Doom again.  it's easier than PHA/PLA)
C2/4F78: EB           XBA 
C2/4F79: A9 02        LDA #$02
C2/4F7B: 85 B5        STA $B5     (Set command to Magic)
C2/4F7D: 20 D3 26     JSR $26D3   (Load command and spell data)
C2/4F80: 20 51 29     JSR $2951
C2/4F83: A9 10        LDA #$10
C2/4F85: 14 B0        TRB $B0
C2/4F87: A9 02        LDA #$02
C2/4F89: 8D A3 11     STA $11A3   (Set attack to only not reflectable)
C2/4F8C: A9 20        LDA #$20
C2/4F8E: 0C A4 11     TSB $11A4   (Set can't be dodged)
C2/4F91: 9C A5 11     STZ $11A5   (Set to 0 MP cost)
C2/4F94: 4C 67 31     JMP $3167


Monster command script command #$F5

C2/4F97: 9C 2A 3A     STZ $3A2A   (Set to zero damage)
C2/4F9A: 9C 2B 3A     STZ $3A2B
C2/4F9D: AD 73 3A     LDA $3A73
C2/4FA0: 49 FF        EOR #$FF
C2/4FA2: 14 B9        TRB $B9     (Clear monsters that aren't in template)
C2/4FA4: A5 B8        LDA $B8
C2/4FA6: 0A           ASL 
C2/4FA7: AA           TAX 
C2/4FA8: A0 12        LDY #$12
C2/4FAA: B9 19 30     LDA $3019,Y
C2/4FAD: 24 B9        BIT $B9
C2/4FAF: F0 03        BEQ $4FB4     (branch if enemy isn't affected by the F5 command)
C2/4FB1: FC E4 51     JSR ($51E4,X)
C2/4FB4: 88           DEY 
C2/4FB5: 88           DEY 
C2/4FB6: C0 08        CPY #$08
C2/4FB8: B0 F0        BCS $4FAA     (loop for all 6 monsters)
C2/4FBA: A5 B6        LDA $B6
C2/4FBC: EB           XBA 
C2/4FBD: A9 13        LDA #$13
C2/4FBF: 4C BF 62     JMP $62BF


C2/4FC2: 48           PHA
C2/4FC3: A9 FF        LDA #$FF
C2/4FC5: 8D 95 3A     STA $3A95
C2/4FC8: 68           PLA 
C2/4FC9: 80 03        BRA $4FCE
C2/4FCB: 0C 4D 2F     TSB $2F4D
C2/4FCE: 1C 09 34     TRB $3409
C2/4FD1: 1C 2F 2F     TRB $2F2F
C2/4FD4: 0C 2A 3A     TSB $3A2A
C2/4FD7: B9 F9 3E     LDA $3EF9,Y
C2/4FDA: 09 20        ORA #$20
C2/4FDC: 99 F9 3E     STA $3EF9,Y  (Set Hide status)
C2/4FDF: 60           RTS 


C2/4FE0: 48           PHA
C2/4FE1: C2 20        REP #$20
C2/4FE3: B9 1C 3C     LDA $3C1C,Y (Max HP)
C2/4FE6: 99 F4 3B     STA $3BF4,Y (Current HP)
C2/4FE9: E2 20        SEP #$20
C2/4FEB: 68           PLA 
C2/4FEC: 1C 3A 3A     TRB $3A3A
C2/4FEF: 0C 2F 2F     TSB $2F2F
C2/4FF2: 0C 2B 3A     TSB $3A2B
C2/4FF5: 0C 4F 2F     TSB $2F4F
C2/4FF8: 0C 09 34     TSB $3409
C2/4FFB: 9C 95 3A     STZ $3A95
C2/4FFE: 60           RTS 


C2/4FFF: 20 CE 4F     JSR $4FCE
C2/5002: B9 E4 3E     LDA $3EE4,Y
C2/5005: 09 80        ORA #$80    
C2/5007: 99 E4 3E     STA $3EE4,Y  (Set Death status)
C2/500A: 60           RTS