The current URL is datacrystal.tcrf.net.
Final Fantasy VI/ROM map/Assembly C3D: Difference between revisions
(clean up) |
m (Xkeeper moved page Final Fantasy VI:ROM map/Assembly C3D to Final Fantasy VI/ROM map/Assembly C3D: normalize subpages and titles) |
||
(11 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{{subpage|game=Final Fantasy VI:ROM map}} | |||
==C3/D000 unknow== | ==C3/D000 unknow== | ||
C3/D000: A62D LDX $2D | C3/D000: A62D LDX $2D | ||
Line 153: | Line 154: | ||
C3/D141: E220 SEP #$20 (8 bit memory/accum.) | C3/D141: E220 SEP #$20 (8 bit memory/accum.) | ||
C3/D143: 60 RTS | C3/D143: 60 RTS | ||
==C3/D144 | ==C3/D144 Setup and execute VRAM transfer== | ||
C3/D144: A0BAD7 LDY #$D7BA | C3/D144: A0BAD7 LDY #$D7BA ; Data Source Address: #$D7BA | ||
C3/D147: 84E7 STY $E7 | C3/D147: 84E7 STY $E7 | ||
C3/D149: A97E LDA #$7E | C3/D149: A97E LDA #$7E ; Data Source Bank: #$7E (WRAM) | ||
C3/D14B: 85E9 STA $E9 | C3/D14B: 85E9 STA $E9 | ||
C3/D14D: A08005 LDY #$0580 | C3/D14D: A08005 LDY #$0580 | ||
C3/D150: 84EB STY $EB | C3/D150: 84EB STY $EB ; Transfer #$580 bytes | ||
C3/D152: 64ED STZ $ED | C3/D152: 64ED STZ $ED ; No value-to-add to the data double-bytes | ||
C3/D154: 64EE STZ $EE | C3/D154: 64EE STZ $EE | ||
C3/D156: A0006C LDY #$6C00 | C3/D156: A0006C LDY #$6C00 ; Destination in VRAM | ||
C3/D159: 4CB9DD JMP $DDB9 | C3/D159: 4CB9DD JMP $DDB9 ; TRANSFER TO VRAM | ||
==C3/D15C unknow== | ==C3/D15C unknow== | ||
C3/D15C: A9C3 LDA #$C3 | C3/D15C: A9C3 LDA #$C3 | ||
Line 301: | Line 303: | ||
C3/D261: 38 SEC (not done with this queue yet) | C3/D261: 38 SEC (not done with this queue yet) | ||
C3/D262: 60 RTS | C3/D262: 60 RTS | ||
==C3/D263 | ==C3/D263 Transfer variables to Mode 7 Matrix registers== | ||
C3/D263: A5BB LDA $BB | C3/D263: A5BB LDA $BB | ||
C3/D265: 8D1B21 STA $211B | C3/D265: 8D1B21 STA $211B ; M7A | ||
C3/D268: A5BC LDA $BC | C3/D268: A5BC LDA $BC | ||
C3/D26A: 8D1B21 STA $211B | C3/D26A: 8D1B21 STA $211B ; M7A | ||
C3/D26D: A5BD LDA $BD | C3/D26D: A5BD LDA $BD | ||
C3/D26F: 8D1C21 STA $211C | C3/D26F: 8D1C21 STA $211C ; M7B | ||
C3/D272: A5BE LDA $BE | C3/D272: A5BE LDA $BE | ||
C3/D274: 8D1C21 STA $211C | C3/D274: 8D1C21 STA $211C ; M7B | ||
C3/D277: A5BF LDA $BF | C3/D277: A5BF LDA $BF | ||
C3/D279: 8D1D21 STA $211D | C3/D279: 8D1D21 STA $211D ; M7C | ||
C3/D27C: A5C0 LDA $C0 | C3/D27C: A5C0 LDA $C0 | ||
C3/D27E: 8D1D21 STA $211D | C3/D27E: 8D1D21 STA $211D ; M7C | ||
C3/D281: A5C1 LDA $C1 | C3/D281: A5C1 LDA $C1 | ||
C3/D283: 8D1E21 STA $211E | C3/D283: 8D1E21 STA $211E ; M7D | ||
C3/D286: A5C2 LDA $C2 | C3/D286: A5C2 LDA $C2 | ||
C3/D288: 8D1E21 STA $211E | C3/D288: 8D1E21 STA $211E ; M7D | ||
C3/D28B: A5B7 LDA $B7 | C3/D28B: A5B7 LDA $B7 | ||
C3/D28D: 8D1F21 STA $211F | C3/D28D: 8D1F21 STA $211F ; M7X | ||
C3/D290: A5B8 LDA $B8 | C3/D290: A5B8 LDA $B8 | ||
C3/D292: 8D1F21 STA $211F | C3/D292: 8D1F21 STA $211F ; M7X | ||
C3/D295: A5B9 LDA $B9 | C3/D295: A5B9 LDA $B9 | ||
C3/D297: 8D2021 STA $2120 | C3/D297: 8D2021 STA $2120 ; M7Y | ||
C3/D29A: A5BA LDA $BA | C3/D29A: A5BA LDA $BA | ||
C3/D29C: 8D2021 STA $2120 | C3/D29C: 8D2021 STA $2120 ; M7Y | ||
C3/D29F: 60 RTS | C3/D29F: 60 RTS | ||
==C3/D2A0 unknow== | ==C3/D2A0 unknow== | ||
C3/D2A0: A900 LDA #$00 | C3/D2A0: A900 LDA #$00 | ||
Line 603: | Line 606: | ||
C3/D4D1: AB PLB | C3/D4D1: AB PLB | ||
C3/D4D2: 60 RTS | C3/D4D2: 60 RTS | ||
==C3/D4D3 | ==C3/D4D3 Transfer Sky graphics to VRAM== | ||
C3/D4D3: C220 REP #$20 | C3/D4D3: C220 REP #$20 ; (from C3/CA74) 16 bit memory/accum. | ||
C3/D4D5: AF06B2EE LDA $EEB206 | C3/D4D5: AF06B2EE LDA $EEB206 ; pointer to sky graphics address | ||
C3/D4D9: A8 TAY | C3/D4D9: A8 TAY | ||
C3/D4DA: E220 SEP #$20 | C3/D4DA: E220 SEP #$20 ; 8 bit memory/accum. | ||
C3/D4DC: AF08B2EE LDA $EEB208 | C3/D4DC: AF08B2EE LDA $EEB208 ; pointer to sky graphics bank | ||
C3/D4E0: 2061DD JSR $DD61 | C3/D4E0: 2061DD JSR $DD61 ; prepare for and do LZ decompression | ||
C3/D4E3: 2018D5 JSR $D518 | C3/D4E3: 2018D5 JSR $D518 ; Sets $E7-$E9 to $7EC000 | ||
C3/D4E6: A0201A LDY #$1A20 | C3/D4E6: A0201A LDY #$1A20 | ||
C3/D4E9: 84EB STY $EB | C3/D4E9: 84EB STY $EB ; $1A20 bytes to transfer | ||
C3/D4EB: 64ED STZ $ED | C3/D4EB: 64ED STZ $ED ; No value-to-add to the data bytes | ||
C3/D4ED: 64EE STZ $EE | C3/D4ED: 64EE STZ $EE | ||
C3/D4EF: A00040 LDY #$4000 | C3/D4EF: A00040 LDY #$4000 ; VRAM destination: $4000 | ||
C3/D4F2: 20B9DD JSR $DDB9 | C3/D4F2: 20B9DD JSR $DDB9 ; TRANSFER TO VRAM | ||
C3/D4F5: C220 REP #$20 | C3/D4F5: C220 REP #$20 ; 16 bit memory/accum. | ||
C3/D4F7: AF09B2EE LDA $EEB209 | C3/D4F7: AF09B2EE LDA $EEB209 ; sky tilemap address | ||
C3/D4FB: A8 TAY | C3/D4FB: A8 TAY | ||
C3/D4FC: E220 SEP #$20 | C3/D4FC: E220 SEP #$20 ; 8 bit memory/accum. | ||
C3/D4FE: AF0BB2EE LDA $EEB20B | C3/D4FE: AF0BB2EE LDA $EEB20B ; sky tilemap bank | ||
C3/D502: 2061DD JSR $DD61 | C3/D502: 2061DD JSR $DD61 ; prepare for and do LZ decompression | ||
C3/D505: A00020 LDY #$2000 | C3/D505: A00020 LDY #$2000 | ||
C3/D508: 84ED STY $ED | C3/D508: 84ED STY $ED ; Add #$2000 to each data byte (sets tile priority for each tile) | ||
C3/D50A: 2018D5 JSR $D518 | C3/D50A: 2018D5 JSR $D518 ; Sets $E7-$E9 to $7EC000 | ||
C3/D50D: A00004 LDY #$0400 | C3/D50D: A00004 LDY #$0400 | ||
C3/D510: 84EB STY $EB | C3/D510: 84EB STY $EB ; $400 byte to transfer | ||
C3/D512: A00050 LDY #$5000 | C3/D512: A00050 LDY #$5000 ; VRAM destination: $5000 | ||
C3/D515: 4CB9DD JMP $DDB9 | C3/D515: 4CB9DD JMP $DDB9 ; TRANSFER TO VRAM | ||
==C3/D518 unknow== | ==C3/D518 unknow== | ||
C3/D518: A000C0 LDY #$C000 | C3/D518: A000C0 LDY #$C000 | ||
Line 836: | Line 840: | ||
C3/D6E8: A00060 LDY #$6000 | C3/D6E8: A00060 LDY #$6000 | ||
C3/D6EB: 4CB9DD JMP $DDB9 | C3/D6EB: 4CB9DD JMP $DDB9 | ||
==C3/D6EE | ==C3/D6EE Flexible transfer loop== | ||
Can be used to transfer data from any position to another. | |||
$00: Loop counter start value (LOW BYTE) | |||
$01: Loop counter start value (HIGH BYTE) | |||
$E7: Load address (LOW BYTE) | |||
$E8: Load address (HIGH BYTE) | |||
$E9: Load bank | |||
$EB: Store address (LOW BYTE) | |||
$EC: Store address (HIGH BYTE) | |||
$ED: Store bank | |||
$EF: Loop counter exit value (LOW BYTE) | |||
$F0: Loop counter exit value (HIGH BYTE) | |||
$F1: Value that gets added to each data double-byte (LOW BYTE) | |||
$F2: Value that gets added to each data double-byte (HIGH BYTE) | |||
Note that the counter value (Y) is used both for the loading and storing of the data double-bytes, too. | |||
The lines D6F8 and D6F9 only make sense if some subroutines jump directly to line D6F2. | |||
C3/D6EE: 64F1 STZ $F1 | C3/D6EE: 64F1 STZ $F1 | ||
C3/D6F0: 64F2 STZ $F2 | C3/D6F0: 64F2 STZ $F2 | ||
C3/D6F2: C220 REP #$20 | C3/D6F2: C220 REP #$20 ; 16 bit memory/accum. | ||
C3/D6F4: A400 LDY $00 | C3/D6F4: A400 LDY $00 ; Load counter value | ||
C3/D6F6: B7E7 LDA [$E7],Y | C3/D6F6: B7E7 LDA [$E7],Y ; Load value | ||
C3/D6F8: 18 CLC | C3/D6F8: 18 CLC | ||
C3/D6F9: 65F1 ADC $F1 | C3/D6F9: 65F1 ADC $F1 ; Add value to loaded double-byte | ||
C3/D6FB: 97EB STA [$EB],Y | C3/D6FB: 97EB STA [$EB],Y ; Store the result | ||
C3/D6FD: C8 INY | C3/D6FD: C8 INY ; Increment loop counter | ||
C3/D6FE: C8 INY | C3/D6FE: C8 INY | ||
C3/D6FF: C4EF CPY $EF | C3/D6FF: C4EF CPY $EF ; Exit value reached? | ||
C3/D701: D0F3 BNE $D6F6 | C3/D701: D0F3 BNE $D6F6 ; Loop if not | ||
C3/D703: E220 SEP #$20 | C3/D703: E220 SEP #$20 ; 8 bit memory/accum. | ||
C3/D705: 60 RTS | C3/D705: 60 RTS | ||
==C3/D706 unknow== | ==C3/D706 unknow== | ||
C3/D706: 7B TDC | C3/D706: 7B TDC | ||
Line 1,170: | Line 1,194: | ||
C3/D96B: 38 SEC | C3/D96B: 38 SEC | ||
C3/D96C: 60 RTS | C3/D96C: 60 RTS | ||
==C3/D96D | ==C3/D96D End Credits Text - buffer update 1== | ||
C3/D96D: A2C09D LDX #$9DC0 | C3/D96D: A2C09D LDX #$9DC0 (address for "PRODUCER") | ||
C3/D970: A9C2 LDA #$C2 | C3/D970: A9C2 LDA #$C2 (+ bank) | ||
C3/D972: A00400 LDY #$0004 | C3/D972: A00400 LDY #$0004 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) | ||
C3/D975: 20F1D9 JSR $D9F1 | C3/D975: 20F1D9 JSR $D9F1 (store X, A, Y to $4A-$4E, then JMP $DBC8, which will end with RTS) | ||
C3/D978: A2449C LDX #$9C44 | C3/D978: A2449C LDX #$9C44 (address for "HIRONOBU" [SAKAGUCHI]) | ||
C3/D97B: A9C2 LDA #$C2 | C3/D97B: A9C2 LDA #$C2 (+ bank) | ||
C3/D97D: A00800 LDY #$0008 | C3/D97D: A00800 LDY #$0008 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) | ||
C3/D980: 4CFAD9 JMP $D9FA | C3/D980: 4CFAD9 JMP $D9FA (store X, A, Y to $4A-$4E, then JMP $DBE8, which will end with RTS, kicking us back to $C3C63F) | ||
==C3/D983 | ==C3/D983 End Credits Text - buffer update 2== | ||
C3/D983: A2C49D LDX #$9DC4 | C3/D983: A2C49D LDX #$9DC4 (address for "DIRECTOR") | ||
C3/D986: A9C2 LDA #$C2 | C3/D986: A9C2 LDA #$C2 (+ bank) | ||
C3/D988: A02800 LDY #$0028 | C3/D988: A02800 LDY #$0028 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) | ||
C3/D98B: 20F1D9 JSR $D9F1 | C3/D98B: 20F1D9 JSR $D9F1 (store X, A, Y to $4A-$4E, then JMP $DBC8, which will end with RTS) | ||
C3/D98E: A24C9C LDX #$9C4C | C3/D98E: A24C9C LDX #$9C4C (address for "YOSHINORI" [KITASE]) | ||
C3/D991: A9C2 LDA #$C2 | C3/D991: A9C2 LDA #$C2 (+ bank) | ||
C3/D993: A06000 LDY #$0060 | C3/D993: A06000 LDY #$0060 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) | ||
C3/D996: 4CFAD9 JMP $D9FA | C3/D996: 4CFAD9 JMP $D9FA (store X, A, Y to $4A-$4E, then JMP $DBE8, which will end with RTS, kicking us back to $C3C7B9) | ||
==C3/D999 | ==C3/D999 End Credits Text - buffer update 3== | ||
C3/D999: A2EC9D LDX #$9DEC | C3/D999: A2EC9D LDX #$9DEC (address for "FIELD" [PLANNER]) | ||
C3/D99C: A9C2 LDA #$C2 | C3/D99C: A9C2 LDA #$C2 (+ bank) | ||
C3/D99E: A01800 LDY #$0018 | C3/D99E: A01800 LDY #$0018 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) | ||
C3/D9A1: 20F1D9 JSR $D9F1 | C3/D9A1: 20F1D9 JSR $D9F1 (store X, A, Y to $4A-$4E, then JMP $DBC8, which will end with RTS) | ||
C3/D9A4: A2AC9C LDX #$9CAC | C3/D9A4: A2AC9C LDX #$9CAC (address for "YOSHIHIKO" [MAEKAWA]) | ||
C3/D9A7: A9C2 LDA #$C2 | C3/D9A7: A9C2 LDA #$C2 (+ bank) | ||
C3/D9A9: A04000 LDY #$0040 | C3/D9A9: A04000 LDY #$0040 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) | ||
C3/D9AC: 4CFAD9 JMP $D9FA | C3/D9AC: 4CFAD9 JMP $D9FA (store X, A, Y to $4A-$4E, then JMP $DBE8, which will end with RTS, kicking us back to $C3C8FE) | ||
==C3/D9AF | ==C3/D9AF End Credits Text - buffer update 4== | ||
C3/D9AF: A2049E LDX #$9E04 | C3/D9AF: A2049E LDX #$9E04 (address for "SOUND" [PROGRAMMER]) | ||
C3/D9B2: A9C2 LDA #$C2 | C3/D9B2: A9C2 LDA #$C2 (+ bank) | ||
C3/D9B4: A02000 LDY #$0020 | C3/D9B4: A02000 LDY #$0020 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) | ||
C3/D9B7: 20F1D9 JSR $D9F1 | C3/D9B7: 20F1D9 JSR $D9F1 (store X, A, Y to $4A-$4E, then JMP $DBC8, which will end with RTS) | ||
C3/D9BA: A2EC9C LDX #$9CEC | C3/D9BA: A2EC9C LDX #$9CEC (address for "MINORU" [AKAO]) | ||
C3/D9BD: A9C2 LDA #$C2 | C3/D9BD: A9C2 LDA #$C2 (+ bank) | ||
C3/D9BF: A06400 LDY #$0064 | C3/D9BF: A06400 LDY #$0064 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) | ||
C3/D9C2: 4CFAD9 JMP $D9FA | C3/D9C2: 4CFAD9 JMP $D9FA (store X, A, Y to $4A-$4E, then JMP $DBE8, which will end with RTS, kicking us back to $C3CA48) | ||
==C3/D9C5 | ==C3/D9C5 End Credits Text - buffer update 5== | ||
C3/D9C5: A2249E LDX #$9E24 | C3/D9C5: A2249E LDX #$9E24 (address for "SOUND" [ENGINEER]) | ||
C3/D9C8: A9C2 LDA #$C2 | C3/D9C8: A9C2 LDA #$C2 (+ bank) | ||
C3/D9CA: A02400 LDY #$0024 | C3/D9CA: A02400 LDY #$0024 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) | ||
C3/D9CD: 20F1D9 JSR $D9F1 | C3/D9CD: 20F1D9 JSR $D9F1 (store X, A, Y to $4A-$4E, then JMP $DBC8, which will end with RTS) | ||
C3/D9D0: A2509D LDX #$9D50 | C3/D9D0: A2509D LDX #$9D50 (address for "EIJI" [NAKAMURA]) | ||
C3/D9D3: A9C2 LDA #$C2 | C3/D9D3: A9C2 LDA #$C2 (+ bank) | ||
C3/D9D5: A07000 LDY #$0070 | C3/D9D5: A07000 LDY #$0070 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) | ||
C3/D9D8: 4CFAD9 JMP $D9FA | C3/D9D8: 4CFAD9 JMP $D9FA (store X, A, Y to $4A-$4E, then JMP $DBE8, which will end with RTS, kicking us back to $C3CD76) | ||
==C3/D9DB | ==C3/D9DB End Credits Text - buffer update 6== | ||
C3/D9DB: A2489E LDX #$9E48 | C3/D9DB: A2489E LDX #$9E48 (address for "TEST" [COORDINATOR]) | ||
C3/D9DE: A9C2 LDA #$C2 | C3/D9DE: A9C2 LDA #$C2 (+ bank) | ||
C3/D9E0: A0E400 LDY #$00E4 | C3/D9E0: A0E400 LDY #$00E4 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) | ||
C3/D9E3: 4CF1D9 JMP $D9F1 | C3/D9E3: 4CF1D9 JMP $D9F1 (store X, A, Y to $4A-$4E, then JMP $DBC8, which will end with RTS, kicking us back to $C3CED1) | ||
==C3/D9E6 | ==C3/D9E6 End Credits Text - buffer update 7== | ||
C3/D9E6: A22C9F LDX #$9F2C | C3/D9E6: A22C9F LDX #$9F2C (address for "M.MORI") | ||
C3/D9E9: A9C2 LDA #$C2 | C3/D9E9: A9C2 LDA #$C2 (+ bank) | ||
C3/D9EB: A06C00 LDY #$006C | C3/D9EB: A06C00 LDY #$006C (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) | ||
C3/D9EE: 4CF1D9 JMP $D9F1 | C3/D9EE: 4CF1D9 JMP $D9F1 (store X, A, Y to $4A-$4E, then JMP $DBC8, which will end with RTS, kicking us back to $C3CF1E) | ||
==C3/D9F1 unknow== | ==C3/D9F1 unknow== | ||
C3/D9F1: 864A STX $4A | C3/D9F1: 864A STX $4A | ||
Line 1,235: | Line 1,259: | ||
C3/D9FE: 844D STY $4D | C3/D9FE: 844D STY $4D | ||
C3/DA00: 4CE8DB JMP $DBE8 | C3/DA00: 4CE8DB JMP $DBE8 | ||
==C3/DA03 | ==C3/DA03 queue display of page 1 text== | ||
C3/DA03: A00C00 LDY #$000C | C3/DA03: A00C00 LDY #$000C (number of strings to display on page 1; 4 bytes per string) | ||
C3/DA06: A29498 LDX #$9894 | C3/DA06: A29498 LDX #$9894 ("PRODUCER") | ||
C3/DA09: A9C2 LDA #$C2 | C3/DA09: A9C2 LDA #$C2 | ||
C3/DA0B: 4CA5DB JMP $DBA5 | C3/DA0B: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DA0E | ==C3/DA0E queue display of page 2 text== | ||
C3/DA0E: A01400 LDY #$0014 | C3/DA0E: A01400 LDY #$0014 (number of strings to display on page 2; 4 bytes per string) | ||
C3/DA11: A2A098 LDX #$98A0 | C3/DA11: A2A098 LDX #$98A0 ("DIRECTOR") | ||
C3/DA14: A9C2 LDA #$C2 | C3/DA14: A9C2 LDA #$C2 | ||
C3/DA16: 4CA5DB JMP $DBA5 | C3/DA16: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DA19 | ==C3/DA19 queue display of page 3 text== | ||
C3/DA19: A01800 LDY #$0018 | C3/DA19: A01800 LDY #$0018 (number of strings to display on page 3; 4 bytes per string) | ||
C3/DA1C: A2B498 LDX #$98B4 | C3/DA1C: A2B498 LDX #$98B4 ("MAIN" [PROGRAMMER]) | ||
C3/DA1F: A9C2 LDA #$C2 | C3/DA1F: A9C2 LDA #$C2 | ||
C3/DA21: 4CA5DB JMP $DBA5 | C3/DA21: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DA24 | ==C3/DA24 queue display of page 4 text== | ||
C3/DA24: A01800 LDY #$0018 | C3/DA24: A01800 LDY #$0018 (number of strings to display on page 4; 4 bytes per string) | ||
C3/DA27: A2CC98 LDX #$98CC | C3/DA27: A2CC98 LDX #$98CC ("GRAPHIC" [DIRECTOR], page 1) | ||
C3/DA2A: A9C2 LDA #$C2 | C3/DA2A: A9C2 LDA #$C2 | ||
C3/DA2C: 4CA5DB JMP $DBA5 | C3/DA2C: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DA2F | ==C3/DA2F queue display of page 5 text== | ||
C3/DA2F: A01800 LDY #$0018 | C3/DA2F: A01800 LDY #$0018 (number of strings to display on page 5; 4 bytes per string) | ||
C3/DA32: A2E498 LDX #$98E4 | C3/DA32: A2E498 LDX #$98E4 ("GRAPHIC" [DIRECTOR], page 2) | ||
C3/DA35: A9C2 LDA #$C2 | C3/DA35: A9C2 LDA #$C2 | ||
C3/DA37: 4CA5DB JMP $DBA5 | C3/DA37: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DA3A | ==C3/DA3A queue display of page 6 text== | ||
C3/DA3A: A00C00 LDY #$000C | C3/DA3A: A00C00 LDY #$000C (number of strings to display on page 6; 4 bytes per string) | ||
C3/DA3D: A2FC98 LDX #$98FC | C3/DA3D: A2FC98 LDX #$98FC ("MUSIC") | ||
C3/DA40: A9C2 LDA #$C2 | C3/DA40: A9C2 LDA #$C2 | ||
C3/DA42: 4CA5DB JMP $DBA5 | C3/DA42: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DA45 | ==C3/DA45 queue display of page 7 text== | ||
C3/DA45: A01000 LDY #$0010 | C3/DA45: A01000 LDY #$0010 (number of strings to display on page 7; 4 bytes per string) | ||
C3/DA48: A20899 LDX #$9908 | C3/DA48: A20899 LDX #$9908 ("IMAGE" [DESIGN]) | ||
C3/DA4B: A9C2 LDA #$C2 | C3/DA4B: A9C2 LDA #$C2 | ||
C3/DA4D: 4CA5DB JMP $DBA5 | C3/DA4D: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DA50 | ==C3/DA50 queue display of page 8 text== | ||
C3/DA50: A01800 LDY #$0018 | C3/DA50: A01800 LDY #$0018 (number of strings to display on page 8; 4 bytes per string) | ||
C3/DA53: A21899 LDX #$9918 | C3/DA53: A21899 LDX #$9918 ("BATTLE" [PLANNER]) | ||
C3/DA56: A9C2 LDA #$C2 | C3/DA56: A9C2 LDA #$C2 | ||
C3/DA58: 4CA5DB JMP $DBA5 | C3/DA58: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DA5B | ==C3/DA5B queue display of page 9 text== | ||
C3/DA5B: A02000 LDY #$0020 | C3/DA5B: A02000 LDY #$0020 (number of strings to display on page 9; 4 bytes per string) | ||
C3/DA5E: A23099 LDX #$9930 | C3/DA5E: A23099 LDX #$9930 ("FIELD" [PLANNER]) | ||
C3/DA61: A9C2 LDA #$C2 | C3/DA61: A9C2 LDA #$C2 | ||
C3/DA63: 4CA5DB JMP $DBA5 | C3/DA63: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DA66 | ==C3/DA66 queue display of page 10 text== | ||
C3/DA66: A01800 LDY #$0018 | C3/DA66: A01800 LDY #$0018 (number of strings to display on page 10; 4 bytes per string) | ||
C3/DA69: A25099 LDX #$9950 | C3/DA69: A25099 LDX #$9950 ("EVENT" [PLANNER]) | ||
C3/DA6C: A9C2 LDA #$C2 | C3/DA6C: A9C2 LDA #$C2 | ||
C3/DA6E: 4CA5DB JMP $DBA5 | C3/DA6E: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DA71 | ==C3/DA71 queue display of page 11 text== | ||
C3/DA71: A01800 LDY #$0018 | C3/DA71: A01800 LDY #$0018 (number of strings to display on page 11; 4 bytes per string) | ||
C3/DA74: A26899 LDX #$9968 | C3/DA74: A26899 LDX #$9968 ("EFFECT" [PROGRAMMER]) | ||
C3/DA77: A9C2 LDA #$C2 | C3/DA77: A9C2 LDA #$C2 | ||
C3/DA79: 4CA5DB JMP $DBA5 | C3/DA79: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DA7C | ==C3/DA7C queue display of page 12 text== | ||
C3/DA7C: A01000 LDY #$0010 | C3/DA7C: A01000 LDY #$0010 (number of strings to display on page 12; 4 bytes per string) | ||
C3/DA7F: A28099 LDX #$9980 | C3/DA7F: A28099 LDX #$9980 ("BATTLE" [PROGRAMMER]) | ||
C3/DA82: A9C2 LDA #$C2 | C3/DA82: A9C2 LDA #$C2 | ||
C3/DA84: 4CA5DB JMP $DBA5 | C3/DA84: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DA87 | ==C3/DA87 queue display of page 13 text== | ||
C3/DA87: A01000 LDY #$0010 | C3/DA87: A01000 LDY #$0010 (number of strings to display on page 13; 4 bytes per string) | ||
C3/DA8A: A29099 LDX #$9990 | C3/DA8A: A29099 LDX #$9990 ("SOUND" [PROGRAMMER]) | ||
C3/DA8D: A9C2 LDA #$C2 | C3/DA8D: A9C2 LDA #$C2 | ||
C3/DA8F: 4CA5DB JMP $DBA5 | C3/DA8F: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DA92 | ==C3/DA92 queue display of page 14 text== | ||
C3/DA92: A01400 LDY #$0014 | C3/DA92: A01400 LDY #$0014 (number of strings to display on page 14; 4 bytes per string) | ||
C3/DA95: A2A099 LDX #$99A0 | C3/DA95: A2A099 LDX #$99A0 ("EFFECT" [GRAPHIC DESIGNER]) | ||
C3/DA98: A9C2 LDA #$C2 | C3/DA98: A9C2 LDA #$C2 | ||
C3/DA9A: 4CA5DB JMP $DBA5 | C3/DA9A: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DA9D | ==C3/DA9D queue display of page 15 text== | ||
C3/DA9D: A02400 LDY #$0024 | C3/DA9D: A02400 LDY #$0024 (number of strings to display on page 15; 4 bytes per string) | ||
C3/DAA0: A2B499 LDX #$99B4 | C3/DAA0: A2B499 LDX #$99B4 ("FIELD" [GRAPHIC DESIGNER], page 1) | ||
C3/DAA3: A9C2 LDA #$C2 | C3/DAA3: A9C2 LDA #$C2 | ||
C3/DAA5: 4CA5DB JMP $DBA5 | C3/DAA5: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DAA8 | ==C3/DAA8 queue display of page 16 text== | ||
C3/DAA8: A02400 LDY #$0024 | C3/DAA8: A02400 LDY #$0024 (number of strings to display on page 16; 4 bytes per string) | ||
C3/DAAB: A2D899 LDX #$99D8 | C3/DAAB: A2D899 LDX #$99D8 ("FIELD" [GRAPHIC DESIGNER], page 2) | ||
C3/DAAE: A9C2 LDA #$C2 | C3/DAAE: A9C2 LDA #$C2 | ||
C3/DAB0: 4CA5DB JMP $DBA5 | C3/DAB0: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DAB3 | ==C3/DAB3 queue display of page 17 text== | ||
C3/DAB3: A02400 LDY #$0024 | C3/DAB3: A02400 LDY #$0024 (number of strings to display on page 17; 4 bytes per string) | ||
C3/DAB6: A2FC99 LDX #$99FC | C3/DAB6: A2FC99 LDX #$99FC ("FIELD" [GRAPHIC DESIGNER], page 3) | ||
C3/DAB9: A9C2 LDA #$C2 | C3/DAB9: A9C2 LDA #$C2 | ||
C3/DABB: 4CA5DB JMP $DBA5 | C3/DABB: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DABE | ==C3/DABE queue display of page 18 text== | ||
C3/DABE: A01400 LDY #$0014 | C3/DABE: A01400 LDY #$0014 (number of strings to display on page 18; 4 bytes per string) | ||
C3/DAC1: A2209A LDX #$9A20 | C3/DAC1: A2209A LDX #$9A20 ("MONSTER" [GRAPHIC DESIGNER]) | ||
C3/DAC4: A9C2 LDA #$C2 | C3/DAC4: A9C2 LDA #$C2 | ||
C3/DAC6: 4CA5DB JMP $DBA5 | C3/DAC6: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DAC9 | ==C3/DAC9 queue display of page 19 text== | ||
C3/DAC9: A01400 LDY #$0014 | C3/DAC9: A01400 LDY #$0014 (number of strings to display on page 19; 4 bytes per string) | ||
C3/DACC: A2349A LDX #$9A34 | C3/DACC: A2349A LDX #$9A34 ("OBJECT" [GRAPHIC DESIGNER]) | ||
C3/DACF: A9C2 LDA #$C2 | C3/DACF: A9C2 LDA #$C2 | ||
C3/DAD1: 4CA5DB JMP $DBA5 | C3/DAD1: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DAD4 | ==C3/DAD4 queue display of page 20 text== | ||
C3/DAD4: A01000 LDY #$0010 | C3/DAD4: A01000 LDY #$0010 (number of strings to display on page 20; 4 bytes per string) | ||
C3/DAD7: A2489A LDX #$9A48 | C3/DAD7: A2489A LDX #$9A48 ("SOUND" [ENGINEER]) | ||
C3/DADA: A9C2 LDA #$C2 | C3/DADA: A9C2 LDA #$C2 | ||
C3/DADC: 4CA5DB JMP $DBA5 | C3/DADC: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DADF | ==C3/DADF queue display of page 21 text== | ||
C3/DADF: A01800 LDY #$0018 | C3/DADF: A01800 LDY #$0018 (number of strings to display on page 21; 4 bytes per string) | ||
C3/DAE2: A2589A LDX #$9A58 | C3/DAE2: A2589A LDX #$9A58 ("SOUND" [EFFECT], page 1) | ||
C3/DAE5: A9C2 LDA #$C2 | C3/DAE5: A9C2 LDA #$C2 | ||
C3/DAE7: 4CA5DB JMP $DBA5 | C3/DAE7: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DAEA | ==C3/DAEA queue display of page 22 text== | ||
C3/DAEA: A01800 LDY #$0018 | C3/DAEA: A01800 LDY #$0018 (number of strings to display on page 22; 4 bytes per string) | ||
C3/DAED: A2709A LDX #$9A70 | C3/DAED: A2709A LDX #$9A70 ("SOUND" [EFFECT], page 2) | ||
C3/DAF0: A9C2 LDA #$C2 | C3/DAF0: A9C2 LDA #$C2 | ||
C3/DAF2: 4CA5DB JMP $DBA5 | C3/DAF2: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DAF5 | ==C3/DAF5 queue display of page 23 text== | ||
C3/DAF5: A02400 LDY #$0024 | C3/DAF5: A02400 LDY #$0024 (number of strings to display on page 23; 4 bytes per string) | ||
C3/DAF8: A2889A LDX #$9A88 | C3/DAF8: A2889A LDX #$9A88 ("REMAKE" [PLANNER]) | ||
C3/DAFB: A9C2 LDA #$C2 | C3/DAFB: A9C2 LDA #$C2 | ||
C3/DAFD: 4CA5DB JMP $DBA5 | C3/DAFD: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DB00 | ==C3/DB00 queue display of page 24 text== | ||
C3/DB00: A01800 LDY #$0018 | C3/DB00: A01800 LDY #$0018 (number of strings to display on page 24; 4 bytes per string) | ||
C3/DB03: A2AC9A LDX #$9AAC | C3/DB03: A2AC9A LDX #$9AAC ("SYSTEM" [ENGINEER], page 1) | ||
C3/DB06: A9C2 LDA #$C2 | C3/DB06: A9C2 LDA #$C2 | ||
C3/DB08: 4CA5DB JMP $DBA5 | C3/DB08: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DB0B | ==C3/DB0B queue display of page 25 text== | ||
C3/DB0B: A01800 LDY #$0018 | C3/DB0B: A01800 LDY #$0018 (number of strings to display on page 25; 4 bytes per string) | ||
C3/DB0E: A2C49A LDX #$9AC4 | C3/DB0E: A2C49A LDX #$9AC4 ("SYSTEM" [ENGINEER], page 2) | ||
C3/DB11: A9C2 LDA #$C2 | C3/DB11: A9C2 LDA #$C2 | ||
C3/DB13: 4CA5DB JMP $DBA5 | C3/DB13: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DB16 | ==C3/DB16 queue display of page 26 text== | ||
C3/DB16: A01800 LDY #$0018 | C3/DB16: A01800 LDY #$0018 (number of strings to display on page 26; 4 bytes per string) | ||
C3/DB19: A2DC9A LDX #$9ADC | C3/DB19: A2DC9A LDX #$9ADC ("EXECUTIVE" [PRODUCER]) | ||
C3/DB1C: A9C2 LDA #$C2 | C3/DB1C: A9C2 LDA #$C2 | ||
C3/DB1E: 4CA5DB JMP $DBA5 | C3/DB1E: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DB21 | ==C3/DB21 queue display of page 27 text== | ||
C3/DB21: A02800 LDY #$0028 | C3/DB21: A02800 LDY #$0028 (number of strings to display on page 27; 4 bytes per string) | ||
C3/DB24: A2F49A LDX #$9AF4 | C3/DB24: A2F49A LDX #$9AF4 ("TEST" [COORDINATOR]) | ||
C3/DB27: A9C2 LDA #$C2 | C3/DB27: A9C2 LDA #$C2 | ||
C3/DB29: 4CA5DB JMP $DBA5 | C3/DB29: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DB2C | ==C3/DB2C queue display of page 28 text== | ||
C3/DB2C: A02800 LDY #$0028 | C3/DB2C: A02800 LDY #$0028 (number of strings to display on page 28; 4 bytes per string) | ||
C3/DB2F: A21C9B LDX #$9B1C | C3/DB2F: A21C9B LDX #$9B1C ("SPECIAL" [THANKS TO]) | ||
C3/DB32: A9C2 LDA #$C2 | C3/DB32: A9C2 LDA #$C2 | ||
C3/DB34: 4CA5DB JMP $DBA5 | C3/DB34: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DB37 | ==C3/DB37 queue display of page 29 text== | ||
C3/DB37: A02400 LDY #$0024 | C3/DB37: A02400 LDY #$0024 (number of strings to display on page 29; 4 bytes per string) | ||
C3/DB3A: A2449B LDX #$9B44 | C3/DB3A: A2449B LDX #$9B44 ("Y.HIRATA") | ||
C3/DB3D: A9C2 LDA #$C2 | C3/DB3D: A9C2 LDA #$C2 | ||
C3/DB3F: 4CA5DB JMP $DBA5 | C3/DB3F: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DB42 | ==C3/DB42 queue display of page 30 text== | ||
C3/DB42: A02000 LDY #$0020 | C3/DB42: A02000 LDY #$0020 (number of strings to display on page 30; 4 bytes per string) | ||
C3/DB45: A2689B LDX #$9B68 | C3/DB45: A2689B LDX #$9B68 ("K.TANIKAWA") | ||
C3/DB48: A9C2 LDA #$C2 | C3/DB48: A9C2 LDA #$C2 | ||
C3/DB4A: 4CA5DB JMP $DBA5 | C3/DB4A: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DB4D | ==C3/DB4D queue display of page 31 text== | ||
C3/DB4D: A01800 LDY #$0018 | C3/DB4D: A01800 LDY #$0018 (number of strings to display on page 31; 4 bytes per string) | ||
C3/DB50: A2889B LDX #$9B88 | C3/DB50: A2889B LDX #$9B88 ("H.YOKOTA") | ||
C3/DB53: A9C2 LDA #$C2 | C3/DB53: A9C2 LDA #$C2 | ||
C3/DB55: 4CA5DB JMP $DBA5 | C3/DB55: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DB58 | ==C3/DB58 queue display of page 32 text== | ||
C3/DB58: A01400 LDY #$0014 | C3/DB58: A01400 LDY #$0014 (number of strings to display on page 32; 4 bytes per string) | ||
C3/DB5B: A2A09B LDX #$9BA0 | C3/DB5B: A2A09B LDX #$9BA0 ("M.KOUNO") | ||
C3/DB5E: A9C2 LDA #$C2 | C3/DB5E: A9C2 LDA #$C2 | ||
C3/DB60: 4CA5DB JMP $DBA5 | C3/DB60: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DB63 | ==C3/DB63 queue display of page 33 text== | ||
C3/DB63: A02400 LDY #$0024 | C3/DB63: A02400 LDY #$0024 (number of strings to display on page 33; 4 bytes per string) | ||
C3/DB66: A2B49B LDX #$9BB4 | C3/DB66: A2B49B LDX #$9BB4 ("K.MIYAMOTO") | ||
C3/DB69: A9C2 LDA #$C2 | C3/DB69: A9C2 LDA #$C2 | ||
C3/DB6B: 4CA5DB JMP $DBA5 | C3/DB6B: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DB6E | ==C3/DB6E queue display of page 34 text== | ||
C3/DB6E: A01800 LDY #$0018 | C3/DB6E: A01800 LDY #$0018 (number of strings to display on page 34; 4 bytes per string) | ||
C3/DB71: A2D89B LDX #$9BD8 | C3/DB71: A2D89B LDX #$9BD8 ("T.MORITA") | ||
C3/DB74: A9C2 LDA #$C2 | C3/DB74: A9C2 LDA #$C2 | ||
C3/DB76: 4CA5DB JMP $DBA5 | C3/DB76: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DB79 | ==C3/DB79 queue display of page 35 text== | ||
C3/DB79: A01800 LDY #$0018 | C3/DB79: A01800 LDY #$0018 (number of strings to display on page 35; 4 bytes per string) | ||
C3/DB7C: A2F09B LDX #$9BF0 | C3/DB7C: A2F09B LDX #$9BF0 ("M.KANESHIGE") | ||
C3/DB7F: A9C2 LDA #$C2 | C3/DB7F: A9C2 LDA #$C2 | ||
C3/DB81: 4CA5DB JMP $DBA5 | C3/DB81: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DB84 | ==C3/DB84 queue display of page 36 text== | ||
C3/DB84: A01400 LDY #$0014 | C3/DB84: A01400 LDY #$0014 (number of strings to display on page 36; 4 bytes per string) | ||
C3/DB87: A2089C LDX #$9C08 | C3/DB87: A2089C LDX #$9C08 ("RICH SILVEIRA") | ||
C3/DB8A: A9C2 LDA #$C2 | C3/DB8A: A9C2 LDA #$C2 | ||
C3/DB8C: 4CA5DB JMP $DBA5 | C3/DB8C: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DB8F | ==C3/DB8F queue display of page 37 text== | ||
C3/DB8F: A01400 LDY #$0014 | C3/DB8F: A01400 LDY #$0014 (number of strings to display on page 37; 4 bytes per string) | ||
C3/DB92: A21C9C LDX #$9C1C | C3/DB92: A21C9C LDX #$9C1C ("CHRIS BUDD") | ||
C3/DB95: A9C2 LDA #$C2 | C3/DB95: A9C2 LDA #$C2 | ||
C3/DB97: 4CA5DB JMP $DBA5 | C3/DB97: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DB9A | ==C3/DB9A queue display of page 38 text== | ||
C3/DB9A: A01400 LDY #$0014 | C3/DB9A: A01400 LDY #$0014 (number of strings to display on page 38; 4 bytes per string) | ||
C3/DB9D: A2309C LDX #$9C30 | C3/DB9D: A2309C LDX #$9C30 ("REBECCA COFFMAN") | ||
C3/DBA0: A9C2 LDA #$C2 | C3/DBA0: A9C2 LDA #$C2 | ||
C3/DBA2: 4CA5DB JMP $DBA5 | C3/DBA2: 4CA5DB JMP $DBA5 (queue up text for this page) | ||
==C3/DBA5 unknow== | ==C3/DBA5 unknow== | ||
C3/DBA5: 84FA STY $FA | C3/DBA5: 84FA STY $FA | ||
Line 1,450: | Line 1,474: | ||
==C3/DBC8 unknow== | ==C3/DBC8 unknow== | ||
C3/DBC8: A400 LDY $00 | C3/DBC8: A400 LDY $00 | ||
C3/DBCA: 2008DC JSR $DC08 | C3/DBCA: 2008DC JSR $DC08 (set palette for 8*8 font) | ||
C3/DBCD: C220 REP #$20 (16 bit memory/accum.) | C3/DBCD: C220 REP #$20 (16 bit memory/accum.) | ||
C3/DBCF: B74A LDA [$4A],Y | C3/DBCF: B74A LDA [$4A],Y | ||
Line 1,465: | Line 1,489: | ||
C3/DBDF: 20BCDC JSR $DCBC | C3/DBDF: 20BCDC JSR $DCBC | ||
C3/DBE2: 7A PLY | C3/DBE2: 7A PLY | ||
C3/DBE3: C44D CPY $4D | C3/DBE3: C44D CPY $4D (have we read all of the 8*8 strings?) | ||
C3/DBE5: D0E3 BNE $DBCA | C3/DBE5: D0E3 BNE $DBCA | ||
C3/DBE7: 60 RTS | C3/DBE7: 60 RTS | ||
==C3/DBE8 unknow== | ==C3/DBE8 unknow== | ||
C3/DBE8: A400 LDY $00 | C3/DBE8: A400 LDY $00 | ||
C3/DBEA: 200EDC JSR $DC0E | C3/DBEA: 200EDC JSR $DC0E (set palette for 16*8 font) | ||
C3/DBED: C220 REP #$20 (16 bit memory/accum.) | C3/DBED: C220 REP #$20 (16 bit memory/accum.) | ||
C3/DBEF: B74A LDA [$4A],Y | C3/DBEF: B74A LDA [$4A],Y | ||
Line 1,485: | Line 1,509: | ||
C3/DBFF: 20D1DC JSR $DCD1 | C3/DBFF: 20D1DC JSR $DCD1 | ||
C3/DC02: 7A PLY | C3/DC02: 7A PLY | ||
C3/DC03: C44D CPY $4D | C3/DC03: C44D CPY $4D (have we read all of the 16*8 strings?) | ||
C3/DC05: D0E3 BNE $DBEA | C3/DC05: D0E3 BNE $DBEA | ||
C3/DC07: 60 RTS | C3/DC07: 60 RTS | ||
C3/DC08: A2000B LDX #$0B00 | C3/DC08: A2000B LDX #$0B00 (palette for 8*8 font) | ||
C3/DC0B: 86F1 STX $F1 | C3/DC0B: 86F1 STX $F1 | ||
C3/DC0D: 60 RTS | C3/DC0D: 60 RTS | ||
C3/DC0E: A20009 LDX #$0900 | C3/DC0E: A20009 LDX #$0900 (palette for 16*8 font) | ||
C3/DC11: 86F1 STX $F1 | C3/DC11: 86F1 STX $F1 | ||
C3/DC13: 60 RTS | C3/DC13: 60 RTS | ||
Line 1,578: | Line 1,602: | ||
C3/DCB9: AB PLB | C3/DCB9: AB PLB | ||
C3/DCBA: 80DF BRA $DC9B | C3/DCBA: 80DF BRA $DC9B | ||
C3/DCBC: 2031DD JSR $DD31 | C3/DCBC: 2031DD JSR $DD31 (store data, count bytes) | ||
C3/DCBF: 2025DD JSR $DD25 | C3/DCBF: 2025DD JSR $DD25 (store number of bytes to [$EB],Y) | ||
C3/DCC2: 2002DD JSR $DD02 | C3/DCC2: 2002DD JSR $DD02 (store (x, y) position, letter, palette to [$EB],Y, set carry if we still need to read another letter) | ||
C3/DCC5: 9009 BCC $DCD0 | C3/DCC5: 9009 BCC $DCD0 | ||
C3/DCC7: A5E0 LDA $E0 | C3/DCC7: A5E0 LDA $E0 | ||
C3/DCC9: 18 CLC | C3/DCC9: 18 CLC | ||
C3/DCCA: 6908 ADC #$08 | C3/DCCA: 6908 ADC #$08 (spacing between letters) | ||
C3/DCCC: 85E0 STA $E0 | C3/DCCC: 85E0 STA $E0 | ||
C3/DCCE: 80F2 BRA $DCC2 | C3/DCCE: 80F2 BRA $DCC2 | ||
C3/DCD0: 60 RTS | C3/DCD0: 60 RTS | ||
==C3/DCD1 unknow== | ==C3/DCD1 unknow== | ||
C3/DCD1: 2031DD JSR $DD31 | C3/DCD1: 2031DD JSR $DD31 (store data, count bytes) | ||
C3/DCD4: 2025DD JSR $DD25 | C3/DCD4: 2025DD JSR $DD25 (store number of bytes to [$EB],Y) | ||
C3/DCD7: 7B TDC | C3/DCD7: 7B TDC | ||
C3/DCD8: A7E7 LDA [$E7] | C3/DCD8: A7E7 LDA [$E7] | ||
C3/DCDA: F025 BEQ $DD01 | C3/DCDA: F025 BEQ $DD01 (are we done reading letters?) | ||
C3/DCDC: 85E3 STA $E3 | C3/DCDC: 85E3 STA $E3 | ||
C3/DCDE: A5E0 LDA $E0 | C3/DCDE: A5E0 LDA $E0 | ||
C3/DCE0: 0980 ORA #$80 | C3/DCE0: 0980 ORA #$80 | ||
C3/DCE2: 97EB STA [$EB],Y | C3/DCE2: 97EB STA [$EB],Y (store x | #$80 position to [$EB],Y) | ||
C3/DCE4: C8 INY | C3/DCE4: C8 INY | ||
C3/DCE5: 7B TDC | C3/DCE5: 7B TDC | ||
C3/DCE6: 97EB STA [$EB],Y | C3/DCE6: 97EB STA [$EB],Y (store y position to [$EB],Y) | ||
C3/DCE8: C8 INY | C3/DCE8: C8 INY | ||
C3/DCE9: 7B TDC | C3/DCE9: 7B TDC | ||
Line 1,606: | Line 1,630: | ||
C3/DCEC: C221 REP #$21 | C3/DCEC: C221 REP #$21 | ||
C3/DCEE: 65F1 ADC $F1 | C3/DCEE: 65F1 ADC $F1 | ||
C3/DCF0: 97EB STA [$EB],Y | C3/DCF0: 97EB STA [$EB],Y (store letter, palette to [$EB],Y) | ||
C3/DCF2: E6E7 INC $E7 | C3/DCF2: E6E7 INC $E7 | ||
C3/DCF4: C8 INY | C3/DCF4: C8 INY | ||
Line 1,617: | Line 1,641: | ||
C3/DCFF: 80D6 BRA $DCD7 | C3/DCFF: 80D6 BRA $DCD7 | ||
C3/DD01: 60 RTS | C3/DD01: 60 RTS | ||
==C3/DD02 | ==C3/DD02 store (x, y) position, letter, palette to [$EB],Y== | ||
C3/DD02: 7B TDC | C3/DD02: 7B TDC | ||
C3/DD03: A7E7 LDA [$E7] | C3/DD03: A7E7 LDA [$E7] | ||
C3/DD05: F01C BEQ $DD23 | C3/DD05: F01C BEQ $DD23 (are we done reading letters yet?) | ||
C3/DD07: 85E3 STA $E3 | C3/DD07: 85E3 STA $E3 | ||
C3/DD09: A5E0 LDA $E0 | C3/DD09: A5E0 LDA $E0 | ||
Line 1,642: | Line 1,666: | ||
C3/DD23: 18 CLC | C3/DD23: 18 CLC | ||
C3/DD24: 60 RTS | C3/DD24: 60 RTS | ||
==C3/DD25 | ==C3/DD25 store number of bytes read (8-bit A) to [$EB],Y== | ||
C3/DD25: A400 LDY $00 (from C3/DCBF, C3/DCD4) | C3/DD25: A400 LDY $00 (from C3/DCBF, C3/DCD4) | ||
C3/DD27: 97EB STA [$EB],Y | C3/DD27: 97EB STA [$EB],Y | ||
Line 1,650: | Line 1,674: | ||
C3/DD2E: 64F0 STZ $F0 | C3/DD2E: 64F0 STZ $F0 | ||
C3/DD30: 60 RTS | C3/DD30: 60 RTS | ||
==C3/DD31 | ==C3/DD31 store data, count bytes== | ||
C3/DD31: 86E7 STX $E7 (from C3/DCBC, C3/DCD1) | C3/DD31: 86E7 STX $E7 (from C3/DCBC, C3/DCD1) | ||
C3/DD33: A9C2 LDA #$C2 | C3/DD33: A9C2 LDA #$C2 (store X, A, Y, #$7E to $E7 - $ED) | ||
C3/DD35: 85E9 STA $E9 | C3/DD35: 85E9 STA $E9 | ||
C3/DD37: 84EB STY $EB | C3/DD37: 84EB STY $EB | ||
Line 1,660: | Line 1,684: | ||
C3/DD3F: A5EB LDA $EB | C3/DD3F: A5EB LDA $EB | ||
C3/DD41: 690300 ADC #$0003 | C3/DD41: 690300 ADC #$0003 | ||
C3/DD44: 87EB STA [$EB] | C3/DD44: 87EB STA [$EB] (store Y + #$03, #$FE to [$EB]) | ||
C3/DD46: E6EB INC $EB | C3/DD46: E6EB INC $EB | ||
C3/DD48: E6EB INC $EB | C3/DD48: E6EB INC $EB | ||
C3/DD4A: E220 SEP #$20 | C3/DD4A: E220 SEP #$20 (8 bit memory/accum.) | ||
C3/DD4C: A9FE LDA #$FE | C3/DD4C: A9FE LDA #$FE | ||
C3/DD4E: 87EB STA [$EB] | C3/DD4E: 87EB STA [$EB] | ||
Line 1,669: | Line 1,693: | ||
C3/DD52: A400 LDY $00 | C3/DD52: A400 LDY $00 | ||
C3/DD54: BB TYX | C3/DD54: BB TYX | ||
C3/DD55: B7E7 LDA [$E7],Y | C3/DD55: B7E7 LDA [$E7],Y (keep reading until we see #$00, store number of bytes in 8-bit A) | ||
C3/DD57: C8 INY | C3/DD57: C8 INY | ||
C3/DD58: C900 CMP #$00 | C3/DD58: C900 CMP #$00 | ||
Line 1,686: | Line 1,710: | ||
C3/DD6E: 226DFFC2 JSL $C2FF6D (LZ decompression!) | C3/DD6E: 226DFFC2 JSL $C2FF6D (LZ decompression!) | ||
C3/DD72: 60 RTS | C3/DD72: 60 RTS | ||
==C3/DD73 | ==C3/DD73 Clear VRAM loop== | ||
C3/DD73: C220 REP #$20 | C3/DD73: C220 REP #$20 ; (from C3/C557, 16 bit memory/accum.) | ||
C3/DD75: 7B TDC | C3/DD75: 7B TDC | ||
C3/DD76: 8D1621 STA $2116 | C3/DD76: 8D1621 STA $2116 ; VRAM destination address: 0 | ||
C3/DD79: A8 TAY | C3/DD79: A8 TAY ; Set loop counter to 0 | ||
C3/DD7A: 8D1821 STA $2118 | C3/DD7A: 8D1821 STA $2118 ; Store 0 in VRAM | ||
C3/DD7D: C8 INY | C3/DD7D: C8 INY ; increment counter | ||
C3/DD7E: C00080 CPY #$8000 | C3/DD7E: C00080 CPY #$8000 ; has counter reached #$8000? | ||
C3/DD81: D0F7 BNE $DD7A | C3/DD81: D0F7 BNE $DD7A ; if not - loop | ||
C3/DD83: E220 SEP #$20 | C3/DD83: E220 SEP #$20 ; (8 bit memory/accum.) | ||
C3/DD85: 60 RTS | C3/DD85: 60 RTS | ||
==C3/DD86 | |||
C3/DD86: 8C1621 STY $2116 | ==C3/DD86 8/8 Data Transfer loop to VRAM== | ||
This transfers rotationally eight double-bytes data and eight empty (double-?)bytes to VRAM. | |||
Y: VRAM destination | |||
$E7: Data Address | |||
$E9: Data Bank | |||
$EB: Loop Counter comparison value (LOW BYTE) | |||
$EC: Loop Counter comparison value (HIGH BYTE) | |||
Note that the comparision value is the number of loaded bytes that are transfered, not the number of bytes stored in the VRAM (which is higher due to the empty bytes). So, the number of bytes that are actually stored in the VRAM is higher. | |||
C3/DD86: 8C1621 STY $2116 ; Set VRAM destination | |||
C3/DD89: 7B TDC | C3/DD89: 7B TDC | ||
C3/DD8A: A8 TAY | C3/DD8A: A8 TAY ; Clear Data Load index | ||
C3/DD8B: C220 REP #$20 | C3/DD8B: C220 REP #$20 ; (16 bit memory/accum.) | ||
C3/DD8D: A20800 LDX #$0008 | C3/DD8D: A20800 LDX #$0008 ; Set up loop counter | ||
C3/DD90: B7E7 LDA [$E7],Y | C3/DD90: B7E7 LDA [$E7],Y ; Load data double byte | ||
C3/DD92: 8D1821 STA $2118 | C3/DD92: 8D1821 STA $2118 ; Store to VRAM | ||
C3/DD95: C8 INY | C3/DD95: C8 INY ; Increment Data Load index | ||
C3/DD96: C8 INY | C3/DD96: C8 INY | ||
C3/DD97: CA DEX | C3/DD97: CA DEX ; Decrement Loop counter | ||
C3/DD98: D0F6 BNE $DD90 | C3/DD98: D0F6 BNE $DD90 ; Branch if not zero | ||
C3/DD9A: 9C1821 STZ $2118 | C3/DD9A: 9C1821 STZ $2118 ; Store eight empty (double?)-bytes in VRAM | ||
C3/DD9D: 9C1821 STZ $2118 | C3/DD9D: 9C1821 STZ $2118 | ||
C3/DDA0: 9C1821 STZ $2118 | C3/DDA0: 9C1821 STZ $2118 | ||
Line 1,717: | Line 1,753: | ||
C3/DDAC: 9C1821 STZ $2118 | C3/DDAC: 9C1821 STZ $2118 | ||
C3/DDAF: 9C1821 STZ $2118 | C3/DDAF: 9C1821 STZ $2118 | ||
C3/DDB2: C4EB CPY $EB | C3/DDB2: C4EB CPY $EB ; Compare Y to exit value | ||
C3/DDB4: D0D7 BNE $DD8D | C3/DDB4: D0D7 BNE $DD8D ; Branch if exit value is not reached yet | ||
C3/DDB6: E220 SEP #$20 | C3/DDB6: E220 SEP #$20 ; (8 bit memory/accum.) | ||
C3/DDB8: 60 RTS | C3/DDB8: 60 RTS | ||
==C3/DDB9 | |||
C3/DDB9: C220 REP #$20 | ==C3/DDB9 Data Transfer loop to VRAM== | ||
This transfers data to the VRAM. Not by DMA, but by loop. The following registers have to be set with the according values first: | |||
Y: VRAM destination | |||
$E7: Data Address | |||
$E9: Data Bank | |||
$EB: Loop Counter comparison value (LOW BYTE) | |||
$EC: Loop Counter comparison value (HIGH BYTE) | |||
$ED: value that gets added to each transfered data double-byte (LOW BYTE) | |||
$EE: value that gets added to each transfered data double-byte (HIGH BYTE) | |||
$EB/$EC can be used for tile maps. This gets used to set all tiles to a certain palette, or sets the priority bit, for example. | |||
C3/DDB9: C220 REP #$20 ; (16 bit memory/accum.) | |||
C3/DDBB: 98 TYA | C3/DDBB: 98 TYA | ||
C3/DDBC: 8D1621 STA $2116 | C3/DDBC: 8D1621 STA $2116 ; Set VRAM address | ||
C3/DDBF: 7B TDC | C3/DDBF: 7B TDC | ||
C3/DDC0: A8 TAY | C3/DDC0: A8 TAY ; Clear Loop counter | ||
C3/DDC1: B7E7 LDA [$E7],Y | C3/DDC1: B7E7 LDA [$E7],Y ; Load new data value | ||
C3/DDC3: 18 CLC | C3/DDC3: 18 CLC | ||
C3/DDC4: 65ED ADC $ED | C3/DDC4: 65ED ADC $ED ; Add value | ||
C3/DDC6: 8D1821 STA $2118 | C3/DDC6: 8D1821 STA $2118 ; Store value in VRAM | ||
C3/DDC9: C8 INY | C3/DDC9: C8 INY ; Increment counter | ||
C3/DDCA: C8 INY | C3/DDCA: C8 INY | ||
C3/DDCB: C4EB CPY $EB | C3/DDCB: C4EB CPY $EB ; Is the limit reached? | ||
C3/DDCD: D0F2 BNE $DDC1 | C3/DDCD: D0F2 BNE $DDC1 ; Else: Loop | ||
C3/DDCF: E220 SEP #$20 | C3/DDCF: E220 SEP #$20 ; (8 bit memory/accum.) | ||
C3/DDD1: 60 RTS | C3/DDD1: 60 RTS | ||
==C3/DDD2 unknow== | ==C3/DDD2 unknow== | ||
C3/DDD2: 8B PHB | C3/DDD2: 8B PHB |
Latest revision as of 02:41, 24 January 2024
This is a sub-page of Final Fantasy VI/ROM map.
C3/D000 unknow
C3/D000: A62D LDX $2D C3/D002: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/D005: 9E4933 STZ $3349,X C3/D008: 200612 JSR $1206 C3/D00B: A62D LDX $2D C3/D00D: 20FFCB JSR $CBFF C3/D010: FE4933 INC $3349,X C3/D013: 202112 JSR $1221 (draw the sprites!) C3/D016: 38 SEC (not done with this queue yet) C3/D017: 60 RTS
C3/D018 unknow
DP $26 is 1D, 1E, or 1F C3/D018: A9C2 LDA #$C2 C3/D01A: A04930 LDY #$3049 C3/D01D: A29C95 LDX #$959C C3/D020: 208E0F JSR $0F8E (copy stuff from C2/959C to 7E/3049) C3/D023: A9C2 LDA #$C2 C3/D025: A06930 LDY #$3069 C3/D028: A29C95 LDX #$959C C3/D02B: 208E0F JSR $0F8E (copy stuff from C2/959C and 7E/3069, also JMP!) C3/D02E: 60 RTS
C3/D02F unknow
DP $26 is 20 C3/D02F: 22D7CED4 JSL $D4CED7 C3/D033: 209FC5 JSR $C59F C3/D036: A980 LDA #$80 C3/D038: 8D1A21 STA $211A C3/D03B: 200AD6 JSR $D60A C3/D03E: 20E6D3 JSR $D3E6 C3/D041: 2255CED4 JSL $D4CE55 C3/D045: A9C2 LDA #$C2 C3/D047: A0C931 LDY #$31C9 C3/D04A: A25497 LDX #$9754 C3/D04D: 208E0F JSR $0F8E (copy stuff from C2/9754 to 7E/31C9) C3/D050: A9C2 LDA #$C2 C3/D052: A0E931 LDY #$31E9 C3/D055: A24C97 LDX #$974C C3/D058: 208E0F JSR $0F8E (copy stuff from C2/974C to 7E/31E9) C3/D05B: 2073D1 JSR $D173 C3/D05E: 2018D0 JSR $D018 C3/D061: A00100 LDY #$0001 C3/D064: 84BB STY $BB C3/D066: 84C1 STY $C1 C3/D068: A00800 LDY #$0008 C3/D06B: 84B7 STY $B7 C3/D06D: A01800 LDY #$0018 C3/D070: 84B9 STY $B9 C3/D072: A0D8FF LDY #$FFD8 C3/D075: 8435 STY $35 C3/D077: A0D0FF LDY #$FFD0 C3/D07A: 8437 STY $37 C3/D07C: A900 LDA #$00 C3/D07E: A022D1 LDY #$D122 C3/D081: 207311 JSR $1173 (put C3/D122 in the queue) C3/D084: E626 INC $26 (execute at C3/D096) C3/D086: A09600 LDY #$0096 C3/D089: 8420 STY $20 C3/D08B: A900 LDA #$00 C3/D08D: A0A8D0 LDY #$D0A8 C3/D090: 207311 JSR $1173 (put C3/D0A8 in the queue) C3/D093: 4C6CC6 JMP $C66C
C3/D096 unknow
DP $26 is 21 C3/D096: A420 LDY $20 C3/D098: D00D BNE $D0A7 C3/D09A: 6426 STZ $26 (execute at C3/C5BE) C3/D09C: A07800 LDY #$0078 C3/D09F: 8420 STY $20 C3/D0A1: 206BE1 JSR $E16B C3/D0A4: 2041E2 JSR $E241 (JMP fool!) C3/D0A7: 60 RTS
C3/D0A8 unknow
C3/D0A8: A523 LDA $23 C3/D0AA: 2901 AND #$01 C3/D0AC: F011 BEQ $D0BF C3/D0AE: A951 LDA #$51 C3/D0B0: 8F49987E STA $7E9849 C3/D0B4: A94F LDA #$4F C3/D0B6: 8F4A987E STA $7E984A C3/D0BA: 20D0D0 JSR $D0D0 C3/D0BD: 38 SEC C3/D0BE: 60 RTS
C3/D0BF unknow
C3/D0BF: A959 LDA #$59 C3/D0C1: 8F49987E STA $7E9849 C3/D0C5: A95A LDA #$5A C3/D0C7: 8F4A987E STA $7E984A C3/D0CB: 20D0D0 JSR $D0D0 C3/D0CE: 38 SEC C3/D0CF: 60 RTS
C3/D0D0 unknow
C3/D0D0: A08302 LDY #$0283 C3/D0D3: 8414 STY $14 C3/D0D5: A04998 LDY #$9849 C3/D0D8: 8416 STY $16 C3/D0DA: A00602 LDY #$0206 C3/D0DD: 841B STY $1B C3/D0DF: A04A98 LDY #$984A C3/D0E2: 841D STY $1D C3/D0E4: A97E LDA #$7E C3/D0E6: 8518 STA $18 C3/D0E8: 851F STA $1F C3/D0EA: A00100 LDY #$0001 C3/D0ED: 8412 STY $12 C3/D0EF: 8419 STY $19 C3/D0F1: 60 RTS
C3/D0F2 unknow
C3/D0F2: A523 LDA $23 C3/D0F4: 2901 AND #$01 C3/D0F6: F00B BEQ $D103 C3/D0F8: A958 LDA #$58 C3/D0FA: 8F49987E STA $7E9849 C3/D0FE: 200ED1 JSR $D10E C3/D101: 38 SEC C3/D102: 60 RTS
C3/D103 unknow
C3/D103: A934 LDA #$34 C3/D105: 8F49987E STA $7E9849 C3/D109: 200ED1 JSR $D10E C3/D10C: 38 SEC C3/D10D: 60 RTS
C3/D10E unknow
C3/D10E: A09208 LDY #$0892 C3/D111: 8414 STY $14 C3/D113: A04998 LDY #$9849 C3/D116: 8416 STY $16 C3/D118: A97E LDA #$7E C3/D11A: 8518 STA $18 C3/D11C: A00100 LDY #$0001 C3/D11F: 8412 STY $12 C3/D121: 60 RTS
C3/D122 unknow
DP $26 is 22, 23, or 24 C3/D122: 2027D1 JSR $D127 C3/D125: 38 SEC C3/D126: 60 RTS
C3/D127 unknow
C3/D127: A523 LDA $23 C3/D129: 2907 AND #$07 C3/D12B: D00A BNE $D137 C3/D12D: A4B9 LDY $B9 C3/D12F: 88 DEY C3/D130: 84B9 STY $B9 C3/D132: A4B7 LDY $B7 C3/D134: C8 INY C3/D135: 84B7 STY $B7 C3/D137: C220 REP #$20 (16 bit memory/accum.) C3/D139: E6BB INC $BB C3/D13B: E6BB INC $BB C3/D13D: E6C1 INC $C1 C3/D13F: E6C1 INC $C1 C3/D141: E220 SEP #$20 (8 bit memory/accum.) C3/D143: 60 RTS
C3/D144 Setup and execute VRAM transfer
C3/D144: A0BAD7 LDY #$D7BA ; Data Source Address: #$D7BA C3/D147: 84E7 STY $E7 C3/D149: A97E LDA #$7E ; Data Source Bank: #$7E (WRAM) C3/D14B: 85E9 STA $E9 C3/D14D: A08005 LDY #$0580 C3/D150: 84EB STY $EB ; Transfer #$580 bytes C3/D152: 64ED STZ $ED ; No value-to-add to the data double-bytes C3/D154: 64EE STZ $EE C3/D156: A0006C LDY #$6C00 ; Destination in VRAM C3/D159: 4CB9DD JMP $DDB9 ; TRANSFER TO VRAM
C3/D15C unknow
C3/D15C: A9C3 LDA #$C3 C3/D15E: A0C931 LDY #$31C9 C3/D161: A2F410 LDX #$10F4 C3/D164: 208E0F JSR $0F8E (copy stuff from C3/10F4 to 7E/31C9) C3/D167: A9C3 LDA #$C3 C3/D169: A0E931 LDY #$31E9 C3/D16C: A2F410 LDX #$10F4 C3/D16F: 208E0F JSR $0F8E (copy stuff from C3/10F4 to 7E/31E9) C3/D172: 60 RTS
C3/D173 unknow
C3/D173: A9C2 LDA #$C2 C3/D175: A06930 LDY #$3069 C3/D178: A2BC95 LDX #$95BC C3/D17B: 208E0F JSR $0F8E (copy stuff from C2/95BC to 7E/3069) C3/D17E: A9C2 LDA #$C2 C3/D180: A08930 LDY #$3089 C3/D183: A2DC95 LDX #$95DC C3/D186: 208E0F JSR $0F8E (copy stuff from C2/95DC to 7E/3089) C3/D189: A9C2 LDA #$C2 C3/D18B: A0A930 LDY #$30A9 C3/D18E: A2FC95 LDX #$95FC C3/D191: 208E0F JSR $0F8E (copy stuff from C2/95FC to 7E/30A9) C3/D194: A9C2 LDA #$C2 C3/D196: A0C930 LDY #$30C9 C3/D199: A21C96 LDX #$961C C3/D19C: 208E0F JSR $0F8E (copy stuff from C2/961C to 7E/30C9) C3/D19F: A9C2 LDA #$C2 C3/D1A1: A00931 LDY #$3109 C3/D1A4: A23C96 LDX #$963C C3/D1A7: 208E0F JSR $0F8E (copy stuff from C2/963C to 7E/3109) C3/D1AA: A9C2 LDA #$C2 C3/D1AC: A02931 LDY #$3129 C3/D1AF: A25C96 LDX #$965C C3/D1B2: 208E0F JSR $0F8E (copy stuff from C2/965C to 7E/3129, also JMP!) C3/D1B5: 60 RTS
C3/D1B6 unknow
C3/D1B6: A4CF LDY $CF C3/D1B8: C464 CPY $64 C3/D1BA: F00E BEQ $D1CA C3/D1BC: A523 LDA $23 C3/D1BE: 2903 AND #$03 C3/D1C0: D006 BNE $D1C8 C3/D1C2: C220 REP #$20 (16 bit memory/accum.) C3/D1C4: C63F DEC $3F C3/D1C6: E220 SEP #$20 (8 bit memory/accum.) C3/D1C8: 38 SEC C3/D1C9: 60 RTS C3/D1CA: 18 CLC C3/D1CB: 60 RTS
C3/D1CC code and jump table
C3/D1CC: AA TAX C3/D1CD: 7CD0D1 JMP ($D1D0,X) C3/D1D0: D4D1 C3/D1D2: E3D1
C3/D1D4 unknow
C3/D1D4: A62D LDX $2D C3/D1D6: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/D1D9: A901 LDA #$01 C3/D1DB: 9D4A34 STA $344A,X C3/D1DE: A90F LDA #$0F C3/D1E0: 9D4933 STA $3349,X C3/D1E3: A62D LDX $2D C3/D1E5: BD4933 LDA $3349,X C3/D1E8: F00D BEQ $D1F7 C3/D1EA: BD4A34 LDA $344A,X C3/D1ED: 8544 STA $44 C3/D1EF: FE4A34 INC $344A,X C3/D1F2: DE4933 DEC $3349,X C3/D1F5: 38 SEC (not done with this queue yet) C3/D1F6: 60 RTS C3/D1F7: A90F LDA #$0F C3/D1F9: 8544 STA $44 C3/D1FB: 18 CLC (this queue can be removed) C3/D1FC: 60 RTS
C3/D1FD code and jump table
C3/D1FD: AA TAX C3/D1FE: 7C01D2 JMP ($D201,X) C3/D201: 05D2 C3/D203: 0FD2
C3/D205 unknow
C3/D205: A62D LDX $2D C3/D207: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/D20A: A90F LDA #$0F C3/D20C: 9DCA33 STA $33CA,X C3/D20F: A420 LDY $20 C3/D211: F00C BEQ $D21F C3/D213: A62D LDX $2D C3/D215: BDCA33 LDA $33CA,X C3/D218: 8544 STA $44 C3/D21A: DECA33 DEC $33CA,X C3/D21D: 38 SEC (not done with this queue yet) C3/D21E: 60 RTS
C3/D21F unknow
C3/D21F: A980 LDA #$80 C3/D221: 8544 STA $44 C3/D223: 18 CLC (this queue can be removed) C3/D224: 60 RTS
C3/D225 unknow
C3/D225: 48 PHA C3/D226: 5A PHY C3/D227: A901 LDA #$01 C3/D229: A03FD2 LDY #$D23F C3/D22C: 207311 JSR $1173 (put C3/D23F in the queue) C3/D22F: C220 REP #$20 (16 bit memory/accum.) C3/D231: 7A PLY C3/D232: 98 TYA C3/D233: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/D237: E220 SEP #$20 (8 bit memory/accum.) C3/D239: 68 PLA C3/D23A: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/D23E: 60 RTS
C3/D23F code and jump table
C3/D23F: AA TAX C3/D240: 7C43D2 JMP ($D243,X) C3/D243: 47D2 C3/D245: 4FD2
C3/D247 unknow
C2/D247: A62D LDX $2D C3/D249: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/D24C: 200612 JSR $1206 C3/D24F: A62D LDX $2D C3/D251: 202712 JSR $1227 C3/D254: 7B TDC C3/D255: BDC936 LDA $36C9,X C3/D258: A8 TAY C3/D259: C220 REP #$20 (16 bit memory/accum.) C3/D25B: B7EB LDA [$EB],Y C3/D25D: 8504 STA $04 C3/D25F: E220 SEP #$20 (8 bit memory/accum.) C3/D261: 38 SEC (not done with this queue yet) C3/D262: 60 RTS
C3/D263 Transfer variables to Mode 7 Matrix registers
C3/D263: A5BB LDA $BB C3/D265: 8D1B21 STA $211B ; M7A C3/D268: A5BC LDA $BC C3/D26A: 8D1B21 STA $211B ; M7A C3/D26D: A5BD LDA $BD C3/D26F: 8D1C21 STA $211C ; M7B C3/D272: A5BE LDA $BE C3/D274: 8D1C21 STA $211C ; M7B C3/D277: A5BF LDA $BF C3/D279: 8D1D21 STA $211D ; M7C C3/D27C: A5C0 LDA $C0 C3/D27E: 8D1D21 STA $211D ; M7C C3/D281: A5C1 LDA $C1 C3/D283: 8D1E21 STA $211E ; M7D C3/D286: A5C2 LDA $C2 C3/D288: 8D1E21 STA $211E ; M7D C3/D28B: A5B7 LDA $B7 C3/D28D: 8D1F21 STA $211F ; M7X C3/D290: A5B8 LDA $B8 C3/D292: 8D1F21 STA $211F ; M7X C3/D295: A5B9 LDA $B9 C3/D297: 8D2021 STA $2120 ; M7Y C3/D29A: A5BA LDA $BA C3/D29C: 8D2021 STA $2120 ; M7Y C3/D29F: 60 RTS
C3/D2A0 unknow
C3/D2A0: A900 LDA #$00 C3/D2A2: A0A9D2 LDY #$D2A9 C3/D2A5: 207311 JSR $1173 (put C3/D2A9 in the queue) C3/D2A8: 60 RTS
C3/D2A9 unknow
C3/D2A9: A504 LDA $04 C3/D2AB: 8910 BIT #$10 (anyone pressing L?) C3/D2AD: F008 BEQ $D2B7 (branch if not) C3/D2AF: C220 REP #$20 (16 bit memory/accum.) C3/D2B1: E6C3 INC $C3 C3/D2B3: E220 SEP #$20 (8 bit memory/accum.) C3/D2B5: E659 INC $59 C3/D2B7: A504 LDA $04 C3/D2B9: 8920 BIT #$20 (anyone pressing R?) C3/D2BB: F008 BEQ $D2C5 (branch if not) C3/D2BD: C220 REP #$20 (16 bit memory/accum.) C3/D2BF: C6C3 DEC $C3 C3/D2C1: E220 SEP #$20 (8 bit memory/accum.) C3/D2C3: C659 DEC $59 C3/D2C5: A504 LDA $04 C3/D2C7: 8940 BIT #$40 (anyone pressing X?) C3/D2C9: F006 BEQ $D2D1 (branch if not) C3/D2CB: C220 REP #$20 (16 bit memory/accum.) C3/D2CD: E6C7 INC $C7 C3/D2CF: E220 SEP #$20 (8 bit memory/accum.) C3/D2D1: A505 LDA $05 C3/D2D3: 8940 BIT #$40 (anyone pressing Y?) C3/D2D5: F006 BEQ $D2DD (branch if not) C3/D2D7: C220 REP #$20 (16 bit memory/accum.) C3/D2D9: C6C7 DEC $C7 C3/D2DB: E220 SEP #$20 (8 bit memory/accum.) C3/D2DD: A504 LDA $04 C3/D2DF: 8980 BIT #$80 (anyone pressing A?) C3/D2E1: F002 BEQ $D2E5 (branch if not, BPL...) C3/D2E3: E6C6 INC $C6 C3/D2E5: A505 LDA $05 C3/D2E7: 8980 BIT #$80 (anyone pressing B?) C3/D2E9: F002 BEQ $D2ED (branch if not, BPL...) C3/D2EB: C6C6 DEC $C6 C3/D2ED: A505 LDA $05 C3/D2EF: 8908 BIT #$08 (anyone pressing up?) C3/D2F1: F008 BEQ $D2FB (branch if not) C3/D2F3: C220 REP #$20 (16 bit memory/accum.) C3/D2F5: C6B9 DEC $B9 C3/D2F7: C637 DEC $37 C3/D2F9: E220 SEP #$20 (8 bit memory/accum.) C3/D2FB: A505 LDA $05 C3/D2FD: 8904 BIT #$04 (anyone pressing down?) C3/D2FF: F008 BEQ $D309 (branch if not) C3/D301: C220 REP #$20 (16 bit memory/accum.) C3/D303: E6B9 INC $B9 C3/D305: E637 INC $37 C3/D307: E220 SEP #$20 (8 bit memory/accum.) C3/D309: A505 LDA $05 C3/D30B: 8902 BIT #$02 (anyone pressing left?) C3/D30D: F008 BEQ $D317 (branch if not) C3/D30F: C220 REP #$20 (16 bit memory/accum.) C3/D311: C6B7 DEC $B7 C3/D313: C635 DEC $35 C3/D315: E220 SEP #$20 (8 bit memory/accum.) C3/D317: A505 LDA $05 C3/D319: 8901 BIT #$01 (anyone pressing right?, LSR A...) C3/D31B: F008 BEQ $D325 (branch if not, BCC...) C3/D31D: C220 REP #$20 (16 bit memory/accum.) C3/D31F: E6B7 INC $B7 C3/D321: E635 INC $35 C3/D323: E220 SEP #$20 (8 bit memory/accum.) C3/D325: 2038D3 JSR $D338 C3/D328: C220 REP #$20 (16 bit memory/accum.) C3/D32A: A504 LDA $04 (load shared controller bits) C3/D32C: 29FFF0 AND #$F0FF (filter out directions, aka D-pad) C3/D32F: E220 SEP #$20 (8 bit memory/accum.) C3/D331: F003 BEQ $D336 (branch if any other button isn't being pressed) C3/D333: 20D2DD JSR $DDD2 C3/D336: 38 SEC (not done with this queue yet) C3/D337: 60 RTS
C3/D338 unknow
C3/D338: C220 REP #$20 (16 bit memory/accum.) C3/D33A: A5B7 LDA $B7 C3/D33C: 29FF1F AND #$1FFF C3/D33F: 85B7 STA $B7 C3/D341: A5B9 LDA $B9 C3/D343: 29FF1F AND #$1FFF C3/D346: 85B9 STA $B9 C3/D348: E220 SEP #$20 (8 bit memory/accum.) C3/D34A: 60 RTS
C3/D34B unknow
C3/D34B: 228FCBD4 JSL $D4CB8F (from C3/CA77) C3/D34F: 9C1043 STZ $4310 C3/D352: A905 LDA #$05 C3/D354: 8D1143 STA $4311 (register address becomes $2105) C3/D357: A06AD3 LDY #$D36A C3/D35A: 8C1243 STY $4312 (set address) C3/D35D: A9C3 LDA #$C3 C3/D35F: 8D1443 STA $4314 (set bank, C3/D36A) C3/D362: 8D1743 STA $4317 C3/D365: A902 LDA #$02 C3/D367: 0443 TSB $43 (eventually enable channel 1 of HDMA) C3/D369: 60 RTS
C3/D36A hdma table
C3/D36A: 4701 C3/D36C: 0107 C3/D36E: 00
C3/D36F unknow
C2/D36F: A901 LDA #$01 (from C3/C9DD, C3/CD28, C3/CEFD) C3/D371: 8D3043 STA $4330 C3/D374: A930 LDA #$30 C3/D376: 8D3143 STA $4331 (register address becomes $2130) C3/D379: A0A7D3 LDY #$D3A7 C3/D37C: 8C3243 STY $4332 (set address) C3/D37F: A9C3 LDA #$C3 C3/D381: 8D3443 STA $4334 (set bank, C3/D3A7) C3/D384: 8D3743 STA $4337 C3/D387: A908 LDA #$08 C3/D389: 0443 TSB $43 (eventually enable channel 3 of HDMA) C3/D38B: 60 RTS
C3/D38C unknow
C3/D38C: 9C2043 STZ $4320 (from C3/C9DA, C3/CD25, C3/CEFA) C3/D38F: A932 LDA #$32 C3/D391: 8D2143 STA $4321 (register address becomes $2132) C3/D394: A0AED3 LDY #$D3AE C3/D397: 8C2243 STY $4322 (set address) C3/D39A: A9C3 LDA #$C3 C3/D39C: 8D2443 STA $4324 (set bank, C3/D3AE) C3/D39F: 8D2743 STA $4327 C3/D3A2: A904 LDA #$04 C3/D3A4: 0443 TSB $43 (eventually enable channel 2 of HDMA) C3/D3A6: 60 RTS
C3/D3A7 hdma table
C3/D3A7: 4780 C3/D3A9: 4101 C2/D3AB: 8201 C3/D3AD: 00
C3/D3AE hdma table
C3/D3AE: 47E0 C3/D3B0: 01ED C3/D3B2: 01EB C3/D3B4: 01EA C3/D3B6: 02E9 C3/D3B8: 03E8 C3/D3BA: 04E7 C3/D3BC: 05E6 C3/D3BE: 06E5 C3/D3C0: 07E4 C3/D3C2: 08E3 C3/D3C4: 0CE2 C3/D3C6: 0FE1 C3/D3C8: 1EE0 C3/D3CA: 00
C3/D3CB unknow
C3/D3CB: 9C2043 STZ $4320 C3/D3CC: A932 LDA #$32 C3/D3CF: 8D2143 STA $4321 (register address becomes $2132) C3/D3D3: A04998 LDY #$9849 C3/D3D6: 8C2243 STY $4322 (set address) C3/D3D9: A97E LDA #$7E C3/D3DB: 8D2443 STA $4324 (set bank, 7E/9849) C3/D3DE: 8D2743 STA $4327 C3/D3E1: A904 LDA #$04 C3/D3E3: 0443 TSB $43 (eventually enable channel 2 of HDMA) C3/D3E5: 60 RTS
C3/D3E6 unknow
C3/D3E6: A00001 LDY #$0100 C3/D3E9: 84B7 STY $B7 C3/D3EB: A08000 LDY #$0080 C3/D3EE: 84B9 STY $B9 C3/D3F0: 8435 STY $35 C3/D3F2: 7B TDC C3/D3F3: A8 TAY C3/D3F4: 8437 STY $37 C3/D3F6: 6458 STZ $58 C3/D3F8: A940 LDA #$40 C3/D3FA: 8559 STA $59 C3/D3FC: A00000 LDY #$0000 C3/D3FF: 84C7 STY $C7 C3/D401: A00001 LDY #$0100 C3/D404: 84C5 STY $C5 C3/D406: A00000 LDY #$0000 C3/D409: 84C3 STY $C3 C3/D40B: 60 RTS
C3/D40C unknow
C3/D40C: 2039D4 JSR $D439 C3/D40F: 20B1D6 JSR $D6B1 C3/D412: 206BD6 JSR $D66B C3/D415: 2052D5 JSR $D552 C3/D418: 202AD4 JSR $D42A C3/D41B: 2034D6 JSR $D634 C3/D41E: 206BD6 JSR $D66B C3/D421: 2062D5 JSR $D562 C3/D424: 202AD4 JSR $D42A C3/D427: 4C4CD6 JMP $D64C
C3/D42A unknow
C3/D42A: 208DD6 JSR $D68D C3/D42D: A21AFC LDX #$FC1A C3/D430: 86F1 STX $F1 C3/D432: A97E LDA #$7E C3/D434: 85F3 STA $F3 C3/D436: 4C06D7 JMP $D706
C3/D439 unknow
C3/D439: A000BA LDY #$BA00 C3/D43C: A9C4 LDA #$C4 C3/D43E: 2061DD JSR $DD61 C3/D441: 2097D4 JSR $D497 C3/D444: A000C0 LDY #$C000 C3/D447: 84E7 STY $E7 C3/D449: A97E LDA #$7E C3/D44B: 85E9 STA $E9 C3/D44D: A0000C LDY #$0C00 C3/D450: 84EB STY $EB C3/D452: A00070 LDY #$7000 C3/D455: 2086DD JSR $DD86 C3/D458: A0C087 LDY #$87C0 C3/D45B: 84E7 STY $E7 C3/D45D: A9C4 LDA #$C4 C3/D45F: 85E9 STA $E9 C3/D461: A00002 LDY #$0200 C3/D464: 84EB STY $EB C3/D466: A0007E LDY #$7E00 C3/D469: 2086DD JSR $DD86 C3/D46C: 4C6FD4 JMP $D46F
C3/D46F unknow
C3/D46F: A0108C LDY #$8C10 C3/D472: 84E7 STY $E7 C3/D474: A9C4 LDA #$C4 C3/D476: 85E9 STA $E9 C3/D478: A01000 LDY #$0010 C3/D47B: 84EB STY $EB C3/D47D: A0A07F LDY #$7FA0 C3/D480: 2086DD JSR $DD86 C3/D483: A0B08F LDY #$8FB0 C3/D486: 84E7 STY $E7 C3/D488: A9C4 LDA #$C4 C3/D48A: 85E9 STA $E9 C3/D48C: A01000 LDY #$0010 C3/D48F: 84EB STY $EB C3/D491: A0B07F LDY #$7FB0 C3/D494: 4C86DD JMP $DD86
C3/D497 unknow
C3/D497: 8B PHB C3/D498: A97E LDA #$7E C3/D49A: 48 PHA C3/D49B: AB PLB C3/D49C: A600 LDX $00 C3/D49E: 9B TXY C3/D49F: DA PHX C3/D4A0: 7B TDC C3/D4A1: BF5498C2 LDA $C29854,X C3/D4A5: C220 REP #$20 (16 bit memory/accum.) C3/D4A7: 0A ASL A C3/D4A8: 0A ASL A C3/D4A9: 0A ASL A C3/D4AA: 0A ASL A C3/D4AB: AA TAX C3/D4AC: E220 SEP #$20 (8 bit memory/accum.) C3/D4AE: A910 LDA #$10 C3/D4B0: 85E0 STA $E0 C3/D4B2: BD00C0 LDA $C000,X C3/D4B5: 9900C4 STA $C400,Y C3/D4B8: E8 INX C3/D4B9: C8 INY C3/D4BA: C6E0 DEC $E0 C3/D4BC: D0F4 BNE $D4B2 C3/D4BE: 7B TDC C3/D4BF: AA TAX C3/D4C0: 9900C4 STA $C400,Y C3/D4C3: C8 INY C3/D4C4: E8 INX C3/D4C5: E01000 CPX #$0010 C3/D4C8: D0F6 BNE $D4C0 C3/D4CA: FA PLX C3/D4CB: E8 INX C3/D4CC: E04000 CPX #$0040 C3/D4CF: D0CE BNE $D49F C3/D4D1: AB PLB C3/D4D2: 60 RTS
C3/D4D3 Transfer Sky graphics to VRAM
C3/D4D3: C220 REP #$20 ; (from C3/CA74) 16 bit memory/accum. C3/D4D5: AF06B2EE LDA $EEB206 ; pointer to sky graphics address C3/D4D9: A8 TAY C3/D4DA: E220 SEP #$20 ; 8 bit memory/accum. C3/D4DC: AF08B2EE LDA $EEB208 ; pointer to sky graphics bank C3/D4E0: 2061DD JSR $DD61 ; prepare for and do LZ decompression C3/D4E3: 2018D5 JSR $D518 ; Sets $E7-$E9 to $7EC000 C3/D4E6: A0201A LDY #$1A20 C3/D4E9: 84EB STY $EB ; $1A20 bytes to transfer C3/D4EB: 64ED STZ $ED ; No value-to-add to the data bytes C3/D4ED: 64EE STZ $EE C3/D4EF: A00040 LDY #$4000 ; VRAM destination: $4000 C3/D4F2: 20B9DD JSR $DDB9 ; TRANSFER TO VRAM C3/D4F5: C220 REP #$20 ; 16 bit memory/accum. C3/D4F7: AF09B2EE LDA $EEB209 ; sky tilemap address C3/D4FB: A8 TAY C3/D4FC: E220 SEP #$20 ; 8 bit memory/accum. C3/D4FE: AF0BB2EE LDA $EEB20B ; sky tilemap bank C3/D502: 2061DD JSR $DD61 ; prepare for and do LZ decompression C3/D505: A00020 LDY #$2000 C3/D508: 84ED STY $ED ; Add #$2000 to each data byte (sets tile priority for each tile) C3/D50A: 2018D5 JSR $D518 ; Sets $E7-$E9 to $7EC000 C3/D50D: A00004 LDY #$0400 C3/D510: 84EB STY $EB ; $400 byte to transfer C3/D512: A00050 LDY #$5000 ; VRAM destination: $5000 C3/D515: 4CB9DD JMP $DDB9 ; TRANSFER TO VRAM
C3/D518 unknow
C3/D518: A000C0 LDY #$C000 C3/D51B: 84E7 STY $E7 C3/D51D: A97E LDA #$7E C3/D51F: 85E9 STA $E9 C3/D521: 60 RTS
C3/D522 unknow
C3/D522: 2039D4 JSR $D439 C3/D525: 20B1D6 JSR $D6B1 C3/D528: 20D6D6 JSR $D6D6 C3/D52B: 206BD6 JSR $D66B C3/D52E: 2052D5 JSR $D552 C3/D531: 2043D5 JSR $D543 C3/D534: 2034D6 JSR $D634 C3/D537: 206BD6 JSR $D66B C3/D53A: 2062D5 JSR $D562 C3/D53D: 2043D5 JSR $D543 C3/D540: 4C4CD6 JMP $D64C
C3/D543 unknow
C3/D543: 2086D6 JSR $D686 C3/D546: A21AFC LDX #$FC1A C3/D549: 86F1 STX $F1 C3/D54B: A97E LDA #$7E C3/D54D: 85F3 STA $F3 C3/D54F: 4C06D7 JMP $D706
C3/D552 unknow
C3/D552: 64E4 STZ $E4 C3/D554: 64E5 STZ $E5 C3/D556: A980 LDA #$80 C3/D558: 85ED STA $ED C3/D55A: A20098 LDX #$9800 C3/D55D: A97F LDA #$7F C3/D55F: 4C4FD7 JMP $D74F
C3/D562 unknow
C3/D562: A28000 LDX #$0080 C3/D565: 86E4 STX $E4 C3/D567: A980 LDA #$80 C3/D569: 85ED STA $ED C3/D56B: A200A8 LDX #$A800 C3/D56E: A97F LDA #$7F C3/D570: 4C4FD7 JMP $D74F
C3/D573 unknow
C3/D573: 2039D4 JSR $D439 C3/D576: 2094D6 JSR $D694 C3/D579: 20D6D6 JSR $D6D6 C3/D57C: 4C82D5 JMP $D582
C3/D57F unknow
C3/D57F: 2094D6 JSR $D694 C3/D582: 2064D6 JSR $D664 C3/D585: 2052D5 JSR $D552 C3/D588: 209BD5 JSR $D59B C3/D58B: 2034D6 JSR $D634 C3/D58E: 2064D6 JSR $D664 C3/D591: 2062D5 JSR $D562 C3/D594: 209BD5 JSR $D59B C3/D597: 204CD6 JSR $D64C C3/D59A: 6B RTL
C3/D59B unknow
C3/D59B: 2075D6 JSR $D675 C3/D59E: A23ADD LDX #$DD3A C3/D5A1: 86F1 STX $F1 C3/D5A3: A97E LDA #$7E C3/D5A5: 85F3 STA $F3 C3/D5A7: 4C06D7 JMP $D706
C3/D5AA unknow
C3/D5AA: 2039D4 JSR $D439 C3/D5AD: 2094D6 JSR $D694 C3/D5B0: 20D6D6 JSR $D6D6 C3/D5B3: 2064D6 JSR $D664 C3/D5B6: 2052D5 JSR $D552 C3/D5B9: 20CBD5 JSR $D5CB C3/D5BC: 2034D6 JSR $D634 C3/D5BF: 2064D6 JSR $D664 C3/D5C2: 2062D5 JSR $D562 C3/D5C5: 20CBD5 JSR $D5CB C3/D5C8: 4C4CD6 JMP $D64C
C3/D5CB unknow
C3/D5CB: 207FD6 JSR $D67F C3/D5CE: A2FA2C LDX #$2CFA C3/D5D1: 86F1 STX $F1 C3/D5D3: A97F LDA #$7F C3/D5D5: 85F3 STA $F3 C3/D5D7: 4C06D7 JMP $D706
C3/D5DA unknow
C3/D5DA: 2039D4 JSR $D439 C3/D5DD: 2094D6 JSR $D694 C3/D5E0: 20D6D6 JSR $D6D6 C3/D5E3: 2064D6 JSR $D664 C3/D5E6: 2052D5 JSR $D552 C3/D5E9: 20FBD5 JSR $D5FB C3/D5EC: 2034D6 JSR $D634 C3/D5EF: 2064D6 JSR $D664 C3/D5F2: 2062D5 JSR $D562 C3/D5F5: 20FBD5 JSR $D5FB C3/D5F8: 4C4CD6 JMP $D64C
C3/D5FB unknow
C3/D5FB: 2086D6 JSR $D686 C3/D5FE: A2FA2C LDX #$2CFA C3/D601: 86F1 STX $F1 C3/D603: A97F LDA #$7F C3/D605: 85F3 STA $F3 C3/D607: 4C06D7 JMP $D706
C3/D60A unknow
C3/D60A: 20B1D6 JSR $D6B1 C3/D60D: 206BD6 JSR $D66B C3/D610: 2052D5 JSR $D552 C3/D613: 2025D6 JSR $D625 C3/D616: 2034D6 JSR $D634 C3/D619: 206BD6 JSR $D66B C3/D61C: 2062D5 JSR $D562 C3/D61F: 2025D6 JSR $D625 C3/D622: 4C4CD6 JMP $D64C
C3/D625 unknow
C3/D625: 2075D6 JSR $D675 C3/D628: A21A04 LDX #$041A C3/D62B: 86F1 STX $F1 C3/D62D: A97F LDA #$7F C3/D62F: 85F3 STA $F3 C3/D631: 4C06D7 JMP $D706
C3/D634 unknow
C3/D634: A000B8 LDY #$B800 C3/D637: 84E7 STY $E7 C3/D639: A97F LDA #$7F C3/D63B: 85E9 STA $E9 C3/D63D: 64ED STZ $ED C3/D63F: 64EE STZ $EE C3/D641: A00040 LDY #$4000 C3/D644: 84EB STY $EB C3/D646: A00000 LDY #$0000 C3/D649: 4CB9DD JMP $DDB9
C3/D64C unknow
C3/D64C: A000B8 LDY #$B800 C3/D64F: 84E7 STY $E7 C3/D651: A97F LDA #$7F C3/D653: 85E9 STA $E9 C3/D655: 64ED STZ $ED C3/D657: 64EE STZ $EE C3/D659: A00040 LDY #$4000 C3/D65C: 84EB STY $EB C3/D65E: A00020 LDY #$2000 C3/D661: 4CB9DD JMP $DDB9
C3/D664 unknow
C3/D664: A2E1F9 LDX #$F9E1 C3/D667: A9CF LDA #$CF C3/D669: 8005 BRA $D670 C3/D66B: A269F9 LDX #$F969 C3/D66E: A9CF LDA #$CF C3/D670: 8691 STX $91 C3/D672: 8593 STA $93 C3/D674: 60 RTS
C3/D675 unknow
C3/D675: A2E9FA LDX #$FAE9 C3/D678: A9CF LDA #$CF C3/D67A: 86F7 STX $F7 C3/D67C: 85F9 STA $F9 C3/D67E: 60 RTS
C3/D67F unknow
C3/D67F: A2C9FA LDX #$FAC9 C3/D682: A9CF LDA #$CF C3/D684: 80F4 BRA $D67A C3/D686: A2A9FA LDX #$FAA9 C3/D689: A9CF LDA #$CF C3/D68B: 80ED BRA $D67A C3/D68D: A209FB LDX #$FB09 C3/D690: A9CF LDA #$CF C3/D692: 80E6 BRA $D67A C3/D694: 20CED6 JSR $D6CE C3/D697: A21A14 LDX #$141A C3/D69A: 86E7 STX $E7 C3/D69C: A97F LDA #$7F C3/D69E: 85E9 STA $E9 C3/D6A0: A00098 LDY #$9800 C3/D6A3: 84EB STY $EB C3/D6A5: A97F LDA #$7F C3/D6A7: 85ED STA $ED C3/D6A9: A0E018 LDY #$18E0 C3/D6AC: 84EF STY $EF C3/D6AE: 4CEED6 JMP $D6EE
C3/D6B1 unknow
C3/D6B1: 20CED6 JSR $D6CE C3/D6B4: A23AED LDX #$ED3A C3/D6B7: 86E7 STX $E7 C3/D6B9: A97E LDA #$7E C3/D6BB: 85E9 STA $E9 C3/D6BD: A00098 LDY #$9800 C3/D6C0: 84EB STY $EB C3/D6C2: A97F LDA #$7F C3/D6C4: 85ED STA $ED C3/D6C6: A0E00E LDY #$0EE0 C3/D6C9: 84EF STY $EF C3/D6CB: 4CEED6 JMP $D6EE
C3/D6CE unknow
C3/D6CE: A08F56 LDY #$568F C3/D6D1: A9D9 LDA #$D9 C3/D6D3: 4C61DD JMP $DD61
C3/D6D6 unknow
C3/D6D6: A000C0 LDY #$C000 C3/D6D9: 84E7 STY $E7 C3/D6DB: A97E LDA #$7E C3/D6DD: 85E9 STA $E9 C3/D6DF: A0BA17 LDY #$17BA C3/D6E2: 84EB STY $EB C3/D6E4: 64ED STZ $ED C3/D6E6: 64EE STZ $EE C3/D6E8: A00060 LDY #$6000 C3/D6EB: 4CB9DD JMP $DDB9
C3/D6EE Flexible transfer loop
Can be used to transfer data from any position to another.
$00: Loop counter start value (LOW BYTE) $01: Loop counter start value (HIGH BYTE) $E7: Load address (LOW BYTE) $E8: Load address (HIGH BYTE) $E9: Load bank $EB: Store address (LOW BYTE) $EC: Store address (HIGH BYTE) $ED: Store bank $EF: Loop counter exit value (LOW BYTE) $F0: Loop counter exit value (HIGH BYTE) $F1: Value that gets added to each data double-byte (LOW BYTE) $F2: Value that gets added to each data double-byte (HIGH BYTE)
Note that the counter value (Y) is used both for the loading and storing of the data double-bytes, too. The lines D6F8 and D6F9 only make sense if some subroutines jump directly to line D6F2.
C3/D6EE: 64F1 STZ $F1 C3/D6F0: 64F2 STZ $F2 C3/D6F2: C220 REP #$20 ; 16 bit memory/accum. C3/D6F4: A400 LDY $00 ; Load counter value C3/D6F6: B7E7 LDA [$E7],Y ; Load value C3/D6F8: 18 CLC C3/D6F9: 65F1 ADC $F1 ; Add value to loaded double-byte C3/D6FB: 97EB STA [$EB],Y ; Store the result C3/D6FD: C8 INY ; Increment loop counter C3/D6FE: C8 INY C3/D6FF: C4EF CPY $EF ; Exit value reached? C3/D701: D0F3 BNE $D6F6 ; Loop if not C3/D703: E220 SEP #$20 ; 8 bit memory/accum. C3/D705: 60 RTS
C3/D706 unknow
C3/D706: 7B TDC C3/D707: A8 TAY C3/D708: C220 REP #$20 (16 bit memory/accum.) C3/D70A: B7F7 LDA [$F7],Y C3/D70C: AA TAX C3/D70D: C8 INY C3/D70E: C8 INY C3/D70F: B7F7 LDA [$F7],Y C3/D711: 85E7 STA $E7 C3/D713: C8 INY C3/D714: C8 INY C3/D715: E220 SEP #$20 (8 bit memory/accum.) C3/D717: 5A PHY C3/D718: 9B TXY C3/D719: 2023D7 JSR $D723 C3/D71C: 7A PLY C3/D71D: C02000 CPY #$0020 C3/D720: D0E6 BNE $D708 C3/D722: 60 RTS
C3/D723 unknow
C3/D723: 8B PHB C3/D724: A97F LDA #$7F C3/D726: 48 PHA C3/D727: AB PLB C3/D728: A920 LDA #$20 C3/D72A: 85E0 STA $E0 C3/D72C: A920 LDA #$20 C3/D72E: 85E1 STA $E1 C3/D730: A6E7 LDX $E7 C3/D732: B7F1 LDA [$F1],Y C3/D734: 9D00B8 STA $B800,X C3/D737: C8 INY C3/D738: E8 INX C3/D739: E8 INX C3/D73A: C6E1 DEC $E1 C3/D73C: D0F4 BNE $D732 C3/D73E: C221 REP #$21 C3/D740: A5E7 LDA $E7 C3/D742: 690001 ADC #$0100 C3/D745: 85E7 STA $E7 C3/D747: E220 SEP #$20 (8 bit memory/accum.) C3/D749: C6E0 DEC $E0 C3/D74B: D0DF BNE $D72C C3/D74D: AB PLB C3/D74E: 60 RTS
C3/D74F unknow
C3/D74F: 85E9 STA $E9 C3/D751: 86E7 STX $E7 C3/D753: 8B PHB C3/D754: A97F LDA #$7F C3/D756: 48 PHA C3/D757: AB PLB C3/D758: 7B TDC C3/D759: AA TAX C3/D75A: A908 LDA #$08 C3/D75C: 85E6 STA $E6 C3/D75E: C220 REP #$20 (16 bit memory/accum.) C3/D760: A01000 LDY #$0010 C3/D763: A7E7 LDA [$E7] C3/D765: 85F1 STA $F1 C3/D767: B7E7 LDA [$E7],Y C3/D769: 85EF STA $EF C3/D76B: 7B TDC C3/D76C: E220 SEP #$20 (8 bit memory/accum.) C3/D76E: A00800 LDY #$0008 C3/D771: 7B TDC C3/D772: 06F0 ASL $F0 C3/D774: 2A ROL A C3/D775: 06EF ASL $EF C3/D777: 2A ROL A C3/D778: 06F2 ASL $F2 C3/D77A: 2A ROL A C3/D77B: 06F1 ASL $F1 C3/D77D: 2A ROL A C3/D77E: 290F AND #$0F C3/D780: F010 BEQ $D792 C3/D782: 85E0 STA $E0 C3/D784: 5A PHY C3/D785: A4E4 LDY $E4 C3/D787: B791 LDA [$91],Y C3/D789: 7A PLY C3/D78A: 0A ASL A C3/D78B: 0A ASL A C3/D78C: 0A ASL A C3/D78D: 0A ASL A C3/D78E: 29F0 AND #$F0 C3/D790: 05E0 ORA $E0 C3/D792: 9D01B8 STA $B801,X C3/D795: E8 INX C3/D796: E8 INX C3/D797: 88 DEY C3/D798: D0D7 BNE $D771 C3/D79A: A4E7 LDY $E7 C3/D79C: C8 INY C3/D79D: C8 INY C3/D79E: 84E7 STY $E7 C3/D7A0: C6E6 DEC $E6 C3/D7A2: D0BA BNE $D75E C3/D7A4: C220 REP #$20 (16 bit memory/accum.) C3/D7A6: E6E4 INC $E4 C3/D7A8: A5E7 LDA $E7 C3/D7AA: 18 CLC C3/D7AB: 691000 ADC #$0010 C3/D7AE: 85E7 STA $E7 C3/D7B0: 7B TDC C3/D7B1: E220 SEP #$20 (8 bit memory/accum.) C3/D7B3: C6ED DEC $ED C3/D7B5: D0A3 BNE $D75A C3/D7B7: AB PLB C3/D7B8: 60 RTS
C3/D7B9 unknow
C3/D7B9: 8B PHB C3/D7BA: A9C3 LDA #$C3 C3/D7BC: 48 PHA C3/D7BD: AB PLB (set bank to C3) C3/D7BE: A4CF LDY $CF C3/D7C0: C03C00 CPY #$003C C3/D7C3: D003 BNE $D7C8 C3/D7C5: 2003DA JSR $DA03 C3/D7C8: AB PLB C3/D7C9: 38 SEC C3/D7CA: 60 RTS
C3/D7CB unknow
C3/D7CB: 8B PHB C3/D7CC: A9C3 LDA #$C3 C3/D7CE: 48 PHA C3/D7CF: AB PLB (set bank to C3) C3/D7D0: A4CF LDY $CF C3/D7D2: C00A00 CPY #$000A C3/D7D5: D005 BNE $D7DC C3/D7D7: 200EDA JSR $DA0E C3/D7DA: 803A BRA $D816 C3/D7DC: C0AE01 CPY #$01AE C3/D7DF: D005 BNE $D7E6 C3/D7E1: 2019DA JSR $DA19 C3/D7E4: 8030 BRA $D816 C3/D7E6: C05203 CPY #$0352 C3/D7E9: D005 BNE $D7F0 C3/D7EB: 2024DA JSR $DA24 C3/D7EE: 8026 BRA $D816 C3/D7F0: C0F604 CPY #$04F6 C3/D7F3: D005 BNE $D7FA C3/D7F5: 202FDA JSR $DA2F C3/D7F8: 801C BRA $D816 C3/D7FA: C09A06 CPY #$069A C3/D7FD: D005 BNE $D804 C3/D7FF: 203ADA JSR $DA3A C3/D802: 8012 BRA $D816 C3/D804: C03E08 CPY #$083E C3/D807: D005 BNE $D80E C3/D809: 2045DA JSR $DA45 C3/D80C: 8008 BRA $D816 C3/D80E: C0E209 CPY #$09E2 C3/D811: D003 BNE $D816 C3/D813: 2050DA JSR $DA50 C3/D816: AB PLB C3/D817: 38 SEC C3/D818: 60 RTS
C3/D819 unknow
C3/D819: 8B PHB C3/D81A: A9C3 LDA #$C3 C3/D81C: 48 PHA C3/D81D: AB PLB (set bank to C3) C3/D81E: A4CF LDY $CF C3/D820: C00A00 CPY #$000A C3/D823: D005 BNE $D82A C3/D825: 205BDA JSR $DA5B C3/D828: 801C BRA $D846 C3/D82A: C0AE01 CPY #$01AE C3/D82D: D005 BNE $D834 C3/D82F: 2066DA JSR $DA66 C3/D832: 8012 BRA $D846 C3/D834: C05203 CPY #$0352 C3/D837: D005 BNE $D83E C3/D839: 2071DA JSR $DA71 C3/D83C: 8008 BRA $D846 C3/D83E: C0F604 CPY #$04F6 C3/D841: D003 BNE $D846 C3/D843: 207CDA JSR $DA7C C3/D846: AB PLB C3/D847: 38 SEC C3/D848: 60 RTS
C3/D849 unknow
C3/D849: 8B PHB C3/D84A: A9C3 LDA #$C3 C3/D84C: 48 PHA C3/D84D: AB PLB (set bank to C3) C3/D84E: A4CF LDY $CF C3/D850: C00A00 CPY #$000A C3/D853: D005 BNE $D85A C3/D855: 2087DA JSR $DA87 C3/D858: 803A BRA $D894 C3/D85A: C0AE01 CPY #$01AE C3/D85D: D005 BNE $D864 C3/D85F: 2092DA JSR $DA92 C3/D862: 8030 BRA $D894 C3/D864: C05203 CPY #$0352 C3/D867: D005 BNE $D86E C3/D869: 209DDA JSR $DA9D C3/D86C: 8026 BRA $D894 C3/D86E: C0F604 CPY #$04F6 C3/D871: D005 BNE $D878 C3/D873: 20A8DA JSR $DAA8 C3/D876: 801C BRA $D894 C3/D878: C09A06 CPY #$069A C3/D87B: D005 BNE $D882 C3/D87D: 20B3DA JSR $DAB3 C3/D880: 8012 BRA $D894 C3/D882: C03E08 CPY #$083E C3/D885: D005 BNE $D88C C3/D887: 20BEDA JSR $DABE C3/D88A: 8008 BRA $D894 C3/D88C: C0E209 CPY #$09E2 C3/D88F: D003 BNE $D894 C3/D891: 20C9DA JSR $DAC9 C3/D894: AB PLB C3/D895: 38 SEC C3/D896: 60 RTS
C3/D897 unknow
C3/D897: 8B PHB C3/D898: A9C3 LDA #$C3 C3/D89A: 48 PHA C3/D89B: AB PLB (set bank to C3) C3/D89C: A4CF LDY $CF C3/D89E: C00A00 CPY #$000A C3/D8A1: D005 BNE $D8A8 C3/D8A3: 20D4DA JSR $DAD4 C3/D8A6: 803A BRA $D8E2 C3/D8A8: C0AE01 CPY #$01AE C3/D8AB: D005 BNE $D8B2 C3/D8AD: 20DFDA JSR $DADF C3/D8B0: 8030 BRA $D8E2 C3/D8B2: C05203 CPY #$0352 C3/D8B5: D005 BNE $D8BC C3/D8B7: 20EADA JSR $DAEA C3/D8BA: 8026 BRA $D8E2 C3/D8BC: C0F604 CPY #$04F6 C3/D8BF: D005 BNE $D8C6 C3/D8C1: 20F5DA JSR $DAF5 C3/D8C4: 801C BRA $D8E2 C3/D8C6: C09A06 CPY #$069A C3/D8C9: D005 BNE $D8D0 C3/D8CB: 2000DB JSR $DB00 C3/D8CE: 8012 BRA $D8E2 C3/D8D0: C03E08 CPY #$083E C3/D8D3: D005 BNE $D8DA C3/D8D5: 200BDB JSR $DB0B C3/D8D8: 8008 BRA $D8E2 C3/D8DA: C0E209 CPY #$09E2 C3/D8DD: D003 BNE $D8E2 C3/D8DF: 2016DB JSR $DB16 C3/D8E2: AB PLB C3/D8E3: 38 SEC C3/D8E4: 60 RTS
C3/D8E5 unknow
C3/D8E5: 8B PHB C3/D8E6: A9C3 LDA #$C3 C3/D8E8: 48 PHA C3/D8E9: AB PLB (set bank to C3) C3/D8EA: A4CF LDY $CF C3/D8EC: C0F000 CPY #$00F0 C3/D8EF: D005 BNE $D8F6 C3/D8F1: 2021DB JSR $DB21 C3/D8F4: 803A BRA $D930 C3/D8F6: C0D002 CPY #$02D0 C3/D8F9: D005 BNE $D900 C3/D8FB: 202CDB JSR $DB2C C3/D8FE: 8030 BRA $D930 C3/D900: C0B004 CPY #$04B0 C3/D903: D005 BNE $D90A C3/D905: 2037DB JSR $DB37 C3/D908: 8026 BRA $D930 C3/D90A: C09006 CPY #$0690 C3/D90D: D005 BNE $D914 C3/D90F: 2042DB JSR $DB42 C3/D912: 801C BRA $D930 C3/D914: C07008 CPY #$0870 C3/D917: D005 BNE $D91E C3/D919: 204DDB JSR $DB4D C3/D91C: 8012 BRA $D930 C3/D91E: C0500A CPY #$0A50 C3/D921: D005 BNE $D928 C3/D923: 2058DB JSR $DB58 C3/D926: 8008 BRA $D930 C3/D928: C0300C CPY #$0C30 C3/D92B: D003 BNE $D930 C3/D92D: 2063DB JSR $DB63 C3/D930: AB PLB C3/D931: 38 SEC C3/D932: 60 RTS
C3/D933 unknow
C3/D933: 8B PHB C3/D934: A9C3 LDA #$C3 C3/D936: 48 PHA C3/D937: AB PLB (set bank to C3) C3/D938: A4CF LDY $CF C3/D93A: C03C00 CPY #$003C C3/D93D: D005 BNE $D944 C3/D93F: 206EDB JSR $DB6E C3/D942: 8026 BRA $D96A C3/D944: C0E001 CPY #$01E0 C3/D947: D005 BNE $D94E C3/D949: 2079DB JSR $DB79 C3/D94C: 801C BRA $D96A C3/D94E: C08403 CPY #$0384 C3/D951: D005 BNE $D958 C3/D953: 2084DB JSR $DB84 C3/D956: 8012 BRA $D96A C3/D958: C02805 CPY #$0528 C3/D95B: D005 BNE $D962 C3/D95D: 208FDB JSR $DB8F C3/D960: 8008 BRA $D96A C3/D962: C0CC06 CPY #$06CC C3/D965: D003 BNE $D96A C3/D967: 209ADB JSR $DB9A C3/D96A: AB PLB C3/D96B: 38 SEC C3/D96C: 60 RTS
C3/D96D End Credits Text - buffer update 1
C3/D96D: A2C09D LDX #$9DC0 (address for "PRODUCER") C3/D970: A9C2 LDA #$C2 (+ bank) C3/D972: A00400 LDY #$0004 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) C3/D975: 20F1D9 JSR $D9F1 (store X, A, Y to $4A-$4E, then JMP $DBC8, which will end with RTS) C3/D978: A2449C LDX #$9C44 (address for "HIRONOBU" [SAKAGUCHI]) C3/D97B: A9C2 LDA #$C2 (+ bank) C3/D97D: A00800 LDY #$0008 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) C3/D980: 4CFAD9 JMP $D9FA (store X, A, Y to $4A-$4E, then JMP $DBE8, which will end with RTS, kicking us back to $C3C63F)
C3/D983 End Credits Text - buffer update 2
C3/D983: A2C49D LDX #$9DC4 (address for "DIRECTOR") C3/D986: A9C2 LDA #$C2 (+ bank) C3/D988: A02800 LDY #$0028 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) C3/D98B: 20F1D9 JSR $D9F1 (store X, A, Y to $4A-$4E, then JMP $DBC8, which will end with RTS) C3/D98E: A24C9C LDX #$9C4C (address for "YOSHINORI" [KITASE]) C3/D991: A9C2 LDA #$C2 (+ bank) C3/D993: A06000 LDY #$0060 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) C3/D996: 4CFAD9 JMP $D9FA (store X, A, Y to $4A-$4E, then JMP $DBE8, which will end with RTS, kicking us back to $C3C7B9)
C3/D999 End Credits Text - buffer update 3
C3/D999: A2EC9D LDX #$9DEC (address for "FIELD" [PLANNER]) C3/D99C: A9C2 LDA #$C2 (+ bank) C3/D99E: A01800 LDY #$0018 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) C3/D9A1: 20F1D9 JSR $D9F1 (store X, A, Y to $4A-$4E, then JMP $DBC8, which will end with RTS) C3/D9A4: A2AC9C LDX #$9CAC (address for "YOSHIHIKO" [MAEKAWA]) C3/D9A7: A9C2 LDA #$C2 (+ bank) C3/D9A9: A04000 LDY #$0040 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) C3/D9AC: 4CFAD9 JMP $D9FA (store X, A, Y to $4A-$4E, then JMP $DBE8, which will end with RTS, kicking us back to $C3C8FE)
C3/D9AF End Credits Text - buffer update 4
C3/D9AF: A2049E LDX #$9E04 (address for "SOUND" [PROGRAMMER]) C3/D9B2: A9C2 LDA #$C2 (+ bank) C3/D9B4: A02000 LDY #$0020 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) C3/D9B7: 20F1D9 JSR $D9F1 (store X, A, Y to $4A-$4E, then JMP $DBC8, which will end with RTS) C3/D9BA: A2EC9C LDX #$9CEC (address for "MINORU" [AKAO]) C3/D9BD: A9C2 LDA #$C2 (+ bank) C3/D9BF: A06400 LDY #$0064 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) C3/D9C2: 4CFAD9 JMP $D9FA (store X, A, Y to $4A-$4E, then JMP $DBE8, which will end with RTS, kicking us back to $C3CA48)
C3/D9C5 End Credits Text - buffer update 5
C3/D9C5: A2249E LDX #$9E24 (address for "SOUND" [ENGINEER]) C3/D9C8: A9C2 LDA #$C2 (+ bank) C3/D9CA: A02400 LDY #$0024 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) C3/D9CD: 20F1D9 JSR $D9F1 (store X, A, Y to $4A-$4E, then JMP $DBC8, which will end with RTS) C3/D9D0: A2509D LDX #$9D50 (address for "EIJI" [NAKAMURA]) C3/D9D3: A9C2 LDA #$C2 (+ bank) C3/D9D5: A07000 LDY #$0070 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) C3/D9D8: 4CFAD9 JMP $D9FA (store X, A, Y to $4A-$4E, then JMP $DBE8, which will end with RTS, kicking us back to $C3CD76)
C3/D9DB End Credits Text - buffer update 6
C3/D9DB: A2489E LDX #$9E48 (address for "TEST" [COORDINATOR]) C3/D9DE: A9C2 LDA #$C2 (+ bank) C3/D9E0: A0E400 LDY #$00E4 (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) C3/D9E3: 4CF1D9 JMP $D9F1 (store X, A, Y to $4A-$4E, then JMP $DBC8, which will end with RTS, kicking us back to $C3CED1)
C3/D9E6 End Credits Text - buffer update 7
C3/D9E6: A22C9F LDX #$9F2C (address for "M.MORI") C3/D9E9: A9C2 LDA #$C2 (+ bank) C3/D9EB: A06C00 LDY #$006C (how many bytes to read from data table; each table entry is 2-byte source addr followed by 2-byte dest addr) C3/D9EE: 4CF1D9 JMP $D9F1 (store X, A, Y to $4A-$4E, then JMP $DBC8, which will end with RTS, kicking us back to $C3CF1E)
C3/D9F1 unknow
C3/D9F1: 864A STX $4A C3/D9F3: 854C STA $4C C3/D9F5: 844D STY $4D C3/D9F7: 4CC8DB JMP $DBC8
C3/D9FA unknow
C3/D9FA: 864A STX $4A C3/D9FC: 854C STA $4C C3/D9FE: 844D STY $4D C3/DA00: 4CE8DB JMP $DBE8
C3/DA03 queue display of page 1 text
C3/DA03: A00C00 LDY #$000C (number of strings to display on page 1; 4 bytes per string) C3/DA06: A29498 LDX #$9894 ("PRODUCER") C3/DA09: A9C2 LDA #$C2 C3/DA0B: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DA0E queue display of page 2 text
C3/DA0E: A01400 LDY #$0014 (number of strings to display on page 2; 4 bytes per string) C3/DA11: A2A098 LDX #$98A0 ("DIRECTOR") C3/DA14: A9C2 LDA #$C2 C3/DA16: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DA19 queue display of page 3 text
C3/DA19: A01800 LDY #$0018 (number of strings to display on page 3; 4 bytes per string) C3/DA1C: A2B498 LDX #$98B4 ("MAIN" [PROGRAMMER]) C3/DA1F: A9C2 LDA #$C2 C3/DA21: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DA24 queue display of page 4 text
C3/DA24: A01800 LDY #$0018 (number of strings to display on page 4; 4 bytes per string) C3/DA27: A2CC98 LDX #$98CC ("GRAPHIC" [DIRECTOR], page 1) C3/DA2A: A9C2 LDA #$C2 C3/DA2C: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DA2F queue display of page 5 text
C3/DA2F: A01800 LDY #$0018 (number of strings to display on page 5; 4 bytes per string) C3/DA32: A2E498 LDX #$98E4 ("GRAPHIC" [DIRECTOR], page 2) C3/DA35: A9C2 LDA #$C2 C3/DA37: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DA3A queue display of page 6 text
C3/DA3A: A00C00 LDY #$000C (number of strings to display on page 6; 4 bytes per string) C3/DA3D: A2FC98 LDX #$98FC ("MUSIC") C3/DA40: A9C2 LDA #$C2 C3/DA42: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DA45 queue display of page 7 text
C3/DA45: A01000 LDY #$0010 (number of strings to display on page 7; 4 bytes per string) C3/DA48: A20899 LDX #$9908 ("IMAGE" [DESIGN]) C3/DA4B: A9C2 LDA #$C2 C3/DA4D: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DA50 queue display of page 8 text
C3/DA50: A01800 LDY #$0018 (number of strings to display on page 8; 4 bytes per string) C3/DA53: A21899 LDX #$9918 ("BATTLE" [PLANNER]) C3/DA56: A9C2 LDA #$C2 C3/DA58: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DA5B queue display of page 9 text
C3/DA5B: A02000 LDY #$0020 (number of strings to display on page 9; 4 bytes per string) C3/DA5E: A23099 LDX #$9930 ("FIELD" [PLANNER]) C3/DA61: A9C2 LDA #$C2 C3/DA63: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DA66 queue display of page 10 text
C3/DA66: A01800 LDY #$0018 (number of strings to display on page 10; 4 bytes per string) C3/DA69: A25099 LDX #$9950 ("EVENT" [PLANNER]) C3/DA6C: A9C2 LDA #$C2 C3/DA6E: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DA71 queue display of page 11 text
C3/DA71: A01800 LDY #$0018 (number of strings to display on page 11; 4 bytes per string) C3/DA74: A26899 LDX #$9968 ("EFFECT" [PROGRAMMER]) C3/DA77: A9C2 LDA #$C2 C3/DA79: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DA7C queue display of page 12 text
C3/DA7C: A01000 LDY #$0010 (number of strings to display on page 12; 4 bytes per string) C3/DA7F: A28099 LDX #$9980 ("BATTLE" [PROGRAMMER]) C3/DA82: A9C2 LDA #$C2 C3/DA84: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DA87 queue display of page 13 text
C3/DA87: A01000 LDY #$0010 (number of strings to display on page 13; 4 bytes per string) C3/DA8A: A29099 LDX #$9990 ("SOUND" [PROGRAMMER]) C3/DA8D: A9C2 LDA #$C2 C3/DA8F: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DA92 queue display of page 14 text
C3/DA92: A01400 LDY #$0014 (number of strings to display on page 14; 4 bytes per string) C3/DA95: A2A099 LDX #$99A0 ("EFFECT" [GRAPHIC DESIGNER]) C3/DA98: A9C2 LDA #$C2 C3/DA9A: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DA9D queue display of page 15 text
C3/DA9D: A02400 LDY #$0024 (number of strings to display on page 15; 4 bytes per string) C3/DAA0: A2B499 LDX #$99B4 ("FIELD" [GRAPHIC DESIGNER], page 1) C3/DAA3: A9C2 LDA #$C2 C3/DAA5: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DAA8 queue display of page 16 text
C3/DAA8: A02400 LDY #$0024 (number of strings to display on page 16; 4 bytes per string) C3/DAAB: A2D899 LDX #$99D8 ("FIELD" [GRAPHIC DESIGNER], page 2) C3/DAAE: A9C2 LDA #$C2 C3/DAB0: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DAB3 queue display of page 17 text
C3/DAB3: A02400 LDY #$0024 (number of strings to display on page 17; 4 bytes per string) C3/DAB6: A2FC99 LDX #$99FC ("FIELD" [GRAPHIC DESIGNER], page 3) C3/DAB9: A9C2 LDA #$C2 C3/DABB: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DABE queue display of page 18 text
C3/DABE: A01400 LDY #$0014 (number of strings to display on page 18; 4 bytes per string) C3/DAC1: A2209A LDX #$9A20 ("MONSTER" [GRAPHIC DESIGNER]) C3/DAC4: A9C2 LDA #$C2 C3/DAC6: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DAC9 queue display of page 19 text
C3/DAC9: A01400 LDY #$0014 (number of strings to display on page 19; 4 bytes per string) C3/DACC: A2349A LDX #$9A34 ("OBJECT" [GRAPHIC DESIGNER]) C3/DACF: A9C2 LDA #$C2 C3/DAD1: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DAD4 queue display of page 20 text
C3/DAD4: A01000 LDY #$0010 (number of strings to display on page 20; 4 bytes per string) C3/DAD7: A2489A LDX #$9A48 ("SOUND" [ENGINEER]) C3/DADA: A9C2 LDA #$C2 C3/DADC: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DADF queue display of page 21 text
C3/DADF: A01800 LDY #$0018 (number of strings to display on page 21; 4 bytes per string) C3/DAE2: A2589A LDX #$9A58 ("SOUND" [EFFECT], page 1) C3/DAE5: A9C2 LDA #$C2 C3/DAE7: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DAEA queue display of page 22 text
C3/DAEA: A01800 LDY #$0018 (number of strings to display on page 22; 4 bytes per string) C3/DAED: A2709A LDX #$9A70 ("SOUND" [EFFECT], page 2) C3/DAF0: A9C2 LDA #$C2 C3/DAF2: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DAF5 queue display of page 23 text
C3/DAF5: A02400 LDY #$0024 (number of strings to display on page 23; 4 bytes per string) C3/DAF8: A2889A LDX #$9A88 ("REMAKE" [PLANNER]) C3/DAFB: A9C2 LDA #$C2 C3/DAFD: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DB00 queue display of page 24 text
C3/DB00: A01800 LDY #$0018 (number of strings to display on page 24; 4 bytes per string) C3/DB03: A2AC9A LDX #$9AAC ("SYSTEM" [ENGINEER], page 1) C3/DB06: A9C2 LDA #$C2 C3/DB08: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DB0B queue display of page 25 text
C3/DB0B: A01800 LDY #$0018 (number of strings to display on page 25; 4 bytes per string) C3/DB0E: A2C49A LDX #$9AC4 ("SYSTEM" [ENGINEER], page 2) C3/DB11: A9C2 LDA #$C2 C3/DB13: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DB16 queue display of page 26 text
C3/DB16: A01800 LDY #$0018 (number of strings to display on page 26; 4 bytes per string) C3/DB19: A2DC9A LDX #$9ADC ("EXECUTIVE" [PRODUCER]) C3/DB1C: A9C2 LDA #$C2 C3/DB1E: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DB21 queue display of page 27 text
C3/DB21: A02800 LDY #$0028 (number of strings to display on page 27; 4 bytes per string) C3/DB24: A2F49A LDX #$9AF4 ("TEST" [COORDINATOR]) C3/DB27: A9C2 LDA #$C2 C3/DB29: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DB2C queue display of page 28 text
C3/DB2C: A02800 LDY #$0028 (number of strings to display on page 28; 4 bytes per string) C3/DB2F: A21C9B LDX #$9B1C ("SPECIAL" [THANKS TO]) C3/DB32: A9C2 LDA #$C2 C3/DB34: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DB37 queue display of page 29 text
C3/DB37: A02400 LDY #$0024 (number of strings to display on page 29; 4 bytes per string) C3/DB3A: A2449B LDX #$9B44 ("Y.HIRATA") C3/DB3D: A9C2 LDA #$C2 C3/DB3F: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DB42 queue display of page 30 text
C3/DB42: A02000 LDY #$0020 (number of strings to display on page 30; 4 bytes per string) C3/DB45: A2689B LDX #$9B68 ("K.TANIKAWA") C3/DB48: A9C2 LDA #$C2 C3/DB4A: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DB4D queue display of page 31 text
C3/DB4D: A01800 LDY #$0018 (number of strings to display on page 31; 4 bytes per string) C3/DB50: A2889B LDX #$9B88 ("H.YOKOTA") C3/DB53: A9C2 LDA #$C2 C3/DB55: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DB58 queue display of page 32 text
C3/DB58: A01400 LDY #$0014 (number of strings to display on page 32; 4 bytes per string) C3/DB5B: A2A09B LDX #$9BA0 ("M.KOUNO") C3/DB5E: A9C2 LDA #$C2 C3/DB60: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DB63 queue display of page 33 text
C3/DB63: A02400 LDY #$0024 (number of strings to display on page 33; 4 bytes per string) C3/DB66: A2B49B LDX #$9BB4 ("K.MIYAMOTO") C3/DB69: A9C2 LDA #$C2 C3/DB6B: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DB6E queue display of page 34 text
C3/DB6E: A01800 LDY #$0018 (number of strings to display on page 34; 4 bytes per string) C3/DB71: A2D89B LDX #$9BD8 ("T.MORITA") C3/DB74: A9C2 LDA #$C2 C3/DB76: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DB79 queue display of page 35 text
C3/DB79: A01800 LDY #$0018 (number of strings to display on page 35; 4 bytes per string) C3/DB7C: A2F09B LDX #$9BF0 ("M.KANESHIGE") C3/DB7F: A9C2 LDA #$C2 C3/DB81: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DB84 queue display of page 36 text
C3/DB84: A01400 LDY #$0014 (number of strings to display on page 36; 4 bytes per string) C3/DB87: A2089C LDX #$9C08 ("RICH SILVEIRA") C3/DB8A: A9C2 LDA #$C2 C3/DB8C: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DB8F queue display of page 37 text
C3/DB8F: A01400 LDY #$0014 (number of strings to display on page 37; 4 bytes per string) C3/DB92: A21C9C LDX #$9C1C ("CHRIS BUDD") C3/DB95: A9C2 LDA #$C2 C3/DB97: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DB9A queue display of page 38 text
C3/DB9A: A01400 LDY #$0014 (number of strings to display on page 38; 4 bytes per string) C3/DB9D: A2309C LDX #$9C30 ("REBECCA COFFMAN") C3/DBA0: A9C2 LDA #$C2 C3/DBA2: 4CA5DB JMP $DBA5 (queue up text for this page)
C3/DBA5 unknow
C3/DBA5: 84FA STY $FA C3/DBA7: 86F7 STX $F7 C3/DBA9: 85F9 STA $F9 C3/DBAB: A400 LDY $00 C3/DBAD: C220 REP #$20 (16 bit memory/accum.) C3/DBAF: B7F7 LDA [$F7],Y C3/DBB1: AA TAX C3/DBB2: C8 INY C3/DBB3: C8 INY C3/DBB4: B7F7 LDA [$F7],Y C3/DBB6: 8560 STA $60 C3/DBB8: E220 SEP #$20 (8 bit memory/accum.) C3/DBBA: 5A PHY C3/DBBB: 9B TXY C3/DBBC: 2014DC JSR $DC14 C3/DBBF: 7A PLY C3/DBC0: C8 INY C3/DBC1: C8 INY C3/DBC2: C4FA CPY $FA C3/DBC4: D0E7 BNE $DBAD C3/DBC6: 38 SEC C3/DBC7: 60 RTS
C3/DBC8 unknow
C3/DBC8: A400 LDY $00 C3/DBCA: 2008DC JSR $DC08 (set palette for 8*8 font) C3/DBCD: C220 REP #$20 (16 bit memory/accum.) C3/DBCF: B74A LDA [$4A],Y C3/DBD1: AA TAX C3/DBD2: C8 INY C3/DBD3: C8 INY C3/DBD4: B74A LDA [$4A],Y C3/DBD6: 85E7 STA $E7 C3/DBD8: C8 INY C3/DBD9: C8 INY C3/DBDA: 5A PHY C3/DBDB: A4E7 LDY $E7 C3/DBDD: E220 SEP #$20 (8 bit memory/accum.) C3/DBDF: 20BCDC JSR $DCBC C3/DBE2: 7A PLY C3/DBE3: C44D CPY $4D (have we read all of the 8*8 strings?) C3/DBE5: D0E3 BNE $DBCA C3/DBE7: 60 RTS
C3/DBE8 unknow
C3/DBE8: A400 LDY $00 C3/DBEA: 200EDC JSR $DC0E (set palette for 16*8 font) C3/DBED: C220 REP #$20 (16 bit memory/accum.) C3/DBEF: B74A LDA [$4A],Y C3/DBF1: AA TAX C3/DBF2: C8 INY C3/DBF3: C8 INY C3/DBF4: B74A LDA [$4A],Y C3/DBF6: 85E7 STA $E7 C3/DBF8: C8 INY C3/DBF9: C8 INY C3/DBFA: 5A PHY C3/DBFB: A4E7 LDY $E7 C3/DBFD: E220 SEP #$20 (8 bit memory/accum.) C3/DBFF: 20D1DC JSR $DCD1 C3/DC02: 7A PLY C3/DC03: C44D CPY $4D (have we read all of the 16*8 strings?) C3/DC05: D0E3 BNE $DBEA C3/DC07: 60 RTS C3/DC08: A2000B LDX #$0B00 (palette for 8*8 font) C3/DC0B: 86F1 STX $F1 C3/DC0D: 60 RTS C3/DC0E: A20009 LDX #$0900 (palette for 16*8 font) C3/DC11: 86F1 STX $F1 C3/DC13: 60 RTS
C3/DC14 unknow
C3/DC14: 84F1 STY $F1 C3/DC16: 64AF STZ $AF C3/DC18: A900 LDA #$00 C3/DC1A: A044DC LDY #$DC44 C3/DC1D: 207311 JSR $1173 (put C3/DC44 in the queue) C3/DC20: C220 REP #$20 (16 bit memory/accum.) C3/DC22: A5F1 LDA $F1 C3/DC24: 9FC9327E STA $7E32C9,X (save as pointer to OAM data) C3/DC28: A9A401 LDA #$01A4 C3/DC2B: 9F49337E STA $7E3349,X C3/DC2F: E220 SEP #$20 (8 bit memory/accum.) C3/DC31: A97E LDA #$7E C3/DC33: 9FCA357E STA $7E35CA,X (save bank pointer to OAM data) C3/DC37: A560 LDA $60 C3/DC39: 9FCA337E STA $7E33CA,X C3/DC3D: A561 LDA $61 C3/DC3F: 9F4A347E STA $7E344A,X C3/DC43: 60 RTS
C3/DC44 code and jump table
C3/DC44: AA TAX C3/DC45: 7C48DC JMP ($DC48,X) C3/DC48: 4CDC C3/DC4A: 84DC
C3/DC4C unknow
C3/DC4C: A62D LDX $2D C3/DC4E: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/DC51: BD4A34 LDA $344A,X C3/DC54: 18 CLC C3/DC55: 6920 ADC #$20 C3/DC57: 9D4A34 STA $344A,X C3/DC5A: C220 REP #$20 (16 bit memory/accum.) C3/DC5C: A980FF LDA #$FF80 C3/DC5F: 9D4935 STA $3549,X C3/DC62: 9EC934 STZ $34C9,X C3/DC65: E220 SEP #$20 (8 bit memory/accum.) C3/DC67: 200612 JSR $1206 C3/DC6A: A5AF LDA $AF C3/DC6C: D016 BNE $DC84 C3/DC6E: 8B PHB C3/DC6F: A900 LDA #$00 C3/DC71: 48 PHA C3/DC72: AB PLB C3/DC73: A5B4 LDA $B4 C3/DC75: D005 BNE $DC7C C3/DC77: 2003C7 JSR $C703 C3/DC7A: 8003 BRA $DC7F C3/DC7C: 202AC7 JSR $C72A C3/DC7F: A901 LDA #$01 C3/DC81: 85AF STA $AF C3/DC83: AB PLB C3/DC84: A62D LDX $2D C3/DC86: BC4933 LDY $3349,X C3/DC89: F01E BEQ $DCA9 C3/DC8B: C06401 CPY #$0164 C3/DC8E: D006 BNE $DC96 C3/DC90: 9E4935 STZ $3549,X C3/DC93: 9E4A35 STZ $354A,X C3/DC96: C08000 CPY #$0080 C3/DC99: F010 BEQ $DCAB C3/DC9B: 20C0DE JSR $DEC0 C3/DC9E: A62D LDX $2D C3/DCA0: C220 REP #$20 (16 bit memory/accum.) C3/DCA2: DE4933 DEC $3349,X C3/DCA5: E220 SEP #$20 (8 bit memory/accum.) C3/DCA7: 38 SEC C3/DCA8: 60 RTS C3/DCA9: 18 CLC C3/DCAA: 60 RTS
C3/DCAB unknow
C3/DCAB: A5AF LDA $AF C3/DCAD: F0EC BEQ $DC9B C3/DCAF: 64AF STZ $AF C3/DCB1: 8B PHB C3/DCB2: A900 LDA #$00 C3/DCB4: 48 PHA C3/DCB5: AB PLB C3/DCB6: 20DCC6 JSR $C6DC C3/DCB9: AB PLB C3/DCBA: 80DF BRA $DC9B C3/DCBC: 2031DD JSR $DD31 (store data, count bytes) C3/DCBF: 2025DD JSR $DD25 (store number of bytes to [$EB],Y) C3/DCC2: 2002DD JSR $DD02 (store (x, y) position, letter, palette to [$EB],Y, set carry if we still need to read another letter) C3/DCC5: 9009 BCC $DCD0 C3/DCC7: A5E0 LDA $E0 C3/DCC9: 18 CLC C3/DCCA: 6908 ADC #$08 (spacing between letters) C3/DCCC: 85E0 STA $E0 C3/DCCE: 80F2 BRA $DCC2 C3/DCD0: 60 RTS
C3/DCD1 unknow
C3/DCD1: 2031DD JSR $DD31 (store data, count bytes) C3/DCD4: 2025DD JSR $DD25 (store number of bytes to [$EB],Y) C3/DCD7: 7B TDC C3/DCD8: A7E7 LDA [$E7] C3/DCDA: F025 BEQ $DD01 (are we done reading letters?) C3/DCDC: 85E3 STA $E3 C3/DCDE: A5E0 LDA $E0 C3/DCE0: 0980 ORA #$80 C3/DCE2: 97EB STA [$EB],Y (store x | #$80 position to [$EB],Y) C3/DCE4: C8 INY C3/DCE5: 7B TDC C3/DCE6: 97EB STA [$EB],Y (store y position to [$EB],Y) C3/DCE8: C8 INY C3/DCE9: 7B TDC C3/DCEA: A5E3 LDA $E3 C3/DCEC: C221 REP #$21 C3/DCEE: 65F1 ADC $F1 C3/DCF0: 97EB STA [$EB],Y (store letter, palette to [$EB],Y) C3/DCF2: E6E7 INC $E7 C3/DCF4: C8 INY C3/DCF5: C8 INY C3/DCF6: E220 SEP #$20 (8 bit memory/accum.) C3/DCF8: A5E0 LDA $E0 C3/DCFA: 18 CLC C3/DCFB: 6908 ADC #$08 C3/DCFD: 85E0 STA $E0 C3/DCFF: 80D6 BRA $DCD7 C3/DD01: 60 RTS
C3/DD02 store (x, y) position, letter, palette to [$EB],Y
C3/DD02: 7B TDC C3/DD03: A7E7 LDA [$E7] C3/DD05: F01C BEQ $DD23 (are we done reading letters yet?) C3/DD07: 85E3 STA $E3 C3/DD09: A5E0 LDA $E0 C3/DD0B: 97EB STA [$EB],Y C3/DD0D: C8 INY C3/DD0E: 7B TDC C3/DD0F: 97EB STA [$EB],Y C3/DD11: C8 INY C3/DD12: 7B TDC C3/DD13: A5E3 LDA $E3 C3/DD15: C221 REP #$21 C3/DD17: 65F1 ADC $F1 C3/DD19: 97EB STA [$EB],Y C3/DD1B: E6E7 INC $E7 C3/DD1D: C8 INY C3/DD1E: C8 INY C3/DD1F: E220 SEP #$20 (8 bit memory/accum.) C3/DD21: 38 SEC C3/DD22: 60 RTS C3/DD23: 18 CLC C3/DD24: 60 RTS
C3/DD25 store number of bytes read (8-bit A) to [$EB],Y
C3/DD25: A400 LDY $00 (from C3/DCBF, C3/DCD4) C3/DD27: 97EB STA [$EB],Y C3/DD29: C8 INY C3/DD2A: 64E0 STZ $E0 C3/DD2C: 64EF STZ $EF C3/DD2E: 64F0 STZ $F0 C3/DD30: 60 RTS
C3/DD31 store data, count bytes
C3/DD31: 86E7 STX $E7 (from C3/DCBC, C3/DCD1) C3/DD33: A9C2 LDA #$C2 (store X, A, Y, #$7E to $E7 - $ED) C3/DD35: 85E9 STA $E9 C3/DD37: 84EB STY $EB C3/DD39: A97E LDA #$7E C3/DD3B: 85ED STA $ED C3/DD3D: C221 REP #$21 C3/DD3F: A5EB LDA $EB C3/DD41: 690300 ADC #$0003 C3/DD44: 87EB STA [$EB] (store Y + #$03, #$FE to [$EB]) C3/DD46: E6EB INC $EB C3/DD48: E6EB INC $EB C3/DD4A: E220 SEP #$20 (8 bit memory/accum.) C3/DD4C: A9FE LDA #$FE C3/DD4E: 87EB STA [$EB] C3/DD50: E6EB INC $EB C3/DD52: A400 LDY $00 C3/DD54: BB TYX C3/DD55: B7E7 LDA [$E7],Y (keep reading until we see #$00, store number of bytes in 8-bit A) C3/DD57: C8 INY C3/DD58: C900 CMP #$00 C3/DD5A: F003 BEQ $DD5F C3/DD5C: E8 INX C3/DD5D: 80F6 BRA $DD55 C3/DD5F: 8A TXA C3/DD60: 60 RTS
C3/DD61 unknow
C3/DD61: 84F3 STY $F3 (decompression source address) C3/DD63: 85F5 STA $F5 (decompression source bank) C3/DD65: A000C0 LDY #$C000 C3/DD68: 84F6 STY $F6 (decompression address destination) C3/DD6A: A97E LDA #$7E C3/DD6C: 85F8 STA $F8 (decompression bank destination) C3/DD6E: 226DFFC2 JSL $C2FF6D (LZ decompression!) C3/DD72: 60 RTS
C3/DD73 Clear VRAM loop
C3/DD73: C220 REP #$20 ; (from C3/C557, 16 bit memory/accum.) C3/DD75: 7B TDC C3/DD76: 8D1621 STA $2116 ; VRAM destination address: 0 C3/DD79: A8 TAY ; Set loop counter to 0 C3/DD7A: 8D1821 STA $2118 ; Store 0 in VRAM C3/DD7D: C8 INY ; increment counter C3/DD7E: C00080 CPY #$8000 ; has counter reached #$8000? C3/DD81: D0F7 BNE $DD7A ; if not - loop C3/DD83: E220 SEP #$20 ; (8 bit memory/accum.) C3/DD85: 60 RTS
C3/DD86 8/8 Data Transfer loop to VRAM
This transfers rotationally eight double-bytes data and eight empty (double-?)bytes to VRAM.
Y: VRAM destination $E7: Data Address $E9: Data Bank $EB: Loop Counter comparison value (LOW BYTE) $EC: Loop Counter comparison value (HIGH BYTE)
Note that the comparision value is the number of loaded bytes that are transfered, not the number of bytes stored in the VRAM (which is higher due to the empty bytes). So, the number of bytes that are actually stored in the VRAM is higher.
C3/DD86: 8C1621 STY $2116 ; Set VRAM destination C3/DD89: 7B TDC C3/DD8A: A8 TAY ; Clear Data Load index C3/DD8B: C220 REP #$20 ; (16 bit memory/accum.) C3/DD8D: A20800 LDX #$0008 ; Set up loop counter C3/DD90: B7E7 LDA [$E7],Y ; Load data double byte C3/DD92: 8D1821 STA $2118 ; Store to VRAM C3/DD95: C8 INY ; Increment Data Load index C3/DD96: C8 INY C3/DD97: CA DEX ; Decrement Loop counter C3/DD98: D0F6 BNE $DD90 ; Branch if not zero C3/DD9A: 9C1821 STZ $2118 ; Store eight empty (double?)-bytes in VRAM C3/DD9D: 9C1821 STZ $2118 C3/DDA0: 9C1821 STZ $2118 C3/DDA3: 9C1821 STZ $2118 C3/DDA6: 9C1821 STZ $2118 C3/DDA9: 9C1821 STZ $2118 C3/DDAC: 9C1821 STZ $2118 C3/DDAF: 9C1821 STZ $2118 C3/DDB2: C4EB CPY $EB ; Compare Y to exit value C3/DDB4: D0D7 BNE $DD8D ; Branch if exit value is not reached yet C3/DDB6: E220 SEP #$20 ; (8 bit memory/accum.) C3/DDB8: 60 RTS
C3/DDB9 Data Transfer loop to VRAM
This transfers data to the VRAM. Not by DMA, but by loop. The following registers have to be set with the according values first:
Y: VRAM destination $E7: Data Address $E9: Data Bank $EB: Loop Counter comparison value (LOW BYTE) $EC: Loop Counter comparison value (HIGH BYTE) $ED: value that gets added to each transfered data double-byte (LOW BYTE) $EE: value that gets added to each transfered data double-byte (HIGH BYTE)
$EB/$EC can be used for tile maps. This gets used to set all tiles to a certain palette, or sets the priority bit, for example.
C3/DDB9: C220 REP #$20 ; (16 bit memory/accum.) C3/DDBB: 98 TYA C3/DDBC: 8D1621 STA $2116 ; Set VRAM address C3/DDBF: 7B TDC C3/DDC0: A8 TAY ; Clear Loop counter C3/DDC1: B7E7 LDA [$E7],Y ; Load new data value C3/DDC3: 18 CLC C3/DDC4: 65ED ADC $ED ; Add value C3/DDC6: 8D1821 STA $2118 ; Store value in VRAM C3/DDC9: C8 INY ; Increment counter C3/DDCA: C8 INY C3/DDCB: C4EB CPY $EB ; Is the limit reached? C3/DDCD: D0F2 BNE $DDC1 ; Else: Loop C3/DDCF: E220 SEP #$20 ; (8 bit memory/accum.) C3/DDD1: 60 RTS
C3/DDD2 unknow
C3/DDD2: 8B PHB C3/DDD3: A900 LDA #$00 C3/DDD5: 48 PHA C3/DDD6: AB PLB C3/DDD7: C220 REP #$20 (16 bit memory/accum.) C3/DDD9: A5C3 LDA $C3 C3/DDDB: 2076DE JSR $DE76 C3/DDDE: 85E0 STA $E0 C3/DDE0: 85EB STA $EB C3/DDE2: A5E0 LDA $E0 C3/DDE4: 1004 BPL $DDEA C3/DDE6: 49FFFF EOR #$FFFF C3/DDE9: 1A INC A C3/DDEA: 85E0 STA $E0 C3/DDEC: 4A LSR A C3/DDED: 85CB STA $CB C3/DDEF: A5C3 LDA $C3 C3/DDF1: 207ADE JSR $DE7A C3/DDF4: 85E0 STA $E0 C3/DDF6: 85ED STA $ED C3/DDF8: A5E0 LDA $E0 C3/DDFA: 1004 BPL $DE00 C3/DDFC: 49FFFF EOR #$FFFF C3/DDFF: 1A INC A C3/DE00: 85E0 STA $E0 C3/DE02: 4A LSR A C3/DE03: 85C9 STA $C9 C3/DE05: A0BE01 LDY #$01BE C3/DE08: A5C5 LDA $C5 C3/DE0A: 85E7 STA $E7 C3/DE0C: A5CB LDA $CB C3/DE0E: 8D0442 STA $4204 C3/DE11: E220 SEP #$20 (8 bit memory/accum.) C3/DE13: A5E8 LDA $E8 C3/DE15: 8D0642 STA $4206 C3/DE18: EA NOP C3/DE19: EA NOP C3/DE1A: EA NOP C3/DE1B: EA NOP C3/DE1C: EA NOP C3/DE1D: C220 REP #$20 (16 bit memory/accum.) C3/DE1F: A5EB LDA $EB C3/DE21: 1009 BPL $DE2C C3/DE23: AD1442 LDA $4214 C3/DE26: 49FFFF EOR #$FFFF C3/DE29: 1A INC A C3/DE2A: 8003 BRA $DE2F C3/DE2C: AD1442 LDA $4214 C3/DE2F: 990206 STA $0602,Y C3/DE32: 990406 STA $0604,Y C3/DE35: A5C9 LDA $C9 C3/DE37: 8D0442 STA $4204 C3/DE3A: E220 SEP #$20 (8 bit memory/accum.) C3/DE3C: A5E8 LDA $E8 C3/DE3E: 8D0642 STA $4206 C3/DE41: EA NOP C3/DE42: EA NOP C3/DE43: C220 REP #$20 (16 bit memory/accum.) C3/DE45: A5E7 LDA $E7 C3/DE47: 38 SEC C3/DE48: E5C7 SBC $C7 C3/DE4A: 85E7 STA $E7 C3/DE4C: A5ED LDA $ED C3/DE4E: 1009 BPL $DE59 C3/DE50: AD1442 LDA $4214 C3/DE53: 49FFFF EOR #$FFFF C3/DE56: 1A INC A C3/DE57: 8003 BRA $DE5C C3/DE59: AD1442 LDA $4214 C3/DE5C: 99C407 STA $07C4,Y C3/DE5F: 99C607 STA $07C6,Y C3/DE62: 49FFFF EOR #$FFFF C3/DE65: 1A INC A C3/DE66: 998609 STA $0986,Y C3/DE69: 998809 STA $0988,Y C3/DE6C: 88 DEY C3/DE6D: 88 DEY C3/DE6E: 88 DEY C3/DE6F: 88 DEY C3/DE70: 109A BPL $DE0C C3/DE72: E220 SEP #$20 (8 bit memory/accum.) C3/DE74: AB PLB C3/DE75: 60 RTS ==C3/DE76 unknow== C3/DE76: 18 CLC C3/DE77: 694000 ADC #$0040 C3/DE7A: 29FF00 AND #$00FF C3/DE7D: 0A ASL A C3/DE7E: AA TAX C3/DE7F: BF6DFCC2 LDA $C2FC6D,X C3/DE83: 60 RTS
C3/DE84 code and jump table
C3/DE84: AA TAX C3/DE85: 7C88DE JMP ($DE88,X) C3/DE88: 8CDE C3/DE8B: 94DE
C3/DE8C unknow
C3/DE8C: A62D LDX $2D C3/DE8E: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/DE91: 200612 JSR $1206 C3/DE94: A62D LDX $2D C3/DE96: BC4933 LDY $3349,X C3/DE99: F00E BEQ $DEA9 C3/DE9B: 20C0DE JSR $DEC0 C3/DE9E: A62D LDX $2D C3/DEA0: C220 REP #$20 (16 bit memory/accum.) C3/DEA2: DE4933 DEC $3349,X C3/DEA5: E220 SEP #$20 (8 bit memory/accum.) C3/DEA7: 38 SEC C3/DEA8: 60 RTS C3/DEA9: 18 CLC C3/DEAA: 60 RTS
C3/DEAB code and jump table
C3/DEAB: AA TAX C3/DEAC: 7CAFDE JMP ($DEAF,X) C3/DEAF: B3DE C3/DEB1: BBDE
C3/DEB3 unknow
C3/DEB3: A62D LDX $2D C3/DEB5: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/DEB8: 200612 JSR $1206 C3/DEBB: 20C0DE JSR $DEC0 C3/DEBE: 38 SEC C3/DEBF: 60 RTS
C3/DEC0 unknow
C3/DEC0: A62D LDX $2D C3/DEC2: C221 REP #$21 C3/DEC4: BDC933 LDA $33C9,X C3/DEC7: 7DC934 ADC $34C9,X C3/DECA: 9DC933 STA $33C9,X C3/DECD: BD4934 LDA $3449,X C3/DED0: 18 CLC C3/DED1: 7D4935 ADC $3549,X C3/DED4: 9D4934 STA $3449,X C3/DED7: E220 SEP #$20 (8 bit memory/accum.) C3/DED9: 202112 JSR $1221 (draw the sprites! JMP fool!) C3/DEDC: 60 RTS
C3/DEDD unknow
C3/DEDD: 85E0 STA $E0 C3/DEDF: A547 LDA $47 C3/DEE1: D006 BNE $DEE9 C3/DEE3: A5E0 LDA $E0 C3/DEE5: AA TAX C3/DEE6: 7CEBDE JMP ($DEEB,X) C3/DEE9: 18 CLC C3/DEEA: 60 RTS
C3/DEEB jump table
C3/DEEB: FFDE C3/DEED: 13DF C3/DEEF: 1BDF C3/DEF1: 13DF C3/DEF3: 23DF C3/DEF5: 13DF C3/DEF7: 2ADF C3/DEF9: 13DF C3/DEFB: FDDE C3/DEFC: 18 CLC C3/DEFD: 60 RTS
C3/DEFF unknow
C3/DEFF: A62D LDX $2D C3/DF01: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/DF04: C220 REP #$20 (16 bit memory/accum.) C3/DF06: 9E4935 STZ $3549,X C3/DF09: A585 LDA $85 C3/DF0B: 9D4933 STA $3349,X C3/DF0E: E220 SEP #$20 (8 bit memory/accum.) C3/DF10: 200612 JSR $1206 C3/DF13: 204BDF JSR $DF4B C3/DF16: 20C0DE JSR $DEC0 C3/DF19: 38 SEC C3/DF1A: 60 RTS
C3/DF1B unknow
C3/DF1B: A0C0FF LDY #$FFC0 C3/DF1E: A29600 LDX #$0096 C3/DF21: 800F BRA $DF32 C3/DF23: A400 LDY $00 C3/DF25: A2F000 LDX #$00F0 C3/DF28: 8008 BRA $DF32 C3/DF2A: A0C0FF LDY #$FFC0 C3/DF2D: A22C01 LDX #$012C C3/DF30: 8000 BRA $DF32 C3/DF32: 84E7 STY $E7 C3/DF34: 86E9 STX $E9 C3/DF36: A62D LDX $2D C3/DF38: C220 REP #$20 (16 bit memory/accum.) C3/DF3A: A5E7 LDA $E7 C3/DF3C: 9D4935 STA $3549,X C3/DF3F: A5E9 LDA $E9 C3/DF41: 9D4933 STA $3349,X C3/DF44: E220 SEP #$20 (8 bit memory/accum.) C3/DF46: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/DF49: 80C8 BRA $DF13 C3/DF4B: A62D LDX $2D C3/DF4D: C220 REP #$20 (16 bit memory/accum.) C3/DF4F: BD4933 LDA $3349,X C3/DF52: D005 BNE $DF59 C3/DF54: FE4936 INC $3649,X (execute the next entry in this queue's jump table) C3/DF57: 8003 BRA $DF5C C3/DF59: DE4933 DEC $3349,X C3/DF5C: E220 SEP #$20 (8 bit memory/accum.) C3/DF5E: 60 RTS
C3/DF5F unknow
Get character name buffered for the ending, used for each of the 14 characters C3/DF5F: A400 LDY $00 C3/DF61: 84EB STY $EB C3/DF63: C220 REP #$20 (16 bit memory/accum.) C3/DF65: 98 TYA C3/DF66: 0A ASL A C3/DF67: AA TAX C3/DF68: BF6969C3 LDA $C36969,X (Xth character's working RAM offset) C3/DF6C: A8 TAY C3/DF6D: E220 SEP #$20 (8 bit memory/accum.) C3/DF6F: B90000 LDA $0000,Y (get character ID) C3/DF72: C528 CMP $28 (does it match our character ID we need?) C3/DF74: F023 BEQ $DF99 (branch if so) C3/DF76: C221 REP #$21 C3/DF78: A92500 LDA #$0025 C3/DF7B: 65E7 ADC $E7 C3/DF7D: 85E7 STA $E7 C3/DF7F: E220 SEP #$20 (8 bit memory/accum.) C3/DF81: A4EB LDY $EB C3/DF83: C8 INY C3/DF84: C01000 CPY #$0010 (have we checked 16 characters yet?) C3/DF87: D0D8 BNE $DF61 (branch if not) C3/DF89: A600 LDX $00 (we're here if there were no matches) C3/DF8B: A9BF LDA #$BF ("?" in font) C3/DF8D: 9F899E7E STA $7E9E89,X (write out the "?") C3/DF91: E8 INX C3/DF92: E00600 CPX #$0006 (have we done 6 letters yet?) C3/DF95: D0F6 BNE $DF8D (branch if not) C3/DF97: 8010 BRA $DFA9 (once we've done this, proceed to get it displayed) C3/DF99: A600 LDX $00 C3/DF9B: B90200 LDA $0002,Y (load character name) C3/DF9E: 9F899E7E STA $7E9E89,X (write the name) C3/DFA2: C8 INY C3/DFA3: E8 INX C3/DFA4: E00600 CPX #$0006 (have we done 6 letters yet?) C3/DFA7: D0F2 BNE $DF9B (branch if not) C3/DFA9: 20B3DF JSR $DFB3 C3/DFAC: 2011A6 JSR $A611 C3/DFAF: 203BA6 JSR $A63B (JMP fool!) C3/DFB2: 60 RTS
C3/DFB3 unknow
C3/DFB3: A600 LDX $00 C3/DFB5: 64E0 STZ $E0 C3/DFB7: 64E1 STZ $E1 (STX $E0?) C3/DFB9: 7B TDC C3/DFBA: BF899E7E LDA $7E9E89,X C3/DFBE: C9FF CMP #$FF C3/DFC0: F015 BEQ $DFD7 C3/DFC2: DA PHX C3/DFC3: 38 SEC C3/DFC4: E960 SBC #$60 C3/DFC6: AA TAX C3/DFC7: BFC08FC4 LDA $C48FC0,X (Load Variable-Width Font Character Cell Widths (00-7F)) C3/DFCB: 18 CLC C3/DFCC: 65E0 ADC $E0 C3/DFCE: 85E0 STA $E0 C3/DFD0: FA PLX C3/DFD1: E8 INX C3/DFD2: E00600 CPX #$0006 C3/DFD5: D0E2 BNE $DFB9 C3/DFD7: C220 REP #$20 (16 bit memory/accum.) C3/DFD9: A5E0 LDA $E0 C3/DFDB: 4A LSR A C3/DFDC: 85E0 STA $E0 (this will center the name onscreen) C3/DFDE: A98000 LDA #$0080 C3/DFE1: 38 SEC C3/DFE2: E5E0 SBC $E0 C3/DFE4: 49FFFF EOR #$FFFF C3/DFE7: 1A INC A C3/DFE8: 853D STA $3D C3/DFEA: E220 SEP #$20 (8 bit memory/accum.) C3/DFEC: 60 RTS
C3/DFED unknow
C3/DFED: 84F3 STY $F3 C3/DFEF: A900 LDA #$00 C3/DFF1: A002E0 LDY #$E002 C3/DFF4: 207311 JSR $1173 (put C3/E002 in the queue) C3/DFF7: C220 REP #$20 (16 bit memory/accum.) C3/DFF9: A5F3 LDA $F3 C3/DFFB: 9F49337E STA $7E3349,X C3/DFFF: E220 SEP #$20 (8 bit memory/accum.) C3/E001: 60 RTS