If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working soon.
The current URL is datacrystal.tcrf.net.
The current URL is datacrystal.tcrf.net.
Final Fantasy VI/ROM map/Assembly C3B: Difference between revisions
< Final Fantasy VI | ROM map
Jump to navigation
Jump to search
mNo edit summary |
m (Xkeeper moved page Final Fantasy VI:ROM map/Assembly C3B to Final Fantasy VI/ROM map/Assembly C3B: normalize subpages and titles) |
(No difference)
|
Latest revision as of 02:41, 24 January 2024
This is a sub-page of Final Fantasy VI/ROM map.
C3/B033 unknow
C3/B033: 64E0 STZ $E0 C3/B035: 64E4 STZ $E4 C3/B037: 64E5 STZ $E5 C3/B039: 64E3 STZ $E3 C3/B03B: A600 LDX $00 C3/B03D: A599 LDA $99 C3/B03F: C908 CMP #$08 C3/B041: D036 BNE $B079 C3/B043: BF899D7E LDA $7E9D89,X C3/B047: D007 BNE $B050 C3/B049: E6E0 INC $E0 C3/B04B: E8 INX C3/B04C: C908 CMP #$08 C3/B04E: D0F3 BNE $B043 C3/B050: A600 LDX $00 C3/B052: BF899D7E LDA $7E9D89,X C3/B056: 05E3 ORA $E3 C3/B058: 85E3 STA $E3 C3/B05A: E8 INX C3/B05B: E00800 CPX #$0008 C3/B05E: D0F2 BNE $B052 C3/B060: 66E3 ROR $E3 C3/B062: B004 BCS $B068 C3/B064: E6E4 INC $E4 C3/B066: 80F8 BRA $B060 C3/B068: 46E4 LSR $E4 C3/B06A: 06E4 ASL $E4 C3/B06C: C221 REP #$21 C3/B06E: A5E4 LDA $E4 C3/B070: 69513A ADC #$3A51 C3/B073: 85E7 STA $E7 C3/B075: E220 SEP #$20 (8 bit memory/accum.) C3/B077: 803B BRA $B0B4 C3/B079: BF899D7E LDA $7E9D89,X C3/B07D: 1F8A9D7E ORA $7E9D8A,X C3/B081: D009 BNE $B08C C3/B083: E6E0 INC $E0 C3/B085: E8 INX C3/B086: E8 INX C3/B087: E02000 CPX #$0020 C3/B08A: D0ED BNE $B079 C3/B08C: A600 LDX $00 C3/B08E: BF899D7E LDA $7E9D89,X C3/B092: 05E3 ORA $E3 C3/B094: 85E3 STA $E3 C3/B096: E8 INX C3/B097: E8 INX C3/B098: E02000 CPX #$0020 C3/B09B: D0F1 BNE $B08E C3/B09D: 66E3 ROR $E3 C3/B09F: B004 BCS $B0A5 C3/B0A1: E6E4 INC $E4 C3/B0A3: 80F8 BRA $B09D C3/B0A5: 46E4 LSR $E4 C3/B0A7: 06E4 ASL $E4 C3/B0A9: C221 REP #$21 C3/B0AB: A5E4 LDA $E4 C3/B0AD: 694938 ADC #$3849 C3/B0B0: 85E7 STA $E7 C3/B0B2: E220 SEP #$20 (8 bit memory/accum.) C3/B0B4: 4CB7B0 JMP $B0B7
C3/B0B7 unknow
C3/B0B7: 7B TDC C3/B0B8: AD0602 LDA $0206 (Monster to fight) C3/B0BB: AA TAX C3/B0BC: BF00E8EC LDA $ECE800,X C3/B0C0: C220 REP #$20 (16 bit memory/accum.) C3/B0C2: 0A ASL A C3/B0C3: AA TAX C3/B0C4: E220 SEP #$20 (8 bit memory/accum.) C3/B0C6: 7CC9B0 JMP ($B0C9,X)
C3/B0C9 unknow
C3/B0C9: D3B0 C3/B0CB: F8B0 C3/B0CD: E2B0 C3/B0CF: EAB0 C3/B0D1: EEB0
C3/B0D3 unknow
C3/B0D3: 64E0 STZ $E0 C3/B0D5: C220 REP #$20 (16 bit memory/accum.) C3/B0D7: A5E7 LDA $E7 C3/B0D9: 38 SEC C3/B0DA: E9C0 SBC #$C0 C3/B0DC: 00 BRK C3/B0DD: 8591 STA $91 C3/B0DF: E220 SEP #$20 (8 bit memory/accum.) C3/B0E1: 60 RTS
C3/B0E2 unknow
C3/B0E2: C6E0 DEC $E0 C3/B0E4: 1002 BPL $B0E8 C3/B0E6: 64E0 STZ $E0 C3/B0E8: 800E BRA $B0F8 C3/B0EA: E6E0 INC $E0 C3/B0EC: 800A BRA $B0F8 C3/B0EE: C6E0 DEC $E0 C3/B0F0: C6E0 DEC $E0 C3/B0F2: C6E0 DEC $E0 C3/B0F4: 1002 BPL $B0F8 C3/B0F6: 64E0 STZ $E0
C3/B0F8 unknow
C3/B0F8: 7B TDC C3/B0F9: A5E0 LDA $E0 C3/B0FB: C221 REP #$21 C3/B0FD: 0A ASL A C3/B0FE: 0A ASL A C3/B0FF: 0A ASL A C3/B100: 0A ASL A C3/B101: 0A ASL A C3/B102: 0A ASL A C3/B103: 65E7 ADC $E7 C3/B105: 8591 STA $91 C3/B107: E220 SEP #$20 (8 bit memory/accum.) C3/B109: 60 RTS
C3/B10A unknow
C3/B10A: A01000 LDY #$0010 C3/B10D: 84E3 STY $E3 C3/B10F: C220 REP #$20 (16 bit memory/accum.) C3/B111: A400 LDY $00 C3/B113: 9C1821 STZ $2118 C3/B116: C8 INY C3/B117: C4E3 CPY $E3 C3/B119: D0F8 BNE $B113 C3/B11B: E220 SEP #$20 (8 bit memory/accum.) C3/B11D: 60 RTS
C3/B11E unknow
C3/B11E: A5FF LDA $FF C3/B120: D007 BNE $B129 C3/B122: A01000 LDY #$0010 C3/B125: 84E3 STY $E3 C3/B127: 801C BRA $B145 C3/B129: A00800 LDY #$0008 C3/B12C: 84E3 STY $E3 C3/B12E: 2045B1 JSR $B145 C3/B131: 9B TXY C3/B132: A20800 LDX #$0008 C3/B135: 7B TDC C3/B136: B7F5 LDA [$F5],Y C3/B138: C220 REP #$20 (16 bit memory/accum.) C3/B13A: 8D1821 STA $2118 C3/B13D: E220 SEP #$20 (8 bit memory/accum.) C3/B13F: C8 INY C3/B140: CA DEX C3/B141: D0F3 BNE $B136 C3/B143: BB TYX C3/B144: 60 RTS
C3/B145 unknow
C3/B145: 9B TXY C3/B146: A600 LDX $00 C3/B148: C220 REP #$20 (16 bit memory/accum.) C3/B14A: B7F5 LDA [$F5],Y C3/B14C: 8D1821 STA $2118 C3/B14F: C8 INY C3/B150: C8 INY C3/B151: E8 INX C3/B152: E4E3 CPX $E3 C3/B154: D0F4 BNE $B14A C3/B156: E220 SEP #$20 (8 bit memory/accum.) C3/B158: BB TYX C3/B159: 60 RTS
C3/B15A unknow
C3/B15A: C220 REP #$20 (16 bit memory/accum.) C3/B15C: A5F1 LDA $F1 C3/B15E: 29FF03 AND #$03FF C3/B161: 0A ASL A C3/B162: 0A ASL A C3/B163: 0A ASL A C3/B164: 0A ASL A C3/B165: AA TAX C3/B166: E220 SEP #$20 (8 bit memory/accum.) C3/B168: A0A930 LDY #$30A9 C3/B16B: 8C8121 STY $2181 C3/B16E: A02000 LDY #$0020 C3/B171: BF2078D2 LDA $D27820,X (monster palettes) C3/B175: 8D8021 STA $2180 C3/B178: E8 INX C3/B179: 88 DEY C3/B17A: D0F5 BNE $B171 C3/B17C: 60 RTS
C3/B17D unknow
C3/B17D: A46D LDY $6D C3/B17F: F015 BEQ $B196 C3/B181: 8467 STY $67 C3/B183: A04F7E LDY #$7E4F C3/B186: 20E5B1 JSR $B1E5 C3/B189: A920 LDA #$20 C3/B18B: 85E1 STA $E1 C3/B18D: A9A8 LDA #$A8 C3/B18F: 85E2 STA $E2 C3/B191: A569 LDA $69 C3/B193: 20F3B1 JSR $B1F3 (JMP!) C3/B196: 60 RTS
C3/B197 unknow
C3/B197: A46F LDY $6F C3/B199: F015 BEQ $B1B0 C3/B19B: 8467 STY $67 C3/B19D: A05D7E LDY #$7E5D C3/B1A0: 20E5B1 JSR $B1E5 C3/B1A3: A958 LDA #$58 C3/B1A5: 85E1 STA $E1 C3/B1A7: A9A8 LDA #$A8 C3/B1A9: 85E2 STA $E2 C3/B1AB: A56A LDA $6A C3/B1AD: 20F3B1 JSR $B1F3 (JMP!) C3/B1B0: 60 RTS
C3/B1B1 unknow
C3/B1B1: A471 LDY $71 C3/B1B3: F015 BEQ $B1CA C3/B1B5: 8467 STY $67 C3/B1B7: A06B7E LDY #$7E6B C3/B1BA: 20E5B1 JSR $B1E5 C3/B1BD: A990 LDA #$90 C3/B1BF: 85E1 STA $E1 C3/B1C1: A9A8 LDA #$A8 C3/B1C3: 85E2 STA $E2 C3/B1C5: A56B LDA $6B C3/B1C7: 20F3B1 JSR $B1F3 (JMP!) C3/B1CA: 60 RTS
C3/B1CB unknow
C3/B1CB: A473 LDY $73 C3/B1CD: F015 BEQ $B1E4 C3/B1CF: 8467 STY $67 C3/B1D1: A0797E LDY #$7E79 C3/B1D4: 20E5B1 JSR $B1E5 C3/B1D7: A9C8 LDA #$C8 C3/B1D9: 85E1 STA $E1 C3/B1DB: A9A8 LDA #$A8 C3/B1DD: 85E2 STA $E2 C3/B1DF: A56C LDA $6C C3/B1E1: 20F3B1 JSR $B1F3 (JMP!) C3/B1E4: 60 RTS
C3/B1E5 unknow
C3/B1E5: 20CF34 JSR $34CF C3/B1E8: A902 LDA #$02 C3/B1EA: A05F7A LDY #$7A5F C3/B1ED: 207311 JSR $1173 (put C3/7A5F in the queue) C3/B1F0: 9B TXY C3/B1F1: 7B TDC C3/B1F2: 60 RTS
C3/B1F3 unknow
C3/B1F3: 0A ASL A C3/B1F4: AA TAX C3/B1F5: C220 REP #$20 (16 bit memory/accum.) C3/B1F7: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/B1FB: AA TAX C3/B1FC: E220 SEP #$20 (8 bit memory/accum.) C3/B1FE: BD1400 LDA $0014,X (Statuses) C3/B201: 2920 AND #$20 (Mask all but imp) C3/B203: F005 BEQ $B20A (Branch if imp not set) C3/B205: 7B TDC (probably to clear out upper bits) C3/B206: A90F LDA #$0F (load Imp's spritesheet) C3/B208: 8004 BRA $B20E C3/B20A: 7B TDC (probably to clear out upper bits) C3/B20B: BD0100 LDA $0001,X (load character's spritesheet) C3/B20E: 20FA78 JSR $78FA (draw the sprite?) C3/B211: A9D8 LDA #$D8 C3/B213: 99CA35 STA $35CA,Y (save bank pointer to OAM data) C3/B216: A5E1 LDA $E1 C3/B218: 99CA33 STA $33CA,Y C3/B21B: A5E2 LDA $E2 C3/B21D: 994A34 STA $344A,Y C3/B220: 7B TDC C3/B221: 99CB33 STA $33CB,Y C3/B224: 994B34 STA $344B,Y C3/B227: A900 LDA #$00 C3/B229: 48 PHA C3/B22A: AB PLB C3/B22B: 60 RTS
C3/B22C determine prize and monster on item bet at Colosseum
C3/B22C: 7B TDC C3/B22D: AD0502 LDA $0205 C3/B230: C220 REP #$20 (16 bit memory/accum.) C3/B232: 0A ASL A C3/B233: 0A ASL A C3/B234: AA TAX C3/B235: E220 SEP #$20 (8 bit memory/accum.) C3/B237: BF00B6DF LDA $DFB600,X (monster to face) C3/B23B: 8D0602 STA $0206 C3/B23E: BF02B6DF LDA $DFB602,X (item to win) C3/B242: 8D0702 STA $0207 C3/B245: BF03B6DF LDA $DFB603,X (mask item to win) C3/B249: 8D0902 STA $0209 C3/B24C: 60 RTS
C3/B24D unknow
C3/B24D: AD0502 LDA $0205 (item bet) C3/B250: A22B79 LDX #$792B (position onscreen to draw name) C3/B253: 800E BRA $B263
C3/B255 unknow
C3/B255: AD0902 LDA $0209 (load item mask flag) C3/B258: F003 BEQ $B25D (branch if not set to mask item won) C3/B25A: 4C86B2 JMP $B286
C3/B25D unknow
C3/B25D: AD0702 LDA $0207 (item to win) C3/B260: A20D79 LDX #$790D (position onscreen to draw name) C3/B263: 48 PHA C3/B264: A08B9E LDY #$9E8B C3/B267: 8C8121 STY $2181 C3/B26A: C220 REP #$20 (16 bit memory/accum.) C3/B26C: 8A TXA C3/B26D: 8F899E7E STA $7E9E89 C3/B271: E220 SEP #$20 (8 bit memory/accum.) C3/B273: AD1242 LDA $4212 C3/B276: 2940 AND #$40 (are we in H-blank?) C3/B278: F0F9 BEQ $B273 (branch if not) C3/B27A: 68 PLA C3/B27B: 20CE80 JSR $80CE (Write out item name) C3/B27E: 7B TDC C3/B27F: 8F989E7E STA $7E9E98 C3/B283: 4CD97F JMP $7FD9
C3/B286 unknow
C3/B286: A027B4 LDY #$B427 ("?????????????") C3/B289: 20F902 JSR $02F9 C3/B28C: 60 RTS
C3/B28D unknow
C3/B28D: C220 REP #$20 (16 bit memory/accum.) C3/B28F: A94F7C LDA #$7C4F (position onscreen to draw name) C3/B292: 8F899E7E STA $7E9E89 C3/B296: E220 SEP #$20 (8 bit memory/accum.) C3/B298: 200954 JSR $5409 C3/B29B: 7B TDC C3/B29C: AD0602 LDA $0206 (monster to face) C3/B29F: 206784 JSR $8467 (write the name) C3/B2A2: 4CD97F JMP $7FD9
C3/B2A5 unknow
C3/B2A5: 8B PHB C3/B2A6: A900 LDA #$00 C3/B2A8: 48 PHA C3/B2A9: AB PLB C3/B2AA: 7B TDC C3/B2AB: A54B LDA $4B C3/B2AD: 0A ASL A C3/B2AE: AA TAX C3/B2AF: B46D LDY $6D,X C3/B2B1: F02C BEQ $B2DF C3/B2B3: 8467 STY $67 C3/B2B5: A0757C LDY #$7C75 C3/B2B8: 20CF34 JSR $34CF C3/B2BB: A902 LDA #$02 C3/B2BD: 0447 TSB $47 C3/B2BF: A902 LDA #$02 C3/B2C1: A0427B LDY #$7B42 C3/B2C4: 207311 JSR $1173 (put C3/7B42 in the queue) C3/B2C7: A901 LDA #$01 C3/B2C9: 9F49367E STA $7E3649,X C3/B2CD: 9B TXY C3/B2CE: 7B TDC C3/B2CF: A9B8 LDA #$B8 C3/B2D1: 85E1 STA $E1 C3/B2D3: A968 LDA #$68 C3/B2D5: 85E2 STA $E2 C3/B2D7: 20ECB2 JSR $B2EC C3/B2DA: 20F3B1 JSR $B1F3 C3/B2DD: 8003 BRA $B2E2 C3/B2DF: 20E5B2 JSR $B2E5 C3/B2E2: AB PLB C3/B2E3: 38 SEC C3/B2E4: 60 RTS
C3/B2E5 unknow
C3/B2E5: A006B4 LDY #$B406 (" ", maybe to blank stray letters from character name after switching?) C3/B2E8: 20F902 JSR $02F9 C3/B2EB: 60 RTS
C3/B2EC unknow
C3/B2EC: 7B TDC C3/B2ED: A54B LDA $4B C3/B2EF: AA TAX C3/B2F0: B569 LDA $69,X C3/B2F2: 60 RTS
C3/B2F3 code and table jump
C3/B2F3: AA TAX C3/B2F4: 7CF7B2 JMP ($B2F7,X) C3/B2F7: FBB2 C3/B2F9: 1EB3
C3/B2FB unknow
C3/B2FB: A62D LDX $2D C3/B2FD: C220 REP #$20 (16 bit memory/accum.) C3/B2FF: A987EC LDA #$EC87 C3/B302: 9DC932 STA $32A9,X C3/B305: A97000 LDA #$0070 C3/B308: 9DCA33 STA $33CA,X C3/B30B: A96000 LDA #$60 C3/B30E: 9D4A34 STA $344A,X C3/B311: E220 SEP #$20 C3/B313: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/B316: A9D8 LDA #$D8 C3/B318: 9DCA35 STA $35CA,X (save bank pointer to OAM data) C3/B31B: 200612 JSR $1206 C3/B31E: 202112 JSR $1221 (draw the sprites!) C3/B321: 38 SEC (not done with this queue yet) C3/B322: 60 RTS
C3/B323 unknow
C3/B323: A032B3 LDY #$B332 C3/B326: 4CFE05 JMP $05FE
C3/B329 unknow
C3/B329: 202D07 JSR $072D C3/B32C: A037B3 LDY #$B337 C3/B32F: 4C4006 JMP $0640
C3/B332 data: hotspot
C3/B332: 01 00 00 04 01
C3/B337 data: finger positions
C3/B337: 10B0 C3/B339: 48B0 C3/B33B: 80B0 C3/B33D: B8B0
C3/B33F data: windows
C3/B33F: 8B580D02 (window that holds item to win) C3/B343: A9580D02 (window that holds item bet) C3/B347: CB5C1C07 (window that holds the foolish challengers that will fight :P)
C3/B34B unknow
C3/B34B: C220 REP #$20 C3/B34D: AF8C16E7 LDA $E7168C C3/B351: 85F3 STA $F3 C3/B353: E220 SEP #$20 (8 bit memory/accum.) C3/B355: AF8E16E7 LDA $E7168E C3/B359: 85F5 STA $F5 C3/B35B: 20F2B3 JSR $B3F2 C3/B35E: A00068 LDY #$6800 C3/B361: 8C1621 STY $2116 C3/B364: A00010 LDY #$1000 C3/B367: 84E7 STY $E7 C3/B369: A600 LDX $00 C3/B36B: 20C6B3 JSR $B3C6 C3/B36E: C220 REP #$20 (16 bit memory/accum.) C3/B370: AF9216E7 LDA $E71692 C3/B374: 85F3 STA $F3 C3/B376: E220 SEP #$20 (8 bit memory/accum.) C3/B378: AF9416E7 LDA $E71694 C3/B37C: 85F5 STA $F5 C3/B37E: 20F2B3 JSR $B3F2 C3/B381: A00070 LDY #$7000 C3/B384: 8C1621 STY $2116 C3/B387: A00010 LDY #$1000 C3/B38A: 84E7 STY $E7 C3/B38C: A600 LDX $00 C3/B38E: 20C6B3 JSR $B3C6 C3/B391: C220 REP #$20 (16 bit memory/accum.) C3/B393: AF7A18E7 LDA $E7187A C3/B397: 85F3 STA $F3 C3/B399: E220 SEP #$20 (8 bit memory/accum.) C3/B39B: A9E7 LDA #$E7 C3/B39D: 85F5 STA $F5 C3/B39F: 20F2B3 JSR $B3F2 C3/B3A2: 20D8B3 JSR $B3D8 C3/B3A5: C220 REP #$20 (16 bit memory/accum.) C3/B3A7: A9B00A LDA #$0AB0 C3/B3AA: 85E7 STA $E7 C3/B3AC: E220 SEP #$20 (8 bit memory/accum.) C3/B3AE: A9E7 LDA #$E7 C3/B3B0: 85E9 STA $E9 C3/B3B2: A2C930 LDX #$30C9 C3/B3B5: 8E8121 STX $2181 C3/B3B8: A400 LDY $00 C3/B3BA: B7E7 LDA [$E7],Y C3/B3BC: 8D8021 STA $2180 C3/B3BF: C8 INY C3/B3C0: C06000 CPY #$0060 C3/B3C3: D0F5 BNE $B3BA C3/B3C5: 60 RTS
C3/B3C6 unknow
C3/B3C6: C220 REP #$20 (16 bit memory/accum.) C3/B3C8: BF8DB67E LDA $7EB68D,X C3/B3CC: 8D1821 STA $2118 C3/B3CF: E8 INX C3/B3D0: E8 INX C3/B3D1: E4E7 CPX $E7 C3/B3D3: D0F3 BNE $B3C8 C3/B3D5: E220 SEP #$20 (8 bit memory/accum.) C3/B3D7: 60 RTS
C3/B3D8 unknow
C3/B3D8: A600 LDX $00 C3/B3DA: C220 REP #$20 (16 bit memory/accum.) C3/B3DC: BF8DB67E LDA $7EB68D,X C3/B3E0: 38 SEC C3/B3E1: E98003 SBC #$0380 C3/B3E4: 9F49597E STA $7E5949,X C3/B3E8: E8 INX C3/B3E9: E8 INX C3/B3EA: E08005 CPX #$0580 C3/B3ED: D0ED BNE $B3DC C3/B3EF: E220 SEP #$20 (8 bit memory/accum.) C3/B3F1: 60 RTS
C3/B3F2 unknow
C3/B3F2: A08DB6 LDY #$B68D (Decompression destination address) C3/B3F5: 84F6 STY $F6 C3/B3F7: A97E LDA #$7E (Decompression destination bank) C3/B3F9: 85F8 STA $F8 C3/B3FB: 8B PHB C3/B3FC: A97E LDA #$7E C3/B3FE: 48 PHA C3/B3FF: AB PLB C3/B400: 226DFFC2 JSL $C2FF6D (LZ decompression routine) C3/B404: AB PLB C3/B405: 60 RTS
C3/B406 data: strings
C3/B406: 757CFFFFFFFFFFFF00 (" ") C3/B40F: 157D929EA59E9CADFFADA19EFF9CA19AA5A59EA7A09EAB00 ("Select the challenger") C3/B427: 0D79BFBFBFBFBFBFBFBFBFBFBFBFBF00 ("?????????????")
C3/B437 unknow
C3/B437: 7B TDC C3/B438: AA TAX C3/B439: C220 REP #$20 (16 bit memory/accum.) C3/B43B: 9F71A27E STA $7EA271,X C3/B43F: E8 INX C3/B440: E8 INX C3/B441: E4F3 CPX $F3 C3/B443: D0F6 BNE $B43B C3/B445: E220 SEP #$20 (8 bit memory/accum.) C3/B447: 60 RTS
C3/B448 unknow
C3/B448: 01 C3/B449: 0900023E C3/B44D: 01 C3/B44E: 0900123E
C3/B452 oam data
OAM data, format is pointer, timer, pointer, timer, pointer, end C3/B452: 48B4 C3/B454: 02 C3/B455: 4DB4 C3/B457: 02 C3/B458: 48B4 C3/B45A: FF
C3/B45B unknow
C3/B45B: 00 (config screen OAM data points here....but this would indicate that there's nothing) C3/B45C: 01 C3/B45D: 8082033E C3/B461: 01 (config screen OAM data points here) C3/B462: 800003BE (position 80,0, 03 is ?, giant arrow pointing up)
DP $26 is #$24 - initiate the shop menu C3/B466: 202F35 JSR $352F (fade out screen, disable H/DMA) C3/B469: 200469 JSR $6904 C3/B46C: 20086A JSR $6A08 C3/B46F: A903 LDA #$03 C3/B471: 8D0721 STA $2107 C3/B474: A9C0 LDA #$C0 C3/B476: 1443 TRB $43 (eventually disable channels 6 and 7 of HDMA) C3/B478: A902 LDA #$02 C3/B47A: 8546 STA $46 C3/B47C: 644A STZ $4A C3/B47E: 2086B8 JSR $B886 C3/B481: 208FB8 JSR $B88F C3/B484: 20B007 JSR $07B0 (finger OAM initiating) C3/B487: 20C4B8 JSR $B8C4 C3/B48A: 202B7E JSR $7E2B C3/B48D: 2018C0 JSR $C018 C3/B490: A925 LDA #$25 C3/B492: 8527 STA $27 (queue up to execute at C3/B49B) C3/B494: A901 LDA #$01 C3/B496: 8526 STA $26 (transition) C3/B498: 4C4135 JMP $3541
DP $26 is #$25 - sustain the shop menu C3/B49B: 208CB8 JSR $B88C C3/B49E: A508 LDA $08 C3/B4A0: 8980 BIT #$80 (did you press A?) C3/B4A2: F006 BEQ $B4AA (branch if not, BPL...) C3/B4A4: 20B20E JSR $0EB2 (makes the click sound) C3/B4A7: 4C92B7 JMP $B792 C3/B4AA: A509 LDA $09 C3/B4AC: 8980 BIT #$80 (did you press B?) C3/B4AE: F00C BEQ $B4BC (branch if not, BPL...) C3/B4B0: 20A90E JSR $0EA9 C3/B4B3: 9C0502 STZ $0205 C3/B4B6: A9FF LDA #$FF C3/B4B8: 8527 STA $27 C3/B4BA: 6426 STZ $26 C3/B4BC: 60 RTS
C3/B4BD buy item
DP $26 is #$26 - buying C3/B4BD: A910 LDA #$10 C3/B4BF: 0445 TSB $45 C3/B4C1: 20390F JSR $0F39 C3/B4C4: 20A6B8 JSR $B8A6 C3/B4C7: 2084BC JSR $BC84 C3/B4CA: 20A8BC JSR $BCA8 C3/B4CD: A509 LDA $09 C3/B4CF: 8980 BIT #$80 (did you press B?) C3/B4D1: F006 BEQ $B4D9 (branch if not, BPL...) C3/B4D3: 20A90E JSR $0EA9 C3/B4D6: 4C60B7 JMP $B760 C3/B4D9: A508 LDA $08 C3/B4DB: 8980 BIT #$80 (did you press A?) C3/B4DD: F006 BEQ $B4E5 (branch if not, BPL...) C3/B4DF: 202FB8 JSR $B82F C3/B4E2: 20E6B7 JSR $B7E6 C3/B4E5: 60 RTS C3/B4E6: A910 LDA #$10 C3/B4E8: 1445 TRB $45 C3/B4EA: A920 LDA #$20 C3/B4EC: 0445 TSB $45 C3/B4EE: 60 RTS C3/B4EF: 200883 JSR $8308 C3/B4F2: 20C2BF JSR $BFC2 C3/B4F5: 4C3857 JMP $5738 C3/B4F8: 200883 JSR $8308 C3/B4FB: 7B TDC C3/B4FC: A54B LDA $4B C3/B4FE: AA TAX C3/B4FF: BD6918 LDA $1869,X (Items currently in inventory) C3/B502: 4C3857 JMP $5738
C3/B505 deciding on how many items to buy
DP $26 is #$27 - deciding on how many to buy C3/B505: 20E6B4 JSR $B4E6 C3/B508: 20EFB4 JSR $B4EF C3/B50B: 2053BB JSR $BB53 C3/B50E: 20AEBB JSR $BBAE C3/B511: A50B LDA $0B C3/B513: 8901 BIT #$01 C3/B515: F022 BEQ $B539 C3/B517: 20A30E JSR $0EA3 C3/B51A: A528 LDA $28 (Number of items to buy) C3/B51C: C56A CMP $6A (Compare to current maximum) C3/B51E: F05C BEQ $B57C (Branch if equal) C3/B520: E628 INC $28 (Increase the number by one) C3/B522: 2053BB JSR $BB53 C3/B525: AD6018 LDA $1860 (Current GP, low byte) C3/B528: C5F1 CMP $F1 (Compare to that of the price) C3/B52A: AD6118 LDA $1861 (Current GP, middle byte) C3/B52D: E5F2 SBC $F2 (Subtract to that of the price) C3/B52F: AD6218 LDA $1862 (Current GP, high byte) C3/B532: E5F3 SBC $F3 (Subtact to that of the price) C3/B534: B002 BCS $B538 (Exit if money total is sufficient) C3/B536: C628 DEC $28 (Decrease the number of items to buy) C3/B538: 60 RTS
C3/B539 unknow
C3/B539: A50B LDA $0B C3/B53B: 8902 BIT #$02 C3/B53D: F00B BEQ $B54A C3/B53F: 20A30E JSR $0EA3 C3/B542: A528 LDA $28 C3/B544: C901 CMP #$01 C3/B546: F056 BEQ $B59E C3/B548: C628 DEC $28 C3/B54A: A50B LDA $0B C3/B54C: 8908 BIT #$08 C3/B54E: F033 BEQ $B583 C3/B550: 20A30E JSR $0EA3 C3/B553: A90A LDA #$0A C3/B555: 18 CLC C3/B556: 6528 ADC $28 C3/B558: C56A CMP $6A C3/B55A: F002 BEQ $B55E C3/B55C: B021 BCS $B57F C3/B55E: 8528 STA $28 C3/B560: 2053BB JSR $BB53 C3/B563: AD6018 LDA $1860 C3/B566: C5F1 CMP $F1 C3/B568: AD6118 LDA $1861 C3/B56B: E5F2 SBC $F2 C3/B56D: AD6218 LDA $1862 C3/B570: E5F3 SBC $F3 C3/B572: B007 BCS $B57B C3/B574: A528 LDA $28 C3/B576: 38 SEC C3/B577: E90A SBC #$0A C3/B579: 8528 STA $28 C3/B57B: 60 RTS C3/B57C: 4C9EB5 JMP $B59E
C3/B57F unknow
C3/B57F: A528 LDA $28 C3/B581: 80DB BRA $B55E C3/B583: A50B LDA $0B C3/B585: 8904 BIT #$04 C3/B587: F015 BEQ $B59E C3/B589: 20A30E JSR $0EA3 C3/B58C: A528 LDA $28 C3/B58E: 38 SEC C3/B58F: E90A SBC #$0A C3/B591: 3007 BMI $B59A C3/B593: C901 CMP #$01 C3/B595: 9007 BCC $B59E C3/B597: 8528 STA $28 C3/B599: 60 RTS
C3/B59A unknow
C3/B59A: A901 LDA #$01 C3/B59C: 8528 STA $28 C3/B59E: A509 LDA $09 C3/B5A0: 8980 BIT #$80 (did you press B?) C3/B5A2: F006 BEQ $B5AA (branch if not, BPL...) C3/B5A4: 20A90E JSR $0EA9 C3/B5A7: 4CB3B7 JMP $B7B3
C3/B5AA unknow
C3/B5AA: A508 LDA $08 C3/B5AC: 8980 BIT #$80 (did you press A?) C3/B5AE: F006 BEQ $B5B6 (branch if not, BPL...) C3/B5B0: 20CE0E JSR $0ECE (Makes the Cha-ching sound play) C3/B5B3: 20B7B5 JSR $B5B7 (Buying function) C3/B5B6: 60 RTS
C3/B5B7 buy function
C3/B5B7: 20C2BF JSR $BFC2 (Function loads A with item index taken from $4B) C3/B5BA: A400 LDY $00 (Load Y with $00) C3/B5BC: D96918 CMP $1869,Y (Is this item [in A] in the inventory [at Y]?) C3/B5BF: F020 BEQ $B5E1 (If so, branch -> Load A with $28) C3/B5C1: C8 INY (Otherwise, increment Y to check the next index) C3/B5C2: C00001 CPY #$0100 (Is Y 255 yet?) C3/B5C5: D0F5 BNE $B5BC (If not, branch -> check inventory list again) C3/B5C7: A400 LDY $00 (Load Y with $00) C3/B5C9: B96918 LDA $1869,Y (Load inventory item Y) C3/B5CC: C9FF CMP #$FF (Is it the "empty" byte?) C3/B5CE: F003 BEQ $B5D3 (If so, branch -> don't need to keep checking, this is it and we don't have it yet) C3/B5D0: C8 INY (Otherwise, increment Y to check the next index) C3/B5D1: 80F6 BRA $B5C9 (Go to the next item) C3/B5D3: A528 LDA $28 (Load A with $28 [holds the quantity to add]) C3/B5D5: 996919 STA $1969,Y (Store it as the quantity of this item [had none before]) C3/B5D8: BF899D7E LDA $7E9D89,X (Load working RAM for the X location on the list) C3/B5DC: 996918 STA $1869,Y (Store it in items currently in inventory at Y) C3/B5DF: 8009 BRA $B5EA (Go to function [see below]) C3/B5E1: A528 LDA $28 (Load A with $28 [the quantity to add]) C3/B5E3: 18 CLC (Clear carry) C3/B5E4: 796919 ADC $1969,Y (Add the old quantity to the new) C3/B5E7: 996919 STA $1969,Y (Store it in the quantity of this item) C3/B5EA: 2053BB JSR $BB53 ????? C3/B5ED: 38 SEC (Set the carry in case of borrowing) C3/B5EE: AD6018 LDA $1860 (Load gold low byte) C3/B5F1: E5F1 SBC $F1 (Subtract the price low byte) C3/B5F3: 8D6018 STA $1860 (Store it in the gold low byte) C3/B5F6: C220 REP #$20 (16 bit memory/accum.) C3/B5F8: AD6118 LDA $1861 (Load the gold upper bytes) C3/B5FB: E5F2 SBC $F2 (Subtract the price upper byte) C3/B5FD: 8D6118 STA $1861 (Store the new balance of the gold upper bytes) C3/B600: E220 SEP #$20 (8 bit memory/accum.) C3/B602: 20CE32 JSR $32CE C3/B605: A0BDC3 LDY #$C3BD C3/B608: 20F902 JSR $02F9 ("Bye! ") C3/B60B: 4C7DB8 JMP $B87D
C3/B60E unknow
DP $26 is #$28 C3/B60E: A520 LDA $20 C3/B610: D003 BNE $B615 C3/B612: 20B3B7 JSR $B7B3 C3/B615: 60 RTS
C3/B616 sell function
DP $26 is #$29 - selling C3/B616: A910 LDA #$10 C3/B618: 0445 TSB $45 C3/B61A: 7B TDC C3/B61B: 852A STA $2A C3/B61D: 20FD0E JSR $0EFD C3/B620: 20641F JSR $1F64 C3/B623: B050 BCS $B675 C3/B625: 20227D JSR $7D22 C3/B628: A509 LDA $09 C3/B62A: 8980 BIT #$80 (did you press B?) C3/B62C: F006 BEQ $B634 (branch if not, BPL...) C3/B62E: 20A90E JSR $0EA9 C3/B631: 4C60B7 JMP $B760
C3/B634 unknow
C3/B634: A508 LDA $08 C3/B636: 8980 BIT #$80 (did you press A?) C3/B638: F03B BEQ $B675 (branch if not, BPL...) C3/B63A: 20CBBF JSR $BFCB C3/B63D: C9FF CMP #$FF C3/B63F: F02E BEQ $B66F C3/B641: 20B20E JSR $0EB2 (makes the click sound) C3/B644: A9C0 LDA #$C0 C3/B646: 1446 TRB $46 C3/B648: 20156A JSR $6A15 C3/B64B: 20FD0E JSR $0EFD C3/B64E: 206813 JSR $1368 (trigger NMI) C3/B651: A92A LDA #$2A C3/B653: 8526 STA $26 (execute at C3/B676) C3/B655: A20800 LDX #$0008 C3/B658: 8655 STX $55 C3/B65A: A23400 LDX #$0034 C3/B65D: 8657 STX $57 C3/B65F: 20A5BA JSR $BAA5 C3/B662: 20D3BA JSR $BAD3 C3/B665: A0B1C3 LDY #$C3B1 C3/B668: 20F902 JSR $02F9 ("How many?") C3/B66B: 206DB8 JSR $B86D C3/B66E: 60 RTS
C3/B66F unknow
C3/B66F: 20C00E JSR $0EC0 (makes the buzzer sound) C3/B672: 205D30 JSR $305D C3/B675: 60 RTS
C3/B676 deciding how many items to sell
DP $26 is #$2A - deciding how many items to sell C3/B676: 20E6B4 JSR $B4E6 C3/B679: 20F8B4 JSR $B4F8 C3/B67C: 2065BB JSR $BB65 C3/B67F: 20B7BB JSR $BBB7 C3/B682: A50B LDA $0B C3/B684: 8901 BIT #$01 C3/B686: F00D BEQ $B695 C3/B688: 20A30E JSR $0EA3 C3/B68B: A528 LDA $28 C3/B68D: C564 CMP $64 C3/B68F: F04F BEQ $B6E0 C3/B691: E628 INC $28 C3/B693: 804B BRA $B6E0 C3/B695: A50B LDA $0B C3/B697: 8902 BIT #$02 C3/B699: F00B BEQ $B6A6 C3/B69B: 20A30E JSR $0EA3 C3/B69E: A528 LDA $28 C3/B6A0: C901 CMP #$01 C3/B6A2: F03C BEQ $B6E0 C3/B6A4: C628 DEC $28 C3/B6A6: A50B LDA $0B C3/B6A8: 8908 BIT #$08 C3/B6AA: F018 BEQ $B6C4 C3/B6AC: 20A30E JSR $0EA3 C3/B6AF: A90A LDA #$0A C3/B6B1: 18 CLC C3/B6B2: 6528 ADC $28 C3/B6B4: C564 CMP $64 C3/B6B6: F006 BEQ $B6BE C3/B6B8: B004 BCS $B6BE C3/B6BA: 8528 STA $28 C3/B6BC: 8022 BRA $B6E0 C3/B6BE: A564 LDA $64 C3/B6C0: 8528 STA $28 C3/B6C2: 801C BRA $B6E0 C3/B6C4: A50B LDA $0B C3/B6C6: 8904 BIT #$04 C3/B6C8: F016 BEQ $B6E0 C3/B6CA: 20A30E JSR $0EA3 C3/B6CD: A528 LDA $28 C3/B6CF: 38 SEC C3/B6D0: E90A SBC #$0A C3/B6D2: 3008 BMI $B6DC C3/B6D4: C901 CMP #$01 C3/B6D6: 9008 BCC $B6E0 C3/B6D8: 8528 STA $28 C3/B6DA: 8004 BRA $B6E0 C3/B6DC: A901 LDA #$01 C3/B6DE: 8528 STA $28 C3/B6E0: A509 LDA $09 C3/B6E2: 8980 BIT #$80 C3/B6E4: F015 BEQ $B6FB C3/B6E6: 20A90E JSR $0EA9 C3/B6E9: A600 LDX $00 C3/B6EB: 8639 STX $39 C3/B6ED: 863B STX $3B C3/B6EF: 205AB9 JSR $B95A C3/B6F2: A026C3 LDY #$C326 C3/B6F5: 20F902 JSR $02F9 (display "Sell") C3/B6F8: 4CCFB7 JMP $B7CF
C3/B6FB unknow
C3/B6FB: A508 LDA $08 C3/B6FD: 8980 BIT #$80 (did you press A?) C3/B6FF: F006 BEQ $B707 (branch if not, BPL...) C3/B701: 20CE0E JSR $0ECE (Makes the Cha-ching sound play) C3/B704: 2008B7 JSR $B708 (this JSR is useless...) C3/B707: 60 RTS
C3/B708 sell function
C3/B708: 2065BB JSR $BB65 C3/B70B: 18 CLC C3/B70C: AD6018 LDA $1860 (Load the gold lower byte) C3/B70F: 65F1 ADC $F1 (Add the new amount (probably selling price)) C3/B711: 8D6018 STA $1860 (Store the new total in the gold lower byte) C3/B714: C220 REP #$20 (16 bit memory/accum.) C3/B716: AD6118 LDA $1861 (Load the gold upper bytes) C3/B719: 65F2 ADC $F2 (Add the new amount) C3/B71B: 8D6118 STA $1861 (Store it back to the gold upper bytes) C3/B71E: E220 SEP #$20 (8 bit memory/accum.) C3/B720: A564 LDA $64 (Load $64 [number in possession at first?]) C3/B722: C528 CMP $28 (Did you sell that many?) C3/B724: F00E BEQ $B734 (If you did, branch -> Sold them all) C3/B726: 20CBBF JSR $BFCB (Still have some: Function $BFCB) C3/B729: B96919 LDA $1969,Y (Load quantity of item Y) C3/B72C: 38 SEC (Set the carry in case of borrowing) C3/B72D: E528 SBC $28 (Subtract number sold) C3/B72F: 996919 STA $1969,Y (Store it back to quantity of item Y) C3/B732: 800C BRA $B740 C3/B734: 20CBBF JSR $BFCB (Sold them all: Function $BFCB) C3/B737: A9FF LDA #$FF (Load an "empty" item) C3/B739: 996918 STA $1869,Y (Store it in inventory at Y) C3/B73C: 7B TDC (Clear A) C3/B73D: 996919 STA $1969,Y (Now put zero into quantity for item Y) C3/B740: 20CE32 JSR $32CE C3/B743: A0BDC3 LDY #$C3BD C3/B746: 20F902 JSR $02F9 ("Bye! ") C3/B749: A92B LDA #$2B C3/B74B: 8526 STA $26 (execute at C3/B752) C3/B74D: A920 LDA #$20 C3/B74F: 8520 STA $20 C3/B751: 60 RTS
C3/B752 sold an item
DP $26 is #$2B - sold an item C3/B752: A520 LDA $20 C3/B754: D009 BNE $B75F C3/B756: A600 LDX $00 C3/B758: 8639 STX $39 C3/B75A: 863B STX $3B C3/B75C: 20CFB7 JSR $B7CF C3/B75F: 60 RTS
C3/B760 unknow
C3/B760: A9C0 LDA #$C0 C3/B762: 1446 TRB $46 C3/B764: 6447 STZ $47 C3/B766: 2086B8 JSR $B886 C3/B769: 208FB8 JSR $B88F C3/B76C: 20FD0E JSR $0EFD C3/B76F: 204EB9 JSR $B94E C3/B772: 206813 JSR $1368 (trigger NMI) C3/B775: 20390F JSR $0F39 C3/B778: 205AB9 JSR $B95A C3/B77B: A026C3 LDY #$C326 C3/B77E: 20F902 JSR $02F9 ("BUY SELL EXIT") C3/B781: A06FC3 LDY #$C36F C3/B784: 20F902 JSR $02F9 ("Hi! Can I help you?") C3/B787: A400 LDY $00 C3/B789: 8439 STY $39 C3/B78B: 843B STY $3B C3/B78D: A925 LDA #$25 C3/B78F: 8526 STA $26 C3/B791: 60 RTS
C3/B792 code and table jump
C3/B792: 7B TDC C3/B793: A54B LDA $4B C3/B795: 0A ASL A C3/B796: AA TAX C3/B797: 7C9AB7 JMP ($B79A,X) C3/B79A: A3B7 C3/B79C: C7B7 C3/B79E: A0B7
C3/B7A0 unknow
C3/B7A0: 4CB3B4 JMP $B4B3
C3/B7A3 unknow
C3/B7A3: 20A0B8 JSR $B8A0 C3/B7A6: 20A9B8 JSR $B8A9 C3/B7A9: A908 LDA #$08 C3/B7AB: 1447 TRB $47 C3/B7AD: 209AC0 JSR $C09A C3/B7B0: 203BC2 JSR $C23B C3/B7B3: A00001 LDY #$0100 C3/B7B6: 8439 STY $39 C3/B7B8: A400 LDY $00 C3/B7BA: 843B STY $3B C3/B7BC: 2086B9 JSR $B986 C3/B7BF: 20FDBC JSR $BCFD C3/B7C2: A926 LDA #$26 C3/B7C4: 8526 STA $26 C3/B7C6: 60 RTS
C3/B7C7 unknow
C3/B7C7: 20390F JSR $0F39 C3/B7CA: 20E0BB JSR $BBE0 C3/B7CD: 8003 BRA $B7D2 C3/B7CF: 2002BC JSR $BC02 C3/B7D2: 205AB9 JSR $B95A C3/B7D5: A026C3 LDY #$C326 C3/B7D8: 20F902 JSR $02F9 (display "BUY SELL EXIT") C3/B7DB: A0A2C3 LDY #$C3A2 C3/B7DE: 20F902 JSR $02F9 (display "Whatcha got?") C3/B7E1: A929 LDA #$29 C3/B7E3: 8526 STA $26 C3/B7E5: 60 RTS
C3/B7E6 unknow
C3/B7E6: 20C2BF JSR $BFC2 C3/B7E9: 202183 JSR $8321 (Multiply A by 30) C3/B7EC: AE3421 LDX $2134 (Load X with the result) C3/B7EF: BF0050D8 LDA $D85000,X (Load item type X) C3/B7F3: 2907 AND #$07 C3/B7F5: D013 BNE $B80A (branch if not a "Tool") C3/B7F7: 2092BC JSR $BC92 C3/B7FA: A564 LDA $64 C3/B7FC: F00C BEQ $B80A (branch if you have none of this tool) C3/B7FE: 20C00E JSR $0EC0 (makes the buzzer sound) C3/B801: A0F5C3 LDY #$C3F5 C3/B804: 20F902 JSR $02F9 (display "One's plenty!") C3/B807: 4C7DB8 JMP $B87D (note that all this does is prevent you from buying more after you already have one...)
C3/B80A unknow
C3/B80A: AD6218 LDA $1862 C3/B80D: D02F BNE $B83E C3/B80F: 7B TDC C3/B810: A54B LDA $4B C3/B812: 0A ASL A C3/B813: AA TAX C3/B814: C220 REP #$20 (16 bit memory/accum.) C3/B816: BF099F7E LDA $7E9F09,X (Load the price that was stored to working RAM) C3/B81A: CD6018 CMP $1860 (Is it equal to the 2 lower gold bytes?) C3/B81D: E220 SEP #$20 (8 bit memory/accum.) C3/B81F: F01D BEQ $B83E (If so, branch -> ) C3/B821: 901B BCC $B83E (If it's less, branch anyway -> ) C3/B823: 20C00E JSR $0EC0 (Otherwise, it's more than you have -> buzzer sound for you) C3/B826: A0CEC3 LDY #$C3CE C3/B829: 20F902 JSR $02F9 (display "You need more GP!") C3/B82C: 4C7DB8 JMP $B87D
C3/B82F unknow
C3/B82F: A564 LDA $64 C3/B831: 18 CLC C3/B832: 6565 ADC $65 C3/B834: 8569 STA $69 C3/B836: A963 LDA #$63 C3/B838: 38 SEC C3/B839: E569 SBC $69 C3/B83B: 856A STA $6A C3/B83D: 60 RTS
C3/B83E unknow
C3/B83E: A569 LDA $69 C3/B840: C963 CMP #$63 C3/B842: 900C BCC $B850 (branch if less than 99 of item) C3/B844: 20C00E JSR $0EC0 (makes the buzzer sound) C3/B847: A0E2C3 LDY #$C3E2 C3/B84A: 20F902 JSR $02F9 (display "Too many!") C3/B84D: 4C7DB8 JMP $B87D
C3/B850 unknow
C3/B850: 20B20E JSR $0EB2 (makes the click sound) C3/B853: A20800 LDX #$0008 C3/B856: 8655 STX $55 C3/B858: A23400 LDX #$0034 C3/B85B: 8657 STX $57 C3/B85D: A927 LDA #$27 C3/B85F: 8526 STA $26 C3/B861: 20A5BA JSR $BAA5 C3/B864: 20BABA JSR $BABA C3/B867: A096C3 LDY #$C396 C3/B86A: 20F902 JSR $02F9 (display "How many?") C3/B86D: A00001 LDY #$0100 C3/B870: 843B STY $3B C3/B872: A400 LDY $00 C3/B874: 8439 STY $39 C3/B876: 2096A7 JSR $A796 C3/B879: 20F4A6 JSR $A6F4 C3/B87C: 60 RTS
C3/B87D unknow
C3/B87D: A928 LDA #$28 C3/B87F: 8526 STA $26 C3/B881: A920 LDA #$20 C3/B883: 8520 STA $20 C3/B885: 60 RTS
C3/B886 unknow
C3/B886: A095B8 LDY #$B895 C3/B889: 4CFE05 JMP $05FE
C3/B88C unknow
C3/B88C: 202D07 JSR $072D C3/B88F: A09AB8 LDY #$B89A C3/B892: 4C4006 JMP $0640
C3/B895 data: hot spot for shops
C3/B895: 01 00 00 03 01
C3/B89A data: finger positions
Finger positioning data for shops C3/B89A: 0834 C3/B89C: 3034 C3/B89E: 6034
C3/B8A0 unknow
C3/B8A0: A0AFB8 LDY #$B8AF C3/B8A3: 4CFE05 JMP $05FE
C3/B8A6 unknow
C3/B8A6: 202D07 JSR $072D C3/B8A9: A0B4B8 LDY #$B8B4 C3/B8AC: 4C4006 JMP $0640
C3/B8AF data: hot spots for buying
C3/B8AF: 80 00 00 01 08
C3/B8B4 data: finger positions for buying
C3/B8B4: 0034 C3/B8B6: 0040 C3/B8B8: 004C C3/B8BA: 0058 C3/B8BC: 0064 C3/B8BE: 0070 C3/B8C0: 007C C3/B8C2: 0088
C3/B8C4 unknow
C3/B8C4: 20286A JSR $6A28 C3/B8C7: 202D6A JSR $6A2D C3/B8CA: 20326A JSR $6A32 C3/B8CD: A01BBC LDY #$BC1B ;Title window in shop/sell menu C3/B8D0: 204103 JSR $0341 C3/B8D3: A01FBC LDY #$BC1F ;Window behind "Hi! Can I help you?" text in shop C3/B8D6: 204103 JSR $0341 C3/B8D9: A023BC LDY #$BC23 ;Buy Sell Exit window in shop C3/B8DC: 204103 JSR $0341 C3/B8DF: A027BC LDY #$BC27 ;Window behind gil in shop C3/B8E2: 204103 JSR $0341 C3/B8E5: A02BBC LDY #$BC2B ;Empty window at the bottom of shop/item list while selling C3/B8E8: 204103 JSR $0341 C3/B8EB: A02FBC LDY #$BC2F ;Title window in buy menu C3/B8EE: 204103 JSR $0341 C3/B8F1: A033BC LDY #$BC33 ;Window behind "Help yourself!" text in buy menu C3/B8F4: 204103 JSR $0341 C3/B8F7: A03BBC LDY #$BC3B ;Window behind characters in buy menu C3/B8FA: 204103 JSR $0341 C3/B8FD: A037BC LDY #$BC37 ;Window behind item list in buy menu C3/B900: 204103 JSR $0341 C3/B903: A03FBC LDY #$BC3F ;Title window while buying/selling item C3/B906: 204103 JSR $0341 C3/B909: A053BC LDY #$BC53 ;Gil Owned Equipped window while buying/selling item C3/B90C: 204103 JSR $0341 C3/B90F: A04BBC LDY #$BC4B ;Window behind description while buying/selling item C3/B912: 204103 JSR $0341 C3/B915: A043BC LDY #$BC43 ;Window behind "How many?" while buying/selling item C3/B918: 204103 JSR $0341 C3/B91B: A04FBC LDY #$BC4F ;Window behind characters while buying/selling item C3/B91E: 204103 JSR $0341 C3/B921: A047BC LDY #$BC47 ;Window behind item being bought/sold in shop C3/B924: 204103 JSR $0341 C3/B927: 20520E JSR $0E52 C3/B92A: 20600E JSR $0E60 C3/B92D: 204EB9 JSR $B94E C3/B930: 20280E JSR $0E28 C3/B933: 20440E JSR $0E44 C3/B936: 205AB9 JSR $B95A C3/B939: A026C3 LDY #$C326 C3/B93C: 20F902 JSR $02F9 (display "BUY SELL EXIT") C3/B93F: A06FC3 LDY #$C36F C3/B942: 20F902 JSR $02F9 (display "Hi! Can I help you?") C3/B945: 20991B JSR $1B99 C3/B948: 206E0E JSR $0E6E C3/B94B: 4C7C0E JMP $0E7C
C3/B94E unknow
C3/B94E: 20156A JSR $6A15 C3/B951: 20196A JSR $6A19 C3/B954: 201E6A JSR $6A1E C3/B957: 4C236A JMP $6A23
C3/B95A unknow
C3/B95A: 203C6A JSR $6A3C C3/B95D: 20416A JSR $6A41 C3/B960: 20466A JSR $6A46 C3/B963: 20D3BF JSR $BFD3 C3/B966: 20F7C2 JSR $C2F7 C3/B969: A038C3 LDY #$C338 C3/B96C: 20F902 JSR $02F9 (display "GP") C3/B96F: 20F2C2 JSR $C2F2 C3/B972: AC6018 LDY $1860 C3/B975: 84F1 STY $F1 C3/B977: AD6218 LDA $1862 C3/B97A: 85F3 STA $F3 C3/B97C: 208205 JSR $0582 C3/B97F: A2337A LDX #$7A33 C3/B982: 20AC04 JSR $04AC C3/B985: 60 RTS
C3/B986 unknow
C3/B986: 205AB9 JSR $B95A C3/B989: A085C3 LDY #$C385 C3/B98C: 20F902 JSR $02F9 (display "Help yourself!") C3/B98F: 20E1C2 JSR $C2E1 (display "Owned:" and "Equipped:") C3/B992: A400 LDY $00 C3/B994: 84F1 STY $F1 C3/B996: 64E6 STZ $E6 C3/B998: C220 REP #$20 (16 bit memory/accum.) C3/B99A: A5F1 LDA $F1 C3/B99C: 0A ASL A C3/B99D: AA TAX C3/B99E: BFFCB9C3 LDA $C3B9FC,X C3/B9A2: 8F899E7E STA $7E9E89 C3/B9A6: A5F1 LDA $F1 C3/B9A8: 18 CLC C3/B9A9: 6567 ADC $67 C3/B9AB: 1A INC A C3/B9AC: AA TAX C3/B9AD: E220 SEP #$20 (8 bit memory/accum.) C3/B9AF: BFC07AC4 LDA $C47AC0,X C3/B9B3: A6F1 LDX $F1 C3/B9B5: 9F899D7E STA $7E9D89,X C3/B9B9: C9FF CMP #$FF C3/B9BB: F027 BEQ $B9E4 C3/B9BD: 2068C0 JSR $C068 (write the item name) C3/B9C0: 20D97F JSR $7FD9 (write text written to $2180) C3/B9C3: A6F1 LDX $F1 C3/B9C5: BF899D7E LDA $7E9D89,X C3/B9C9: 202183 JSR $8321 (Multiply the index by 30) C3/B9CC: 200CBA JSR $BA0C C3/B9CF: 202E05 JSR $052E C3/B9D2: C220 REP #$20 (16 bit memory/accum.) C3/B9D4: AF899E7E LDA $7E9E89 C3/B9D8: 18 CLC C3/B9D9: 691A00 ADC #$001A C3/B9DC: AA TAX C3/B9DD: E220 SEP #$20 (8 bit memory/accum.) C3/B9DF: 209A04 JSR $049A (write GP cost) C3/B9E2: E6E6 INC $E6 C3/B9E4: A4F1 LDY $F1 C3/B9E6: C8 INY C3/B9E7: 84F1 STY $F1 C3/B9E9: C00800 CPY #$0008 (have we done 8 items?) C3/B9EC: D0AA BNE $B998 (branch if not) C3/B9EE: A5E6 LDA $E6 C3/B9F0: 8554 STA $54 C3/B9F2: 2057BC JSR $BC57 C3/B9F5: 2084BC JSR $BC84 C3/B9F8: 20A8BC JSR $BCA8 C3/B9FB: 60 RTS
C3/B9FC data
C3/B9FC: 0D7A (position of item 1) C3/B9FE: 8D7A (position of item 2) C3/BA00: 0D7B (position of item 3) C3/BA02: 8D7B (position of item 4) C3/BA04: 0D7C (position of item 5) C3/BA06: 8D7C (position of item 6) C3/BA08: 0D7D (position of item 7) C3/BA0A: 8D7D (position of item 8)
C3/BA0C unknow
C3/BA0C: C220 REP #$20 C3/BA0E: AD3421 LDA $2134 C3/BA11: 18 CLC C3/BA12: 691C00 ADC #$001C C3/BA15: AA TAX C3/BA16: BF0050D8 LDA $D85000,X (Load item type X) C3/BA1A: 202CBA JSR $BA2C C3/BA1D: 85F3 STA $F3 C3/BA1F: A5F1 LDA $F1 C3/BA21: 0A ASL A C3/BA22: AA TAX C3/BA23: A5F3 LDA $F3 C3/BA25: 9F099F7E STA $7E9F09,X C3/BA29: E220 SEP #$20 (8 bit memory/accum.) C3/BA2B: 60 RTS
C3/BA2C modify shop costs
Modify shop costs, depending on Shop's Cost Modifier and/or leader of party C3/BA2C: 48 PHA C3/BA2D: A667 LDX $67 C3/BA2F: 7B TDC C3/BA30: E220 SEP #$20 (8 bit memory/accum.) C3/BA32: BFC07AC4 LDA $C47AC0,X (Shop modifcation byte) C3/BA36: 2938 AND #$38 (only uses bits 3, 4, and 5) C3/BA38: C220 REP #$20 (16 bit memory/accum.) C3/BA3A: 4A LSR A C3/BA3B: 4A LSR A C3/BA3C: AA TAX C3/BA3D: 68 PLA C3/BA3E: 7C41BA JMP ($BA41,X)
C3/BA41 pointers: shop costs modifications
C3/BA41: 55BA (1.0x cost) C3/BA43: 4FBA (1.5x cost) C3/BA45: 56BA (2.0x cost) C3/BA47: 58BA (0.5x cost) C3/BA49: 5ABA (0.5x cost if female leads, 1.5x otherwise) C3/BA4B: 76BA (0.5x cost if male leads, 1.5x otherwise) C3/BA4D: 92BA (0.5x cost if Edgar leads, 1.0x otherwise)
C3/BA4F unknow
C3/BA4F: 85E7 STA $E7 C3/BA51: 4A LSR A C3/BA52: 18 CLC C3/BA53: 65E7 ADC $E7 C3/BA55: 60 RTS
C3/BA56 unknow
C3/BA56: 0A ASL A C3/BA57: 60 RTS
C3/BA58 unknow
C3/BA58: 4A LSR A C3/BA59: 60 RTS
C3/BA5A unknow
C3/BA5A: 48 PHA C3/BA5B: E220 SEP #$20 (8 bit memory/accum.) C3/BA5D: AD0202 LDA $0202 (party leader) C3/BA60: C906 CMP #$06 (is it Celes?) C3/BA62: F00D BEQ $BA71 (branch if so, cut cost in half) C3/BA64: C908 CMP #$08 (is it Relm?) C3/BA66: F009 BEQ $BA71 (branch if so, cut cost in half) C3/BA68: C900 CMP #$00 (is it Terra?) C3/BA6A: F005 BEQ $BA71 (branch if so, cut cost in half) C3/BA6C: C220 REP #$20 (16 bit memory/accum.) C3/BA6E: 68 PLA C3/BA6F: 80DE BRA $BA4F (cost is 1.5x) C3/BA71: C220 REP #$20 (16 bit memory/accum.) C3/BA73: 68 PLA C3/BA74: 80E2 BRA $BA58 (cost is 0.5x) C3/BA76: 48 PHA C3/BA77: E220 SEP #$20 (8 bit memory/accum.) C3/BA79: AD0202 LDA $0202 (party leader) C3/BA7C: C906 CMP #$06 (is it Celes?) C3/BA7E: F00D BEQ $BA8D (branch if so, make cost half again) C3/BA80: C908 CMP #$08 (is it Relm?) C3/BA82: F009 BEQ $BA8D (branch if so, make cost half again) C3/BA84: C900 CMP #$00 (is it Terra?) C3/BA86: F005 BEQ $BA8D (branch if so, make cost half again) C3/BA88: C220 REP #$20 (16 bit memory/accum.) C3/BA8A: 68 PLA C3/BA8B: 80CB BRA $BA58 (cost is 0.5x) C3/BA8D: C220 REP #$20 (16 bit memory/accum.) C3/BA8F: 68 PLA C3/BA90: 80BD BRA $BA4F (cost is 1.5x) C3/BA92: 48 PHA C3/BA93: E220 SEP #$20 (8 bit memory/accum.) C3/BA95: AD0202 LDA $0202 (party leader) C3/BA98: C904 CMP #$04 (is it Edgar?) C3/BA9A: F004 BEQ $BAA0 C3/BA9C: C220 REP #$20 (16 bit memory/accum.) C3/BA9E: 68 PLA C3/BA9F: 60 RTS
C3/BAA0 unknow
C3/BAA0: C220 REP #$20 (16 bit memory/accum.) C3/BAA2: 68 PLA C3/BAA3: 80B3 BRA $BA58 (cost is 0.5x)
C3/BAA5 unknow
C3/BAA5: 20390F JSR $0F39 C3/BAA8: 205AB9 JSR $B95A C3/BAAB: 20E1C2 JSR $C2E1 (display "Owned:" and "Equipped:") C3/BAAE: C220 REP #$20 (16 bit memory/accum.) C3/BAB0: A90F7A LDA #$7A0F (position of item aftering confirming wanting to buy) C3/BAB3: 8F899E7E STA $7E9E89 C3/BAB7: E220 SEP #$20 (8 bit memory/accum.) C3/BAB9: 60 RTS
C3/BABA unknow
C3/BABA: 20ECBA JSR $BAEC C3/BABD: 2084BC JSR $BC84 C3/BAC0: 20A8BC JSR $BCA8 C3/BAC3: 20C2BF JSR $BFC2 C3/BAC6: 2068C0 JSR $C068 (write item name) C3/BAC9: 20D97F JSR $7FD9 C3/BACC: A901 LDA #$01 C3/BACE: 8528 STA $28 C3/BAD0: 4CAEBB JMP $BBAE
C3/BAD3 unknow
C3/BAD3: 209DBC JSR $BC9D C3/BAD6: 2066BF JSR $BF66 C3/BAD9: 20F2BA JSR $BAF2 C3/BADC: 20CBBF JSR $BFCB C3/BADF: 2068C0 JSR $C068 (write item name) C3/BAE2: 20D97F JSR $7FD9 C3/BAE5: A901 LDA #$01 C3/BAE7: 8528 STA $28 C3/BAE9: 4CB7BB JMP $BBB7
C3/BAEC unknow
C3/BAEC: 20C2BF JSR $BFC2 C3/BAEF: 4CF8BA JMP $BAF8 (BRA is better)
C3/BAF2 unknow
C3/BAF2: 20CBBF JSR $BFCB C3/BAF5: 4CF8BA JMP $BAF8 (why?)
C3/BAF8 unknow
C3/BAF8: 202183 JSR $8321 (Multiply A by 30) C3/BAFB: AE3421 LDX $2134 (Load X with the result) C3/BAFE: BF0050D8 LDA $D85000,X (Load item type X) C3/BB02: 2907 AND #$07 (Zero out upper nibble) C3/BB04: F04C BEQ $BB52 (If it's a tool [item type 0], branch and exit) C3/BB06: C906 CMP #$06 (Is it an "item" item?) C3/BB08: F048 BEQ $BB52 (If it is, branch and exit) C3/BB0A: C901 CMP #$01 (Is it a weapon?) C3/BB0C: F022 BEQ $BB30 (If it is, branch ) C3/BB0E: 20F2C2 JSR $C2F2 (set text color to white) C3/BB11: BF1450D8 LDA $D85014,X (Load def. pwr) C3/BB15: 20E004 JSR $04E0 C3/BB18: A2A97B LDX #$7BA9 (position of defense value) C3/BB1B: 20C004 JSR $04C0 C3/BB1E: 20F7C2 JSR $C2F7 (set text color to blue) C3/BB21: A061C3 LDY #$C361 C3/BB24: 20F902 JSR $02F9 ("Defense") C3/BB27: A06BC3 LDY #$C36B C3/BB2A: 20F902 JSR $02F9 ("...") C3/BB2D: 4CF2C2 JMP $C2F2 (set text color to white)
C3/BB30 unknow
C3/BB30: 20F2C2 JSR $C2F2 (set text color to white) C3/BB33: BF1450D8 LDA $D85014,X (Load attack pwr) C3/BB37: 20E004 JSR $04E0 C3/BB3A: A2A97B LDX #$7BA9 (position of attack's value) C3/BB3D: 20C004 JSR $04C0 C3/BB40: 20F7C2 JSR $C2F7 (set text color white) C3/BB43: A057C3 LDY #$C357 C3/BB46: 20F902 JSR $02F9 ("Bat Pwr") C3/BB49: A06BC3 LDY #$C36B C3/BB4C: 20F902 JSR $02F9 ("...") C3/BB4F: 20F2C2 JSR $C2F2 (set text color to white) C3/BB52: 60 RTS
C3/BB53 unknow
C3/BB53: 7B TDC C3/BB54: A54B LDA $4B C3/BB56: 0A ASL A C3/BB57: AA TAX C3/BB58: C220 REP #$20 (16 bit memory/accum.) C3/BB5A: BF099F7E LDA $7E9F09,X (Load the price from working RAM) C3/BB5E: 85F1 STA $F1 (Store to $F1) C3/BB60: E220 SEP #$20 (8 bit memory/accum.) C3/BB62: 4C81BB JMP $BB81 (BRA would work here)
C3/BB65 unknow
C3/BB65: 20CBBF JSR $BFCB C3/BB68: 202183 JSR $8321 (Multiply A by 30) C3/BB6B: C220 REP #$20 (16 bit memory/accum.) C3/BB6D: AD3421 LDA $2134 (Load X with the result) C3/BB70: 18 CLC C3/BB71: 691C00 ADC #$001C C3/BB74: AA TAX C3/BB75: BF0050D8 LDA $D85000,X (With above, this loads the price) C3/BB79: 4A LSR A (Divide by 2) C3/BB7A: 85F1 STA $F1 (Store the result in $F1) C3/BB7C: E220 SEP #$20 (8 bit memory/accum.) C3/BB7E: 4C81BB JMP $BB81 (why?)
C3/BB81 multiplier function
(16-bit $F1 * 8-bit $28 -> 24-bit $ED) C3/BB81: A5F1 LDA $F1 C3/BB83: 8D0242 STA $4202 C3/BB86: A528 LDA $28 C3/BB88: 8D0342 STA $4203 C3/BB8B: 64EF STZ $EF C3/BB8D: EA NOP C3/BB8E: EA NOP C3/BB8F: AE1642 LDX $4216 C3/BB92: 86ED STX $ED C3/BB94: A5F2 LDA $F2 C3/BB96: 8D0242 STA $4202 C3/BB99: A528 LDA $28 C3/BB9B: 8D0342 STA $4203 C3/BB9E: C221 REP #$21 (16 bit memory/accum. and clear carry) C3/BBA0: A5EE LDA $EE C3/BBA2: 6D1642 ADC $4216 C3/BBA5: 85F2 STA $F2 C3/BBA7: E220 SEP #$20 (8 bit memory/accum.) C3/BBA9: A5ED LDA $ED C3/BBAB: 85F1 STA $F1 C3/BBAD: 60 RTS
C3/BBAE unknow
C3/BBAE: 20C0BB JSR $BBC0 (display "GP" and number to buy) C3/BBB1: 2053BB JSR $BB53 C3/BBB4: 4CD7BB JMP $BBD7
C3/BBB7 unknow
C3/BBB7: 20C0BB JSR $BBC0 (display "GP" and number to sell) C3/BBBA: 2065BB JSR $BB65 C3/BBBD: 4CD7BB JMP $BBD7
C3/BBC0 unknow
C3/BBC0: 20F7C2 JSR $C2F7 (set text color blue) C3/BBC3: A03DC3 LDY #$C33D C3/BBC6: 20F902 JSR $02F9 ("GP") C3/BBC9: 20F2C2 JSR $C2F2 (set text color to white) C3/BBCC: A528 LDA $28 C3/BBCE: 20E004 JSR $04E0 C3/BBD1: A22B7A LDX #$7A2B (position of how many to buy/sell) C3/BBD4: 4CB604 JMP $04B6
C3/BBD7 unknow
C3/BBD7: 208205 JSR $0582 C3/BBDA: A2A17A LDX #$7AA1 (position of price of how many at x cost) C3/BBDD: 4CAC04 JMP $04AC (write price of how many at x cost)
C3/BBE0 unknow
C3/BBE0: A901 LDA #$01 C3/BBE2: 8D0721 STA $2107 C3/BBE5: A9F5 LDA #$F5 C3/BBE7: 855C STA $5C C3/BBE9: A90A LDA #$0A C3/BBEB: 855A STA $5A C3/BBED: A901 LDA #$01 C3/BBEF: 855B STA $5B C3/BBF1: 201C7D JSR $7D1C C3/BBF4: A44D LDY $4D C3/BBF6: 844F STY $4F C3/BBF8: A54A LDA $4A C3/BBFA: 18 CLC C3/BBFB: 6550 ADC $50 C3/BBFD: 8550 STA $50 C3/BBFF: 20257D JSR $7D25 C3/BC02: 200D7E JSR $7E0D C3/BC05: 201F09 JSR $091F (set arrow's initial position) C3/BC08: C220 REP #$20 (16 bit memory/accum.) C3/BC0A: A97000 LDA #$0070 C3/BC0D: 9F4A357E STA $7E354A,X C3/BC11: A95800 LDA #$0058 C3/BC14: 9FCA347E STA $7E34CA,X C3/BC18: E220 SEP #$20 (8 bit memory/accum.) C3/BC1A: 60 RTS
C3/BC1B unknow
C3/BC1B: 8B PHB C3/BC1C: 58 CLI C3/BC1D: 0702 ORA [$02] C3/BC1F: 9D5813 STA $1358,X C3/BC22: 028B COP #$8B C3/BC24: 591002 EOR $0210,Y C3/BC27: AF590A02 LDA $020A59 C3/BC2B: 8B PHB C3/BC2C: 5A PHY C3/BC2D: 1C108B TRB $8B10 C3/BC30: 60 RTS
C3/BC31 unknow
C3/BC31: 0702 ORA [$02] C3/BC33: 9D6013 STA $1360,X C3/BC36: 028B COP #$8B C3/BC38: 611C ADC ($1C,X) C3/BC3A: 0C0B65 TSB $650B C3/BC3D: 1C068B TRB $8B06 C3/BC40: 68 PLA C3/BC41: 0702 ORA [$02] C3/BC43: 9D6813 STA $1368,X C3/BC46: 028B COP #$8B C3/BC48: 6911 ADC #$11 C3/BC4A: 07CB ORA [$CB] C3/BC4C: 6B RTL
C3/BC4D unknow
C3/BC4D: 1C030B TRB $0B03 C3/BC50: 6D1C06 ADC $061C C3/BC53: B169 LDA ($69),Y C3/BC55: 0907 ORA #$07
C3/BC57 unknow
C3/BC57: A2C99D LDX #$9DC9 C3/BC5A: 8E8121 STX $2181 C3/BC5D: 7B TDC C3/BC5E: AA TAX C3/BC5F: DA PHX C3/BC60: A400 LDY $00 C3/BC62: BF899D7E LDA $7E9D89,X C3/BC66: D96918 CMP $1869,Y (Items currently in inventory) C3/BC69: F00B BEQ $BC76 C3/BC6B: C8 INY C3/BC6C: C00001 CPY #$0100 C3/BC6F: D0F5 BNE $BC66 C3/BC71: 9C8021 STZ $2180 (end this string) C3/BC74: 8006 BRA $BC7C C3/BC76: B96919 LDA $1969,Y (Quantity of items) C3/BC79: 8D8021 STA $2180 C3/BC7C: FA PLX C3/BC7D: E8 INX C3/BC7E: E00800 CPX #$0008 C3/BC81: D0DC BNE $BC5F C3/BC83: 60 RTS
C3/BC84 unknow
C3/BC84: 2092BC JSR $BC92 C3/BC87: A564 LDA $64 C3/BC89: 20E004 JSR $04E0 C3/BC8C: A23F7B LDX #$7B3F (position of number owned) C3/BC8F: 4CB604 JMP $04B6 (write number owned)
C3/BC92 unknow
C3/BC92: 7B TDC C3/BC93: A54B LDA $4B C3/BC95: AA TAX C3/BC96: BFC99D7E LDA $7E9DC9,X C3/BC9A: 8564 STA $64 C3/BC9C: 60 RTS
C3/BC9D unknow
C3/BC9D: 7B TDC C3/BC9E: A54B LDA $4B C3/BCA0: A8 TAY C3/BCA1: B96919 LDA $1969,Y (Quantity of items) C3/BCA4: 8564 STA $64 C3/BCA6: 80DF BRA $BC87
C3/BCA8 unknow
C3/BCA8: 20C2BF JSR $BFC2 C3/BCAB: 4C69BF JMP $BF69
C3/BCAE unknow
C3/BCAE: 20C9BC JSR $BCC9 C3/BCB1: 9014 BCC $BCC7 C3/BCB3: 7B TDC C3/BCB4: A54B LDA $4B C3/BCB6: C220 REP #$20 (16 bit memory/accum.) C3/BCB8: 0A ASL A C3/BCB9: 0A ASL A C3/BCBA: 0A ASL A C3/BCBB: 0A ASL A C3/BCBC: E220 SEP #$20 (8 bit memory/accum.) C3/BCBE: 18 CLC C3/BCBF: 65E0 ADC $E0 C3/BCC1: AA TAX C3/BCC2: BF8DAA7E LDA $7EAA8D,X (Load inventory location X) C3/BCC6: 60 RTS
C3/BCC7 unknow
C3/BCC7: 7B TDC C3/BCC8: 60 RTS
C3/BCC9 unknow
C3/BCC9: 8B PHB C3/BCCA: A900 LDA #$00 C3/BCCC: 48 PHA C3/BCCD: AB PLB C3/BCCE: 7B TDC C3/BCCF: 8DD811 STA $11D8 C3/BCD2: 7B TDC C3/BCD3: A5E0 LDA $E0 C3/BCD5: AA TAX C3/BCD6: BF099E7E LDA $7E9E09,X C3/BCDA: 20489C JSR $9C48 C3/BCDD: 7B TDC C3/BCDE: A54B LDA $4B C3/BCE0: AA TAX C3/BCE1: BF899D7E LDA $7E9D89,X C3/BCE5: 202183 JSR $8321 (Multiply A by 30) C3/BCE8: AE3421 LDX $2134 (Load X with the result) C3/BCEB: C220 REP #$20 (16 bit memory/accum.) C3/BCED: BF0150D8 LDA $D85001,X (Load equippable chars) C3/BCF1: 25E7 AND $E7 C3/BCF3: E220 SEP #$20 (8 bit memory/accum.) C3/BCF5: F003 BEQ $BCFA C3/BCF7: AB PLB C3/BCF8: 38 SEC C3/BCF9: 60 RTS C3/BCFA: AB PLB C3/BCFB: 18 CLC C3/BCFC: 60 RTS
C3/BCFD unknow
C3/BCFD: 204FBF JSR $BF4F C3/BD00: A08DAA LDY #$AA8D C3/BD03: 84F3 STY $F3 (this seems pointless, why not just store it directly?) C3/BD05: 7B TDC C3/BD06: AA TAX C3/BD07: A4F3 LDY $F3 C3/BD09: 8C8121 STY $2181 C3/BD0C: DA PHX C3/BD0D: BF899D7E LDA $7E9D89,X (Load index X out of RAM) C3/BD11: 859F STA $9F (Store it in $9F) C3/BD13: 202183 JSR $8321 (Multiply A by 30) C3/BD16: AE3421 LDX $2134 (Load X with the result) C3/BD19: BF1450D8 LDA $D85014,X (Load attack pwr./battle pwr./def. pwr etc) C3/BD1D: 859E STA $9E (Store it in $9E) C3/BD1F: BF0050D8 LDA $D85000,X (Load item type) C3/BD23: 2907 AND #$07 (Zero out upper nibble) C3/BD25: C901 CMP #$01 (Is it a weapon [type 1]?) C3/BD27: F07C BEQ $BDA5 (If so, branch -> go to weapon handler) C3/BD29: C902 CMP #$02 (Is it an armor [type 2]?) C3/BD2B: F018 BEQ $BD45 (If so, branch -> go to armor handler) C3/BD2D: C903 CMP #$03 (Is it a shield [type 3]?) C3/BD2F: F00E BEQ $BD3F (If so, branch -> go to shield handler) C3/BD31: C904 CMP #$04 (Is it a hat [type 4]?) C3/BD33: F00D BEQ $BD42 (If so, branch -> go to hat handler) C3/BD35: C905 CMP #$05 (Is it a relic [type 5]?) C3/BD37: F003 BEQ $BD3C (If so, branch -> go to relic handler) C3/BD39: 4C0ABF JMP $BF0A (Otherwise, it must be an "item" item or tool, go to $BF0A to handle it) C3/BD3C: 4C18BF JMP $BF18 (Go to relic handler at $BF18) C3/BD3F: 4C35BE JMP $BE35 (Go to shield handler at $BE35) C3/BD42: 4CBDBE JMP $BEBD (Go to hat handler at $BEBD)
C3/BD45 armor handler
Armor Handler (begrudgingly) C3/BD45: 7B TDC C3/BD46: AA TAX C3/BD47: DA PHX C3/BD48: C220 REP #$20 (16 bit memory/accum.) C3/BD4A: ADDC1E LDA $1EDC C3/BD4D: 3F679CC3 AND $C39C67,X C3/BD51: F034 BEQ $BD87 C3/BD53: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/BD57: A8 TAY C3/BD58: E220 SEP #$20 (8 bit memory/accum.) C3/BD5A: 7B TDC C3/BD5B: B92200 LDA $0022,Y C3/BD5E: C59F CMP $9F C3/BD60: F01C BEQ $BD7E C3/BD62: C9FF CMP #$FF C3/BD64: F010 BEQ $BD76 C3/BD66: 202183 JSR $8321 (Multiply A by 30) C3/BD69: AE3421 LDX $2134 (Put the result in X) C3/BD6C: BF1450D8 LDA $D85014,X (Load attack pwr./battle pwr./def. pwr etc) C3/BD70: C59E CMP $9E C3/BD72: F00E BEQ $BD82 C3/BD74: B004 BCS $BD7A C3/BD76: A902 LDA #$02 C3/BD78: 800A BRA $BD84 C3/BD7A: A903 LDA #$03 C3/BD7C: 8006 BRA $BD84 C3/BD7E: A901 LDA #$01 C3/BD80: 8002 BRA $BD84 C3/BD82: A904 LDA #$04 C3/BD84: 8D8021 STA $2180 C3/BD87: FA PLX C3/BD88: E8 INX C3/BD89: E8 INX C3/BD8A: E02000 CPX #$0020 (have we checked 32 armors yet?) C3/BD8D: D0B8 BNE $BD47 C3/BD8F: C221 REP #$21 C3/BD91: A5F3 LDA $F3 C3/BD93: 691000 ADC #$0010 C3/BD96: 85F3 STA $F3 C3/BD98: E220 SEP #$20 (8 bit memory/accum.) C3/BD9A: FA PLX C3/BD9B: E8 INX C3/BD9C: E00800 CPX #$0008 C3/BD9F: D001 BNE $BDA2 C3/BDA1: 60 RTS C3/BDA2: 4C07BD JMP $BD07
C3/BDA5 weapon handler
Weapon Handler (grrr) C3/BDA5: 7B TDC C3/BDA6: AA TAX C3/BDA7: DA PHX C3/BDA8: C220 REP #$20 (16 bit memory/accum.) C3/BDAA: ADDC1E LDA $1EDC C3/BDAD: 3F679CC3 AND $C39C67,X C3/BDB1: F074 BEQ $BE27 C3/BDB3: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/BDB7: A8 TAY C3/BDB8: E220 SEP #$20 (8 bit memory/accum.) C3/BDBA: B91F00 LDA $001F,Y C3/BDBD: C59F CMP $9F C3/BDBF: F05D BEQ $BE1E C3/BDC1: B92000 LDA $0020,Y C3/BDC4: C59F CMP $9F C3/BDC6: F056 BEQ $BE1E C3/BDC8: 7B TDC C3/BDC9: B91F00 LDA $001F,Y C3/BDCC: C9FF CMP #$FF (Is it the "empty" item?) C3/BDCE: F010 BEQ $BDE0 C3/BDD0: 202183 JSR $8321 (Multiply A by 30) C3/BDD3: AE3421 LDX $2134 (Load X with the result) C3/BDD6: BF0050D8 LDA $D85000,X (Load item type X) C3/BDDA: 2907 AND #$07 (Zero out upper nibble) C3/BDDC: C901 CMP #$01 (Is it a weapon [type 1]?) C3/BDDE: F01E BEQ $BDFE (If so, branch -> ) C3/BDE0: 7B TDC (Otherwise, it should be an armor...Clear A) C3/BDE1: B92000 LDA $0020,Y C3/BDE4: C9FF CMP #$FF (Is it the "empty" item?) C3/BDE6: F02E BEQ $BE16 (If so, branch -> ) C3/BDE8: 202183 JSR $8321 (Multiply A by 30) C3/BDEB: AE3421 LDX $2134 (Load X with the result) C3/BDEE: BF0050D8 LDA $D85000,X (Load item X type) C3/BDF2: 2907 AND #$07 (Zero out upper nibble) C3/BDF4: C901 CMP #$01 (Is it a weapon [type 1]?) C3/BDF6: D006 BNE $BDFE (If not, branch -> ) C3/BDF8: 7B TDC C3/BDF9: B92000 LDA $0020,Y C3/BDFC: 8004 BRA $BE02 C3/BDFE: 7B TDC (Clear A) C3/BDFF: B91F00 LDA $001F,Y C3/BE02: C9FF CMP #$FF (Is it the "empty" item?) C3/BE04: F010 BEQ $BE16 C3/BE06: 202183 JSR $8321 (Multiply A by 30) C3/BE09: AE3421 LDX $2134 (Load X with the result) C3/BE0C: BF1450D8 LDA $D85014,X (Load attack pwr./battle pwr./def. pwr etc) C3/BE10: C59E CMP $9E C3/BE12: F00E BEQ $BE22 C3/BE14: B004 BCS $BE1A C3/BE16: A902 LDA #$02 C3/BE18: 800A BRA $BE24 C3/BE1A: A903 LDA #$03 C3/BE1C: 8006 BRA $BE24 C3/BE1E: A901 LDA #$01 C3/BE20: 8002 BRA $BE24 C3/BE22: A904 LDA #$04 C3/BE24: 8D8021 STA $2180 C3/BE27: FA PLX C3/BE28: E8 INX C3/BE29: E8 INX C3/BE2A: E02000 CPX #$0020 (have we checked 32 weapons yet? there's 90 in all...) C3/BE2D: D003 BNE $BE32 (branch if not) C3/BE2F: 4C8FBD JMP $BD8F C3/BE32: 4CA7BD JMP $BDA7
C3/BE35 shield handler
C3/BE35: 7B TDC C3/BE36: AA TAX C3/BE37: DA PHX C3/BE38: C220 REP #$20 (16 bit memory/accum.) C3/BE3A: ADDC1E LDA $1EDC C3/BE3D: 3F679CC3 AND $C39C67,X C3/BE41: F06C BEQ $BEAF C3/BE43: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/BE47: A8 TAY C3/BE48: E220 SEP #$20 (8 bit memory/accum.) C3/BE4A: B91F00 LDA $001F,Y C3/BE4D: C59F CMP $9F C3/BE4F: F055 BEQ $BEA6 C3/BE51: B92000 LDA $0020,Y C3/BE54: C59F CMP $9F C3/BE56: F04E BEQ $BEA6 C3/BE58: 7B TDC C3/BE59: B92000 LDA $0020,Y C3/BE5C: 202183 JSR $8321 (Multiply A by 30) C3/BE5F: AE3421 LDX $2134 (Load X with the result) C3/BE62: BF0050D8 LDA $D85000,X (Load item type) C3/BE66: 2907 AND #$07 (Zero out upper nibble) C3/BE68: C903 CMP #$03 (Is it a shield [type 3]?) C3/BE6A: F01A BEQ $BE86 C3/BE6C: 7B TDC C3/BE6D: B91F00 LDA $001F,Y C3/BE70: 202183 JSR $8321 (Multiply A by 30) C3/BE73: AE3421 LDX $2134 (Load X with the result) C3/BE76: BF0050D8 LDA $D85000,X (Load item type) C3/BE7A: 2907 AND #$07 (Zero out upper nibble) C3/BE7C: C903 CMP #$03 (Is it a shield [type 3]?) C3/BE7E: D01E BNE $BE9E C3/BE80: 7B TDC C3/BE81: B91F00 LDA $001F,Y C3/BE84: 8004 BRA $BE8A C3/BE86: 7B TDC C3/BE87: B92000 LDA $0020,Y C3/BE8A: C9FF CMP #$FF C3/BE8C: F010 BEQ $BE9E C3/BE8E: 202183 JSR $8321 (Multiply A by 30) C3/BE91: AE3421 LDX $2134 (Load X with the result) C3/BE94: BF1450D8 LDA $D85014,X (Load attack pwr./battle pwr./def. pwr etc) C3/BE98: C59E CMP $9E C3/BE9A: F00E BEQ $BEAA C3/BE9C: B004 BCS $BEA2 C3/BE9E: A902 LDA #$02 C3/BEA0: 800A BRA $BEAC C3/BEA2: A903 LDA #$03 C3/BEA4: 8006 BRA $BEAC C3/BEA6: A901 LDA #$01 C3/BEA8: 8002 BRA $BEAC C3/BEAA: A904 LDA #$04 C3/BEAC: 8D8021 STA $2180 C3/BEAF: FA PLX C3/BEB0: E8 INX C3/BEB1: E8 INX C3/BEB2: E02000 CPX #$0020 (have we checked 32 shields yet? there's 15 in all...) C3/BEB5: D003 BNE $BEBA C3/BEB7: 4C8FBD JMP $BD8F C3/BEBA: 4C37BE JMP $BE37
C3/BEBD hat handler
C3/BEBD: 7B TDC C3/BEBE: AA TAX C3/BEBF: DA PHX C3/BEC0: C220 REP #$20 (16 bit memory/accum.) C3/BEC2: ADDC1E LDA $1EDC C3/BEC5: 3F679CC3 AND $C39C67,X C3/BEC9: F034 BEQ $BEFF C3/BECB: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/BECF: A8 TAY C3/BED0: E220 SEP #$20 (8 bit memory/accum.) C3/BED2: 7B TDC C3/BED3: B92100 LDA $0021,Y C3/BED6: C59F CMP $9F C3/BED8: F01C BEQ $BEF6 C3/BEDA: C9FF CMP #$FF C3/BEDC: F010 BEQ $BEEE C3/BEDE: 202183 JSR $8321 (Multiply A by 30) C3/BEE1: AE3421 LDX $2134 (Load X with the result) C3/BEE4: BF1450D8 LDA $D85014,X (Load attack pwr./battle pwr./def. pwr etc) C3/BEE8: C59E CMP $9E C3/BEEA: F00E BEQ $BEFA C3/BEEC: B004 BCS $BEF2 C3/BEEE: A902 LDA #$02 C3/BEF0: 800A BRA $BEFC C3/BEF2: A903 LDA #$03 C3/BEF4: 8006 BRA $BEFC C3/BEF6: A901 LDA #$01 C3/BEF8: 8002 BRA $BEFC C3/BEFA: A904 LDA #$04 C3/BEFC: 8D8021 STA $2180 C3/BEFF: FA PLX C3/BF00: E8 INX C3/BF01: E8 INX C3/BF02: E02000 CPX #$0020 (have we checked 32 helmets yet? there's 27 in all...) C3/BF05: D0B8 BNE $BEBF C3/BF07: 4C8FBD JMP $BD8F
C3/BF0A unknow
C3/BF0A: 7B TDC C3/BF0B: AA TAX C3/BF0C: 8D8021 STA $2180 C3/BF0F: E8 INX C3/BF10: E01000 CPX #$0010 C3/BF13: D0F7 BNE $BF0C C3/BF15: 4C8FBD JMP $BD8F
C3/BF18 relic handler
Relic Handler (supposedly) C3/BF18: 7B TDC C3/BF19: AA TAX C3/BF1A: DA PHX C3/BF1B: C220 REP #$20 (16 bit memory/accum.) C3/BF1D: ADDC1E LDA $1EDC C3/BF20: 3F679CC3 AND $C39C67,X C3/BF24: F01E BEQ $BF44 C3/BF26: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/BF2A: A8 TAY C3/BF2B: E220 SEP #$20 (8 bit memory/accum.) C3/BF2D: 7B TDC C3/BF2E: B92300 LDA $0023,Y (relic slot 1) C3/BF31: C59F CMP $9F C3/BF33: F00A BEQ $BF3F C3/BF35: B92400 LDA $0024,Y (relic slot 2) C3/BF38: C59F CMP $9F C3/BF3A: F003 BEQ $BF3F C3/BF3C: 7B TDC C3/BF3D: 8002 BRA $BF41 C3/BF3F: A901 LDA #$01 C3/BF41: 8D8021 STA $2180 C3/BF44: FA PLX C3/BF45: E8 INX C3/BF46: E8 INX C3/BF47: E02000 CPX #$0020 C3/BF4A: D0CE BNE $BF1A C3/BF4C: 4C8FBD JMP $BD8F
C3/BF4F unknow
C3/BF4F: 8B PHB C3/BF50: A97E LDA #$7E C3/BF52: 48 PHA C3/BF53: AB PLB C3/BF54: 7B TDC C3/BF55: AA TAX C3/BF56: C220 REP #$20 (16 bit memory/accum.) C3/BF58: 9E8DAA STZ $AA8D,X C3/BF5B: E8 INX C3/BF5C: E8 INX C3/BF5D: E08000 CPX #$0080 C3/BF60: D0F6 BNE $BF58 C3/BF62: E220 SEP #$20 (8 bit memory/accum.) C3/BF64: AB PLB C3/BF65: 60 RTS
C3/BF66 unknow
C3/BF66: 20CBBF JSR $BFCB C3/BF69: 85E0 STA $E0 C3/BF6B: 6465 STZ $65 C3/BF6D: A21F16 LDX #$161F C3/BF70: 86E7 STX $E7 C3/BF72: A900 LDA #$00 C3/BF74: 85E9 STA $E9 C3/BF76: A600 LDX $00 C3/BF78: DA PHX C3/BF79: C220 REP #$20 (16 bit memory/accum.) C3/BF7B: 8A TXA C3/BF7C: 0A ASL A C3/BF7D: AA TAX C3/BF7E: ADDC1E LDA $1EDC C3/BF81: 3F679CC3 AND $C39C67,X C3/BF85: F01E BEQ $BFA5 C3/BF87: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/BF8B: AA TAX C3/BF8C: E220 SEP #$20 (8 bit memory/accum.) C3/BF8E: BD0000 LDA $0000,X C3/BF91: C90E CMP #$0E (Is it Leo or higher??) C3/BF93: B010 BCS $BFA5 C3/BF95: A400 LDY $00 C3/BF97: B7E7 LDA [$E7],Y C3/BF99: C5E0 CMP $E0 C3/BF9B: D002 BNE $BF9F C3/BF9D: E665 INC $65 C3/BF9F: C8 INY C3/BFA0: C00600 CPY #$0006 C3/BFA3: D0F2 BNE $BF97 C3/BFA5: C221 REP #$21 C3/BFA7: A92500 LDA #$0025 C3/BFAA: 65E7 ADC $E7 C3/BFAC: 85E7 STA $E7 C3/BFAE: E220 SEP #$20 (8 bit memory/accum.) C3/BFB0: FA PLX C3/BFB1: E8 INX C3/BFB2: E01000 CPX #$0010 C3/BFB5: D0C1 BNE $BF78 C3/BFB7: A565 LDA $65 C3/BFB9: 20E004 JSR $04E0 C3/BFBC: A23F7C LDX #$7C3F (position of number equipped) C3/BFBF: 4CB604 JMP $04B6 (display number equipped)
C3/BFC2 unknow
C3/BFC2: 7B TDC C3/BFC3: A54B LDA $4B C3/BFC5: AA TAX C3/BFC6: BF899D7E LDA $7E9D89,X (copy of inventory list) C3/BFCA: 60 RTS
C3/BFCB unknow
C3/BFCB: 7B TDC C3/BFCC: A54B LDA $4B C3/BFCE: A8 TAY C3/BFCF: B96918 LDA $1869,Y (Items currently in inventory) C3/BFD2: 60 RTS
C3/BFD3 unknow
C3/BFD3: 20F7C2 JSR $C2F7 (set text color to blue) C3/BFD6: AD1242 LDA $4212 C3/BFD9: 2940 AND #$40 (are we in H-blank?) C3/BFDB: F0F9 BEQ $BFD6 (branch if not) C3/BFDD: AD0102 LDA $0201 C3/BFE0: 8D1B21 STA $211B C3/BFE3: 9C1B21 STZ $211B C3/BFE6: A909 LDA #$09 C3/BFE8: 8D1C21 STA $211C C3/BFEB: 8D1C21 STA $211C C3/BFEE: AE3421 LDX $2134 C3/BFF1: 8667 STX $67 C3/BFF3: BFC07AC4 LDA $C47AC0,X (Load Specs for Shop X) C3/BFF7: 2907 AND #$07 C3/BFF9: 0A ASL A C3/BFFA: AA TAX C3/BFFB: C220 REP #$20 (16 bit memory/accum.) C3/BFFD: BF0CC0C3 LDA $C3C00C,X (Load pointer to Shop Title X) C3/C001: 85E7 STA $E7 C3/C003: E220 SEP #$20 (8 bit memory/accum.) C3/C005: A9C3 LDA #$C3 (JMP $02FB could've saved some bytes here...) C3/C007: 85E9 STA $E9 (JMP $02FD could've saved some bytes here...) C3/C009: 4CFF02 JMP $02FF