Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
Final Fantasy VI/ROM map/Assembly C26: Difference between revisions
< Final Fantasy VI | ROM map
Jump to navigation
Jump to search
(clean up) |
m (Xkeeper moved page Final Fantasy VI:ROM map/Assembly C26 to Final Fantasy VI/ROM map/Assembly C26: normalize subpages and titles) |
||
(5 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
{{subpage|game=Final Fantasy VI:ROM map}} | |||
==C2/602A learn spell based on esper== | ==C2/602A learn spell based on esper== | ||
C2/602A: DA PHX | C2/602A: DA PHX | ||
Line 937: | Line 938: | ||
C2/67F9: FF FF FF FF | C2/67F9: FF FF FF FF | ||
C2/67FD: FF FF FF | C2/67FD: FF FF FF | ||
==C2/6800 | ==C2/6800 decompress cinematics block and do selected cinematic== | ||
C2/6800: 4C | C2/6800: 4C 13 68 JMP $6813 | ||
C2/6803: 4C 0C 68 JMP $680C | C2/6803: 4C 0C 68 JMP $680C | ||
C2/6806: 4C 1A 68 JMP $681A | C2/6806: 4C 1A 68 JMP $681A | ||
C2/6809: 4C 21 68 JMP $6821 | C2/6809: 4C 21 68 JMP $6821 | ||
C2/680C: 20 28 68 JSR $6828 | C2/680C: 20 28 68 JSR $6828 | ||
C2/680F: 5C 00 50 7E JMP $7E5000 | C2/680F: 5C 00 50 7E JMP $7E5000 (do title screen cinematic) | ||
C2/6813: 20 28 68 JSR $6828 | C2/6813: 20 28 68 JSR $6828 | ||
C2/6816: 5C 03 50 7E JMP $7E5003 | C2/6816: 5C 03 50 7E JMP $7E5003 (do opening credits cinematic) | ||
C2/681A: 20 28 68 JSR $6828 | C2/681A: 20 28 68 JSR $6828 | ||
C2/681D: 5C 06 50 7E JMP $7E5006 | C2/681D: 5C 06 50 7E JMP $7E5006 (do floating island cinematic) | ||
C2/6821: 20 28 68 JSR $6828 | C2/6821: 20 28 68 JSR $6828 | ||
C2/6824: 5C 09 50 7E JMP $7E5009 | C2/6824: 5C 09 50 7E JMP $7E5009 (do world tearing apart cinematic) | ||
C2/6828: 08 PHP | C2/6828: 08 PHP | ||
C2/6829: C2 30 REP #$30 | C2/6829: C2 30 REP #$30 | ||
Line 960: | Line 960: | ||
C2/6830: C2 10 REP #$10 | C2/6830: C2 10 REP #$10 | ||
C2/6832: E2 20 SEP #$20 | C2/6832: E2 20 SEP #$20 | ||
C2/6834: A9 00 | C2/6834: A9 00 LDA #$00 | ||
C2/6836: 48 PHA | |||
C2/6837: AB PLB | C2/6837: AB PLB | ||
C2/6838: A2 00 | C2/6838: A2 00 00 LDX #$0000 | ||
C2/ | C2/683B: DA PHX | ||
C2/683C: 2B PLD | C2/683C: 2B PLD | ||
C2/683D: A2 00 | C2/683D: A2 00 00 LDX #$0000 | ||
C2/ | C2/6840: 86 00 STX $00 | ||
C2/ | C2/6842: A9 7E LDA #$7E | ||
C2/ | C2/6844: 8D 83 21 STA $2183 | ||
C2/ | C2/6847: A0 6C 68 LDY #$686C | ||
C2/684A: 84 F3 STY $F3 | |||
C2/ | C2/684C: A9 C2 LDA #$C2 | ||
C2/ | C2/684E: 85 F5 STA $F5 | ||
C2/ | C2/6850: A0 00 50 LDY #$5000 | ||
C2/ | |||
C2/6853: 84 F6 STY $F6 | C2/6853: 84 F6 STY $F6 | ||
C2/6855: A9 7E | C2/6855: A9 7E LDA #$7E | ||
C2/ | C2/6857: 85 F8 STA $F8 | ||
C2/6859: 8B PHB | C2/6859: 8B PHB | ||
C2/685A: A9 7E | C2/685A: A9 7E LDA #$7E | ||
C2/685C: 48 PHA | |||
C2/685D: AB PLB | C2/685D: AB PLB | ||
C2/685E: 22 6D FF C2 JSR $C2FF6D | C2/685E: 22 6D FF C2 JSR $C2FF6D | ||
Line 990: | Line 991: | ||
C2/6869: 68 PLA | C2/6869: 68 PLA | ||
C2/686A: 28 PLP | C2/686A: 28 PLP | ||
C2/686B: 60 RTS | C2/686B: 60 RTS | ||
==C2/686C data (compressed)== | ==C2/686C data (compressed)== | ||
(Compressed data - format explained in Function C2/FF6D) | (Compressed data - format explained in Function C2/FF6D) | ||
('''Decompressed data available [[Final_Fantasy_VI:7E5000_from_C2686C|here]]''') | |||
C2/686C: F4 21 (block is 8692 bytes in length, including control bytes) | C2/686C: F4 21 (block is 8692 bytes in length, including control bytes) | ||
C2/686E: FF | C2/686E: FF 4C 0C 50 4C F3 57 4C C4 (control byte + compressed data) | ||
C2/6877: FF 69 4C F2 6C 08 C2 30 48 (control byte + compressed data) | |||
C2/6880: FF DA 5A 8B 0B 20 2F 50 20 (etc.) | |||
C2/ | C2/6889: FF 7F 50 20 F7 50 20 A8 50 | ||
C2/6892: FF 20 43 50 20 4E 50 C2 30 | |||
C2/ | C2/689B: FF 2B AB 7A FA 68 28 6B E2 | ||
C2/ | C2/68A4: FF 20 A9 7E 48 AB A2 00 00 | ||
C2/ | C2/68AD: FB DA 2B 13 00 86 00 20 62 50 | ||
C2/ | C2/68B7: FF 60 A9 F0 8F 00 13 00 22 | ||
C2/ | C2/68C0: FF 04 00 C5 60 A9 8F 8F 00 | ||
C2/ | C2/68C9: FF 21 00 7B 8F 00 42 00 8F | ||
C2/ | C2/68D2: FD 0B 35 00 0C 42 00 60 A9 5C | ||
C2/ | C2/68DC: FF 8D 00 15 8D 04 15 A2 33 | ||
C2/ | C2/68E5: FF 72 8E 01 15 A2 64 72 8E | ||
C2/ | C2/68EE: FF 05 15 A9 7E 8D 03 15 8D | ||
C2/ | C2/68F7: FF 07 15 60 20 11 77 7B 20 | ||
C2/ | C2/6900: FF 93 50 20 15 78 20 4F 78 | ||
C2/ | C2/6909: FF 20 85 74 20 FA 78 60 8F | ||
C2/ | C2/6912: DF 02 13 00 A9 10 23 08 A9 02 | ||
C2/691C: FB 8F 01 25 20 7B A5 19 30 18 | |||
C2/ | C2/6926: FF 0A AA FC DF 50 A5 06 89 | ||
C2/ | C2/692F: FF 80 D0 08 20 0F 75 20 FD | ||
C2/ | C2/6938: FF 71 80 E8 A9 FF 8D 00 02 | ||
C2/ | C2/6941: FF A0 0F 00 84 15 A9 00 A0 | ||
C2/ | C2/694A: FF A0 55 20 DC 74 A4 15 F0 | ||
C2/ | C2/6953: FE 95 28 F4 60 AE 51 80 52 97 | ||
C2/ | C2/695D: FF 52 A6 52 E0 52 EC 52 3F | ||
C2/ | C2/6966: FF 53 77 53 8A 53 9C 53 B5 | ||
C2/ | C2/696F: D7 53 BC 53 86 08 0D 8B 00 31 51 | ||
C2/ | C2/697A: FA 96 20 EE A3 B0 7B A8 85 19 84 | ||
C2/ | C2/6985: F7 25 84 27 6A 08 4E 50 60 55 | ||
C2/ | C2/698F: FF 51 A5 51 00 00 63 10 BD | ||
C2/ | C2/6998: DF 77 00 00 FF 7F 1B 99 20 06 | ||
C2/ | C2/69A2: FF 53 A2 00 30 A0 65 74 20 | ||
C2/ | C2/69AB: AF 24 73 A2 20 38 31 31 42 39 43 | ||
C2/ | C2/69B6: BF 7B A9 01 20 3A 73 36 09 45 | ||
C2/ | C2/69C0: D9 74 57 19 40 01 35 51 57 11 A0 00 | ||
C2/69CC: FF 01 84 25 A0 2C 01 84 15 | |||
C2/ | C2/69D5: FF E6 19 A9 0F 85 32 60 A4 | ||
C2/ | C2/69DE: FF 15 D0 04 A9 FF 85 19 60 | ||
C2/69E7: 16 48 09 63 7B 3C 09 40 53 09 3C 09 37 49 | |||
C2/ | C2/69F5: 55 C3 91 11 C0 38 29 40 38 29 60 38 29 | ||
C2/ | C2/6A02: E5 E0 38 29 A0 38 29 B1 01 03 7C A9 | ||
C2/ | C2/6A0E: 09 04 59 09 BA 01 23 E2 21 C3 01 EC 29 CC 01 | ||
C2/ | C2/6A1D: D9 43 E2 21 D5 01 E3 7B E3 11 A9 01 | ||
C2/ | C2/6A29: 1B A0 39 AC 08 A0 3C A5 00 7C 19 14 02 | ||
C2/ | C2/6A36: FD C8 AC 08 C2 20 A9 40 30 9D | ||
C2/ | C2/6A40: 53 01 37 0D 00 28 3A 60 33 72 C0 33 1A | ||
C2/6A4D: 7E 82 09 12 E6 19 A0 43 04 A6 00 | |||
C2/ | C2/6A58: 97 FF 8F 05 73 00 FF 61 00 82 09 0A | ||
C2/ | C2/6A64: 9F 20 97 78 A0 1E 1E 12 82 09 35 | ||
C2/ | C2/6A6F: 66 A8 00 C5 53 AD 00 A8 00 31 54 8D 1A | ||
C2/6A7C: 79 AF 94 0A 36 09 83 7B A9 02 64 21 | |||
C2/ | C2/6A88: 4D A3 56 19 A0 4A 79 11 82 09 07 62 02 | ||
C2/ | C2/6A95: F1 F0 A5 00 82 09 7B 01 A0 C0 03 84 | ||
C2/6AA1: D1 15 33 09 52 19 E4 09 60 A8 00 DB 76 | |||
C2/ | C2/6AAE: BE 2C 1A 5C 7A 9D 00 35 0D 00 40 | ||
C2/ | C2/6AB9: FF 9D 01 33 A9 A0 9D 01 34 | ||
C2/ | C2/6AC2: 4A E4 42 5F F0 22 90 F8 2A 82 09 33 62 02 | ||
C2/ | C2/6AD0: 0E 73 01 15 A2 00 8E 09 A6 22 2A 13 E4 11 | ||
C2/ | C2/6ADE: C4 37 01 2C 03 08 64 21 42 23 82 09 0E A9 | ||
C2/ | C2/6AEC: EB 40 04 20 0B 01 A5 00 20 BD 5C | ||
C2/ | C2/6AF7: FE 82 09 0D E6 19 64 31 A9 80 | ||
C2/6B01: CF 85 33 A0 A0 D2 02 82 09 08 A0 | |||
C2/ | C2/6B0C: FD E0 B8 1A A5 18 29 03 D0 06 | ||
C2/ | C2/6B16: 2F C2 20 E6 27 5B 1A 02 81 02 87 09 | ||
C2/6B22: FD 7B A0 00 60 AA 7C C9 53 CD | |||
C2/6B2C: FF 53 D5 53 A6 1D FE 00 3A | |||
C2/6B35: FF 9E 01 37 A5 33 30 56 A6 | |||
C2/6B3E: FF 1D 7B A8 9E 01 38 A6 1D | |||
C2/6B47: FF BD 01 37 18 7D 01 38 20 | |||
C2/6B50: FF A5 54 48 AF 12 42 00 29 | |||
C2/6B59: 7F 40 F0 F8 A9 08 8F 1B 30 08 | |||
C2/ | C2/6B63: BE D6 03 68 8F 1C 21 00 DF 0B A6 | ||
C2/6B6E: FF 1D C2 20 AF 35 21 00 99 | |||
C2/ | C2/6B77: EF 80 41 E2 20 BE 0B 38 18 69 | ||
C2/ | C2/6B81: DF 04 9D 01 38 C8 FF 03 C0 C0 | ||
C2/ | C2/6B8B: FF 00 D0 B6 FE 01 37 38 60 | ||
C2/6B94: FD 18 A2 03 35 54 39 54 41 54 | |||
C2/6B9E: D6 AB 1B 00 39 B3 03 5B B7 0B A9 10 | |||
C2/ | C2/6BAA: F4 FC 03 BE 9B 0A D5 C3 00 45 99 02 | ||
C2/ | C2/6BB6: F5 45 F2 93 B3 08 24 18 69 40 EB | ||
C2/ | C2/6BC1: FF A5 00 EB AA BF 6D FE C2 | ||
C2/ | C2/6BCA: BE A2 03 B3 54 B7 54 C1 16 1C A9 | ||
C2/ | C2/6BD5: FB 01 9D 1D 04 18 29 01 F0 0F | ||
C2/ | C2/6BDF: DE BE 03 00 39 C9 40 B2 00 DA 54 | ||
C2/ | C2/6BEA: F7 FE 00 39 0B 0C A9 40 8F 05 | ||
C2/ | C2/6BF4: DD 42 31 00 04 42 00 A7 04 8F 06 | ||
C2/ | C2/6BFF: F7 42 00 EA CA 0C 64 F2 A0 FC | ||
C2/ | C2/6C09: FF 00 64 E2 64 E9 64 EA AF | ||
C2/ | C2/6C12: 7F 15 42 00 85 E8 AF 14 DC 04 | ||
C2/6C1C: FD E7 A7 04 C5 E2 90 02 80 07 | |||
C2/ | C2/6C26: FE 2F 02 00 01 80 0C 7B A5 EA | ||
C2/6C30: FF 38 E5 E2 C2 20 49 FF FF | |||
C2/ | C2/6C39: FF 1A 99 FA 3D A5 E7 18 65 | ||
C2/6C42: FF E9 85 E9 E2 20 E6 E2 88 | |||
C2/ | C2/6C4B: F6 10 05 D0 D0 A2 03 3D 55 41 55 | ||
C2/6C56: FF 59 55 A0 FF FF 84 10 A0 | |||
C2/6C5F: FF 40 00 84 0E A9 7F 85 14 | |||
C2/ | C2/6C68: F2 5F 0B 27 AB 13 86 13 36 C2 20 A5 | ||
C2/ | C2/6C74: FF 27 C9 1F 01 F0 2F C9 00 | ||
C2/ | C2/6C7D: FF 01 B0 24 29 07 00 D0 1F | ||
C2/ | C2/6C86: FF A5 27 38 E9 08 00 29 F8 | ||
C2/ | C2/6C8F: FF FF 0A 0A 0A 18 69 C0 23 | ||
C2/ | C2/6C98: DB 85 12 50 45 85 10 8E 0B 38 60 | ||
C2/6CA3: F3 E2 20 1F 15 0D 0C A4 55 A8 55 | |||
C2/ | C2/6CAE: 4B B2 55 95 1C 0F F8 02 B0 00 0C BE 0B | ||
C2/ | C2/6CBB: FF 33 85 32 DE 01 33 38 60 | ||
C2/ | C2/6CC4: FA 70 03 32 0D 0C CC 55 D2 55 EB | ||
C2/6CCF: 73 55 20 B6 03 97 0C 80 9D 00 3C 05 | |||
C2/ | C2/6CDB: F7 A9 3E 56 F1 12 20 5F 75 38 | ||
C2/ | C2/6CE5: FD 60 A5 0C 36 F0 17 C9 01 F0 | ||
C2/ | C2/6CEF: BF 07 A6 1D DE 00 36 9E 05 02 | ||
C2/ | C2/6CF9: F7 A0 F9 56 AD 00 E6 36 80 ED | ||
C2/ | C2/6D03: 7F BD 01 3B C9 FE D0 03 AD 03 | ||
C2/ | C2/6D0D: AB C2 20 C0 03 AA C2 05 75 C6 05 20 | ||
C2/6D19: F8 B5 0B B7 05 9A 0C 3A 4C DC 55 7B | |||
C2/ | C2/6D25: FF E6 34 A5 18 18 65 34 AA | ||
C2/ | C2/6D2E: FF BF 00 FD C0 60 23 7C 01 | ||
C2/ | C2/6D37: DF 59 56 02 D9 56 1E 26 79 56 | ||
C2/6D41: FF 02 99 56 03 B9 56 04 D9 | |||
C2/ | C2/6D4A: FF 56 FE 63 10 DE 66 5B 56 | ||
C2/ | C2/6D53: FF B4 45 2E 35 08 31 E8 2C | ||
C2/ | C2/6D5C: FF C7 28 A6 24 A5 1C 84 18 | ||
C2/ | C2/6D65: FF 64 14 63 10 BB 21 36 11 | ||
C2/ | C2/6D6E: FF 7F 73 00 00 39 52 D7 45 | ||
C2/ | C2/6D77: DF 51 39 EC 2C E7 44 16 85 20 | ||
C2/ | C2/6D81: EF 84 18 84 14 4D 2E 7B 5A 00 | ||
C2/ | C2/6D8B: FF 00 94 3D 53 35 EE 2C AA | ||
C2/ | C2/6D94: 1B 24 A5 66 06 64 1C 4D 0E 89 1E 51 0E | ||
C2/ | C2/6DA1: FF D6 45 00 00 AA 20 A7 20 | ||
C2/ | C2/6DAA: CF 85 1C 43 18 89 2E 89 4E CC 24 | ||
C2/ | C2/6DB5: F8 13 09 B9 9E 51 0E 63 10 AA 7C FD | ||
C2/ | C2/6DC1: 9F 56 01 57 36 57 AB 13 FE 05 29 | ||
C2/ | C2/6DCC: 5F 03 F0 37 0A AA F1 05 46 DE 06 | ||
C2/ | C2/6DD7: 2E F1 12 E2 20 DA FE 05 FA F8 02 FB 16 | ||
C2/6DE4: 77 29 7F 69 28 04 34 A6 1D C4 05 | |||
C2/ | C2/6DEF: BC BE 0B E9 05 F0 05 20 8D C6 05 18 | ||
C2/6DFB: FF 60 00 00 4E 57 66 57 4E | |||
C2/ | C2/6E04: FF 57 7F 57 01 7E 57 01 84 | ||
C2/6E0D: 6A 2D 17 91 2D 17 9E 2D 0F FE AB 2D 17 | |||
C2/6E1A: D5 B0 2D 17 BD 2D 17 CA 3F 17 00 01 | |||
C2/ | C2/6E26: DF 08 00 4C 35 03 24 07 35 10 | ||
C2/ | C2/6E30: FF 00 60 35 08 10 62 35 03 | ||
C2/ | C2/6E39: F7 08 00 64 6A 07 66 35 08 20 | ||
C2/6E43: D5 68 6E 0F 6A 6A 07 6C 77 07 6E 35 | |||
C2/ | C2/6E4F: FE 5D 0F 75 03 10 00 4E 75 08 | ||
C2/ | C2/6E59: 97 00 60 75 6B 07 75 6F 0F 96 07 66 | ||
C2/ | C2/6E65: A9 75 78 07 9A 0F 6A 96 07 6C A3 07 6E | ||
C2/6E72: FF 75 40 A8 40 70 B0 48 68 | |||
C2/ | C2/6E7B: FF A8 70 68 60 A8 80 D0 88 | ||
C2/ | C2/6E84: FF 58 90 A8 98 88 50 58 70 | ||
C2/ | C2/6E8D: FF 60 90 60 10 78 08 C2 30 | ||
C2/ | C2/6E96: FF 48 DA 5A 8B 0B 20 2F 50 | ||
C2/ | C2/6E9F: FF 20 13 58 20 72 58 20 43 | ||
C2/ | C2/6EA8: FD 50 0B 01 C2 30 2B AB 7A FA | ||
C2/ | C2/6EB2: 77 68 28 6B 5D 00 20 3C 58 69 02 | ||
C2/ | C2/6EBD: F2 72 38 04 7D 28 64 38 FF 61 60 8B | ||
C2/ | C2/6EC9: FF A9 00 48 AB A9 03 8D 01 | ||
C2/ | C2/6ED2: FF 21 A6 00 8E 02 21 A9 07 | ||
C2/ | C2/6EDB: FF 8D 05 21 A9 78 8D 07 21 | ||
C2/ | C2/6EE4: FF A9 7C 8D 08 21 A9 74 8D | ||
C2/6EED: FF 09 21 8D 0A 21 A9 22 8D | |||
C2/ | C2/6EF6: FF 0B 21 A9 77 8D 0C 21 7B | ||
C2/ | C2/6EFF: 6F 8D 1A 21 AB 85 30 AD 58 90 F8 | ||
C2/ | C2/6F0A: FE B2 38 22 0C 00 EE 60 B5 58 | ||
C2/ | C2/6F14: FF 4C 5A 66 5A 70 5A 20 70 | ||
C2/ | C2/6F1D: EF 5C 20 5D 5B 1A 10 22 09 00 | ||
C2/ | C2/6F27: FF EE 22 03 00 EE AB 20 45 | ||
C2/ | C2/6F30: 51 5C 08 01 28 0B 43 61 60 4A 29 80 4A 29 | ||
C2/6F3E: F1 A0 4A 29 37 79 BA B9 A9 68 85 39 | |||
C2/ | C2/6F4A: FF A9 48 85 3A A9 78 85 3B | ||
C2/ | C2/6F53: EF A9 C0 85 3C 70 03 3D A9 90 | ||
C2/ | C2/6F5D: FF 85 3E 64 29 64 2A A0 38 | ||
C2/ | C2/6F66: 7F 00 84 2B 64 37 64 38 72 00 | ||
C2/ | C2/6F70: 7B C0 5F 77 00 7B 20 08 5B B1 02 | ||
C2/ | C2/6F7B: 32 36 01 02 35 01 33 0B 90 64 B1 12 BF 08 | ||
C2/6F89: 40 46 01 A7 12 C9 00 46 01 05 1A 44 11 06 3B 13 | |||
C2/ | C2/6F99: BF 31 A0 70 64 A9 03 A8 22 10 | ||
C2/ | C2/6FA3: 24 52 21 ED 00 30 52 21 C3 01 50 52 21 FF 39 | ||
C2/ | C2/6FB2: B2 72 00 27 30 09 72 00 ED 5A 8D 1A 92 | ||
C2/6FBF: DE B1 09 7B 9D 01 39 9A 0C 36 A9 | |||
C2/ | C2/6FCA: F9 5A 9C 04 2F 02 A0 FF 9D 00 38 | ||
C2/ | C2/6FD5: 50 F4 02 B6 21 9A 04 BF 01 0A 03 0E 28 C8 19 | ||
C2/ | C2/6FE4: 55 60 CF 61 02 BE 09 07 03 0E 2D C8 19 | ||
C2/6FF1: FD 80 CF 19 E6 19 A9 01 85 32 | |||
C2/ | C2/6FFB: 76 63 00 A0 CA (continued at C2/7000) | ||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
C2/ | |||
Latest revision as of 02:41, 24 January 2024
This is a sub-page of Final Fantasy VI/ROM map.
C2/602A learn spell based on esper
C2/602A: DA PHX C2/602B: 20 93 62 JSR $6293 (Multiply A by #$0B and store in X) C2/602E: A0 05 00 LDY #$0005 (Do for each spell taught by esper) C2/6031: 7B TDC (Clear A) C2/6032: BF 01 6E D8 LDA $D86E01,X (Spell taught) C2/6036: C9 FF CMP #$FF C2/6038: F0 0A BEQ $6044 (Branch if no spell taught) C2/603A: 5A PHY C2/603B: A8 TAY C2/603C: BF 00 6E D8 LDA $D86E00,X (Spell learn rate) C2/6040: 20 4B 60 JSR $604B (Add amount to known% for spell) C2/6043: 7A PLY C2/6044: E8 INX C2/6045: E8 INX C2/6046: 88 DEY C2/6047: D0 E8 BNE $6031 (Check next spell taught) C2/6049: FA PLX C2/604A: 60 RTS
C2/604B learn spell
C2/604B: F0 1F BEQ $606C (If no spell to learn) C2/604D: EB XBA C2/604E: A5 FB LDA $FB (Magic points gained from the battle) C2/6050: 20 81 47 JSR $4781 (Multiply by spell learn rate) C2/6053: 85 EE STA $EE (Store this amount in $EE) C2/6055: B1 F4 LDA ($F4),Y C2/6057: C9 FF CMP #$FF C2/6059: F0 11 BEQ $606C (Branch if spell already known) C2/605B: 18 CLC C2/605C: 65 EE ADC $EE (Add amount learned to % known for spell) C2/605E: B0 04 BCS $6064 C2/6060: C9 64 CMP #$64 C2/6062: 90 02 BCC $6066 C2/6064: A9 80 LDA #$80 C2/6066: 91 F4 STA ($F4),Y C2/6068: A5 F1 LDA $F1 C2/606A: 04 F0 TSB $F0 C2/606C: 60 RTS
C2/606D unknow
C2/606D: 64 F8 STZ $F8 C2/606F: 7B TDC (Clear 16-bit A) C2/6070: BD 08 16 LDA $1608,X (current level) C2/6073: C9 63 CMP #$63 C2/6075: B0 F5 BCS $606C (exit if >= 99) C2/6077: C2 20 REP #$20 (Set 16-bit A) C2/6079: 0A ASL C2/607A: DA PHX C2/607B: AA TAX (level * 2) C2/607C: 7B TDC (Clear 16-bit A) C2/607D: 18 CLC (Clear carry) C2/607E: 7F 1E 82 ED ADC $ED821E,X (add to Experience Needed for Level Up FROM this level) C2/6082: 90 02 BCC $6086 (branch if bottom 16-bits of sum didn't overflow) C2/6084: E6 F8 INC $F8 (if so, increment a counter that will determine top 16-bits) C2/6086: CA DEX C2/6087: CA DEX (point to experience needed for next lowest level) C2/6088: D0 F3 BNE $607D (total experience needed for level 1 thru current level. IOW, total experience needed to reach next level.) C2/608A: FA PLX (BUT, experience needed is stored divided by 8 in ROM, so we must multiply it to get true value) C2/608B: 0A ASL C2/608C: 26 F8 ROL $F8 (multiply 32-bit [only 24 bits ever used] experience needed by 2) C2/608E: 0A ASL C2/608F: 26 F8 ROL $F8 (again) C2/6091: 0A ASL C2/6092: 26 F8 ROL $F8 (again) C2/6094: 85 F6 STA $F6 (so now, $F6 thru $F8 = total 24-bit experience needed to advance from our given level) C2/6096: BD 12 16 LDA $1612,X (top 2 bytes of current Experience) C2/6099: C5 F7 CMP $F7 (compare to top 2 bytes of needed experience) C2/609B: E2 20 SEP #$20 (set 8-bit Accumulator) C2/609D: 90 CD BCC $606C (Exit if (current exp / 256) < (needed exp / 256) ) C2/609F: D0 07 BNE $60A8 (if (current exp / 256) != (needed exp / 256), branch) (since it's not less than, we know it's greater than) C2/60A1: BD 11 16 LDA $1611,X (bottom byte of Experience) C2/60A4: C5 F6 CMP $F6 (compare to experience needed) C2/60A6: 90 C4 BCC $606C (Exit if less) C2/60A8: A5 F2 LDA $F2 C2/60AA: F0 05 BEQ $60B1 C2/60AC: 64 F2 STZ $F2 C2/60AE: 20 D4 5F JSR $5FD4 C2/60B1: 20 C2 60 JSR $60C2 (raise level, raise normal HP and MP, and give any Esper bonus) C2/60B4: DA PHX C2/60B5: BD 08 16 LDA $1608,X (load level) C2/60B8: EB XBA (put in top of A) C2/60B9: BD 00 16 LDA $1600,X C2/60BC: 20 B6 61 JSR $61B6 C2/60BF: FA PLX C2/60C0: 80 AB BRA $606D (repeat to check for another possible level gain, since it's possible a battle with wicked high experience on a wussy character boosted multiple levels.)
C2/60C2 add bonus when level up
(Gain level, raise HP and MP, and give any Esper bonus) C2/60C2: 08 PHP C2/60C3: FE 08 16 INC $1608,X (increment current level) C2/60C6: 64 FD STZ $FD C2/60C8: 64 FF STZ $FF C2/60CA: DA PHX C2/60CB: 7B TDC (Clear 16-bit A) C2/60CC: BD 08 16 LDA $1608,X (get level) C2/60CF: AA TAX C2/60D0: BF 00 F5 E6 LDA $E6F500,X (normal MP gain for level) C2/60D4: 85 FE STA $FE C2/60D6: BF 9E F4 E6 LDA $E6F49E,X (normal HP gain for level) C2/60DA: 85 FC STA $FC C2/60DC: FA PLX C2/60DD: BD 1E 16 LDA $161E,X (get equipped Esper) C2/60E0: 30 14 BMI $60F6 (if it's null, don't try to calculate bonuses) C2/60E2: 5A PHY C2/60E3: DA PHX C2/60E4: 9B TXY (Y will be used to index stats that are boosted by the $614E call. i believe it currently points to offset of character block from $1600) C2/60E5: 20 93 62 JSR $6293 (X = A * 11d) C2/60E8: 7B TDC (Clear 16-bit A) C2/60E9: BF 0A 6E D8 LDA $D86E0A,X (end of data block for Esper.. probably has level-up bonus) C2/60ED: 30 05 BMI $60F4 (if null, don't try to calculate bonus) C2/60EF: 0A ASL C2/60F0: AA TAX (multiply bonus index by 2) C2/60F1: FC 4E 61 JSR ($614E,X) (calculate bonus. note that [Stat]+1 jumps to the same place as [Stat]+2. what distinguishes them? Bit 1 of X. if X is 20, 24, 28, 32, you'll get +1 to a stat.. if it's 18, 22, 26, 30, you get +2. for HP/MP boosts, X of 0/2/4 means HP, and 6/8/10 means MP) C2/60F4: FA PLX C2/60F5: 7A PLY C2/60F6: C2 21 REP #$21 (set 16-bit A, clear carry) C2/60F8: BD 0B 16 LDA $160B,X (maximum HP) C2/60FB: 48 PHA C2/60FC: 29 00 C0 AND #$C000 (isolate top bits, which indicate (bit 7, then bit 6): 00 = no equipment % bonus, 11 = 12.5% bonus, 01 = 25% bonus, 10 = 50% bonus) C2/60FF: 85 EE STA $EE (save equipment bonus bits) C2/6101: 68 PLA (get max HP again) C2/6102: 29 FF 3F AND #$3FFF (isolate bottom 14 bits.. just the max HP w/o bonus) C2/6105: 65 FC ADC $FC (add to HP gain for level) C2/6107: C9 10 27 CMP #$2710 C2/610A: 90 03 BCC $610F (branch if less than 10000) C2/610C: A9 0F 27 LDA #$270F (replace with 9999) C2/610F: 05 EE ORA $EE (combine with bonus bits) C2/6111: 9D 0B 16 STA $160B,X (save updated max HP) C2/6114: 18 CLC (clear carry) C2/6115: BD 0F 16 LDA $160F,X (now maximum MP) C2/6118: 48 PHA C2/6119: 29 00 AND #$C000 (isolate top bits, which indicate (bit 7, then bit 6): 00 = no equipment % bonus, 11 = 12.5% bonus, 01 = 25% bonus, 10 = 50% bonus) C2/611C: 85 EE STA $EE (save equipment bonus bits) C2/611E: 68 PLA (get max MP again) C2/611F: 29 FF 3F AND #$3FFF (isolate bottom 14 bits.. just the max MP w/o bonus) C2/6122: 65 FE ADC $FE (add to MP gain for level) C2/6124: C9 E8 03 CMP #$03E8 C2/6127: 90 03 BCC $612C (branch if less than 1000) C2/6129: A9 E7 03 LDA #$03E7 (replace with 999) C2/612C: 05 EE ORA $EE (combine with bonus bits) C2/612E: 9D 0F 16 STA $160F,X (save updated max MP) C2/6131: 28 PLP C2/6132: 60 RTS
C2/6133 unknow
C2/6133: 5A PHY C2/6134: A0 35 00 LDY #$0035 C2/6137: B1 F4 LDA ($F4),Y C2/6139: C9 80 CMP #$80 C2/613B: D0 0C BNE $6149 C2/613D: A9 FF LDA #$FF C2/613F: 91 F4 STA ($F4),Y C2/6141: 8C 35 2F STY $2F35 C2/6144: A9 32 LDA #$32 C2/6146: 20 D4 5F JSR $5FD4 C2/6149: 88 DEY C2/614A: 10 EB BPL $6137 C2/614C: 7A PLY C2/614D: 60 RTS
C2/614E pointers: esper bonus
C2/614E: 70 61 (~10% HP bonus) (HP due to X) C2/6150: 74 61 (~30% HP bonus) (HP due to X) C2/6152: 78 61 (50% HP bonus) (HP due to X) C2/6154: 70 61 (~10% MP bonus) (MP due to X) C2/6156: 74 61 (~30% MP bonus) (MP due to X) C2/6158: 78 61 (50% MP bonus) (MP due to X) C2/615A: B0 61 (Double natural HP gain for level. Curious...) C2/615C: 97 61 (No bonus) C2/615E: 97 61 (No bonus) C2/6160: 9B 61 (Vigor bonus) (+1 due to X value in caller) C2/6162: 9B 61 (Vigor bonus) (+2 due to X) C2/6164: 9A 61 (Speed bonus) (+1 due to X) C2/6166: 9A 61 (Speed bonus) (+2 due to X. No Esper currently uses) C2/6168: 99 61 (Stamina bonus) (+1 due to X) C2/616A: 99 61 (Stamina bonus) (+2 due to X) C2/616C: 98 61 (MagPwr bonus) (+1 due to X) C2/616E: 98 61 (MagPwr bonus) (+2 due to X)
C2/6170 esper bonus: HP or MP
C2/6170: A9 1A LDA #$1A (26 => 10.12625% bonus) C2/6172: 80 06 BRA $617A C2/6174: A9 4E LDA #$4E (78 => 30.46875% bonus) C2/6176: 80 02 BRA $617A C2/6178: A9 80 LDA #$80 (128 ==> 50% bonus) C2/617A: E0 06 00 CPX #$0006 (are we boosting MP rather than HP?) C2/617D: A2 00 00 LDX #$0000 (start pointing to $FC, which holds normal HP to raise) C2/6180: 90 02 BCC $6184 (if X was less than 6, we're just boosting HP, so branch) C2/6182: E8 INX C2/6183: E8 INX (point to $FE, which holds normal MP to raise) C2/6184: EB XBA (put boost numerator in top of A) C2/6185: B5 FC LDA $FC,X (get current HP or MP to add) C2/6187: 20 81 47 JSR $4781 C2/618A: EB XBA (get (boost number * current HP or MP to add) / 256. after all, the boost IS a percentage..) C2/618B: D0 01 BNE $618E (if the HP/MP bonus is nonzero, branch) C2/618D: 1A INC (if it was zero, be nice and give the chump one..) C2/618E: 18 CLC C2/618F: 75 FC ADC $FC,X C2/6191: 95 FC STA $FC,X (add boost to natural HP/MP gain) C2/6193: 90 02 BCC $6197 C2/6195: F6 FD INC $FD,X (if bottom byte overflowed from add, boost top byte) C2/6197: 60 RTS
C2/6198 esper bonus: vigor, speed, stamina or magic power
(Esper stat bonus at level-up. Vigor, Speed, Stamina, or MagPwr. If Bit 1 of X is set, give +1 bonus. If not, give +2.) C2/6198: C8 INY (enter here = 3 INYs = point to MagPwr) C2/6199: C8 INY (enter here = 2 INYs = point to Stamina) C2/619A: C8 INY (enter here = 1 INY = point to Speed) C2/619B: 8A TXA (enter here = 0 INYs = point to Vigor) C2/619C: 4A LSR C2/619D: 4A LSR (Carry holds bit 1 of X) C2/619E: BB TYX (0 to 3 value. determines which stat will be altered) C2/619F: BD 1A 16 LDA $161A,X (at $161A,X we have Vigor, Speed, Stamina, and MagPwr, respectively) C2/61A2: 1A INC C2/61A3: B0 01 BCS $61A6 (If carry set, just give +1) C2/61A5: 1A INC C2/61A6: C9 81 CMP #$81 (is stat >= 129?) C2/61A8: 90 02 BCC $61AC C2/61AA: A9 80 LDA #$80 (if so, make it 128) C2/61AC: 9D 1A 16 STA $161A,X (save updated stat) C2/61AF: 60 RTS
C2/61B0 esper bonus: double natural HP gain by level (unused)
(Give double natural HP gain for level? Can't say I know when this happens...) C2/61B0: 7B TDC (Clear 16-bit A) C2/61B1: AA TAX (X = 0) C2/61B2: A5 FC LDA $FC C2/61B4: 80 D8 BRA $618E
C2/61B6 unknow
C2/61B6: A2 00 00 LDX #$0000 (point to start of Terra's magic learned at level up block) C2/61B9: C9 00 CMP #$00 (is it character #0, Terra?) C2/61BB: F0 3F BEQ $61FC (if yes, branch to see if she learns any spells) C2/61BD: A2 20 00 LDX #$0020 (point to start of Celes' magic learned at level up block) C2/61C0: C9 06 CMP #$06 (is it character #6, Celes?) C2/61C2: F0 38 BEQ $61FC (if yes, branch to see if she learns any spells) C2/61C4: A2 00 00 LDX #$0000 (point to start of Cyan's SwdTechs learned at level up block) C2/61C7: C9 02 CMP #$02 (if it character #2, Cyan?) C2/61C9: D0 15 BNE $61E0 (if not, check for Sabin)
C2/61CB level up: sword tech learning
(Cyan learning SwdTechs at level up. His data block is just an array of 8 bytes: the level for learning each SwdTech) C2/61CB: 20 22 62 JSR $6222 (are any SwdTechs learned at the current level?) C2/61CE: F0 51 BEQ $6221 (if not, exit) C2/61D0: 0C F7 1C TSB $1CF7 (if so, enable the newly learnt SwdTech) C2/61D3: D0 4C BNE $6221 (if it was already enabled [e.g. Cleave learned in nightmare], suppress celebratory messages and such) C2/61D5: A9 40 LDA #$40 C2/61D7: 04 F0 TSB $F0 C2/61D9: D0 46 BNE $6221 C2/61DB: A9 42 LDA #$42 C2/61DD: 4C D4 5F JMP $5FD4
C2/61E0 level up: blitz learning
(Sabin learning Blitzes at level up. His data block is just an array of 8 bytes: the level for learning each Blitz) C2/61E0: A2 08 00 LDX #$0008 (point to start of Sabin's Blitzes learned at level up block) C2/61E3: C9 05 CMP #$05 (is it character #5, Sabin?) C2/61E5: D0 3A BNE $6221 (if not, exit) C2/61E7: 20 22 62 JSR $6222 (are any Blitzes learned at the current level?) C2/61EA: F0 35 BEQ $6221 (if not, exit) C2/61EC: 0C 28 1D TSB $1D28 (if so, enable the newly learnt Blitz) C2/61EF: D0 30 BNE $6221 (if it was already enabled [e.g. Bum Rush taught by Duncan], suppress celebratory messages and such) C2/61F1: A9 80 LDA #$80 C2/61F3: 04 F0 TSB $F0 C2/61F5: D0 2A BNE $6221 C2/61F7: A9 33 LDA #$33 C2/61F9: 4C D4 5F JMP $5FD4
C2/61FC level up: Terra and Celes learning of spells
(Terra and Celes natural magic learning at level up) C2/61FC: 5A PHY C2/61FD: EB XBA C2/61FE: A0 10 00 LDY #$0010 (check a total of 32 bytes, as Terra and Celes each have a 16-element spell list, with 2 bytes per element [spell #, then level] ) C2/6201: DF C1 E3 EC CMP $ECE3C1,X (Terra/Celes level-up spell list: Level at which spell learned) C2/6205: D0 14 BNE $621B (if this level isn't one where the character learns a spell, branch to check the next list element) C2/6207: 48 PHA C2/6208: 5A PHY C2/6209: 7B TDC (Clear 16-bit A) C2/620A: BF C0 E3 EC LDA $ECE3C0,X (Terra/Celes level-up spell list: Spell number) C2/620E: A8 TAY C2/620F: B1 F4 LDA ($F4),Y (?? check entry in spell list ??) C2/6211: C9 FF CMP #$FF C2/6213: F0 04 BEQ $6219 C2/6215: A9 80 LDA #$80 C2/6217: 91 F4 STA ($F4),Y C2/6219: 7A PLY C2/621A: 68 PLA C2/621B: E8 INX C2/621C: E8 INX (check next spell and level pair) C2/621D: 88 DEY C2/621E: D0 E1 BNE $6201 C2/6220: 7A PLY C2/6221: 60 RTS
C2/6222 handle blitz or sword tech learned abilities
(Handles Sabin's Blitzes learned or Cyan's SwdTechs learned, depending on X value) C2/6222: A9 01 LDA #$01 C2/6224: 85 EE STA $EE (start by marking SwdTech/Blitz #0) C2/6226: EB XBA (get current level from top of A?) C2/6227: DF 90 F4 E6 CMP $E6F490,X (does level match the one in the SwdTech/Blitz table?) C2/622B: F0 05 BEQ $6232 (if so, branch) C2/622D: E8 INX (otherwise, move to check next level) C2/622E: 06 EE ASL $EE (mark the next SwdTech/Blitz as learned instead) C2/6230: 90 F5 BCC $6227 (loop for all 8 bits. if Carry is set, we've checked all 8 to no avail, and $EE will be 0, indicating no SwdTech or Blitz is learned) C2/6232: A5 EE LDA $EE (get the SwdTech/Blitz bitfield.. where the number of the bit that is set represents the number of the SwdTech/Blitz to learn) C2/6234: 60 RTS
C2/6235 add experience to character
Add Experience for battle to character If XP over 15,000,000 sets XP to 15,000,000 C2/6235: 08 PHP C2/6236: C2 21 REP #$21 C2/6238: AD 35 2F LDA $2F35 (XP Gained from battle) C2/623B: 7D 11 16 ADC $1611,X (Add to XP for character) C2/623E: 85 F6 STA $F6 C2/6240: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/6242: AD 37 2F LDA $2F37 (Do third byte of XP) C2/6245: 7D 13 16 ADC $1613,X C2/6248: 85 F8 STA $F8 C2/624A: DA PHX C2/624B: A2 02 00 LDX #$0002 (The following loops will compare the character's new Experience (held in $F6 - $F8) to 15000000, and if it exceeds that amount, cap it at 15000000.) C2/624E: BF 76 62 C2 LDA $C26276,X C2/6252: D5 F6 CMP $F6,X C2/6254: F0 0E BEQ $6264 C2/6256: B0 0F BCS $6267 C2/6258: A2 02 LDX #$0002 C2/625B: BF 76 62 C2 LDA $C26276,X C2/625F: 95 F6 STA $F6,X C2/6261: CA DEX C2/6262: 10 F7 BPL $625B C2/6264: CA DEX C2/6265: 10 E7 BPL $624E C2/6267: FA PLX C2/6268: A5 F8 LDA $F8 C2/626A: 9D 13 16 STA $1613,X (store to third persistent byte of XP) C2/626D: C2 20 REP #$20 C2/626F: A5 F6 LDA $F6 C2/6271: 9D 11 16 STA $1611,X (store to bottom two bytes of XP) C2/6274: 28 PLP C2/6275: 60 RTS
C2/6276 data: experience cap
Data (Experience cap: 15000000) C2/6276: C0 C2/6277: E1 C2/6278: E4
C2/6279 unknow
C2/6279: A9 05 LDA #$05 C2/627B: 20 11 64 JSR $6411 C2/627E: A9 0A LDA #$0A C2/6280: 4C 11 64 JMP $6411
C2/6283 set address for spells knows by character
Stores address for spells known by character in $F4 C2/6283: 08 PHP C2/6284: EB XBA C2/6285: A9 36 LDA #$36 C2/6287: 20 81 47 JSR $4781 C2/628A: C2 21 REP #$21 C2/628C: 69 6E 1A ADC #$1A6E C2/628F: 85 F4 STA $F4 C2/6291: 28 PLP C2/6292: 60 RTS
C2/6293 math: X = A * 0B
Multiply A by #$0B and store in X C2/6293: EB XBA C2/6294: A9 0B LDA #$0B C2/6296: 20 81 47 JSR $4781 C2/6299: AA TAX C2/629A: 60 RTS
C2/629B copy function
(Copy $3A28-$3A2B variables into ($76) buffer) C2/629B: 8D 28 3A STA $3A28 C2/629E: 48 PHA C2/629F: DA PHX C2/62A0: 08 PHP C2/62A1: C2 20 REP #$20 (Set 16-bit Accumulator) C2/62A3: E2 10 SEP #$10 (Set 8-bit Index Registers) C2/62A5: AE 72 3A LDX $3A72 (X = animation buffer pointer) C2/62A8: AD 28 3A LDA $3A28 C2/62AB: 9D 6E 2D STA $2D6E,X C2/62AE: AD 2A 3A LDA $3A2A (Final Damage) C2/62B1: 9D 70 2D STA $2D70,X (Store in damage taken) C2/62B4: E8 INX C2/62B5: E8 INX C2/62B6: E8 INX C2/62B7: E8 INX C2/62B8: 8E 72 3A STX $3A72 (increase animation buffer pointer by 4) C2/62BB: 28 PLP C2/62BC: FA PLX C2/62BD: 68 PLA C2/62BE: 60 RTS
C2/62BF unknow
??? Function Calls 629B, setting the accumulator to 16-bit before. C2/62BF: 08 PHP C2/62C0: C2 20 REP #$20 (Set 16-bit Accumulator) C2/62C2: 20 9B 62 JSR $629B C2/62C5: 28 PLP C2/62C6: 60 RTS
C2/62C7 add item to inventory
(Add/restore characters' items to inventory. This function is called: - At the end of a character's turn when they Steal or Metamorph something. - At the end of battle for all characters, to account for items they tried to use during the battle, but were thwarted by being killed/etc (the game depletes items upon *issuing* the command, so it'll be gone from inventory even if the command never executed). - It can also be used to restore a "bottomless" item at the end of a character's turn. [The game does support equipment that doesn't deplete when you use it as an Item, though no such equipment exists.]) C2/62C7: A2 06 LDX #$06 C2/62C9: BD 18 30 LDA $3018,X C2/62CC: 1C 8C 3A TRB $3A8C (clear this character's "add my items to inventory" flag) C2/62CF: F0 19 BEQ $62EA (if it wasn't set, then skip this character) C2/62D1: BD F4 32 LDA $32F4,X C2/62D4: C9 FF CMP #$FF (does this character have a valid item to add to inventory?) C2/62D6: F0 12 BEQ $62EA (branch if not) C2/62D8: 20 DC 54 JSR $54DC C2/62DB: A9 01 LDA #$01 C2/62DD: 8D 75 2E STA $2E75 C2/62E0: A9 05 LDA #$05 C2/62E2: 20 11 64 JSR $6411 C2/62E5: A9 FF LDA #$FF C2/62E7: 9D F4 32 STA $32F4,X (null the item to add to inventory) C2/62EA: CA DEX C2/62EB: CA DEX C2/62EC: 10 DB BPL $62C9 (loop for all 4 party members) C2/62EE: 60 RTS
C2/62EF display damage/healing
(Call C2/12F5 to do actual damage/healing at the end of a "strike", then queue damage and/or healing values for display. Note that -1 (FFFFh) in a Damage Taken/Healed variable means the damage taken or healed is nonexistent and won't be displayed, as opposed to a displayable 0.) C2/62EF: DA PHX C2/62F0: 5A PHY C2/62F1: 64 F0 STZ $F0 C2/62F3: 64 F2 STZ $F2 C2/62F5: A0 12 LDY #$12 C2/62F7: B9 D0 33 LDA $33D0,Y (Damage Taken) C2/62FA: D9 E4 33 CMP $33E4,Y (Damage Healed) C2/62FD: D0 03 BNE $6302 C2/62FF: 1A INC C2/6300: F0 43 BEQ $6345 (Branch if Damage Taken and Damage Healed are both nonexistent) C2/6302: B9 18 30 LDA $3018,Y C2/6305: 1C 5A 3A TRB $3A5A (Target is not missed) (how can we have a target who's both missed and being damaged/healed going into this function, you ask? it could be from Launcher firing multiple missiles at a single target. or it could be from spread-aiming a spell at a Reflective group, and multiple reflections coming back at a single target.) C2/6308: 20 F5 12 JSR $12F5 (Do the HP or MP Damage/Healing to entity) C2/630B: CC 82 3A CPY $3A82 (Check if target protected by Golem) C2/630E: D0 13 BNE $6323 (Branch if not ^) C2/6310: B9 D0 33 LDA $33D0,Y (Damage Taken) C2/6313: 1A INC C2/6314: F0 0D BEQ $6323 (branch if Damage Taken is nonexistent, but there is Damage Healed) C2/6316: 38 SEC C2/6317: AD 36 3A LDA $3A36 (HP for Golem) C2/631A: F9 D0 33 SBC $33D0,Y (Subtract damage) C2/631D: B0 01 BCS $6320 (If > 0) C2/631F: 7B TDC C2/6320: 8D 36 3A STA $3A36 (Set to 0 if < 0) C2/6323: B9 E4 33 LDA $33E4,Y (Damage Healed) C2/6326: 1A INC C2/6327: F0 1C BEQ $6345 (Branch if Damage Healed nonexistent) C2/6329: 3A DEC C2/632A: 09 00 80 ORA #$8000 C2/632D: 99 E4 33 STA $33E4,Y (Set "sign bit" in Damage Healed) C2/6330: E6 F2 INC $F2 (will be nonzero if any target has both damage done and damage healed) C2/6332: B9 D0 33 LDA $33D0,Y C2/6335: 1A INC C2/6336: D0 0D BNE $6345 (Branch if there is Damage Taken) C2/6338: C6 F2 DEC $F2 (damage was healed but not done, so undo incrementation done for this target) C2/633A: B9 E4 33 LDA $33E4,Y C2/633D: 99 D0 33 STA $33D0,Y (If only Damage Healed, Damage Taken = - Damage Healed) C2/6340: 7B TDC C2/6341: 3A DEC C2/6342: 99 E4 33 STA $33E4,Y (Store -1 in Damage Healed) C2/6345: B9 18 30 LDA $3018,Y C2/6348: 2C 5A 3A BIT $3A5A C2/634B: F0 06 BEQ $6353 (branch if target is not missed) C2/634D: A9 00 40 LDA #$4000 C2/6350: 99 D0 33 STA $33D0,Y (Store Miss bit in damage) C2/6353: B9 D0 33 LDA $33D0,Y C2/6356: 1A INC C2/6357: F0 02 BEQ $635B (If no damage dealt and/or damage healed) C2/6359: E6 F0 INC $F0 C2/635B: 88 DEY C2/635C: 88 DEY C2/635D: 10 98 BPL $62F7 C2/635F: A4 F0 LDY $F0 (how many targets have damage dealt and/or damage healed) C2/6361: C0 05 CPY #$05 C2/6363: 20 98 63 JSR $6398 C2/6366: 20 B4 63 JSR $63B4 C2/6369: A5 F2 LDA $F2 C2/636B: F0 1A BEQ $6387 (if no target had both damage healed and damage done, branch) C2/636D: A2 12 LDX #$12 C2/636F: A0 00 LDY #$00 C2/6371: BD E4 33 LDA $33E4,X (Damage Healed) C2/6374: 9D D0 33 STA $33D0,X (Store in Damage Taken) C2/6377: 1A INC C2/6378: F0 01 BEQ $637B (If no damage dealt) C2/637A: C8 INY (how many targets have [2nd round of] damage dealt?) C2/637B: CA DEX C2/637C: CA DEX C2/637D: 10 F2 BPL $6371 C2/637F: C0 05 CPY #$05 C2/6381: 20 98 63 JSR $6398 C2/6384: 20 B4 63 JSR $63B4 C2/6387: 7B TDC C2/6388: 3A DEC C2/6389: A2 12 LDX #$12 C2/638B: 9D E4 33 STA $33E4,X (Store -1 in Damage Healed) C2/638E: 9D D0 33 STA $33D0,X (Store -1 in Damage Taken) C2/6391: CA DEX C2/6392: CA DEX C2/6393: 10 F6 BPL $638B (null out damage for all onscreen targets) C2/6395: 7A PLY C2/6396: FA PLX C2/6397: 60 RTS
C2/6398 display damage
(For less than 5 targets damaged or healed, use a "cascading" damage display. One target's damage/healing numbers will show up a split second after the other's.) C2/6398: B0 19 BCS $63B3 (Exit function if 5+ targets have damage dealt? Why the hell not branch to C2/63B4, cut the BCC there, and cut the "JSR $63B4"s out of function C2/62EF?) C2/639A: A2 12 LDX #$12 C2/639C: BD D0 33 LDA $33D0,X (Damage Taken) C2/639F: 1A INC C2/63A0: F0 0D BEQ $63AF (If no damage) C2/63A2: 3A DEC C2/63A3: 8D 2A 3A STA $3A2A (Store in final damage) C2/63A6: 8A TXA C2/63A7: 4A LSR (Acc = 0-9 target #) C2/63A8: EB XBA C2/63A9: 09 0B 00 ORA #$000B (target # in top of A, 0x0B in bottom?) C2/63AB: 20 9B 62 JSR $629B (Copy $3A28-$3A2B variables into ($76) buffer) C2/63AE: CA DEX C2/63AF: CA DEX C2/63B1: 10 E9 BPL $639C (loop for all onscreen targets) C2/63B3: 60 RTS (if < 5 targets have damage dealt, Carry will always be clear here. either we skipped the LSR above, or it was done on an even number.)
C2/63B4 display damage simultaneously
(For 5+ targets damaged or healed, have all their damage/healing numbers pop up simultaneously.) C2/63B4: 90 24 BCC $63DA (exit function if less than 5 targets have damage dealt?) C2/63B6: 08 PHP C2/63B7: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/63B9: A9 03 LDA #$03 C2/63BB: 20 9B 62 JSR $629B (Copy $3A28-$3A2B variables into ($76) buffer) C2/63BE: AD 34 3A LDA $3A34 C2/63C1: EE 34 3A INC $3A34 C2/63C4: EB XBA C2/63C5: A9 14 LDA #$14 C2/63C7: 20 81 47 JSR $4781 C2/63CA: C2 31 REP #$31 (Set 16-bit Accumulator, 16-bit X and Y, clear Carry) C2/63CC: 69 CE 2B ADC #$2BCE C2/63CF: A8 TAY C2/63D0: A2 D0 33 LDX #$33D0 C2/63D3: A9 13 00 LDA #$0013 C2/63D6: 54 7E 7E MVN $7E,$7E (copy $33D0 thru $33E3, the damage variables for all 10 targets, to some other memory location) C2/63D9: 28 PLP C2/63DA: 60 RTS
C2/63D8 copy function
(Copy 8 words (16 bytes) from $A0 to ((7E:3A32) + #$2C6E)) (C1 inspection shows $2C6E to be the area where animation scripts are read from. Thus, $3A32 stores the beginning offset for the animation script.) C2/63DB: DA PHX C2/63DC: 5A PHY C2/63DD: 08 PHP C2/63DE: E2 20 SEP #$20 (Set 8-bit A) C2/63E0: 7B TDC C2/63E1: AD 32 3A LDA $3A32 C2/63E4: 48 PHA C2/63E5: C2 31 REP #$31 (Set 16-bit A,Y,X) C2/63E7: 69 6E 2C ADC #$2C6E C2/63EA: A8 TAY C2/63EB: A2 A0 00 LDX #$00A0 C2/63EE: A9 0F 00 LDA #$000F C2/63F1: 54 7E 7E MVN #$7E,7E C2/63F4: E2 30 SEP #$30 (Set 8-bit A,Y,X) C2/63F6: 68 PLA C2/63F7: 69 10 ADC #$10 C2/63F9: 8D 32 3A STA $3A32 C2/63FC: 28 PLP C2/63FD: 7A PLY C2/63FE: FA PLX C2/63FF: 60 RTS
C2/6400 null function
(Zero $A0 through $AF) C2/6400: DA PHX C2/6401: 08 PHP C2/6402: C2 20 REP #$20 (set 16-bit accumulator) C2/6404: A2 06 LDX #$06 C2/6406: 74 A0 STZ $A0,X C2/6408: 74 A8 STZ $A8,X (overall: $A0 thru $AF are zeroed out) C2/640A: CA DEX C2/640B: CA DEX C2/640C: 10 F8 BPL $6406 (loop 4 times) C2/640E: 28 PLP C2/640F: FA PLX C2/6410: 60 RTS
C2/6411 unknow
C2/6411: DA PHX C2/6412: 5A PHY C2/6413: 08 PHP C2/6414: E2 20 SEP #$20 C2/6416: C2 11 REP #$11 C2/6418: 48 PHA C2/6419: 7B TDC C2/641A: 68 PLA C2/641B: C9 02 CMP #$02 C2/641D: D0 06 BNE $6425 C2/641F: A5 B1 LDA $B1 C2/6421: 30 06 BMI $6429 C2/6423: A9 02 LDA #$02 C2/6425: 22 00 00 C1 JSR $C10000 C2/6429: 28 PLP C2/642A: 7A PLY C2/642B: FA PLX C2/642C: 60 RTS
C2/642D monster commands script FA
Monster command script command #$FA C2/642D: C2 20 REP #$20 (Set 16-bit accumulator) C2/642F: A5 B8 LDA $B8 (Byte 2 & 3) C2/6431: 8D 2A 3A STA $3A2A (Store in final damage)? C2/6434: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/6436: A5 B6 LDA $B6 (Byte 0) C2/6438: EB XBA C2/6439: A9 14 LDA #$14 C2/643B: 4C BF 62 JMP $62BF
C2/643E unknow (unused)
(Well, well, well... it's a shame that this function is apparently never called.) C2/643E: C2 20 REP #$20 (Set 16-bit Accumulator) C2/6440: AD 55 1D LDA $1D55 (get Font color from Configuration) C2/6443: C9 DE 7B CMP #$7BDE (are Red, Green, and Blue all equal to 30?) C2/6446: E2 20 SEP #$20 (Set 8-bit Accumulator) C2/6448: D0 1E BNE $6468 (branch if not desired Font color) C2/644A: AF 19 42 00 LDA $004219 (Joypad #1 status register) C2/644E: C9 28 CMP #$28 (are Up and Select pressed, and only those?) C2/6450: D0 16 BNE $6468 (branch if not) C2/6452: A9 02 LDA #$02 C2/6454: 0C 96 3A TSB $3A96 (set some flag) C2/6457: D0 0F BNE $6468 (branch if it was already set) C2/6459: A9 FF LDA #$FF C2/645B: 85 B9 STA $B9 C2/645D: A9 05 LDA #$05 C2/645F: 85 B8 STA $B8 C2/6461: A2 00 LDX #$00 C2/6463: A9 24 LDA #$24 C2/6465: 20 91 4E JSR $4E91 (queue up something. you tell me what.) C2/6468: 60 RTS
C2/6469 free space
(Blank Space - 919 bytes) C2/6469: FF FF FF FF C2/646D: FF FF FF FF C2/6471: FF FF FF FF C2/6475: FF FF FF FF C2/6479: FF FF FF FF C2/647D: FF FF FF FF C2/6481: FF FF FF FF C2/6485: FF FF FF FF C2/6489: FF FF FF FF C2/648D: FF FF FF FF C2/6491: FF FF FF FF C2/6495: FF FF FF FF C2/6499: FF FF FF FF C2/649D: FF FF FF FF C2/64A1: FF FF FF FF C2/64A5: FF FF FF FF C2/64A9: FF FF FF FF C2/64AD: FF FF FF FF C2/64B1: FF FF FF FF C2/64B5: FF FF FF FF C2/64B9: FF FF FF FF C2/64BD: FF FF FF FF C2/64C1: FF FF FF FF C2/64C5: FF FF FF FF C2/64C9: FF FF FF FF C2/64CD: FF FF FF FF C2/64D1: FF FF FF FF C2/64D5: FF FF FF FF C2/64D9: FF FF FF FF C2/64DD: FF FF FF FF C2/64E1: FF FF FF FF C2/64E5: FF FF FF FF C2/64E9: FF FF FF FF C2/64ED: FF FF FF FF C2/64F1: FF FF FF FF C2/64F5: FF FF FF FF C2/64F9: FF FF FF FF C2/64FD: FF FF FF FF C2/6501: FF FF FF FF C2/6505: FF FF FF FF C2/6509: FF FF FF FF C2/650D: FF FF FF FF C2/6511: FF FF FF FF C2/6515: FF FF FF FF C2/6519: FF FF FF FF C2/651D: FF FF FF FF C2/6521: FF FF FF FF C2/6525: FF FF FF FF C2/6529: FF FF FF FF C2/652D: FF FF FF FF C2/6531: FF FF FF FF C2/6535: FF FF FF FF C2/6539: FF FF FF FF C2/653D: FF FF FF FF C2/6541: FF FF FF FF C2/6545: FF FF FF FF C2/6549: FF FF FF FF C2/654D: FF FF FF FF C2/6551: FF FF FF FF C2/6555: FF FF FF FF C2/6559: FF FF FF FF C2/655D: FF FF FF FF C2/6561: FF FF FF FF C2/6565: FF FF FF FF C2/6569: FF FF FF FF C2/656D: FF FF FF FF C2/6571: FF FF FF FF C2/6575: FF FF FF FF C2/6579: FF FF FF FF C2/657D: FF FF FF FF C2/6581: FF FF FF FF C2/6585: FF FF FF FF C2/6589: FF FF FF FF C2/658D: FF FF FF FF C2/6591: FF FF FF FF C2/6595: FF FF FF FF C2/6599: FF FF FF FF C2/659D: FF FF FF FF C2/65A1: FF FF FF FF C2/65A5: FF FF FF FF C2/65A9: FF FF FF FF C2/65AD: FF FF FF FF C2/65B1: FF FF FF FF C2/65B5: FF FF FF FF C2/65B9: FF FF FF FF C2/65BD: FF FF FF FF C2/65C1: FF FF FF FF C2/65C5: FF FF FF FF C2/65C9: FF FF FF FF C2/65CD: FF FF FF FF C2/65D1: FF FF FF FF C2/65D5: FF FF FF FF C2/65D9: FF FF FF FF C2/65DD: FF FF FF FF C2/65E1: FF FF FF FF C2/65E5: FF FF FF FF C2/65E9: FF FF FF FF C2/65ED: FF FF FF FF C2/65F1: FF FF FF FF C2/65F5: FF FF FF FF C2/65F9: FF FF FF FF C2/65FD: FF FF FF FF C2/6601: FF FF FF FF C2/6605: FF FF FF FF C2/6609: FF FF FF FF C2/660D: FF FF FF FF C2/6611: FF FF FF FF C2/6615: FF FF FF FF C2/6619: FF FF FF FF C2/661D: FF FF FF FF C2/6621: FF FF FF FF C2/6625: FF FF FF FF C2/6629: FF FF FF FF C2/662D: FF FF FF FF C2/6631: FF FF FF FF C2/6635: FF FF FF FF C2/6639: FF FF FF FF C2/663D: FF FF FF FF C2/6641: FF FF FF FF C2/6645: FF FF FF FF C2/6649: FF FF FF FF C2/664D: FF FF FF FF C2/6651: FF FF FF FF C2/6655: FF FF FF FF C2/6659: FF FF FF FF C2/665D: FF FF FF FF C2/6661: FF FF FF FF C2/6665: FF FF FF FF C2/6669: FF FF FF FF C2/666D: FF FF FF FF C2/6671: FF FF FF FF C2/6675: FF FF FF FF C2/6679: FF FF FF FF C2/667D: FF FF FF FF C2/6681: FF FF FF FF C2/6685: FF FF FF FF C2/6689: FF FF FF FF C2/668D: FF FF FF FF C2/6691: FF FF FF FF C2/6695: FF FF FF FF C2/6699: FF FF FF FF C2/669D: FF FF FF FF C2/66A1: FF FF FF FF C2/66A5: FF FF FF FF C2/66A9: FF FF FF FF C2/66AD: FF FF FF FF C2/66B1: FF FF FF FF C2/66B5: FF FF FF FF C2/66B9: FF FF FF FF C2/66BD: FF FF FF FF C2/66C1: FF FF FF FF C2/66C5: FF FF FF FF C2/66C9: FF FF FF FF C2/66CD: FF FF FF FF C2/66D1: FF FF FF FF C2/66D5: FF FF FF FF C2/66D9: FF FF FF FF C2/66DD: FF FF FF FF C2/66E1: FF FF FF FF C2/66E5: FF FF FF FF C2/66E9: FF FF FF FF C2/66ED: FF FF FF FF C2/66F1: FF FF FF FF C2/66F5: FF FF FF FF C2/66F9: FF FF FF FF C2/66FD: FF FF FF FF C2/6701: FF FF FF FF C2/6705: FF FF FF FF C2/6709: FF FF FF FF C2/670D: FF FF FF FF C2/6711: FF FF FF FF C2/6715: FF FF FF FF C2/6719: FF FF FF FF C2/671D: FF FF FF FF C2/6721: FF FF FF FF C2/6725: FF FF FF FF C2/6729: FF FF FF FF C2/672D: FF FF FF FF C2/6731: FF FF FF FF C2/6735: FF FF FF FF C2/6739: FF FF FF FF C2/673D: FF FF FF FF C2/6741: FF FF FF FF C2/6745: FF FF FF FF C2/6749: FF FF FF FF C2/674D: FF FF FF FF C2/6751: FF FF FF FF C2/6755: FF FF FF FF C2/6759: FF FF FF FF C2/675D: FF FF FF FF C2/6761: FF FF FF FF C2/6765: FF FF FF FF C2/6769: FF FF FF FF C2/676D: FF FF FF FF C2/6771: FF FF FF FF C2/6775: FF FF FF FF C2/6779: FF FF FF FF C2/677D: FF FF FF FF C2/6781: FF FF FF FF C2/6785: FF FF FF FF C2/6789: FF FF FF FF C2/678D: FF FF FF FF C2/6791: FF FF FF FF C2/6795: FF FF FF FF C2/6799: FF FF FF FF C2/679D: FF FF FF FF C2/67A1: FF FF FF FF C2/67A5: FF FF FF FF C2/67A9: FF FF FF FF C2/67AD: FF FF FF FF C2/67B1: FF FF FF FF C2/67B5: FF FF FF FF C2/67B9: FF FF FF FF C2/67BD: FF FF FF FF C2/67C1: FF FF FF FF C2/67C5: FF FF FF FF C2/67C9: FF FF FF FF C2/67CD: FF FF FF FF C2/67D1: FF FF FF FF C2/67D5: FF FF FF FF C2/67D9: FF FF FF FF C2/67DD: FF FF FF FF C2/67E1: FF FF FF FF C2/67E5: FF FF FF FF C2/67E9: FF FF FF FF C2/67ED: FF FF FF FF C2/67F1: FF FF FF FF C2/67F5: FF FF FF FF C2/67F9: FF FF FF FF C2/67FD: FF FF FF
C2/6800 decompress cinematics block and do selected cinematic
C2/6800: 4C 13 68 JMP $6813 C2/6803: 4C 0C 68 JMP $680C C2/6806: 4C 1A 68 JMP $681A C2/6809: 4C 21 68 JMP $6821 C2/680C: 20 28 68 JSR $6828 C2/680F: 5C 00 50 7E JMP $7E5000 (do title screen cinematic) C2/6813: 20 28 68 JSR $6828 C2/6816: 5C 03 50 7E JMP $7E5003 (do opening credits cinematic) C2/681A: 20 28 68 JSR $6828 C2/681D: 5C 06 50 7E JMP $7E5006 (do floating island cinematic) C2/6821: 20 28 68 JSR $6828 C2/6824: 5C 09 50 7E JMP $7E5009 (do world tearing apart cinematic) C2/6828: 08 PHP C2/6829: C2 30 REP #$30 C2/682B: 48 PHA C2/682C: DA PHX C2/682D: 5A PHY C2/682E: 8B PHB C2/682F: 0B PHD C2/6830: C2 10 REP #$10 C2/6832: E2 20 SEP #$20 C2/6834: A9 00 LDA #$00 C2/6836: 48 PHA C2/6837: AB PLB C2/6838: A2 00 00 LDX #$0000 C2/683B: DA PHX C2/683C: 2B PLD C2/683D: A2 00 00 LDX #$0000 C2/6840: 86 00 STX $00 C2/6842: A9 7E LDA #$7E C2/6844: 8D 83 21 STA $2183 C2/6847: A0 6C 68 LDY #$686C C2/684A: 84 F3 STY $F3 C2/684C: A9 C2 LDA #$C2 C2/684E: 85 F5 STA $F5 C2/6850: A0 00 50 LDY #$5000 C2/6853: 84 F6 STY $F6 C2/6855: A9 7E LDA #$7E C2/6857: 85 F8 STA $F8 C2/6859: 8B PHB C2/685A: A9 7E LDA #$7E C2/685C: 48 PHA C2/685D: AB PLB C2/685E: 22 6D FF C2 JSR $C2FF6D C2/6862: AB PLB C2/6863: C2 30 REP #$30 C2/6865: 2B PLD C2/6866: AB PLB C2/6867: 7A PLY C2/6868: FA PLX C2/6869: 68 PLA C2/686A: 28 PLP C2/686B: 60 RTS
C2/686C data (compressed)
(Compressed data - format explained in Function C2/FF6D) (Decompressed data available here) C2/686C: F4 21 (block is 8692 bytes in length, including control bytes) C2/686E: FF 4C 0C 50 4C F3 57 4C C4 (control byte + compressed data) C2/6877: FF 69 4C F2 6C 08 C2 30 48 (control byte + compressed data) C2/6880: FF DA 5A 8B 0B 20 2F 50 20 (etc.) C2/6889: FF 7F 50 20 F7 50 20 A8 50 C2/6892: FF 20 43 50 20 4E 50 C2 30 C2/689B: FF 2B AB 7A FA 68 28 6B E2 C2/68A4: FF 20 A9 7E 48 AB A2 00 00 C2/68AD: FB DA 2B 13 00 86 00 20 62 50 C2/68B7: FF 60 A9 F0 8F 00 13 00 22 C2/68C0: FF 04 00 C5 60 A9 8F 8F 00 C2/68C9: FF 21 00 7B 8F 00 42 00 8F C2/68D2: FD 0B 35 00 0C 42 00 60 A9 5C C2/68DC: FF 8D 00 15 8D 04 15 A2 33 C2/68E5: FF 72 8E 01 15 A2 64 72 8E C2/68EE: FF 05 15 A9 7E 8D 03 15 8D C2/68F7: FF 07 15 60 20 11 77 7B 20 C2/6900: FF 93 50 20 15 78 20 4F 78 C2/6909: FF 20 85 74 20 FA 78 60 8F C2/6912: DF 02 13 00 A9 10 23 08 A9 02 C2/691C: FB 8F 01 25 20 7B A5 19 30 18 C2/6926: FF 0A AA FC DF 50 A5 06 89 C2/692F: FF 80 D0 08 20 0F 75 20 FD C2/6938: FF 71 80 E8 A9 FF 8D 00 02 C2/6941: FF A0 0F 00 84 15 A9 00 A0 C2/694A: FF A0 55 20 DC 74 A4 15 F0 C2/6953: FE 95 28 F4 60 AE 51 80 52 97 C2/695D: FF 52 A6 52 E0 52 EC 52 3F C2/6966: FF 53 77 53 8A 53 9C 53 B5 C2/696F: D7 53 BC 53 86 08 0D 8B 00 31 51 C2/697A: FA 96 20 EE A3 B0 7B A8 85 19 84 C2/6985: F7 25 84 27 6A 08 4E 50 60 55 C2/698F: FF 51 A5 51 00 00 63 10 BD C2/6998: DF 77 00 00 FF 7F 1B 99 20 06 C2/69A2: FF 53 A2 00 30 A0 65 74 20 C2/69AB: AF 24 73 A2 20 38 31 31 42 39 43 C2/69B6: BF 7B A9 01 20 3A 73 36 09 45 C2/69C0: D9 74 57 19 40 01 35 51 57 11 A0 00 C2/69CC: FF 01 84 25 A0 2C 01 84 15 C2/69D5: FF E6 19 A9 0F 85 32 60 A4 C2/69DE: FF 15 D0 04 A9 FF 85 19 60 C2/69E7: 16 48 09 63 7B 3C 09 40 53 09 3C 09 37 49 C2/69F5: 55 C3 91 11 C0 38 29 40 38 29 60 38 29 C2/6A02: E5 E0 38 29 A0 38 29 B1 01 03 7C A9 C2/6A0E: 09 04 59 09 BA 01 23 E2 21 C3 01 EC 29 CC 01 C2/6A1D: D9 43 E2 21 D5 01 E3 7B E3 11 A9 01 C2/6A29: 1B A0 39 AC 08 A0 3C A5 00 7C 19 14 02 C2/6A36: FD C8 AC 08 C2 20 A9 40 30 9D C2/6A40: 53 01 37 0D 00 28 3A 60 33 72 C0 33 1A C2/6A4D: 7E 82 09 12 E6 19 A0 43 04 A6 00 C2/6A58: 97 FF 8F 05 73 00 FF 61 00 82 09 0A C2/6A64: 9F 20 97 78 A0 1E 1E 12 82 09 35 C2/6A6F: 66 A8 00 C5 53 AD 00 A8 00 31 54 8D 1A C2/6A7C: 79 AF 94 0A 36 09 83 7B A9 02 64 21 C2/6A88: 4D A3 56 19 A0 4A 79 11 82 09 07 62 02 C2/6A95: F1 F0 A5 00 82 09 7B 01 A0 C0 03 84 C2/6AA1: D1 15 33 09 52 19 E4 09 60 A8 00 DB 76 C2/6AAE: BE 2C 1A 5C 7A 9D 00 35 0D 00 40 C2/6AB9: FF 9D 01 33 A9 A0 9D 01 34 C2/6AC2: 4A E4 42 5F F0 22 90 F8 2A 82 09 33 62 02 C2/6AD0: 0E 73 01 15 A2 00 8E 09 A6 22 2A 13 E4 11 C2/6ADE: C4 37 01 2C 03 08 64 21 42 23 82 09 0E A9 C2/6AEC: EB 40 04 20 0B 01 A5 00 20 BD 5C C2/6AF7: FE 82 09 0D E6 19 64 31 A9 80 C2/6B01: CF 85 33 A0 A0 D2 02 82 09 08 A0 C2/6B0C: FD E0 B8 1A A5 18 29 03 D0 06 C2/6B16: 2F C2 20 E6 27 5B 1A 02 81 02 87 09 C2/6B22: FD 7B A0 00 60 AA 7C C9 53 CD C2/6B2C: FF 53 D5 53 A6 1D FE 00 3A C2/6B35: FF 9E 01 37 A5 33 30 56 A6 C2/6B3E: FF 1D 7B A8 9E 01 38 A6 1D C2/6B47: FF BD 01 37 18 7D 01 38 20 C2/6B50: FF A5 54 48 AF 12 42 00 29 C2/6B59: 7F 40 F0 F8 A9 08 8F 1B 30 08 C2/6B63: BE D6 03 68 8F 1C 21 00 DF 0B A6 C2/6B6E: FF 1D C2 20 AF 35 21 00 99 C2/6B77: EF 80 41 E2 20 BE 0B 38 18 69 C2/6B81: DF 04 9D 01 38 C8 FF 03 C0 C0 C2/6B8B: FF 00 D0 B6 FE 01 37 38 60 C2/6B94: FD 18 A2 03 35 54 39 54 41 54 C2/6B9E: D6 AB 1B 00 39 B3 03 5B B7 0B A9 10 C2/6BAA: F4 FC 03 BE 9B 0A D5 C3 00 45 99 02 C2/6BB6: F5 45 F2 93 B3 08 24 18 69 40 EB C2/6BC1: FF A5 00 EB AA BF 6D FE C2 C2/6BCA: BE A2 03 B3 54 B7 54 C1 16 1C A9 C2/6BD5: FB 01 9D 1D 04 18 29 01 F0 0F C2/6BDF: DE BE 03 00 39 C9 40 B2 00 DA 54 C2/6BEA: F7 FE 00 39 0B 0C A9 40 8F 05 C2/6BF4: DD 42 31 00 04 42 00 A7 04 8F 06 C2/6BFF: F7 42 00 EA CA 0C 64 F2 A0 FC C2/6C09: FF 00 64 E2 64 E9 64 EA AF C2/6C12: 7F 15 42 00 85 E8 AF 14 DC 04 C2/6C1C: FD E7 A7 04 C5 E2 90 02 80 07 C2/6C26: FE 2F 02 00 01 80 0C 7B A5 EA C2/6C30: FF 38 E5 E2 C2 20 49 FF FF C2/6C39: FF 1A 99 FA 3D A5 E7 18 65 C2/6C42: FF E9 85 E9 E2 20 E6 E2 88 C2/6C4B: F6 10 05 D0 D0 A2 03 3D 55 41 55 C2/6C56: FF 59 55 A0 FF FF 84 10 A0 C2/6C5F: FF 40 00 84 0E A9 7F 85 14 C2/6C68: F2 5F 0B 27 AB 13 86 13 36 C2 20 A5 C2/6C74: FF 27 C9 1F 01 F0 2F C9 00 C2/6C7D: FF 01 B0 24 29 07 00 D0 1F C2/6C86: FF A5 27 38 E9 08 00 29 F8 C2/6C8F: FF FF 0A 0A 0A 18 69 C0 23 C2/6C98: DB 85 12 50 45 85 10 8E 0B 38 60 C2/6CA3: F3 E2 20 1F 15 0D 0C A4 55 A8 55 C2/6CAE: 4B B2 55 95 1C 0F F8 02 B0 00 0C BE 0B C2/6CBB: FF 33 85 32 DE 01 33 38 60 C2/6CC4: FA 70 03 32 0D 0C CC 55 D2 55 EB C2/6CCF: 73 55 20 B6 03 97 0C 80 9D 00 3C 05 C2/6CDB: F7 A9 3E 56 F1 12 20 5F 75 38 C2/6CE5: FD 60 A5 0C 36 F0 17 C9 01 F0 C2/6CEF: BF 07 A6 1D DE 00 36 9E 05 02 C2/6CF9: F7 A0 F9 56 AD 00 E6 36 80 ED C2/6D03: 7F BD 01 3B C9 FE D0 03 AD 03 C2/6D0D: AB C2 20 C0 03 AA C2 05 75 C6 05 20 C2/6D19: F8 B5 0B B7 05 9A 0C 3A 4C DC 55 7B C2/6D25: FF E6 34 A5 18 18 65 34 AA C2/6D2E: FF BF 00 FD C0 60 23 7C 01 C2/6D37: DF 59 56 02 D9 56 1E 26 79 56 C2/6D41: FF 02 99 56 03 B9 56 04 D9 C2/6D4A: FF 56 FE 63 10 DE 66 5B 56 C2/6D53: FF B4 45 2E 35 08 31 E8 2C C2/6D5C: FF C7 28 A6 24 A5 1C 84 18 C2/6D65: FF 64 14 63 10 BB 21 36 11 C2/6D6E: FF 7F 73 00 00 39 52 D7 45 C2/6D77: DF 51 39 EC 2C E7 44 16 85 20 C2/6D81: EF 84 18 84 14 4D 2E 7B 5A 00 C2/6D8B: FF 00 94 3D 53 35 EE 2C AA C2/6D94: 1B 24 A5 66 06 64 1C 4D 0E 89 1E 51 0E C2/6DA1: FF D6 45 00 00 AA 20 A7 20 C2/6DAA: CF 85 1C 43 18 89 2E 89 4E CC 24 C2/6DB5: F8 13 09 B9 9E 51 0E 63 10 AA 7C FD C2/6DC1: 9F 56 01 57 36 57 AB 13 FE 05 29 C2/6DCC: 5F 03 F0 37 0A AA F1 05 46 DE 06 C2/6DD7: 2E F1 12 E2 20 DA FE 05 FA F8 02 FB 16 C2/6DE4: 77 29 7F 69 28 04 34 A6 1D C4 05 C2/6DEF: BC BE 0B E9 05 F0 05 20 8D C6 05 18 C2/6DFB: FF 60 00 00 4E 57 66 57 4E C2/6E04: FF 57 7F 57 01 7E 57 01 84 C2/6E0D: 6A 2D 17 91 2D 17 9E 2D 0F FE AB 2D 17 C2/6E1A: D5 B0 2D 17 BD 2D 17 CA 3F 17 00 01 C2/6E26: DF 08 00 4C 35 03 24 07 35 10 C2/6E30: FF 00 60 35 08 10 62 35 03 C2/6E39: F7 08 00 64 6A 07 66 35 08 20 C2/6E43: D5 68 6E 0F 6A 6A 07 6C 77 07 6E 35 C2/6E4F: FE 5D 0F 75 03 10 00 4E 75 08 C2/6E59: 97 00 60 75 6B 07 75 6F 0F 96 07 66 C2/6E65: A9 75 78 07 9A 0F 6A 96 07 6C A3 07 6E C2/6E72: FF 75 40 A8 40 70 B0 48 68 C2/6E7B: FF A8 70 68 60 A8 80 D0 88 C2/6E84: FF 58 90 A8 98 88 50 58 70 C2/6E8D: FF 60 90 60 10 78 08 C2 30 C2/6E96: FF 48 DA 5A 8B 0B 20 2F 50 C2/6E9F: FF 20 13 58 20 72 58 20 43 C2/6EA8: FD 50 0B 01 C2 30 2B AB 7A FA C2/6EB2: 77 68 28 6B 5D 00 20 3C 58 69 02 C2/6EBD: F2 72 38 04 7D 28 64 38 FF 61 60 8B C2/6EC9: FF A9 00 48 AB A9 03 8D 01 C2/6ED2: FF 21 A6 00 8E 02 21 A9 07 C2/6EDB: FF 8D 05 21 A9 78 8D 07 21 C2/6EE4: FF A9 7C 8D 08 21 A9 74 8D C2/6EED: FF 09 21 8D 0A 21 A9 22 8D C2/6EF6: FF 0B 21 A9 77 8D 0C 21 7B C2/6EFF: 6F 8D 1A 21 AB 85 30 AD 58 90 F8 C2/6F0A: FE B2 38 22 0C 00 EE 60 B5 58 C2/6F14: FF 4C 5A 66 5A 70 5A 20 70 C2/6F1D: EF 5C 20 5D 5B 1A 10 22 09 00 C2/6F27: FF EE 22 03 00 EE AB 20 45 C2/6F30: 51 5C 08 01 28 0B 43 61 60 4A 29 80 4A 29 C2/6F3E: F1 A0 4A 29 37 79 BA B9 A9 68 85 39 C2/6F4A: FF A9 48 85 3A A9 78 85 3B C2/6F53: EF A9 C0 85 3C 70 03 3D A9 90 C2/6F5D: FF 85 3E 64 29 64 2A A0 38 C2/6F66: 7F 00 84 2B 64 37 64 38 72 00 C2/6F70: 7B C0 5F 77 00 7B 20 08 5B B1 02 C2/6F7B: 32 36 01 02 35 01 33 0B 90 64 B1 12 BF 08 C2/6F89: 40 46 01 A7 12 C9 00 46 01 05 1A 44 11 06 3B 13 C2/6F99: BF 31 A0 70 64 A9 03 A8 22 10 C2/6FA3: 24 52 21 ED 00 30 52 21 C3 01 50 52 21 FF 39 C2/6FB2: B2 72 00 27 30 09 72 00 ED 5A 8D 1A 92 C2/6FBF: DE B1 09 7B 9D 01 39 9A 0C 36 A9 C2/6FCA: F9 5A 9C 04 2F 02 A0 FF 9D 00 38 C2/6FD5: 50 F4 02 B6 21 9A 04 BF 01 0A 03 0E 28 C8 19 C2/6FE4: 55 60 CF 61 02 BE 09 07 03 0E 2D C8 19 C2/6FF1: FD 80 CF 19 E6 19 A9 01 85 32 C2/6FFB: 76 63 00 A0 CA (continued at C2/7000)