Welcome to Data Crystal's new home! Data Crystal is now part of the TCRF family (sort of).
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
The wiki has recently moved; please report any issues in Discord. Pardon the dust.
Final Fantasy VI/ROM map/Assembly C3D: Difference between revisions
< Final Fantasy VI | ROM map
Jump to navigation
Jump to search
(clean up) |
(→C3/DDB9 unknow: Some explanations) |
||
Line 1,721: | Line 1,721: | ||
C3/DDB6: E220 SEP #$20 (8 bit memory/accum.) | C3/DDB6: E220 SEP #$20 (8 bit memory/accum.) | ||
C3/DDB8: 60 RTS | C3/DDB8: 60 RTS | ||
==C3/DDB9 | ==C3/DDB9 Data Transfer loop to VRAM== | ||
C3/DDB9: C220 REP #$20 | |||
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) | |||
I (lytron) think that the $EB/$EC can be used for tile maps. This might be used to set all tiles to a certain palette, 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 |
Revision as of 15:03, 11 February 2014
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 unknow
C3/D144: A0BAD7 LDY #$D7BA C3/D147: 84E7 STY $E7 C3/D149: A97E LDA #$7E C3/D14B: 85E9 STA $E9 C3/D14D: A08005 LDY #$0580 C3/D150: 84EB STY $EB C3/D152: 64ED STZ $ED C3/D154: 64EE STZ $EE C3/D156: A0006C LDY #$6C00 C3/D159: 4CB9DD JMP $DDB9
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 unknow
C3/D263: A5BB LDA $BB C3/D265: 8D1B21 STA $211B C3/D268: A5BC LDA $BC C3/D26A: 8D1B21 STA $211B C3/D26D: A5BD LDA $BD C3/D26F: 8D1C21 STA $211C C3/D272: A5BE LDA $BE C3/D274: 8D1C21 STA $211C C3/D277: A5BF LDA $BF C3/D279: 8D1D21 STA $211D C3/D27C: A5C0 LDA $C0 C3/D27E: 8D1D21 STA $211D C3/D281: A5C1 LDA $C1 C3/D283: 8D1E21 STA $211E C3/D286: A5C2 LDA $C2 C3/D288: 8D1E21 STA $211E C3/D28B: A5B7 LDA $B7 C3/D28D: 8D1F21 STA $211F C3/D290: A5B8 LDA $B8 C3/D292: 8D1F21 STA $211F C3/D295: A5B9 LDA $B9 C3/D297: 8D2021 STA $2120 C3/D29A: A5BA LDA $BA C3/D29C: 8D2021 STA $2120 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 unknow
C3/D4D3: C220 REP #$20 (from C3/CA74, 16 bit memory/accum.) C3/D4D5: AF06B2EE LDA $EEB206 (pointer to sky graphics, lower two bytes) C3/D4D9: A8 TAY C3/D4DA: E220 SEP #$20 (8 bit memory/accum.) C3/D4DC: AF08B2EE LDA $EEB208 (pointer to sky graphics, high byte) C3/D4E0: 2061DD JSR $DD61 (prepare for and do LZ decompression) C3/D4E3: 2018D5 JSR $D518 C3/D4E6: A0201A LDY #$1A20 C3/D4E9: 84EB STY $EB C3/D4EB: 64ED STZ $ED C3/D4ED: 64EE STZ $EE C3/D4EF: A00040 LDY #$4000 C3/D4F2: 20B9DD JSR $DDB9 C3/D4F5: C220 REP #$20 (16 bit memory/accum.) C3/D4F7: AF09B2EE LDA $EEB209 (sky tilemap, lower two bytes) C3/D4FB: A8 TAY C3/D4FC: E220 SEP #$20 (8 bit memory/accum.) C3/D4FE: AF0BB2EE LDA $EEB20B (sky tilemap, high byte) C3/D502: 2061DD JSR $DD61 (prepare for and do LZ decompression) C3/D505: A00020 LDY #$2000 C3/D508: 84ED STY $ED C3/D50A: 2018D5 JSR $D518 C3/D50D: A00004 LDY #$0400 C3/D510: 84EB STY $EB C3/D512: A00050 LDY #$5000 C3/D515: 4CB9DD JMP $DDB9
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 unknow
C3/D6EE: 64F1 STZ $F1 C3/D6F0: 64F2 STZ $F2 C3/D6F2: C220 REP #$20 (16 bit memory/accum.) C3/D6F4: A400 LDY $00 C3/D6F6: B7E7 LDA [$E7],Y C3/D6F8: 18 CLC C3/D6F9: 65F1 ADC $F1 C3/D6FB: 97EB STA [$EB],Y C3/D6FD: C8 INY C3/D6FE: C8 INY C3/D6FF: C4EF CPY $EF C3/D701: D0F3 BNE $D6F6 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 unknow
C3/D96D: A2C09D LDX #$9DC0 C3/D970: A9C2 LDA #$C2 C3/D972: A00400 LDY #$0004 C3/D975: 20F1D9 JSR $D9F1 C3/D978: A2449C LDX #$9C44 C3/D97B: A9C2 LDA #$C2 C3/D97D: A00800 LDY #$0008 C3/D980: 4CFAD9 JMP $D9FA
C3/D983 unknow
C3/D983: A2C49D LDX #$9DC4 C3/D986: A9C2 LDA #$C2 C3/D988: A02800 LDY #$0028 C3/D98B: 20F1D9 JSR $D9F1 C3/D98E: A24C9C LDX #$9C4C C3/D991: A9C2 LDA #$C2 C3/D993: A06000 LDY #$0060 C3/D996: 4CFAD9 JMP $D9FA
C3/D999 unknow
C3/D999: A2EC9D LDX #$9DEC C3/D99C: A9C2 LDA #$C2 C3/D99E: A01800 LDY #$0018 C3/D9A1: 20F1D9 JSR $D9F1 C3/D9A4: A2AC9C LDX #$9CAC C3/D9A7: A9C2 LDA #$C2 C3/D9A9: A04000 LDY #$0040 C3/D9AC: 4CFAD9 JMP $D9FA
C3/D9AF unknow
C3/D9AF: A2049E LDX #$9E04 C3/D9B2: A9C2 LDA #$C2 C3/D9B4: A02000 LDY #$0020 C3/D9B7: 20F1D9 JSR $D9F1 C3/D9BA: A2EC9C LDX #$9CEC C3/D9BD: A9C2 LDA #$C2 C3/D9BF: A06400 LDY #$0064 C3/D9C2: 4CFAD9 JMP $D9FA
C3/D9C5 unknow
C3/D9C5: A2249E LDX #$9E24 C3/D9C8: A9C2 LDA #$C2 C3/D9CA: A02400 LDY #$0024 C3/D9CD: 20F1D9 JSR $D9F1 C3/D9D0: A2509D LDX #$9D50 C3/D9D3: A9C2 LDA #$C2 C3/D9D5: A07000 LDY #$0070 C3/D9D8: 4CFAD9 JMP $D9FA
C3/D9DB unknow
C3/D9DB: A2489E LDX #$9E48 C3/D9DE: A9C2 LDA #$C2 C3/D9E0: A0E400 LDY #$00E4 C3/D9E3: 4CF1D9 JMP $D9F1
C3/D9E6 unknow
C3/D9E6: A22C9F LDX #$9F2C C3/D9E9: A9C2 LDA #$C2 C3/D9EB: A06C00 LDY #$006C C3/D9EE: 4CF1D9 JMP $D9F1
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 unknow
C3/DA03: A00C00 LDY #$000C C3/DA06: A29498 LDX #$9894 C3/DA09: A9C2 LDA #$C2 C3/DA0B: 4CA5DB JMP $DBA5
C3/DA0E unknow
C3/DA0E: A01400 LDY #$0014 C3/DA11: A2A098 LDX #$98A0 C3/DA14: A9C2 LDA #$C2 C3/DA16: 4CA5DB JMP $DBA5
C3/DA19 unknow
C3/DA19: A01800 LDY #$0018 C3/DA1C: A2B498 LDX #$98B4 C3/DA1F: A9C2 LDA #$C2 C3/DA21: 4CA5DB JMP $DBA5
C3/DA24 unknow
C3/DA24: A01800 LDY #$0018 C3/DA27: A2CC98 LDX #$98CC C3/DA2A: A9C2 LDA #$C2 C3/DA2C: 4CA5DB JMP $DBA5
C3/DA2F unknow
C3/DA2F: A01800 LDY #$0018 C3/DA32: A2E498 LDX #$98E4 C3/DA35: A9C2 LDA #$C2 C3/DA37: 4CA5DB JMP $DBA5
C3/DA3A unknow
C3/DA3A: A00C00 LDY #$000C C3/DA3D: A2FC98 LDX #$98FC C3/DA40: A9C2 LDA #$C2 C3/DA42: 4CA5DB JMP $DBA5
C3/DA45 unknow
C3/DA45: A01000 LDY #$0010 C3/DA48: A20899 LDX #$9908 C3/DA4B: A9C2 LDA #$C2 C3/DA4D: 4CA5DB JMP $DBA5
C3/DA50 unknow
C3/DA50: A01800 LDY #$0018 C3/DA53: A21899 LDX #$9918 C3/DA56: A9C2 LDA #$C2 C3/DA58: 4CA5DB JMP $DBA5
C3/DA5B unknow
C3/DA5B: A02000 LDY #$0020 C3/DA5E: A23099 LDX #$9930 C3/DA61: A9C2 LDA #$C2 C3/DA63: 4CA5DB JMP $DBA5
C3/DA66 unknow
C3/DA66: A01800 LDY #$0018 C3/DA69: A25099 LDX #$9950 C3/DA6C: A9C2 LDA #$C2 C3/DA6E: 4CA5DB JMP $DBA5
C3/DA71 unknow
C3/DA71: A01800 LDY #$0018 C3/DA74: A26899 LDX #$9968 C3/DA77: A9C2 LDA #$C2 C3/DA79: 4CA5DB JMP $DBA5
C3/DA7C unknow
C3/DA7C: A01000 LDY #$0010 C3/DA7F: A28099 LDX #$9980 C3/DA82: A9C2 LDA #$C2 C3/DA84: 4CA5DB JMP $DBA5
C3/DA87 unknow
C3/DA87: A01000 LDY #$0010 C3/DA8A: A29099 LDX #$9990 C3/DA8D: A9C2 LDA #$C2 C3/DA8F: 4CA5DB JMP $DBA5
C3/DA92 unknow
C3/DA92: A01400 LDY #$0014 C3/DA95: A2A099 LDX #$99A0 C3/DA98: A9C2 LDA #$C2 C3/DA9A: 4CA5DB JMP $DBA5
C3/DA9D unknow
C3/DA9D: A02400 LDY #$0024 C3/DAA0: A2B499 LDX #$99B4 C3/DAA3: A9C2 LDA #$C2 C3/DAA5: 4CA5DB JMP $DBA5
C3/DAA8 unknow
C3/DAA8: A02400 LDY #$0024 C3/DAAB: A2D899 LDX #$99D8 C3/DAAE: A9C2 LDA #$C2 C3/DAB0: 4CA5DB JMP $DBA5
C3/DAB3 unknow
C3/DAB3: A02400 LDY #$0024 C3/DAB6: A2FC99 LDX #$99FC C3/DAB9: A9C2 LDA #$C2 C3/DABB: 4CA5DB JMP $DBA5
C3/DABE unknow
C3/DABE: A01400 LDY #$0014 C3/DAC1: A2209A LDX #$9A20 C3/DAC4: A9C2 LDA #$C2 C3/DAC6: 4CA5DB JMP $DBA5
C3/DAC9 unknow
C3/DAC9: A01400 LDY #$0014 C3/DACC: A2349A LDX #$9A34 C3/DACF: A9C2 LDA #$C2 C3/DAD1: 4CA5DB JMP $DBA5
C3/DAD4 unknow
C3/DAD4: A01000 LDY #$0010 C3/DAD7: A2489A LDX #$9A48 C3/DADA: A9C2 LDA #$C2 C3/DADC: 4CA5DB JMP $DBA5
C3/DADF unknow
C3/DADF: A01800 LDY #$0018 C3/DAE2: A2589A LDX #$9A58 C3/DAE5: A9C2 LDA #$C2 C3/DAE7: 4CA5DB JMP $DBA5
C3/DAEA unknow
C3/DAEA: A01800 LDY #$0018 C3/DAED: A2709A LDX #$9A70 C3/DAF0: A9C2 LDA #$C2 C3/DAF2: 4CA5DB JMP $DBA5
C3/DAF5 unknow
C3/DAF5: A02400 LDY #$0024 C3/DAF8: A2889A LDX #$9A88 C3/DAFB: A9C2 LDA #$C2 C3/DAFD: 4CA5DB JMP $DBA5
C3/DB00 unknow
C3/DB00: A01800 LDY #$0018 C3/DB03: A2AC9A LDX #$9AAC C3/DB06: A9C2 LDA #$C2 C3/DB08: 4CA5DB JMP $DBA5
C3/DB0B unknow
C3/DB0B: A01800 LDY #$0018 C3/DB0E: A2C49A LDX #$9AC4 C3/DB11: A9C2 LDA #$C2 C3/DB13: 4CA5DB JMP $DBA5
C3/DB16 unknow
C3/DB16: A01800 LDY #$0018 C3/DB19: A2DC9A LDX #$9ADC C3/DB1C: A9C2 LDA #$C2 C3/DB1E: 4CA5DB JMP $DBA5
C3/DB21 unknow
C3/DB21: A02800 LDY #$0028 C3/DB24: A2F49A LDX #$9AF4 C3/DB27: A9C2 LDA #$C2 C3/DB29: 4CA5DB JMP $DBA5
C3/DB2C unknow
C3/DB2C: A02800 LDY #$0028 C3/DB2F: A21C9B LDX #$9B1C C3/DB32: A9C2 LDA #$C2 C3/DB34: 4CA5DB JMP $DBA5
C3/DB37 unknow
C3/DB37: A02400 LDY #$0024 C3/DB3A: A2449B LDX #$9B44 C3/DB3D: A9C2 LDA #$C2 C3/DB3F: 4CA5DB JMP $DBA5
C3/DB42 unknow
C3/DB42: A02000 LDY #$0020 C3/DB45: A2689B LDX #$9B68 C3/DB48: A9C2 LDA #$C2 C3/DB4A: 4CA5DB JMP $DBA5
C3/DB4D unknow
C3/DB4D: A01800 LDY #$0018 C3/DB50: A2889B LDX #$9B88 C3/DB53: A9C2 LDA #$C2 C3/DB55: 4CA5DB JMP $DBA5
C3/DB58 unknow
C3/DB58: A01400 LDY #$0014 C3/DB5B: A2A09B LDX #$9BA0 C3/DB5E: A9C2 LDA #$C2 C3/DB60: 4CA5DB JMP $DBA5
C3/DB63 unknow
C3/DB63: A02400 LDY #$0024 C3/DB66: A2B49B LDX #$9BB4 C3/DB69: A9C2 LDA #$C2 C3/DB6B: 4CA5DB JMP $DBA5
C3/DB6E unknow
C3/DB6E: A01800 LDY #$0018 C3/DB71: A2D89B LDX #$9BD8 C3/DB74: A9C2 LDA #$C2 C3/DB76: 4CA5DB JMP $DBA5
C3/DB79 unknow
C3/DB79: A01800 LDY #$0018 C3/DB7C: A2F09B LDX #$9BF0 C3/DB7F: A9C2 LDA #$C2 C3/DB81: 4CA5DB JMP $DBA5
C3/DB84 unknow
C3/DB84: A01400 LDY #$0014 C3/DB87: A2089C LDX #$9C08 C3/DB8A: A9C2 LDA #$C2 C3/DB8C: 4CA5DB JMP $DBA5
C3/DB8F unknow
C3/DB8F: A01400 LDY #$0014 C3/DB92: A21C9C LDX #$9C1C C3/DB95: A9C2 LDA #$C2 C3/DB97: 4CA5DB JMP $DBA5
C3/DB9A unknow
C3/DB9A: A01400 LDY #$0014 C3/DB9D: A2309C LDX #$9C30 C3/DBA0: A9C2 LDA #$C2 C3/DBA2: 4CA5DB JMP $DBA5
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 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 C3/DBE5: D0E3 BNE $DBCA C3/DBE7: 60 RTS
C3/DBE8 unknow
C3/DBE8: A400 LDY $00 C3/DBEA: 200EDC JSR $DC0E 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 C3/DC05: D0E3 BNE $DBEA C3/DC07: 60 RTS C3/DC08: A2000B LDX #$0B00 C3/DC0B: 86F1 STX $F1 C3/DC0D: 60 RTS C3/DC0E: A20009 LDX #$0900 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 C3/DCBF: 2025DD JSR $DD25 C3/DCC2: 2002DD JSR $DD02 C3/DCC5: 9009 BCC $DCD0 C3/DCC7: A5E0 LDA $E0 C3/DCC9: 18 CLC C3/DCCA: 6908 ADC #$08 C3/DCCC: 85E0 STA $E0 C3/DCCE: 80F2 BRA $DCC2 C3/DCD0: 60 RTS
C3/DCD1 unknow
C3/DCD1: 2031DD JSR $DD31 C3/DCD4: 2025DD JSR $DD25 C3/DCD7: 7B TDC C3/DCD8: A7E7 LDA [$E7] C3/DCDA: F025 BEQ $DD01 C3/DCDC: 85E3 STA $E3 C3/DCDE: A5E0 LDA $E0 C3/DCE0: 0980 ORA #$80 C3/DCE2: 97EB STA [$EB],Y C3/DCE4: C8 INY C3/DCE5: 7B TDC C3/DCE6: 97EB STA [$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 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 unknow
C3/DD02: 7B TDC C3/DD03: A7E7 LDA [$E7] C3/DD05: F01C BEQ $DD23 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 unknow
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 unknow
C3/DD31: 86E7 STX $E7 (from C3/DCBC, C3/DCD1) C3/DD33: A9C2 LDA #$C2 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] 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 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 unknow
C3/DD73: C220 REP #$20 (from C3/C557, 16 bit memory/accum.) C3/DD75: 7B TDC C3/DD76: 8D1621 STA $2116 C3/DD79: A8 TAY C3/DD7A: 8D1821 STA $2118 C3/DD7D: C8 INY C3/DD7E: C00080 CPY #$8000 C3/DD81: D0F7 BNE $DD7A C3/DD83: E220 SEP #$20 (8 bit memory/accum.) C3/DD85: 60 RTS
C3/DD86 unknow
C3/DD86: 8C1621 STY $2116 C3/DD89: 7B TDC C3/DD8A: A8 TAY C3/DD8B: C220 REP #$20 (16 bit memory/accum.) C3/DD8D: A20800 LDX #$0008 C3/DD90: B7E7 LDA [$E7],Y C3/DD92: 8D1821 STA $2118 C3/DD95: C8 INY C3/DD96: C8 INY C3/DD97: CA DEX C3/DD98: D0F6 BNE $DD90 C3/DD9A: 9C1821 STZ $2118 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 C3/DDB4: D0D7 BNE $DD8D 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)
I (lytron) think that the $EB/$EC can be used for tile maps. This might be used to set all tiles to a certain palette, 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