; Joypad Test Cartridge (U) NES disassembly - Pass 1 ; Byte-oriented ca65 source generated from the supplied PRG image. ; Recursively reachable instructions are emitted explicitly with address/byte comments. ; Unreached bytes remain explicit .byte blocks; no ROM byte is deleted or reformatted. ; Pass 2 replaces address-derived labels, RAM aliases, and table names while ; preserving byte identity. ; ; Vectors: NMI=$CCF7 RESET=$C000 IRQ=$C000 ; PRG mapped at $C000-$FFFF (NROM, mirrored to the upper half) ; ; Pass 1 trace provenance (the audit trail behind every classification below): ; entries seeded by hand after inspecting code-shaped but unreferenced blocks: ; $C000, $C097, $C09F, $C0FF, $C10B, $C111, $C129, $C174, $C17F, $C361, $C41B, $C42F, $C43C, $C46A, $C523, $C524, $C564, $C597, $C5D7, $C60A, $C64A, $C67D, $C6BD, $C6F0, $C730, $C763, $C7A3, $C7D6, $CA8A, $CAB1, $CAB8, $CAD3, $CADC, $CB4D, $CB55, $CBE0, $CBE6, $CBF2, $CBF8, $CC11, $CC4F, $CCA0, $CCAC, $CCB8, $CCC4, $CCD4, $CCE1, $CCE2, $CCF7, $CD0A, $CD17, $CD24, $CD2F, $CD39, $CD3F, $CD69, $CD6E, $CDB1, $CDC8, $CDEE, $CE12, $CE3C ; $C095-$C096 forced back to data: the only path into it is a branch that is always taken ; $C09D-$C09E forced back to data: the only path into it is a branch that is always taken ; $CB4B-$CB4C forced back to data: the only path into it is a branch that is always taken ; $CB53-$CB54 forced back to data: the only path into it is a branch that is always taken ; $CF06-$D1F4 forced back to data: the only path into it is a branch that is always taken ; $D5C4-$D6A3 forced back to data: the only path into it is a branch that is always taken ; $FFFA-$FFFB forced back to data: the only path into it is a branch that is always taken ; .setcpu "6502" .include "symbols.inc" .include "locals.inc" .segment "PRG" ;=============================================================================== ; Routine: Reset ; Global: Power-on entry point - the CPU starts here with the hardware in its ; reset state; it reads the PPUSTATUS register. ; Local: Executes 2 instructions: loads A from the PPUSTATUS register; ; branches on non-negative to Reset. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== Reset: lda PPUSTATUS ; CPU:$C000 PRG:0000 AD 02 20 bpl Reset ; CPU:$C003 PRG:0003 10 FB ;=============================================================================== ; Routine: SubCC005_OnNonnegative ; Global: The routine reads the PPUSTATUS register. ; Local: Executes 2 instructions: loads A from the PPUSTATUS register; ; branches on non-negative to SubCC005. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC005_OnNonnegative: lda PPUSTATUS ; CPU:$C005 PRG:0005 AD 02 20 bpl SubCC005_OnNonnegative ; CPU:$C008 PRG:0008 10 FB ;=============================================================================== ; Routine: SubCC00A_OnNonnegative ; Global: The routine reads the PPUSTATUS register. ; Local: Executes 4 instructions: loads A from the PPUSTATUS register; ; branches on non-negative to SubCC00A; loads A with $00; loads X ; with $00. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC00A_OnNonnegative: lda PPUSTATUS ; CPU:$C00A PRG:000A AD 02 20 bpl SubCC00A_OnNonnegative ; CPU:$C00D PRG:000D 10 FB lda #$00 ; CPU:$C00F PRG:000F A9 00 ldx #$00 ; CPU:$C011 PRG:0011 A2 00 ;=============================================================================== ; Routine: SubCC013_OnNonzero ; Global: The routine calls PpuScrollLatch, writes the PPUCTRL, PPUMASK, OAMDMA and ; OAMADDR registers. ; Local: Executes 28 instructions: stores A to Zp00,x; stores A to $0100,x; ; loads A with $F4; stores A to $0200,x; loads A with $00; stores A ; to $0300,x; and 21 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the PPUCTRL, PPUMASK and ; OAMDMA registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC013_OnNonzero: sta Zp00,x ; CPU:$C013 PRG:0013 95 00 sta $0100,x ; CPU:$C015 PRG:0015 9D 00 01 lda #$F4 ; CPU:$C018 PRG:0018 A9 F4 sta $0200,x ; CPU:$C01A PRG:001A 9D 00 02 lda #$00 ; CPU:$C01D PRG:001D A9 00 sta $0300,x ; CPU:$C01F PRG:001F 9D 00 03 sta $0400,x ; CPU:$C022 PRG:0022 9D 00 04 sta $0500,x ; CPU:$C025 PRG:0025 9D 00 05 sta $0600,x ; CPU:$C028 PRG:0028 9D 00 06 sta $0700,x ; CPU:$C02B PRG:002B 9D 00 07 inx ; CPU:$C02E PRG:002E E8 bne SubCC013_OnNonzero ; CPU:$C02F PRG:002F D0 E2 lda #$10 ; CPU:$C031 PRG:0031 A9 10 sta PPUCTRL ; CPU:$C033 PRG:0033 8D 00 20 sta ZpEF ; CPU:$C036 PRG:0036 85 EF lda #$00 ; CPU:$C038 PRG:0038 A9 00 sta PPUMASK ; CPU:$C03A PRG:003A 8D 01 20 sta ZpEE ; CPU:$C03D PRG:003D 85 EE lda #$02 ; CPU:$C03F PRG:003F A9 02 sta OAMDMA ; CPU:$C041 PRG:0041 8D 14 40 lda #$00 ; CPU:$C044 PRG:0044 A9 00 sta OAMADDR ; CPU:$C046 PRG:0046 8D 03 20 lda #$00 ; CPU:$C049 PRG:0049 A9 00 sta ZpED ; CPU:$C04B PRG:004B 85 ED sta ZpEC ; CPU:$C04D PRG:004D 85 EC jsr PpuScrollLatch ; CPU:$C04F PRG:004F 20 3C CE ldx #$FF ; CPU:$C052 PRG:0052 A2 FF txs ; CPU:$C054 PRG:0054 9A ;=============================================================================== ; Routine: ClearRamAndOam ; Global: The routine calls PpuMaskSetup. ; Local: Executes 4 instructions: calls PpuMaskSetup; loads A with $00; loads X ; with $00. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== ClearRamAndOam: jsr PpuMaskSetup ; CPU:$C055 PRG:0055 20 2F CD nop ; CPU:$C058 PRG:0058 EA lda #$00 ; CPU:$C059 PRG:0059 A9 00 ldx #$00 ; CPU:$C05B PRG:005B A2 00 ;=============================================================================== ; Routine: SubCC05D_OnNonzero ; Global: The routine calls VramWrite, ClearOamRoutine and VramPtrWrite, writes the ; PPUCTRL and PPUMASK registers. ; Local: Executes 23 instructions: stores A to Zp00,x; stores A to $0100,x; ; loads A with $F4; stores A to $0200,x; loads A with $00; stores A ; to $0300,x; and 17 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the PPUCTRL and PPUMASK ; registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC05D_OnNonzero: sta Zp00,x ; CPU:$C05D PRG:005D 95 00 sta $0100,x ; CPU:$C05F PRG:005F 9D 00 01 lda #$F4 ; CPU:$C062 PRG:0062 A9 F4 sta $0200,x ; CPU:$C064 PRG:0064 9D 00 02 lda #$00 ; CPU:$C067 PRG:0067 A9 00 sta $0300,x ; CPU:$C069 PRG:0069 9D 00 03 sta $0400,x ; CPU:$C06C PRG:006C 9D 00 04 sta $0500,x ; CPU:$C06F PRG:006F 9D 00 05 sta $0600,x ; CPU:$C072 PRG:0072 9D 00 06 inx ; CPU:$C075 PRG:0075 E8 bne SubCC05D_OnNonzero ; CPU:$C076 PRG:0076 D0 E5 lda #$10 ; CPU:$C078 PRG:0078 A9 10 sta PPUCTRL ; CPU:$C07A PRG:007A 8D 00 20 sta ZpEF ; CPU:$C07D PRG:007D 85 EF lda #$00 ; CPU:$C07F PRG:007F A9 00 sta PPUMASK ; CPU:$C081 PRG:0081 8D 01 20 sta ZpEE ; CPU:$C084 PRG:0084 85 EE lda #$20 ; CPU:$C086 PRG:0086 A9 20 ldx #$24 ; CPU:$C088 PRG:0088 A2 24 ldy #$00 ; CPU:$C08A PRG:008A A0 00 jsr VramWrite ; CPU:$C08C PRG:008C 20 EE CD jsr ClearOamRoutine ; CPU:$C08F PRG:008F 20 74 C1 jsr VramPtrWrite ; CPU:$C092 PRG:0092 20 3F CD ; ---- data $C095-$C096 (2 bytes) ---- MasterPaletteStreamPtr: .byte $06, $CF ; CPU:$C095 PRG:0095 06 CF ;=============================================================================== ; Routine: SubCC097 ; Global: The routine calls PpuScrollLatch and VramPtrWrite. ; Local: Executes 2 instructions: calls PpuScrollLatch; calls VramPtrWrite. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC097: jsr PpuScrollLatch ; CPU:$C097 PRG:0097 20 3C CE jsr VramPtrWrite ; CPU:$C09A PRG:009A 20 3F CD ; ---- data $C09D-$C09E (2 bytes) ---- JoypadPanelScreenOnePtr: .byte $2A, $CF ; CPU:$C09D PRG:009D 2A CF ;=============================================================================== ; Routine: SubCC09F ; Global: The routine calls PpuScrollLatch, SetPpuMaskBits and SubCC17F, writes $0200, ; $0201, $0202 and $0203, writes the APUPULSE1CTRL, APUPULSE1SWEEP, ; APUPULSE1TIMERLO, APUPULSE1TIMERHI and 1 more registers. ; Local: Executes 26 instructions: calls PpuScrollLatch; loads A with $70; stores A ; to $0200; loads A with $35; stores A to $0201; loads A with $00; ; and 20 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $0200, $0201 and $0202 changed. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC09F: jsr PpuScrollLatch ; CPU:$C09F PRG:009F 20 3C CE lda #$70 ; CPU:$C0A2 PRG:00A2 A9 70 sta $0200 ; CPU:$C0A4 PRG:00A4 8D 00 02 lda #$35 ; CPU:$C0A7 PRG:00A7 A9 35 sta $0201 ; CPU:$C0A9 PRG:00A9 8D 01 02 lda #$00 ; CPU:$C0AC PRG:00AC A9 00 sta $0202 ; CPU:$C0AE PRG:00AE 8D 02 02 lda #$18 ; CPU:$C0B1 PRG:00B1 A9 18 sta $0203 ; CPU:$C0B3 PRG:00B3 8D 03 02 lda #$9F ; CPU:$C0B6 PRG:00B6 A9 9F sta APUPULSE1CTRL ; CPU:$C0B8 PRG:00B8 8D 00 40 lda #$00 ; CPU:$C0BB PRG:00BB A9 00 sta APUPULSE1SWEEP ; CPU:$C0BD PRG:00BD 8D 01 40 lda #$FD ; CPU:$C0C0 PRG:00C0 A9 FD sta APUPULSE1TIMERLO ; CPU:$C0C2 PRG:00C2 8D 02 40 lda #$29 ; CPU:$C0C5 PRG:00C5 A9 29 sta APUPULSE1TIMERHI ; CPU:$C0C7 PRG:00C7 8D 03 40 lda #$00 ; CPU:$C0CA PRG:00CA A9 00 sta APUSTATUS ; CPU:$C0CC PRG:00CC 8D 15 40 jsr SetPpuMaskBits ; CPU:$C0CF PRG:00CF 20 39 CD jsr SubCC17F_OnNonzero ; CPU:$C0D2 PRG:00D2 20 7F C1 lda #$70 ; CPU:$C0D5 PRG:00D5 A9 70 sta Zp55 ; CPU:$C0D7 PRG:00D7 85 55 lda #$00 ; CPU:$C0D9 PRG:00D9 A9 00 sta Zp53 ; CPU:$C0DB PRG:00DB 85 53 sta Zp54 ; CPU:$C0DD PRG:00DD 85 54 ;=============================================================================== ; Routine: EnableNmiAndStrobeControllers ; Global: The routine calls EnablePpuNmi and StrobeController2. ; Local: Executes 3 instructions: calls EnablePpuNmi; calls StrobeController2; loads X with ; $01. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== EnableNmiAndStrobeControllers: jsr EnablePpuNmi ; CPU:$C0DF PRG:00DF 20 E2 CC jsr StrobeController2 ; CPU:$C0E2 PRG:00E2 20 4F CC ldx #$01 ; CPU:$C0E5 PRG:00E5 A2 01 ;=============================================================================== ; Routine: ScanControllerButtonBits ; Global: The routine calls ScanControllerButtonBits. ; Local: Executes 9 instructions: rotates Zp40,x left; rotates Zp40,x left; ; rotates Zp40,x left; branches on carry set to SubCC135; rotates ; Zp40,x left; branches on carry set to SubCC111; and 3 more ; instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== ScanControllerButtonBits: rol Zp40,x ; CPU:$C0E7 PRG:00E7 36 40 rol Zp40,x ; CPU:$C0E9 PRG:00E9 36 40 rol Zp40,x ; CPU:$C0EB PRG:00EB 36 40 bcs SubCC135_Loop ; CPU:$C0ED PRG:00ED B0 46 rol Zp40,x ; CPU:$C0EF PRG:00EF 36 40 bcs SubCC111_Loop ; CPU:$C0F1 PRG:00F1 B0 1E dex ; CPU:$C0F3 PRG:00F3 CA bmi SubCC0F9_Loop ; CPU:$C0F4 PRG:00F4 30 03 jmp ScanControllerButtonBits ; CPU:$C0F6 PRG:00F6 4C E7 C0 ;=============================================================================== ; Routine: SubCC0F9_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 3 instructions: increments Zp54; branches on not equal to ; SubCC0FF; increments Zp53. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC0F9_Loop: inc Zp54 ; CPU:$C0F9 PRG:00F9 E6 54 bne SubCC0FF_Loop ; CPU:$C0FB PRG:00FB D0 02 inc Zp53 ; CPU:$C0FD PRG:00FD E6 53 ;=============================================================================== ; Routine: SubCC0FF_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 6 instructions: loads A with $00; compares A with Zp54; ; branches on not equal to SubCC10B; loads A with $38; compares A ; with Zp53; branches on equal to SubCC10E. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC0FF_Loop: lda #$00 ; CPU:$C0FF PRG:00FF A9 00 cmp Zp54 ; CPU:$C101 PRG:0101 C5 54 bne SubCC10B_Loop ; CPU:$C103 PRG:0103 D0 06 lda #$38 ; CPU:$C105 PRG:0105 A9 38 cmp Zp53 ; CPU:$C107 PRG:0107 C5 53 beq SubCC10E_Loop ; CPU:$C109 PRG:0109 F0 03 ;=============================================================================== ; Routine: SubCC10B_Loop ; Global: The routine calls EnableNmiAndStrobeControllers. ; Local: Executes 1 instruction: calls EnableNmiAndStrobeControllers. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC10B_Loop: jmp EnableNmiAndStrobeControllers ; CPU:$C10B PRG:010B 4C DF C0 ;=============================================================================== ; Routine: SubCC10E_Loop ; Global: The routine calls ClearRamAndOam. ; Local: Executes 1 instruction: calls ClearRamAndOam. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC10E_Loop: jmp ClearRamAndOam ; CPU:$C10E PRG:010E 4C 55 C0 ;=============================================================================== ; Routine: SubCC111_Loop ; Global: The routine calls EnableNmiAndStrobeControllers. ; Local: Executes 10 instructions: loads A with $70; compares A with Zp55; ; branches on equal to SubCC129; loads A with $88; compares A with ; Zp55; branches on equal to SubCC12F; and 4 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC111_Loop: lda #$70 ; CPU:$C111 PRG:0111 A9 70 cmp Zp55 ; CPU:$C113 PRG:0113 C5 55 beq SubCC129_Loop ; CPU:$C115 PRG:0115 F0 12 lda #$88 ; CPU:$C117 PRG:0117 A9 88 cmp Zp55 ; CPU:$C119 PRG:0119 C5 55 beq SubCC12F_Loop ; CPU:$C11B PRG:011B F0 12 lda #$A0 ; CPU:$C11D PRG:011D A9 A0 cmp Zp55 ; CPU:$C11F PRG:011F C5 55 beq SubCC126_Loop ; CPU:$C121 PRG:0121 F0 03 jmp EnableNmiAndStrobeControllers ; CPU:$C123 PRG:0123 4C DF C0 ;=============================================================================== ; Routine: SubCC126_Loop ; Global: The routine calls ClearRamAndOam. ; Local: Executes 1 instruction: calls ClearRamAndOam. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC126_Loop: jmp ClearRamAndOam ; CPU:$C126 PRG:0126 4C 55 C0 ;=============================================================================== ; Routine: SubCC129_Loop ; Global: The routine calls SubCC17F and ClearAuxRam. ; Local: Executes 2 instructions: calls SubCC17F; calls ClearAuxRam. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC129_Loop: jsr SubCC17F_OnNonzero ; CPU:$C129 PRG:0129 20 7F C1 jmp ClearAuxRam ; CPU:$C12C PRG:012C 4C 03 CB ;=============================================================================== ; Routine: SubCC12F_Loop ; Global: The routine calls SubCC17F and ClearMarkerRam. ; Local: Executes 2 instructions: calls SubCC17F; calls ClearMarkerRam. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC12F_Loop: jsr SubCC17F_OnNonzero ; CPU:$C12F PRG:012F 20 7F C1 jmp ClearMarkerRam ; CPU:$C132 PRG:0132 4C 3F C2 ;=============================================================================== ; Routine: SubCC135_Loop ; Global: The routine calls ResetFrameCounter and EnableNmiAndStrobeControllers. ; Local: Executes 11 instructions: calls ResetFrameCounter; loads A with $70; compares ; A with Zp55; branches on equal to SubCC14D; loads A with $88; ; compares A with Zp55; and 5 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC135_Loop: jsr ResetFrameCounter ; CPU:$C135 PRG:0135 20 B1 CA lda #$70 ; CPU:$C138 PRG:0138 A9 70 cmp Zp55 ; CPU:$C13A PRG:013A C5 55 beq SubCC14D_Loop ; CPU:$C13C PRG:013C F0 0F lda #$88 ; CPU:$C13E PRG:013E A9 88 cmp Zp55 ; CPU:$C140 PRG:0140 C5 55 beq SubCC152_Loop ; CPU:$C142 PRG:0142 F0 0E lda #$A0 ; CPU:$C144 PRG:0144 A9 A0 cmp Zp55 ; CPU:$C146 PRG:0146 C5 55 beq SubCC157_Loop ; CPU:$C148 PRG:0148 F0 0D jmp EnableNmiAndStrobeControllers ; CPU:$C14A PRG:014A 4C DF C0 ;=============================================================================== ; Routine: SubCC14D_Loop ; Global: The routine calls PlayTestTone. ; Local: Executes 2 instructions: loads A with $88; calls PlayTestTone. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC14D_Loop: lda #$88 ; CPU:$C14D PRG:014D A9 88 jmp PlayTestTone ; CPU:$C14F PRG:014F 4C 5C C1 ;=============================================================================== ; Routine: SubCC152_Loop ; Global: The routine calls PlayTestTone. ; Local: Executes 2 instructions: loads A with $A0; calls PlayTestTone. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC152_Loop: lda #$A0 ; CPU:$C152 PRG:0152 A9 A0 jmp PlayTestTone ; CPU:$C154 PRG:0154 4C 5C C1 ;=============================================================================== ; Routine: SubCC157_Loop ; Global: The routine calls PlayTestTone. ; Local: Executes 2 instructions: loads A with $70; calls PlayTestTone. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC157_Loop: lda #$70 ; CPU:$C157 PRG:0157 A9 70 jmp PlayTestTone ; CPU:$C159 PRG:0159 4C 5C C1 ;=============================================================================== ; Routine: PlayTestTone ; Global: The routine calls SubCC17F and EnableNmiAndStrobeControllers, writes $0200, writes the ; APUSTATUS and APUPULSE1TIMERHI registers, reads the APUSTATUS ; register. ; Local: Executes 9 instructions: stores A to $0200; stores A to Zp55; loads A ; with $01; ORs A with the APUSTATUS register; stores A to the ; APUSTATUS register; loads A with $29; and 3 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $0200 changed. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== PlayTestTone: sta $0200 ; CPU:$C15C PRG:015C 8D 00 02 sta Zp55 ; CPU:$C15F PRG:015F 85 55 lda #$01 ; CPU:$C161 PRG:0161 A9 01 ora APUSTATUS ; CPU:$C163 PRG:0163 0D 15 40 sta APUSTATUS ; CPU:$C166 PRG:0166 8D 15 40 lda #$29 ; CPU:$C169 PRG:0169 A9 29 sta APUPULSE1TIMERHI ; CPU:$C16B PRG:016B 8D 03 40 jsr SubCC17F_OnNonzero ; CPU:$C16E PRG:016E 20 7F C1 jmp EnableNmiAndStrobeControllers ; CPU:$C171 PRG:0171 4C DF C0 ;=============================================================================== ; Routine: ClearOamRoutine ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 2 instructions: loads A with $F4; loads X with $00. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A and X, the N and Z flags, the OAM shadow. ; ;=============================================================================== ClearOamRoutine: lda #$F4 ; CPU:$C174 PRG:0174 A9 F4 ldx #$00 ; CPU:$C176 PRG:0176 A2 00 ;=============================================================================== ; Routine: SubCC178_OnNonzero ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 4 instructions: stores A to $0200,x; increments X; branches ; on not equal to SubCC178; returns with RTS. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. ; Clobbers: ; X, the N and Z flags, the OAM shadow. ; ;=============================================================================== SubCC178_OnNonzero: sta $0200,x ; CPU:$C178 PRG:0178 9D 00 02 inx ; CPU:$C17B PRG:017B E8 bne SubCC178_OnNonzero ; CPU:$C17C PRG:017C D0 FA rts ; CPU:$C17E PRG:017E 60 ;=============================================================================== ; Routine: SubCC17F_OnNonzero ; Global: The routine calls EnablePpuNmi and StrobeController2. ; Local: Executes 9 instructions: copies X into A; pushes A; calls EnablePpuNmi; ; calls StrobeController2; pulls A; copies A into X; and 3 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A and Y, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC17F_OnNonzero: txa ; CPU:$C17F PRG:017F 8A pha ; CPU:$C180 PRG:0180 48 jsr EnablePpuNmi ; CPU:$C181 PRG:0181 20 E2 CC jsr StrobeController2 ; CPU:$C184 PRG:0184 20 4F CC pla ; CPU:$C187 PRG:0187 68 tax ; CPU:$C188 PRG:0188 AA lda #$FF ; CPU:$C189 PRG:0189 A9 FF and Zp40,x ; CPU:$C18B PRG:018B 35 40 bne SubCC17F_OnNonzero ; CPU:$C18D PRG:018D D0 F0 ;=============================================================================== ; Routine: SubCC18F_OnNonzero ; Global: The routine calls EnablePpuNmi and StrobeController2. ; Local: Executes 10 instructions: copies X into A; pushes A; calls EnablePpuNmi; ; calls StrobeController2; pulls A; copies A into X; and 4 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. ; Clobbers: ; A and Y, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC18F_OnNonzero: txa ; CPU:$C18F PRG:018F 8A pha ; CPU:$C190 PRG:0190 48 jsr EnablePpuNmi ; CPU:$C191 PRG:0191 20 E2 CC jsr StrobeController2 ; CPU:$C194 PRG:0194 20 4F CC pla ; CPU:$C197 PRG:0197 68 tax ; CPU:$C198 PRG:0198 AA lda #$FF ; CPU:$C199 PRG:0199 A9 FF and Zp40,x ; CPU:$C19B PRG:019B 35 40 bne SubCC18F_OnNonzero ; CPU:$C19D PRG:019D D0 F0 rts ; CPU:$C19F PRG:019F 60 ;=============================================================================== ; Routine: CopyMarkerSpriteTable1 ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 1 instruction: loads X with $1F. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== CopyMarkerSpriteTable1: ldx #$1F ; CPU:$C1A0 PRG:01A0 A2 1F ;=============================================================================== ; Routine: SubCC1A2_OnNonnegative ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 5 instructions: loads A from $D6A5,x; stores A to $02E0,x; ; decrements X; branches on non-negative to SubCC1A2; loads X with ; $F0. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC1A2_OnNonnegative: lda $D6A5,x ; CPU:$C1A2 PRG:01A2 BD A5 D6 sta $02E0,x ; CPU:$C1A5 PRG:01A5 9D E0 02 dex ; CPU:$C1A8 PRG:01A8 CA bpl SubCC1A2_OnNonnegative ; CPU:$C1A9 PRG:01A9 10 F7 ldx #$F0 ; CPU:$C1AB PRG:01AB A2 F0 ;=============================================================================== ; Routine: SubCC1AD_OnNonzero ; Global: The routine calls EnablePpuNmi and StrobeController2, writes the APUSTATUS ; register. ; Local: Executes 15 instructions: calls EnablePpuNmi; copies X into A; pushes A; ; calls StrobeController2; loads A with $00; compares A with Zp40; and 9 more ; instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the APUSTATUS register set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC1AD_OnNonzero: jsr EnablePpuNmi ; CPU:$C1AD PRG:01AD 20 E2 CC txa ; CPU:$C1B0 PRG:01B0 8A pha ; CPU:$C1B1 PRG:01B1 48 jsr StrobeController2 ; CPU:$C1B2 PRG:01B2 20 4F CC lda #$00 ; CPU:$C1B5 PRG:01B5 A9 00 cmp Zp40 ; CPU:$C1B7 PRG:01B7 C5 40 bne SubCC1CC_Loop ; CPU:$C1B9 PRG:01B9 D0 11 cmp Zp41 ; CPU:$C1BB PRG:01BB C5 41 bne SubCC1CC_Loop ; CPU:$C1BD PRG:01BD D0 0D cmp Zp43 ; CPU:$C1BF PRG:01BF C5 43 bne SubCC1CC_Loop ; CPU:$C1C1 PRG:01C1 D0 09 cmp Zp44 ; CPU:$C1C3 PRG:01C3 C5 44 bne SubCC1CC_Loop ; CPU:$C1C5 PRG:01C5 D0 05 lda #$C0 ; CPU:$C1C7 PRG:01C7 A9 C0 sta APUSTATUS ; CPU:$C1C9 PRG:01C9 8D 15 40 ;=============================================================================== ; Routine: SubCC1CC_Loop ; Global: The routine calls EnablePpuNmi, StrobeController2, CountPressedButtons and ClearRamAndOam, writes ; the APUSTATUS register. ; Local: Executes 33 instructions: calls EnablePpuNmi; copies X into A; pushes A; ; calls StrobeController2; loads A with $00; compares A with Zp40; and 27 more ; instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the APUSTATUS register set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC1CC_Loop: ldy #$00 ; CPU:$C1CC PRG:01CC A0 00 ldx #$00 ; CPU:$C1CE PRG:01CE A2 00 jsr CountPressedButtons ; CPU:$C1D0 PRG:01D0 20 61 C3 ldy #$20 ; CPU:$C1D3 PRG:01D3 A0 20 inx ; CPU:$C1D5 PRG:01D5 E8 jsr CountPressedButtons ; CPU:$C1D6 PRG:01D6 20 61 C3 ldy #$40 ; CPU:$C1D9 PRG:01D9 A0 40 inx ; CPU:$C1DB PRG:01DB E8 inx ; CPU:$C1DC PRG:01DC E8 jsr CountPressedButtons ; CPU:$C1DD PRG:01DD 20 61 C3 ldy #$60 ; CPU:$C1E0 PRG:01E0 A0 60 inx ; CPU:$C1E2 PRG:01E2 E8 jsr CountPressedButtons ; CPU:$C1E3 PRG:01E3 20 61 C3 pla ; CPU:$C1E6 PRG:01E6 68 tax ; CPU:$C1E7 PRG:01E7 AA dex ; CPU:$C1E8 PRG:01E8 CA bne SubCC1AD_OnNonzero ; CPU:$C1E9 PRG:01E9 D0 C2 jmp ClearRamAndOam ; CPU:$C1EB PRG:01EB 4C 55 C0 ;=============================================================================== ; Routine: CopyMarkerSpriteTable2 ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 5 instructions: copies Y into A; pushes A; copies X into A; ; pushes A; loads X with $1F. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== CopyMarkerSpriteTable2: tya ; CPU:$C1EE PRG:01EE 98 pha ; CPU:$C1EF PRG:01EF 48 txa ; CPU:$C1F0 PRG:01F0 8A pha ; CPU:$C1F1 PRG:01F1 48 ldx #$1F ; CPU:$C1F2 PRG:01F2 A2 1F ;=============================================================================== ; Routine: SubCC1F4_OnNonnegative ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 4 instructions: loads A from $D6C5,x; stores A to $02E0,x; ; decrements X; branches on non-negative to SubCC1F4. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC1F4_OnNonnegative: lda $D6C5,x ; CPU:$C1F4 PRG:01F4 BD C5 D6 sta $02E0,x ; CPU:$C1F7 PRG:01F7 9D E0 02 dex ; CPU:$C1FA PRG:01FA CA bpl SubCC1F4_OnNonnegative ; CPU:$C1FB PRG:01FB 10 F7 ;=============================================================================== ; Routine: FindPressedButton ; Global: The routine calls EnablePpuNmi, StrobeController2 and FindPressedButton. ; Local: Executes 10 instructions: calls EnablePpuNmi; calls StrobeController2; pulls A; ; copies A into X; loads A with $00; compares A with Zp40,x; and 4 ; more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== FindPressedButton: jsr EnablePpuNmi ; CPU:$C1FD PRG:01FD 20 E2 CC jsr StrobeController2 ; CPU:$C200 PRG:0200 20 4F CC pla ; CPU:$C203 PRG:0203 68 tax ; CPU:$C204 PRG:0204 AA lda #$00 ; CPU:$C205 PRG:0205 A9 00 cmp Zp40,x ; CPU:$C207 PRG:0207 D5 40 beq SubCC210_Loop ; CPU:$C209 PRG:0209 F0 05 txa ; CPU:$C20B PRG:020B 8A pha ; CPU:$C20C PRG:020C 48 jmp FindPressedButton ; CPU:$C20D PRG:020D 4C FD C1 ;=============================================================================== ; Routine: SubCC210_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 6 instructions: loads A with $00; stores A to Zp4E,x; copies ; X into A; pushes A; loads X with $1F; loads A with $F4. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A and Y, the N and Z flags, Zp4E, the OAM shadow. ; ;=============================================================================== SubCC210_Loop: lda #$00 ; CPU:$C210 PRG:0210 A9 00 sta Zp4E,x ; CPU:$C212 PRG:0212 95 4E txa ; CPU:$C214 PRG:0214 8A pha ; CPU:$C215 PRG:0215 48 ldx #$1F ; CPU:$C216 PRG:0216 A2 1F lda #$F4 ; CPU:$C218 PRG:0218 A9 F4 ;=============================================================================== ; Routine: SubCC21A_OnNonnegative ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 17 instructions: stores A to $02E0,x; decrements X; branches ; on non-negative to SubCC21A; pulls A; copies A into X; pulls A; and ; 11 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. ; Clobbers: ; A, X and Y, the N and Z flags, the OAM shadow. ; ;=============================================================================== SubCC21A_OnNonnegative: sta $02E0,x ; CPU:$C21A PRG:021A 9D E0 02 dex ; CPU:$C21D PRG:021D CA bpl SubCC21A_OnNonnegative ; CPU:$C21E PRG:021E 10 FA pla ; CPU:$C220 PRG:0220 68 tax ; CPU:$C221 PRG:0221 AA pla ; CPU:$C222 PRG:0222 68 tay ; CPU:$C223 PRG:0223 A8 lda #$03 ; CPU:$C224 PRG:0224 A9 03 sta $0202,y ; CPU:$C226 PRG:0226 99 02 02 sta $0206,y ; CPU:$C229 PRG:0229 99 06 02 sta $020A,y ; CPU:$C22C PRG:022C 99 0A 02 sta $020E,y ; CPU:$C22F PRG:022F 99 0E 02 sta $0212,y ; CPU:$C232 PRG:0232 99 12 02 sta $0216,y ; CPU:$C235 PRG:0235 99 16 02 sta $021A,y ; CPU:$C238 PRG:0238 99 1A 02 sta $021E,y ; CPU:$C23B PRG:023B 99 1E 02 rts ; CPU:$C23E PRG:023E 60 ;=============================================================================== ; Routine: ClearMarkerRam ; Global: The routine calls PpuMaskSetup. ; Local: Executes 3 instructions: calls PpuMaskSetup; loads X with $00; loads A ; with $FF. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== ClearMarkerRam: jsr PpuMaskSetup ; CPU:$C23F PRG:023F 20 2F CD ldx #$00 ; CPU:$C242 PRG:0242 A2 00 lda #$FF ; CPU:$C244 PRG:0244 A9 FF ;=============================================================================== ; Routine: SubCC246_OnNonzero ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 6 instructions: stores A to $6000,x; increments X; compares ; X with $06; branches on not equal to SubCC246; loads A with $00; ; loads X with $00. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC246_OnNonzero: sta $6000,x ; CPU:$C246 PRG:0246 9D 00 60 inx ; CPU:$C249 PRG:0249 E8 cpx #$06 ; CPU:$C24A PRG:024A E0 06 bne SubCC246_OnNonzero ; CPU:$C24C PRG:024C D0 F8 lda #$00 ; CPU:$C24E PRG:024E A9 00 ldx #$00 ; CPU:$C250 PRG:0250 A2 00 ;=============================================================================== ; Routine: SubCC252_OnNonzero ; Global: The routine calls VramWrite, VramPtrWrite, PpuScrollLatch and PlayVramStream, writes ; $0300, writes the PPUCTRL and PPUMASK registers. ; Local: Executes 32 instructions: stores A to Zp00,x; stores A to $0100,x; ; loads A with $F4; stores A to $0200,x; loads A with $00; stores A ; to $0300,x; and 26 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves $0300 changed. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC252_OnNonzero: sta Zp00,x ; CPU:$C252 PRG:0252 95 00 sta $0100,x ; CPU:$C254 PRG:0254 9D 00 01 lda #$F4 ; CPU:$C257 PRG:0257 A9 F4 sta $0200,x ; CPU:$C259 PRG:0259 9D 00 02 lda #$00 ; CPU:$C25C PRG:025C A9 00 sta $0300,x ; CPU:$C25E PRG:025E 9D 00 03 sta $0400,x ; CPU:$C261 PRG:0261 9D 00 04 sta $0500,x ; CPU:$C264 PRG:0264 9D 00 05 sta $0600,x ; CPU:$C267 PRG:0267 9D 00 06 inx ; CPU:$C26A PRG:026A E8 bne SubCC252_OnNonzero ; CPU:$C26B PRG:026B D0 E5 lda #$10 ; CPU:$C26D PRG:026D A9 10 sta PPUCTRL ; CPU:$C26F PRG:026F 8D 00 20 sta ZpEF ; CPU:$C272 PRG:0272 85 EF lda #$00 ; CPU:$C274 PRG:0274 A9 00 sta PPUMASK ; CPU:$C276 PRG:0276 8D 01 20 sta ZpEE ; CPU:$C279 PRG:0279 85 EE lda #$20 ; CPU:$C27B PRG:027B A9 20 ldx #$24 ; CPU:$C27D PRG:027D A2 24 ldy #$00 ; CPU:$C27F PRG:027F A0 00 jsr VramWrite ; CPU:$C281 PRG:0281 20 EE CD jsr VramPtrWrite ; CPU:$C284 PRG:0284 20 3F CD asl ZpCF ; CPU:$C287 PRG:0287 06 CF jsr PpuScrollLatch ; CPU:$C289 PRG:0289 20 3C CE jsr VramPtrWrite ; CPU:$C28C PRG:028C 20 3F CD sbc ZpD1,x ; CPU:$C28F PRG:028F F5 D1 jsr PpuScrollLatch ; CPU:$C291 PRG:0291 20 3C CE lda #$51 ; CPU:$C294 PRG:0294 A9 51 sta $0300 ; CPU:$C296 PRG:0296 8D 00 03 lda #$22 ; CPU:$C299 PRG:0299 A9 22 ldx #$28 ; CPU:$C29B PRG:029B A2 28 jsr PlayVramStream ; CPU:$C29D PRG:029D 20 98 CE .byte $AF, $D4, $20 ; CPU:$C2A0 PRG:02A0 AF D4 20 -- lax $20D4 (undocumented; ca65 cannot encode) .byte $74, $C1 ; CPU:$C2A3 PRG:02A3 74 C1 -- nop ZpC1,x (undocumented; ca65 cannot encode) ldx #$DF ; CPU:$C2A5 PRG:02A5 A2 DF ;=============================================================================== ; Routine: SubCC2A7_OnNonzero ; Global: The routine calls SetPpuMaskBits, writes the APUPULSE1CTRL register. ; Local: Executes 28 instructions: loads A from $D4E3,x; stores A to $0200,x; ; decrements X; branches on not equal to SubCC2A7; loads A from ; $D4E3,x; stores A to $0200,x; and 22 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the APUPULSE1CTRL register ; set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC2A7_OnNonzero: lda $D4E3,x ; CPU:$C2A7 PRG:02A7 BD E3 D4 sta $0200,x ; CPU:$C2AA PRG:02AA 9D 00 02 dex ; CPU:$C2AD PRG:02AD CA bne SubCC2A7_OnNonzero ; CPU:$C2AE PRG:02AE D0 F7 lda $D4E3,x ; CPU:$C2B0 PRG:02B0 BD E3 D4 sta $0200,x ; CPU:$C2B3 PRG:02B3 9D 00 02 lda #$FF ; CPU:$C2B6 PRG:02B6 A9 FF sta Zp6A ; CPU:$C2B8 PRG:02B8 85 6A lda #$00 ; CPU:$C2BA PRG:02BA A9 00 sta Zp4E ; CPU:$C2BC PRG:02BC 85 4E sta Zp4F ; CPU:$C2BE PRG:02BE 85 4F sta Zp51 ; CPU:$C2C0 PRG:02C0 85 51 sta Zp52 ; CPU:$C2C2 PRG:02C2 85 52 sta Zp54 ; CPU:$C2C4 PRG:02C4 85 54 sta Zp53 ; CPU:$C2C6 PRG:02C6 85 53 sta Zp60 ; CPU:$C2C8 PRG:02C8 85 60 sta Zp5B ; CPU:$C2CA PRG:02CA 85 5B sta Zp56 ; CPU:$C2CC PRG:02CC 85 56 sta Zp61 ; CPU:$C2CE PRG:02CE 85 61 sta Zp5C ; CPU:$C2D0 PRG:02D0 85 5C sta Zp57 ; CPU:$C2D2 PRG:02D2 85 57 sta Zp65 ; CPU:$C2D4 PRG:02D4 85 65 sta Zp66 ; CPU:$C2D6 PRG:02D6 85 66 sta Zp68 ; CPU:$C2D8 PRG:02D8 85 68 sta Zp69 ; CPU:$C2DA PRG:02DA 85 69 lda #$BF ; CPU:$C2DC PRG:02DC A9 BF sta APUPULSE1CTRL ; CPU:$C2DE PRG:02DE 8D 00 40 jsr SetPpuMaskBits ; CPU:$C2E1 PRG:02E1 20 39 CD ;=============================================================================== ; Routine: UpdateButtonSprites ; Global: The routine calls EnablePpuNmi, StrobeController2 and CheckAnyButtonPressed. ; Local: Executes 7 instructions: calls EnablePpuNmi; calls StrobeController2; increments ; Zp6A; loads A with $0F; compares A with Zp6A; branches on equal to ; SubCC2F5; and 1 more instruction. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== UpdateButtonSprites: jsr EnablePpuNmi ; CPU:$C2E4 PRG:02E4 20 E2 CC jsr StrobeController2 ; CPU:$C2E7 PRG:02E7 20 4F CC inc Zp6A ; CPU:$C2EA PRG:02EA E6 6A lda #$0F ; CPU:$C2EC PRG:02EC A9 0F cmp Zp6A ; CPU:$C2EE PRG:02EE C5 6A beq SubCC2F5_Loop ; CPU:$C2F0 PRG:02F0 F0 03 jmp CheckAnyButtonPressed ; CPU:$C2F2 PRG:02F2 4C FE C2 ;=============================================================================== ; Routine: SubCC2F5_Loop ; Global: The routine calls SubCC524, SubCC7D7 and ResetButtonCounters. ; Local: Executes 3 instructions: calls SubCC524; calls SubCC7D7; calls ; ResetButtonCounters. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC2F5_Loop: jsr SubCC524 ; CPU:$C2F5 PRG:02F5 20 24 C5 jsr SubCC7D7 ; CPU:$C2F8 PRG:02F8 20 D7 C7 jsr ResetButtonCounters ; CPU:$C2FB PRG:02FB 20 8A CA ;=============================================================================== ; Routine: CheckAnyButtonPressed ; Global: The routine writes the APUSTATUS register. ; Local: Executes 11 instructions: loads A with $00; compares A with Zp40; ; branches on not equal to SubCC315; compares A with Zp41; branches ; on not equal to SubCC315; compares A with Zp43; and 5 more ; instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the APUSTATUS register set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== CheckAnyButtonPressed: lda #$00 ; CPU:$C2FE PRG:02FE A9 00 cmp Zp40 ; CPU:$C300 PRG:0300 C5 40 bne SubCC315_Loop ; CPU:$C302 PRG:0302 D0 11 cmp Zp41 ; CPU:$C304 PRG:0304 C5 41 bne SubCC315_Loop ; CPU:$C306 PRG:0306 D0 0D cmp Zp43 ; CPU:$C308 PRG:0308 C5 43 bne SubCC315_Loop ; CPU:$C30A PRG:030A D0 09 cmp Zp44 ; CPU:$C30C PRG:030C C5 44 bne SubCC315_Loop ; CPU:$C30E PRG:030E D0 05 lda #$C0 ; CPU:$C310 PRG:0310 A9 C0 sta APUSTATUS ; CPU:$C312 PRG:0312 8D 15 40 ;=============================================================================== ; Routine: SubCC315_Loop ; Global: The routine calls CountPressedButtons and CopyMarkerSpriteTable1. ; Local: Executes 23 instructions: loads Y with $00; loads X with $00; calls ; CountPressedButtons; loads Y with $20; increments X; calls CountPressedButtons; and 17 ; more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC315_Loop: ldy #$00 ; CPU:$C315 PRG:0315 A0 00 ldx #$00 ; CPU:$C317 PRG:0317 A2 00 jsr CountPressedButtons ; CPU:$C319 PRG:0319 20 61 C3 ldy #$20 ; CPU:$C31C PRG:031C A0 20 inx ; CPU:$C31E PRG:031E E8 jsr CountPressedButtons ; CPU:$C31F PRG:031F 20 61 C3 ldy #$40 ; CPU:$C322 PRG:0322 A0 40 inx ; CPU:$C324 PRG:0324 E8 inx ; CPU:$C325 PRG:0325 E8 jsr CountPressedButtons ; CPU:$C326 PRG:0326 20 61 C3 ldy #$60 ; CPU:$C329 PRG:0329 A0 60 inx ; CPU:$C32B PRG:032B E8 jsr CountPressedButtons ; CPU:$C32C PRG:032C 20 61 C3 lda #$FF ; CPU:$C32F PRG:032F A9 FF cmp Zp4E ; CPU:$C331 PRG:0331 C5 4E bne SubCC344_Loop ; CPU:$C333 PRG:0333 D0 0F cmp Zp4F ; CPU:$C335 PRG:0335 C5 4F bne SubCC344_Loop ; CPU:$C337 PRG:0337 D0 0B cmp Zp51 ; CPU:$C339 PRG:0339 C5 51 bne SubCC344_Loop ; CPU:$C33B PRG:033B D0 07 cmp Zp52 ; CPU:$C33D PRG:033D C5 52 bne SubCC344_Loop ; CPU:$C33F PRG:033F D0 03 jmp CopyMarkerSpriteTable1 ; CPU:$C341 PRG:0341 4C A0 C1 ;=============================================================================== ; Routine: SubCC344_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 3 instructions: increments Zp54; branches on not equal to ; SubCC34A; increments Zp53. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC344_Loop: inc Zp54 ; CPU:$C344 PRG:0344 E6 54 bne SubCC34A_Loop ; CPU:$C346 PRG:0346 D0 02 inc Zp53 ; CPU:$C348 PRG:0348 E6 53 ;=============================================================================== ; Routine: SubCC34A_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 6 instructions: loads A with $00; compares A with Zp54; ; branches on not equal to SubCC356; loads A with $38; compares A ; with Zp53; branches on equal to SubCC35E. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC34A_Loop: lda #$00 ; CPU:$C34A PRG:034A A9 00 cmp Zp54 ; CPU:$C34C PRG:034C C5 54 bne SubCC356_Loop ; CPU:$C34E PRG:034E D0 06 lda #$38 ; CPU:$C350 PRG:0350 A9 38 cmp Zp53 ; CPU:$C352 PRG:0352 C5 53 beq SubCC35E_Loop ; CPU:$C354 PRG:0354 F0 08 ;=============================================================================== ; Routine: SubCC356_Loop ; Global: The routine calls UpdateButtonSprites, writes $0302. ; Local: Executes 3 instructions: loads A with $22; stores A to $0302; calls ; UpdateButtonSprites. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $0302 changed. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC356_Loop: lda #$22 ; CPU:$C356 PRG:0356 A9 22 sta $0302 ; CPU:$C358 PRG:0358 8D 02 03 jmp UpdateButtonSprites ; CPU:$C35B PRG:035B 4C E4 C2 ;=============================================================================== ; Routine: SubCC35E_Loop ; Global: The routine calls ClearRamAndOam. ; Local: Executes 1 instruction: calls ClearRamAndOam. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC35E_Loop: jmp ClearRamAndOam ; CPU:$C35E PRG:035E 4C 55 C0 ;=============================================================================== ; Routine: CountPressedButtons ; Global: The routine calls ShiftMarkerBitToOam and SubCC380. ; Local: Executes 11 instructions: loads A from Zp40,x; pushes A; calls ; ShiftMarkerBitToOam; rotates Zp40,x left; branches on carry clear to SubCC377; ; rotates Zp40,x right; and 5 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== CountPressedButtons: lda Zp40,x ; CPU:$C361 PRG:0361 B5 40 pha ; CPU:$C363 PRG:0363 48 jsr ShiftMarkerBitToOam ; CPU:$C364 PRG:0364 20 B8 CA rol Zp40,x ; CPU:$C367 PRG:0367 36 40 bcc SubCC377_Loop ; CPU:$C369 PRG:0369 90 0C ror Zp40,x ; CPU:$C36B PRG:036B 76 40 rol Zp65,x ; CPU:$C36D PRG:036D 36 65 bcs SubCC380_Loop ; CPU:$C36F PRG:036F B0 0F inc Zp56,x ; CPU:$C371 PRG:0371 F6 56 sec ; CPU:$C373 PRG:0373 38 jmp SubCC380_Loop ; CPU:$C374 PRG:0374 4C 80 C3 ;=============================================================================== ; Routine: SubCC377_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 5 instructions: rotates Zp40,x right; rotates Zp65,x left; ; branches on carry clear to SubCC380; increments Zp56,x; clears the ; carry flag. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC377_Loop: ror Zp40,x ; CPU:$C377 PRG:0377 76 40 rol Zp65,x ; CPU:$C379 PRG:0379 36 65 bcc SubCC380_Loop ; CPU:$C37B PRG:037B 90 03 inc Zp56,x ; CPU:$C37D PRG:037D F6 56 clc ; CPU:$C37F PRG:037F 18 ;=============================================================================== ; Routine: SubCC380_Loop ; Global: The routine writes the APUSTATUS, APUPULSE1TIMERLO and ; APUPULSE1TIMERHI registers, reads the APUSTATUS register. ; Local: Executes 12 instructions: rotates Zp65,x right; rotates Zp40,x left; ; branches on carry clear to SubCC3AA; loads A with $01; ANDs A with ; the APUSTATUS register; branches on not equal to SubCC39C; and 6 ; more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the APUSTATUS, ; APUPULSE1TIMERLO and APUPULSE1TIMERHI registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC380_Loop: ror Zp65,x ; CPU:$C380 PRG:0380 76 65 rol Zp40,x ; CPU:$C382 PRG:0382 36 40 bcc SubCC3AA_Loop ; CPU:$C384 PRG:0384 90 24 lda #$01 ; CPU:$C386 PRG:0386 A9 01 and APUSTATUS ; CPU:$C388 PRG:0388 2D 15 40 bne SubCC39C_Loop ; CPU:$C38B PRG:038B D0 0F lda #$01 ; CPU:$C38D PRG:038D A9 01 sta APUSTATUS ; CPU:$C38F PRG:038F 8D 15 40 lda #$FD ; CPU:$C392 PRG:0392 A9 FD sta APUPULSE1TIMERLO ; CPU:$C394 PRG:0394 8D 02 40 lda #$29 ; CPU:$C397 PRG:0397 A9 29 sta APUPULSE1TIMERHI ; CPU:$C399 PRG:0399 8D 03 40 ;=============================================================================== ; Routine: SubCC39C_Loop ; Global: The routine calls ResetFrameCounter. ; Local: Executes 6 instructions: loads A with $02; stores A to $0202,y; loads ; A with $80; ORs A with Zp4E,x; stores A to Zp4E,x; calls ResetFrameCounter. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC39C_Loop: lda #$02 ; CPU:$C39C PRG:039C A9 02 sta $0202,y ; CPU:$C39E PRG:039E 99 02 02 lda #$80 ; CPU:$C3A1 PRG:03A1 A9 80 ora Zp4E,x ; CPU:$C3A3 PRG:03A3 15 4E sta Zp4E,x ; CPU:$C3A5 PRG:03A5 95 4E jsr ResetFrameCounter ; CPU:$C3A7 PRG:03A7 20 B1 CA ;=============================================================================== ; Routine: SubCC3AA_Loop ; Global: The routine calls SubCC3C7. ; Local: Executes 9 instructions: rotates Zp40,x left; branches on carry clear ; to SubCC3BC; rotates Zp40,x right; rotates Zp65,x left; rotates ; Zp65,x left; branches on carry set to SubCC3C7; and 3 more ; instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC3AA_Loop: rol Zp40,x ; CPU:$C3AA PRG:03AA 36 40 bcc SubCC3BC_Loop ; CPU:$C3AC PRG:03AC 90 0E ror Zp40,x ; CPU:$C3AE PRG:03AE 76 40 rol Zp65,x ; CPU:$C3B0 PRG:03B0 36 65 rol Zp65,x ; CPU:$C3B2 PRG:03B2 36 65 bcs SubCC3C7_Loop ; CPU:$C3B4 PRG:03B4 B0 11 inc Zp5B,x ; CPU:$C3B6 PRG:03B6 F6 5B sec ; CPU:$C3B8 PRG:03B8 38 jmp SubCC3C7_Loop ; CPU:$C3B9 PRG:03B9 4C C7 C3 ;=============================================================================== ; Routine: SubCC3BC_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 6 instructions: rotates Zp40,x right; rotates Zp65,x left; ; rotates Zp65,x left; branches on carry clear to SubCC3C7; ; increments Zp5B,x; clears the carry flag. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC3BC_Loop: ror Zp40,x ; CPU:$C3BC PRG:03BC 76 40 rol Zp65,x ; CPU:$C3BE PRG:03BE 36 65 rol Zp65,x ; CPU:$C3C0 PRG:03C0 36 65 bcc SubCC3C7_Loop ; CPU:$C3C2 PRG:03C2 90 03 inc Zp5B,x ; CPU:$C3C4 PRG:03C4 F6 5B clc ; CPU:$C3C6 PRG:03C6 18 ;=============================================================================== ; Routine: SubCC3C7_Loop ; Global: The routine writes the APUSTATUS, APUPULSE1TIMERLO and ; APUPULSE1TIMERHI registers, reads the APUSTATUS register. ; Local: Executes 13 instructions: rotates Zp65,x right; rotates Zp65,x right; ; rotates Zp40,x left; branches on carry clear to SubCC3F3; loads A ; with $01; ANDs A with the APUSTATUS register; and 7 more ; instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the APUSTATUS, ; APUPULSE1TIMERLO and APUPULSE1TIMERHI registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC3C7_Loop: ror Zp65,x ; CPU:$C3C7 PRG:03C7 76 65 ror Zp65,x ; CPU:$C3C9 PRG:03C9 76 65 rol Zp40,x ; CPU:$C3CB PRG:03CB 36 40 bcc SubCC3F3_Loop ; CPU:$C3CD PRG:03CD 90 24 lda #$01 ; CPU:$C3CF PRG:03CF A9 01 and APUSTATUS ; CPU:$C3D1 PRG:03D1 2D 15 40 bne SubCC3E5_Loop ; CPU:$C3D4 PRG:03D4 D0 0F lda #$01 ; CPU:$C3D6 PRG:03D6 A9 01 sta APUSTATUS ; CPU:$C3D8 PRG:03D8 8D 15 40 lda #$C5 ; CPU:$C3DB PRG:03DB A9 C5 sta APUPULSE1TIMERLO ; CPU:$C3DD PRG:03DD 8D 02 40 lda #$29 ; CPU:$C3E0 PRG:03E0 A9 29 sta APUPULSE1TIMERHI ; CPU:$C3E2 PRG:03E2 8D 03 40 ;=============================================================================== ; Routine: SubCC3E5_Loop ; Global: The routine calls ResetFrameCounter. ; Local: Executes 6 instructions: loads A with $02; stores A to $0206,y; loads ; A with $40; ORs A with Zp4E,x; stores A to Zp4E,x; calls ResetFrameCounter. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC3E5_Loop: lda #$02 ; CPU:$C3E5 PRG:03E5 A9 02 sta $0206,y ; CPU:$C3E7 PRG:03E7 99 06 02 lda #$40 ; CPU:$C3EA PRG:03EA A9 40 ora Zp4E,x ; CPU:$C3EC PRG:03EC 15 4E sta Zp4E,x ; CPU:$C3EE PRG:03EE 95 4E jsr ResetFrameCounter ; CPU:$C3F0 PRG:03F0 20 B1 CA ;=============================================================================== ; Routine: SubCC3F3_Loop ; Global: The routine writes the APUSTATUS, APUPULSE1TIMERLO and ; APUPULSE1TIMERHI registers, reads the APUSTATUS register. ; Local: Executes 11 instructions: rotates Zp40,x left; branches on carry ; clear to SubCC41B; loads A with $01; ANDs A with the APUSTATUS ; register; branches on not equal to SubCC40D; loads A with $01; and ; 5 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the APUSTATUS, ; APUPULSE1TIMERLO and APUPULSE1TIMERHI registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC3F3_Loop: rol Zp40,x ; CPU:$C3F3 PRG:03F3 36 40 bcc SubCC41B_Loop ; CPU:$C3F5 PRG:03F5 90 24 lda #$01 ; CPU:$C3F7 PRG:03F7 A9 01 and APUSTATUS ; CPU:$C3F9 PRG:03F9 2D 15 40 bne SubCC40D_Loop ; CPU:$C3FC PRG:03FC D0 0F lda #$01 ; CPU:$C3FE PRG:03FE A9 01 sta APUSTATUS ; CPU:$C400 PRG:0400 8D 15 40 lda #$7D ; CPU:$C403 PRG:0403 A9 7D sta APUPULSE1TIMERLO ; CPU:$C405 PRG:0405 8D 02 40 lda #$29 ; CPU:$C408 PRG:0408 A9 29 sta APUPULSE1TIMERHI ; CPU:$C40A PRG:040A 8D 03 40 ;=============================================================================== ; Routine: SubCC40D_Loop ; Global: The routine calls ResetFrameCounter. ; Local: Executes 6 instructions: loads A with $02; stores A to $020E,y; loads ; A with $20; ORs A with Zp4E,x; stores A to Zp4E,x; calls ResetFrameCounter. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC40D_Loop: lda #$02 ; CPU:$C40D PRG:040D A9 02 sta $020E,y ; CPU:$C40F PRG:040F 99 0E 02 lda #$20 ; CPU:$C412 PRG:0412 A9 20 ora Zp4E,x ; CPU:$C414 PRG:0414 15 4E sta Zp4E,x ; CPU:$C416 PRG:0416 95 4E jsr ResetFrameCounter ; CPU:$C418 PRG:0418 20 B1 CA ;=============================================================================== ; Routine: SubCC41B_Loop ; Global: The routine calls SubCC43C. ; Local: Executes 10 instructions: rotates Zp40,x left; branches on carry ; clear to SubCC42F; rotates Zp40,x right; rotates Zp65,x left; ; rotates Zp65,x left; rotates Zp65,x left; and 4 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC41B_Loop: rol Zp40,x ; CPU:$C41B PRG:041B 36 40 bcc SubCC42F_Loop ; CPU:$C41D PRG:041D 90 10 ror Zp40,x ; CPU:$C41F PRG:041F 76 40 rol Zp65,x ; CPU:$C421 PRG:0421 36 65 rol Zp65,x ; CPU:$C423 PRG:0423 36 65 rol Zp65,x ; CPU:$C425 PRG:0425 36 65 bcs SubCC43C_Loop ; CPU:$C427 PRG:0427 B0 13 inc Zp60,x ; CPU:$C429 PRG:0429 F6 60 sec ; CPU:$C42B PRG:042B 38 jmp SubCC43C_Loop ; CPU:$C42C PRG:042C 4C 3C C4 ;=============================================================================== ; Routine: SubCC42F_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 7 instructions: rotates Zp40,x right; rotates Zp65,x left; ; rotates Zp65,x left; rotates Zp65,x left; branches on carry clear ; to SubCC43C; increments Zp60,x; and 1 more instruction. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC42F_Loop: ror Zp40,x ; CPU:$C42F PRG:042F 76 40 rol Zp65,x ; CPU:$C431 PRG:0431 36 65 rol Zp65,x ; CPU:$C433 PRG:0433 36 65 rol Zp65,x ; CPU:$C435 PRG:0435 36 65 bcc SubCC43C_Loop ; CPU:$C437 PRG:0437 90 03 inc Zp60,x ; CPU:$C439 PRG:0439 F6 60 clc ; CPU:$C43B PRG:043B 18 ;=============================================================================== ; Routine: SubCC43C_Loop ; Global: The routine writes the APUSTATUS, APUPULSE1TIMERLO and ; APUPULSE1TIMERHI registers, reads the APUSTATUS register. ; Local: Executes 14 instructions: rotates Zp65,x right; rotates Zp65,x right; ; rotates Zp65,x right; rotates Zp40,x left; branches on carry clear ; to SubCC46A; loads A with $01; and 8 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the APUSTATUS, ; APUPULSE1TIMERLO and APUPULSE1TIMERHI registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC43C_Loop: ror Zp65,x ; CPU:$C43C PRG:043C 76 65 ror Zp65,x ; CPU:$C43E PRG:043E 76 65 ror Zp65,x ; CPU:$C440 PRG:0440 76 65 rol Zp40,x ; CPU:$C442 PRG:0442 36 40 bcc SubCC46A_Loop ; CPU:$C444 PRG:0444 90 24 lda #$01 ; CPU:$C446 PRG:0446 A9 01 and APUSTATUS ; CPU:$C448 PRG:0448 2D 15 40 bne SubCC45C_Loop ; CPU:$C44B PRG:044B D0 0F lda #$01 ; CPU:$C44D PRG:044D A9 01 sta APUSTATUS ; CPU:$C44F PRG:044F 8D 15 40 lda #$94 ; CPU:$C452 PRG:0452 A9 94 sta APUPULSE1TIMERLO ; CPU:$C454 PRG:0454 8D 02 40 lda #$29 ; CPU:$C457 PRG:0457 A9 29 sta APUPULSE1TIMERHI ; CPU:$C459 PRG:0459 8D 03 40 ;=============================================================================== ; Routine: SubCC45C_Loop ; Global: The routine calls ResetFrameCounter. ; Local: Executes 6 instructions: loads A with $02; stores A to $020A,y; loads ; A with $10; ORs A with Zp4E,x; stores A to Zp4E,x; calls ResetFrameCounter. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC45C_Loop: lda #$02 ; CPU:$C45C PRG:045C A9 02 sta $020A,y ; CPU:$C45E PRG:045E 99 0A 02 lda #$10 ; CPU:$C461 PRG:0461 A9 10 ora Zp4E,x ; CPU:$C463 PRG:0463 15 4E sta Zp4E,x ; CPU:$C465 PRG:0465 95 4E jsr ResetFrameCounter ; CPU:$C467 PRG:0467 20 B1 CA ;=============================================================================== ; Routine: SubCC46A_Loop ; Global: The routine writes the APUSTATUS, APUPULSE1TIMERLO and ; APUPULSE1TIMERHI registers, reads the APUSTATUS register. ; Local: Executes 11 instructions: rotates Zp40,x left; branches on carry ; clear to SubCC492; loads A with $01; ANDs A with the APUSTATUS ; register; branches on not equal to SubCC484; loads A with $01; and ; 5 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the APUSTATUS, ; APUPULSE1TIMERLO and APUPULSE1TIMERHI registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC46A_Loop: rol Zp40,x ; CPU:$C46A PRG:046A 36 40 bcc SubCC492_Loop ; CPU:$C46C PRG:046C 90 24 lda #$01 ; CPU:$C46E PRG:046E A9 01 and APUSTATUS ; CPU:$C470 PRG:0470 2D 15 40 bne SubCC484_Loop ; CPU:$C473 PRG:0473 D0 0F lda #$01 ; CPU:$C475 PRG:0475 A9 01 sta APUSTATUS ; CPU:$C477 PRG:0477 8D 15 40 lda #$53 ; CPU:$C47A PRG:047A A9 53 sta APUPULSE1TIMERLO ; CPU:$C47C PRG:047C 8D 02 40 lda #$29 ; CPU:$C47F PRG:047F A9 29 sta APUPULSE1TIMERHI ; CPU:$C481 PRG:0481 8D 03 40 ;=============================================================================== ; Routine: SubCC484_Loop ; Global: The routine calls ResetFrameCounter. ; Local: Executes 6 instructions: loads A with $02; stores A to $0212,y; loads ; A with $08; ORs A with Zp4E,x; stores A to Zp4E,x; calls ResetFrameCounter. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC484_Loop: lda #$02 ; CPU:$C484 PRG:0484 A9 02 sta $0212,y ; CPU:$C486 PRG:0486 99 12 02 lda #$08 ; CPU:$C489 PRG:0489 A9 08 ora Zp4E,x ; CPU:$C48B PRG:048B 15 4E sta Zp4E,x ; CPU:$C48D PRG:048D 95 4E jsr ResetFrameCounter ; CPU:$C48F PRG:048F 20 B1 CA ;=============================================================================== ; Routine: SubCC492_Loop ; Global: The routine writes the APUSTATUS, APUPULSE1TIMERLO and ; APUPULSE1TIMERHI registers, reads the APUSTATUS register. ; Local: Executes 11 instructions: rotates Zp40,x left; branches on carry ; clear to SubCC4BA; loads A with $01; ANDs A with the APUSTATUS ; register; branches on not equal to SubCC4AC; loads A with $01; and ; 5 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the APUSTATUS, ; APUPULSE1TIMERLO and APUPULSE1TIMERHI registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC492_Loop: rol Zp40,x ; CPU:$C492 PRG:0492 36 40 bcc SubCC4BA_Loop ; CPU:$C494 PRG:0494 90 24 lda #$01 ; CPU:$C496 PRG:0496 A9 01 and APUSTATUS ; CPU:$C498 PRG:0498 2D 15 40 bne SubCC4AC_Loop ; CPU:$C49B PRG:049B D0 0F lda #$01 ; CPU:$C49D PRG:049D A9 01 sta APUSTATUS ; CPU:$C49F PRG:049F 8D 15 40 lda #$2E ; CPU:$C4A2 PRG:04A2 A9 2E sta APUPULSE1TIMERLO ; CPU:$C4A4 PRG:04A4 8D 02 40 lda #$29 ; CPU:$C4A7 PRG:04A7 A9 29 sta APUPULSE1TIMERHI ; CPU:$C4A9 PRG:04A9 8D 03 40 ;=============================================================================== ; Routine: SubCC4AC_Loop ; Global: The routine calls ResetFrameCounter. ; Local: Executes 6 instructions: loads A with $02; stores A to $0216,y; loads ; A with $04; ORs A with Zp4E,x; stores A to Zp4E,x; calls ResetFrameCounter. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC4AC_Loop: lda #$02 ; CPU:$C4AC PRG:04AC A9 02 sta $0216,y ; CPU:$C4AE PRG:04AE 99 16 02 lda #$04 ; CPU:$C4B1 PRG:04B1 A9 04 ora Zp4E,x ; CPU:$C4B3 PRG:04B3 15 4E sta Zp4E,x ; CPU:$C4B5 PRG:04B5 95 4E jsr ResetFrameCounter ; CPU:$C4B7 PRG:04B7 20 B1 CA ;=============================================================================== ; Routine: SubCC4BA_Loop ; Global: The routine writes the APUSTATUS, APUPULSE1TIMERLO and ; APUPULSE1TIMERHI registers, reads the APUSTATUS register. ; Local: Executes 11 instructions: rotates Zp40,x left; branches on carry ; clear to SubCC4E2; loads A with $01; ANDs A with the APUSTATUS ; register; branches on not equal to SubCC4D4; loads A with $01; and ; 5 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the APUSTATUS, ; APUPULSE1TIMERLO and APUPULSE1TIMERHI registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC4BA_Loop: rol Zp40,x ; CPU:$C4BA PRG:04BA 36 40 bcc SubCC4E2_Loop ; CPU:$C4BC PRG:04BC 90 24 lda #$01 ; CPU:$C4BE PRG:04BE A9 01 and APUSTATUS ; CPU:$C4C0 PRG:04C0 2D 15 40 bne SubCC4D4_Loop ; CPU:$C4C3 PRG:04C3 D0 0F lda #$01 ; CPU:$C4C5 PRG:04C5 A9 01 sta APUSTATUS ; CPU:$C4C7 PRG:04C7 8D 15 40 lda #$0D ; CPU:$C4CA PRG:04CA A9 0D sta APUPULSE1TIMERLO ; CPU:$C4CC PRG:04CC 8D 02 40 lda #$29 ; CPU:$C4CF PRG:04CF A9 29 sta APUPULSE1TIMERHI ; CPU:$C4D1 PRG:04D1 8D 03 40 ;=============================================================================== ; Routine: SubCC4D4_Loop ; Global: The routine calls ResetFrameCounter. ; Local: Executes 6 instructions: loads A with $02; stores A to $021A,y; loads ; A with $02; ORs A with Zp4E,x; stores A to Zp4E,x; calls ResetFrameCounter. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC4D4_Loop: lda #$02 ; CPU:$C4D4 PRG:04D4 A9 02 sta $021A,y ; CPU:$C4D6 PRG:04D6 99 1A 02 lda #$02 ; CPU:$C4D9 PRG:04D9 A9 02 ora Zp4E,x ; CPU:$C4DB PRG:04DB 15 4E sta Zp4E,x ; CPU:$C4DD PRG:04DD 95 4E jsr ResetFrameCounter ; CPU:$C4DF PRG:04DF 20 B1 CA ;=============================================================================== ; Routine: SubCC4E2_Loop ; Global: The routine writes the APUSTATUS, APUPULSE1TIMERLO and ; APUPULSE1TIMERHI registers, reads the APUSTATUS register. ; Local: Executes 11 instructions: rotates Zp40,x left; branches on carry ; clear to SubCC50A; loads A with $01; ANDs A with the APUSTATUS ; register; branches on not equal to SubCC4FC; loads A with $01; and ; 5 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the APUSTATUS, ; APUPULSE1TIMERLO and APUPULSE1TIMERHI registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC4E2_Loop: rol Zp40,x ; CPU:$C4E2 PRG:04E2 36 40 bcc SubCC50A_Loop ; CPU:$C4E4 PRG:04E4 90 24 lda #$01 ; CPU:$C4E6 PRG:04E6 A9 01 and APUSTATUS ; CPU:$C4E8 PRG:04E8 2D 15 40 bne SubCC4FC_Loop ; CPU:$C4EB PRG:04EB D0 0F lda #$01 ; CPU:$C4ED PRG:04ED A9 01 sta APUSTATUS ; CPU:$C4EF PRG:04EF 8D 15 40 lda #$FE ; CPU:$C4F2 PRG:04F2 A9 FE sta APUPULSE1TIMERLO ; CPU:$C4F4 PRG:04F4 8D 02 40 lda #$28 ; CPU:$C4F7 PRG:04F7 A9 28 sta APUPULSE1TIMERHI ; CPU:$C4F9 PRG:04F9 8D 03 40 ;=============================================================================== ; Routine: SubCC4FC_Loop ; Global: The routine calls ResetFrameCounter. ; Local: Executes 6 instructions: loads A with $02; stores A to $021E,y; loads ; A with $01; ORs A with Zp4E,x; stores A to Zp4E,x; calls ResetFrameCounter. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC4FC_Loop: lda #$02 ; CPU:$C4FC PRG:04FC A9 02 sta $021E,y ; CPU:$C4FE PRG:04FE 99 1E 02 lda #$01 ; CPU:$C501 PRG:0501 A9 01 ora Zp4E,x ; CPU:$C503 PRG:0503 15 4E sta Zp4E,x ; CPU:$C505 PRG:0505 95 4E jsr ResetFrameCounter ; CPU:$C507 PRG:0507 20 B1 CA ;=============================================================================== ; Routine: SubCC50A_Loop ; Global: The routine calls SubCC523. ; Local: Executes 11 instructions: pulls A; stores A to Zp40,x; loads A with ; $0C; ANDs A with Zp40,x; compares A with $0C; branches on equal to ; SubCC520; and 5 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC50A_Loop: pla ; CPU:$C50A PRG:050A 68 sta Zp40,x ; CPU:$C50B PRG:050B 95 40 lda #$0C ; CPU:$C50D PRG:050D A9 0C and Zp40,x ; CPU:$C50F PRG:050F 35 40 cmp #$0C ; CPU:$C511 PRG:0511 C9 0C beq SubCC520_Loop ; CPU:$C513 PRG:0513 F0 0B lda #$03 ; CPU:$C515 PRG:0515 A9 03 and Zp40,x ; CPU:$C517 PRG:0517 35 40 cmp #$03 ; CPU:$C519 PRG:0519 C9 03 beq SubCC520_Loop ; CPU:$C51B PRG:051B F0 03 jmp SubCC523 ; CPU:$C51D PRG:051D 4C 23 C5 ;=============================================================================== ; Routine: SubCC520_Loop ; Global: The routine calls CopyMarkerSpriteTable2. ; Local: Executes 1 instruction: calls CopyMarkerSpriteTable2. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCC520_Loop: jsr CopyMarkerSpriteTable2 ; CPU:$C520 PRG:0520 20 EE C1 ;=============================================================================== ; Routine: SubCC523 ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 1 instruction: returns with RTS. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. ; Clobbers: ; nothing. ; ;=============================================================================== SubCC523: rts ; CPU:$C523 PRG:0523 60 ;=============================================================================== ; Routine: SubCC524 ; Global: The routine calls SubCC597, writes $028D, $0289, $0285 and $0281. ; Local: Executes 31 instructions: loads A from Zp60; compares A with $04; ; branches on negative to SubCC564; loads A from Zp60; clears the ; carry flag; subtracts $04 from A; and 25 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves $028D, $0289 and $0285 ; changed. ; Clobbers: ; A, the N, Z, C and V flags, the OAM shadow and the RAM fields it ; writes. ; ;=============================================================================== SubCC524: lda Zp60 ; CPU:$C524 PRG:0524 A5 60 cmp #$04 ; CPU:$C526 PRG:0526 C9 04 bmi SubCC564_Loop ; CPU:$C528 PRG:0528 30 3A lda Zp60 ; CPU:$C52A PRG:052A A5 60 clc ; CPU:$C52C PRG:052C 18 sbc #$04 ; CPU:$C52D PRG:052D E9 04 sta Zp60 ; CPU:$C52F PRG:052F 85 60 lda #$F4 ; CPU:$C531 PRG:0531 A9 F4 sta $028D ; CPU:$C533 PRG:0533 8D 8D 02 lda Zp60 ; CPU:$C536 PRG:0536 A5 60 cmp #$04 ; CPU:$C538 PRG:0538 C9 04 bmi SubCC579_Loop ; CPU:$C53A PRG:053A 30 3D lda Zp60 ; CPU:$C53C PRG:053C A5 60 clc ; CPU:$C53E PRG:053E 18 sbc #$04 ; CPU:$C53F PRG:053F E9 04 sta Zp60 ; CPU:$C541 PRG:0541 85 60 lda #$D4 ; CPU:$C543 PRG:0543 A9 D4 sta $0289 ; CPU:$C545 PRG:0545 8D 89 02 lda Zp60 ; CPU:$C548 PRG:0548 A5 60 cmp #$04 ; CPU:$C54A PRG:054A C9 04 bmi SubCC58B_Loop ; CPU:$C54C PRG:054C 30 3D lda Zp60 ; CPU:$C54E PRG:054E A5 60 clc ; CPU:$C550 PRG:0550 18 sbc #$04 ; CPU:$C551 PRG:0551 E9 04 sta Zp60 ; CPU:$C553 PRG:0553 85 60 lda #$D4 ; CPU:$C555 PRG:0555 A9 D4 sta $0285 ; CPU:$C557 PRG:0557 8D 85 02 lda #$E0 ; CPU:$C55A PRG:055A A9 E0 ora Zp60 ; CPU:$C55C PRG:055C 05 60 sta $0281 ; CPU:$C55E PRG:055E 8D 81 02 jmp SubCC597 ; CPU:$C561 PRG:0561 4C 97 C5 ;=============================================================================== ; Routine: SubCC564_Loop ; Global: The routine calls SubCC597, writes $028D, $0289, $0285 and $0281. ; Local: Executes 8 instructions: loads A with $F0; ORs A with Zp60; stores A ; to $028D; loads A with $30; stores A to $0289; stores A to $0285; ; and 2 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $028D, $0289 and $0285 changed. ; Clobbers: ; A, the N, Z, C and V flags, Zp56, Zp57, Zp5B, Zp5C, Zp61, the OAM ; shadow. ; ;=============================================================================== SubCC564_Loop: lda #$F0 ; CPU:$C564 PRG:0564 A9 F0 ora Zp60 ; CPU:$C566 PRG:0566 05 60 sta $028D ; CPU:$C568 PRG:0568 8D 8D 02 lda #$30 ; CPU:$C56B PRG:056B A9 30 sta $0289 ; CPU:$C56D PRG:056D 8D 89 02 sta $0285 ; CPU:$C570 PRG:0570 8D 85 02 sta $0281 ; CPU:$C573 PRG:0573 8D 81 02 jmp SubCC597 ; CPU:$C576 PRG:0576 4C 97 C5 ;=============================================================================== ; Routine: SubCC579_Loop ; Global: The routine calls SubCC597, writes $0289, $0285 and $0281. ; Local: Executes 7 instructions: loads A with $D0; ORs A with Zp60; stores A ; to $0289; loads A with $30; stores A to $0285; stores A to $0281; ; and 1 more instruction. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $0289, $0285 and $0281 changed. ; Clobbers: ; A, the N, Z, C and V flags, Zp56, Zp57, Zp5B, Zp5C, Zp61, the OAM ; shadow. ; ;=============================================================================== SubCC579_Loop: lda #$D0 ; CPU:$C579 PRG:0579 A9 D0 ora Zp60 ; CPU:$C57B PRG:057B 05 60 sta $0289 ; CPU:$C57D PRG:057D 8D 89 02 lda #$30 ; CPU:$C580 PRG:0580 A9 30 sta $0285 ; CPU:$C582 PRG:0582 8D 85 02 sta $0281 ; CPU:$C585 PRG:0585 8D 81 02 jmp SubCC597 ; CPU:$C588 PRG:0588 4C 97 C5 ;=============================================================================== ; Routine: SubCC58B_Loop ; Global: The routine writes $0285 and $0281. ; Local: Executes 5 instructions: loads A with $D0; ORs A with Zp60; stores A ; to $0285; loads A with $30; stores A to $0281. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $0285 and $0281 changed. ; Clobbers: ; A, the N, Z, C and V flags, Zp56, Zp57, Zp5B, Zp5C, Zp61, the OAM ; shadow. ; ;=============================================================================== SubCC58B_Loop: lda #$D0 ; CPU:$C58B PRG:058B A9 D0 ora Zp60 ; CPU:$C58D PRG:058D 05 60 sta $0285 ; CPU:$C58F PRG:058F 8D 85 02 lda #$30 ; CPU:$C592 PRG:0592 A9 30 sta $0281 ; CPU:$C594 PRG:0594 8D 81 02 ;=============================================================================== ; Routine: SubCC597 ; Global: The routine calls SubCC60A, writes $029D, $0299, $0295 and $0291. ; Local: Executes 31 instructions: loads A from Zp5B; compares A with $04; ; branches on negative to SubCC5D7; loads A from Zp5B; clears the ; carry flag; subtracts $04 from A; and 25 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves $029D, $0299 and $0295 ; changed. ; Clobbers: ; A, the N, Z, C and V flags, Zp56, Zp57, Zp5B, Zp5C, Zp61, the OAM ; shadow. ; ;=============================================================================== SubCC597: lda Zp5B ; CPU:$C597 PRG:0597 A5 5B cmp #$04 ; CPU:$C599 PRG:0599 C9 04 bmi SubCC5D7_Loop ; CPU:$C59B PRG:059B 30 3A lda Zp5B ; CPU:$C59D PRG:059D A5 5B clc ; CPU:$C59F PRG:059F 18 sbc #$04 ; CPU:$C5A0 PRG:05A0 E9 04 sta Zp5B ; CPU:$C5A2 PRG:05A2 85 5B lda #$F4 ; CPU:$C5A4 PRG:05A4 A9 F4 sta $029D ; CPU:$C5A6 PRG:05A6 8D 9D 02 lda Zp5B ; CPU:$C5A9 PRG:05A9 A5 5B cmp #$04 ; CPU:$C5AB PRG:05AB C9 04 bmi SubCC5EC_Loop ; CPU:$C5AD PRG:05AD 30 3D lda Zp5B ; CPU:$C5AF PRG:05AF A5 5B clc ; CPU:$C5B1 PRG:05B1 18 sbc #$04 ; CPU:$C5B2 PRG:05B2 E9 04 sta Zp5B ; CPU:$C5B4 PRG:05B4 85 5B lda #$D4 ; CPU:$C5B6 PRG:05B6 A9 D4 sta $0299 ; CPU:$C5B8 PRG:05B8 8D 99 02 lda Zp5B ; CPU:$C5BB PRG:05BB A5 5B cmp #$04 ; CPU:$C5BD PRG:05BD C9 04 bmi SubCC5FE_Loop ; CPU:$C5BF PRG:05BF 30 3D lda Zp5B ; CPU:$C5C1 PRG:05C1 A5 5B clc ; CPU:$C5C3 PRG:05C3 18 sbc #$04 ; CPU:$C5C4 PRG:05C4 E9 04 sta Zp5B ; CPU:$C5C6 PRG:05C6 85 5B lda #$D4 ; CPU:$C5C8 PRG:05C8 A9 D4 sta $0295 ; CPU:$C5CA PRG:05CA 8D 95 02 lda #$E0 ; CPU:$C5CD PRG:05CD A9 E0 ora Zp5B ; CPU:$C5CF PRG:05CF 05 5B sta $0291 ; CPU:$C5D1 PRG:05D1 8D 91 02 jmp SubCC60A ; CPU:$C5D4 PRG:05D4 4C 0A C6 ;=============================================================================== ; Routine: SubCC5D7_Loop ; Global: The routine calls SubCC60A, writes $029D, $0299, $0295 and $0291. ; Local: Executes 8 instructions: loads A with $F0; ORs A with Zp5B; stores A ; to $029D; loads A with $30; stores A to $0299; stores A to $0295; ; and 2 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $029D, $0299 and $0295 changed. ; Clobbers: ; A, the N, Z, C and V flags, Zp56, Zp57, Zp5C, Zp61, the OAM shadow. ; ;=============================================================================== SubCC5D7_Loop: lda #$F0 ; CPU:$C5D7 PRG:05D7 A9 F0 ora Zp5B ; CPU:$C5D9 PRG:05D9 05 5B sta $029D ; CPU:$C5DB PRG:05DB 8D 9D 02 lda #$30 ; CPU:$C5DE PRG:05DE A9 30 sta $0299 ; CPU:$C5E0 PRG:05E0 8D 99 02 sta $0295 ; CPU:$C5E3 PRG:05E3 8D 95 02 sta $0291 ; CPU:$C5E6 PRG:05E6 8D 91 02 jmp SubCC60A ; CPU:$C5E9 PRG:05E9 4C 0A C6 ;=============================================================================== ; Routine: SubCC5EC_Loop ; Global: The routine calls SubCC60A, writes $0299, $0295 and $0291. ; Local: Executes 7 instructions: loads A with $D0; ORs A with Zp5B; stores A ; to $0299; loads A with $30; stores A to $0295; stores A to $0291; ; and 1 more instruction. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $0299, $0295 and $0291 changed. ; Clobbers: ; A, the N, Z, C and V flags, Zp56, Zp57, Zp5C, Zp61, the OAM shadow. ; ;=============================================================================== SubCC5EC_Loop: lda #$D0 ; CPU:$C5EC PRG:05EC A9 D0 ora Zp5B ; CPU:$C5EE PRG:05EE 05 5B sta $0299 ; CPU:$C5F0 PRG:05F0 8D 99 02 lda #$30 ; CPU:$C5F3 PRG:05F3 A9 30 sta $0295 ; CPU:$C5F5 PRG:05F5 8D 95 02 sta $0291 ; CPU:$C5F8 PRG:05F8 8D 91 02 jmp SubCC60A ; CPU:$C5FB PRG:05FB 4C 0A C6 ;=============================================================================== ; Routine: SubCC5FE_Loop ; Global: The routine writes $0295 and $0291. ; Local: Executes 5 instructions: loads A with $D0; ORs A with Zp5B; stores A ; to $0295; loads A with $30; stores A to $0291. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $0295 and $0291 changed. ; Clobbers: ; A, the N, Z, C and V flags, Zp56, Zp57, Zp5C, Zp61, the OAM shadow. ; ;=============================================================================== SubCC5FE_Loop: lda #$D0 ; CPU:$C5FE PRG:05FE A9 D0 ora Zp5B ; CPU:$C600 PRG:0600 05 5B sta $0295 ; CPU:$C602 PRG:0602 8D 95 02 lda #$30 ; CPU:$C605 PRG:0605 A9 30 sta $0291 ; CPU:$C607 PRG:0607 8D 91 02 ;=============================================================================== ; Routine: SubCC60A ; Global: The routine calls SubCC67D, writes $02AD, $02A9, $02A5 and $02A1. ; Local: Executes 31 instructions: loads A from Zp56; compares A with $04; ; branches on negative to SubCC64A; loads A from Zp56; clears the ; carry flag; subtracts $04 from A; and 25 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves $02AD, $02A9 and $02A5 ; changed. ; Clobbers: ; A, the N, Z, C and V flags, Zp56, Zp57, Zp5C, Zp61, the OAM shadow. ; ;=============================================================================== SubCC60A: lda Zp56 ; CPU:$C60A PRG:060A A5 56 cmp #$04 ; CPU:$C60C PRG:060C C9 04 bmi SubCC64A_Loop ; CPU:$C60E PRG:060E 30 3A lda Zp56 ; CPU:$C610 PRG:0610 A5 56 clc ; CPU:$C612 PRG:0612 18 sbc #$04 ; CPU:$C613 PRG:0613 E9 04 sta Zp56 ; CPU:$C615 PRG:0615 85 56 lda #$F4 ; CPU:$C617 PRG:0617 A9 F4 sta $02AD ; CPU:$C619 PRG:0619 8D AD 02 lda Zp56 ; CPU:$C61C PRG:061C A5 56 cmp #$04 ; CPU:$C61E PRG:061E C9 04 bmi SubCC65F_Loop ; CPU:$C620 PRG:0620 30 3D lda Zp56 ; CPU:$C622 PRG:0622 A5 56 clc ; CPU:$C624 PRG:0624 18 sbc #$04 ; CPU:$C625 PRG:0625 E9 04 sta Zp56 ; CPU:$C627 PRG:0627 85 56 lda #$D4 ; CPU:$C629 PRG:0629 A9 D4 sta $02A9 ; CPU:$C62B PRG:062B 8D A9 02 lda Zp56 ; CPU:$C62E PRG:062E A5 56 cmp #$04 ; CPU:$C630 PRG:0630 C9 04 bmi SubCC671_Loop ; CPU:$C632 PRG:0632 30 3D lda Zp56 ; CPU:$C634 PRG:0634 A5 56 clc ; CPU:$C636 PRG:0636 18 sbc #$04 ; CPU:$C637 PRG:0637 E9 04 sta Zp56 ; CPU:$C639 PRG:0639 85 56 lda #$D4 ; CPU:$C63B PRG:063B A9 D4 sta $02A5 ; CPU:$C63D PRG:063D 8D A5 02 lda #$E0 ; CPU:$C640 PRG:0640 A9 E0 ora Zp56 ; CPU:$C642 PRG:0642 05 56 sta $02A1 ; CPU:$C644 PRG:0644 8D A1 02 jmp SubCC67D ; CPU:$C647 PRG:0647 4C 7D C6 ;=============================================================================== ; Routine: SubCC64A_Loop ; Global: The routine calls SubCC67D, writes $02AD, $02A9, $02A5 and $02A1. ; Local: Executes 8 instructions: loads A with $F0; ORs A with Zp56; stores A ; to $02AD; loads A with $30; stores A to $02A9; stores A to $02A5; ; and 2 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $02AD, $02A9 and $02A5 changed. ; Clobbers: ; A, the N, Z, C and V flags, Zp57, Zp5C, Zp61, the OAM shadow. ; ;=============================================================================== SubCC64A_Loop: lda #$F0 ; CPU:$C64A PRG:064A A9 F0 ora Zp56 ; CPU:$C64C PRG:064C 05 56 sta $02AD ; CPU:$C64E PRG:064E 8D AD 02 lda #$30 ; CPU:$C651 PRG:0651 A9 30 sta $02A9 ; CPU:$C653 PRG:0653 8D A9 02 sta $02A5 ; CPU:$C656 PRG:0656 8D A5 02 sta $02A1 ; CPU:$C659 PRG:0659 8D A1 02 jmp SubCC67D ; CPU:$C65C PRG:065C 4C 7D C6 ;=============================================================================== ; Routine: SubCC65F_Loop ; Global: The routine calls SubCC67D, writes $02A9, $02A5 and $02A1. ; Local: Executes 7 instructions: loads A with $D0; ORs A with Zp56; stores A ; to $02A9; loads A with $30; stores A to $02A5; stores A to $02A1; ; and 1 more instruction. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $02A9, $02A5 and $02A1 changed. ; Clobbers: ; A, the N, Z, C and V flags, Zp57, Zp5C, Zp61, the OAM shadow. ; ;=============================================================================== SubCC65F_Loop: lda #$D0 ; CPU:$C65F PRG:065F A9 D0 ora Zp56 ; CPU:$C661 PRG:0661 05 56 sta $02A9 ; CPU:$C663 PRG:0663 8D A9 02 lda #$30 ; CPU:$C666 PRG:0666 A9 30 sta $02A5 ; CPU:$C668 PRG:0668 8D A5 02 sta $02A1 ; CPU:$C66B PRG:066B 8D A1 02 jmp SubCC67D ; CPU:$C66E PRG:066E 4C 7D C6 ;=============================================================================== ; Routine: SubCC671_Loop ; Global: The routine writes $02A5 and $02A1. ; Local: Executes 5 instructions: loads A with $D0; ORs A with Zp56; stores A ; to $02A5; loads A with $30; stores A to $02A1. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $02A5 and $02A1 changed. ; Clobbers: ; A, the N, Z, C and V flags, Zp57, Zp5C, Zp61, the OAM shadow. ; ;=============================================================================== SubCC671_Loop: lda #$D0 ; CPU:$C671 PRG:0671 A9 D0 ora Zp56 ; CPU:$C673 PRG:0673 05 56 sta $02A5 ; CPU:$C675 PRG:0675 8D A5 02 lda #$30 ; CPU:$C678 PRG:0678 A9 30 sta $02A1 ; CPU:$C67A PRG:067A 8D A1 02 ;=============================================================================== ; Routine: SubCC67D ; Global: The routine calls SubCC6F0, writes $02BD, $02B9, $02B5 and $02B1. ; Local: Executes 31 instructions: loads A from Zp61; compares A with $04; ; branches on negative to SubCC6BD; loads A from Zp61; clears the ; carry flag; subtracts $04 from A; and 25 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves $02BD, $02B9 and $02B5 ; changed. ; Clobbers: ; A, the N, Z, C and V flags, Zp57, Zp5C, Zp61, the OAM shadow. ; ;=============================================================================== SubCC67D: lda Zp61 ; CPU:$C67D PRG:067D A5 61 cmp #$04 ; CPU:$C67F PRG:067F C9 04 bmi SubCC6BD_Loop ; CPU:$C681 PRG:0681 30 3A lda Zp61 ; CPU:$C683 PRG:0683 A5 61 clc ; CPU:$C685 PRG:0685 18 sbc #$04 ; CPU:$C686 PRG:0686 E9 04 sta Zp61 ; CPU:$C688 PRG:0688 85 61 lda #$F4 ; CPU:$C68A PRG:068A A9 F4 sta $02BD ; CPU:$C68C PRG:068C 8D BD 02 lda Zp61 ; CPU:$C68F PRG:068F A5 61 cmp #$04 ; CPU:$C691 PRG:0691 C9 04 bmi SubCC6D2_Loop ; CPU:$C693 PRG:0693 30 3D lda Zp61 ; CPU:$C695 PRG:0695 A5 61 clc ; CPU:$C697 PRG:0697 18 sbc #$04 ; CPU:$C698 PRG:0698 E9 04 sta Zp61 ; CPU:$C69A PRG:069A 85 61 lda #$D4 ; CPU:$C69C PRG:069C A9 D4 sta $02B9 ; CPU:$C69E PRG:069E 8D B9 02 lda Zp61 ; CPU:$C6A1 PRG:06A1 A5 61 cmp #$04 ; CPU:$C6A3 PRG:06A3 C9 04 bmi SubCC6E4_Loop ; CPU:$C6A5 PRG:06A5 30 3D lda Zp61 ; CPU:$C6A7 PRG:06A7 A5 61 clc ; CPU:$C6A9 PRG:06A9 18 sbc #$04 ; CPU:$C6AA PRG:06AA E9 04 sta Zp61 ; CPU:$C6AC PRG:06AC 85 61 lda #$D4 ; CPU:$C6AE PRG:06AE A9 D4 sta $02B5 ; CPU:$C6B0 PRG:06B0 8D B5 02 lda #$E0 ; CPU:$C6B3 PRG:06B3 A9 E0 ora Zp61 ; CPU:$C6B5 PRG:06B5 05 61 sta $02B1 ; CPU:$C6B7 PRG:06B7 8D B1 02 jmp SubCC6F0 ; CPU:$C6BA PRG:06BA 4C F0 C6 ;=============================================================================== ; Routine: SubCC6BD_Loop ; Global: The routine calls SubCC6F0, writes $02BD, $02B9, $02B5 and $02B1. ; Local: Executes 8 instructions: loads A with $F0; ORs A with Zp61; stores A ; to $02BD; loads A with $30; stores A to $02B9; stores A to $02B5; ; and 2 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $02BD, $02B9 and $02B5 changed. ; Clobbers: ; A, the N, Z, C and V flags, Zp57, Zp5C, the OAM shadow. ; ;=============================================================================== SubCC6BD_Loop: lda #$F0 ; CPU:$C6BD PRG:06BD A9 F0 ora Zp61 ; CPU:$C6BF PRG:06BF 05 61 sta $02BD ; CPU:$C6C1 PRG:06C1 8D BD 02 lda #$30 ; CPU:$C6C4 PRG:06C4 A9 30 sta $02B9 ; CPU:$C6C6 PRG:06C6 8D B9 02 sta $02B5 ; CPU:$C6C9 PRG:06C9 8D B5 02 sta $02B1 ; CPU:$C6CC PRG:06CC 8D B1 02 jmp SubCC6F0 ; CPU:$C6CF PRG:06CF 4C F0 C6 ;=============================================================================== ; Routine: SubCC6D2_Loop ; Global: The routine calls SubCC6F0, writes $02B9, $02B5 and $02B1. ; Local: Executes 7 instructions: loads A with $D0; ORs A with Zp61; stores A ; to $02B9; loads A with $30; stores A to $02B5; stores A to $02B1; ; and 1 more instruction. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $02B9, $02B5 and $02B1 changed. ; Clobbers: ; A, the N, Z, C and V flags, Zp57, Zp5C, the OAM shadow. ; ;=============================================================================== SubCC6D2_Loop: lda #$D0 ; CPU:$C6D2 PRG:06D2 A9 D0 ora Zp61 ; CPU:$C6D4 PRG:06D4 05 61 sta $02B9 ; CPU:$C6D6 PRG:06D6 8D B9 02 lda #$30 ; CPU:$C6D9 PRG:06D9 A9 30 sta $02B5 ; CPU:$C6DB PRG:06DB 8D B5 02 sta $02B1 ; CPU:$C6DE PRG:06DE 8D B1 02 jmp SubCC6F0 ; CPU:$C6E1 PRG:06E1 4C F0 C6 ;=============================================================================== ; Routine: SubCC6E4_Loop ; Global: The routine writes $02B5 and $02B1. ; Local: Executes 5 instructions: loads A with $D0; ORs A with Zp61; stores A ; to $02B5; loads A with $30; stores A to $02B1. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $02B5 and $02B1 changed. ; Clobbers: ; A, the N, Z, C and V flags, Zp57, Zp5C, the OAM shadow. ; ;=============================================================================== SubCC6E4_Loop: lda #$D0 ; CPU:$C6E4 PRG:06E4 A9 D0 ora Zp61 ; CPU:$C6E6 PRG:06E6 05 61 sta $02B5 ; CPU:$C6E8 PRG:06E8 8D B5 02 lda #$30 ; CPU:$C6EB PRG:06EB A9 30 sta $02B1 ; CPU:$C6ED PRG:06ED 8D B1 02 ;=============================================================================== ; Routine: SubCC6F0 ; Global: The routine calls SubCC763, writes $02CD, $02C9, $02C5 and $02C1. ; Local: Executes 31 instructions: loads A from Zp5C; compares A with $04; ; branches on negative to SubCC730; loads A from Zp5C; clears the ; carry flag; subtracts $04 from A; and 25 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves $02CD, $02C9 and $02C5 ; changed. ; Clobbers: ; A, the N, Z, C and V flags, Zp57, Zp5C, the OAM shadow. ; ;=============================================================================== SubCC6F0: lda Zp5C ; CPU:$C6F0 PRG:06F0 A5 5C cmp #$04 ; CPU:$C6F2 PRG:06F2 C9 04 bmi SubCC730_Loop ; CPU:$C6F4 PRG:06F4 30 3A lda Zp5C ; CPU:$C6F6 PRG:06F6 A5 5C clc ; CPU:$C6F8 PRG:06F8 18 sbc #$04 ; CPU:$C6F9 PRG:06F9 E9 04 sta Zp5C ; CPU:$C6FB PRG:06FB 85 5C lda #$F4 ; CPU:$C6FD PRG:06FD A9 F4 sta $02CD ; CPU:$C6FF PRG:06FF 8D CD 02 lda Zp5C ; CPU:$C702 PRG:0702 A5 5C cmp #$04 ; CPU:$C704 PRG:0704 C9 04 bmi SubCC745_Loop ; CPU:$C706 PRG:0706 30 3D lda Zp5C ; CPU:$C708 PRG:0708 A5 5C clc ; CPU:$C70A PRG:070A 18 sbc #$04 ; CPU:$C70B PRG:070B E9 04 sta Zp5C ; CPU:$C70D PRG:070D 85 5C lda #$D4 ; CPU:$C70F PRG:070F A9 D4 sta $02C9 ; CPU:$C711 PRG:0711 8D C9 02 lda Zp5C ; CPU:$C714 PRG:0714 A5 5C cmp #$04 ; CPU:$C716 PRG:0716 C9 04 bmi SubCC757_Loop ; CPU:$C718 PRG:0718 30 3D lda Zp5C ; CPU:$C71A PRG:071A A5 5C clc ; CPU:$C71C PRG:071C 18 sbc #$04 ; CPU:$C71D PRG:071D E9 04 sta Zp5C ; CPU:$C71F PRG:071F 85 5C lda #$D4 ; CPU:$C721 PRG:0721 A9 D4 sta $02C5 ; CPU:$C723 PRG:0723 8D C5 02 lda #$E0 ; CPU:$C726 PRG:0726 A9 E0 ora Zp5C ; CPU:$C728 PRG:0728 05 5C sta $02C1 ; CPU:$C72A PRG:072A 8D C1 02 jmp SubCC763 ; CPU:$C72D PRG:072D 4C 63 C7 ;=============================================================================== ; Routine: SubCC730_Loop ; Global: The routine calls SubCC763, writes $02CD, $02C9, $02C5 and $02C1. ; Local: Executes 8 instructions: loads A with $F0; ORs A with Zp5C; stores A ; to $02CD; loads A with $30; stores A to $02C9; stores A to $02C5; ; and 2 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $02CD, $02C9 and $02C5 changed. ; Clobbers: ; A, the N, Z, C and V flags, Zp57, the OAM shadow. ; ;=============================================================================== SubCC730_Loop: lda #$F0 ; CPU:$C730 PRG:0730 A9 F0 ora Zp5C ; CPU:$C732 PRG:0732 05 5C sta $02CD ; CPU:$C734 PRG:0734 8D CD 02 lda #$30 ; CPU:$C737 PRG:0737 A9 30 sta $02C9 ; CPU:$C739 PRG:0739 8D C9 02 sta $02C5 ; CPU:$C73C PRG:073C 8D C5 02 sta $02C1 ; CPU:$C73F PRG:073F 8D C1 02 jmp SubCC763 ; CPU:$C742 PRG:0742 4C 63 C7 ;=============================================================================== ; Routine: SubCC745_Loop ; Global: The routine calls SubCC763, writes $02C9, $02C5 and $02C1. ; Local: Executes 7 instructions: loads A with $D0; ORs A with Zp5C; stores A ; to $02C9; loads A with $30; stores A to $02C5; stores A to $02C1; ; and 1 more instruction. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $02C9, $02C5 and $02C1 changed. ; Clobbers: ; A, the N, Z, C and V flags, Zp57, the OAM shadow. ; ;=============================================================================== SubCC745_Loop: lda #$D0 ; CPU:$C745 PRG:0745 A9 D0 ora Zp5C ; CPU:$C747 PRG:0747 05 5C sta $02C9 ; CPU:$C749 PRG:0749 8D C9 02 lda #$30 ; CPU:$C74C PRG:074C A9 30 sta $02C5 ; CPU:$C74E PRG:074E 8D C5 02 sta $02C1 ; CPU:$C751 PRG:0751 8D C1 02 jmp SubCC763 ; CPU:$C754 PRG:0754 4C 63 C7 ;=============================================================================== ; Routine: SubCC757_Loop ; Global: The routine writes $02C5 and $02C1. ; Local: Executes 5 instructions: loads A with $D0; ORs A with Zp5C; stores A ; to $02C5; loads A with $30; stores A to $02C1. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $02C5 and $02C1 changed. ; Clobbers: ; A, the N, Z, C and V flags, Zp57, the OAM shadow. ; ;=============================================================================== SubCC757_Loop: lda #$D0 ; CPU:$C757 PRG:0757 A9 D0 ora Zp5C ; CPU:$C759 PRG:0759 05 5C sta $02C5 ; CPU:$C75B PRG:075B 8D C5 02 lda #$30 ; CPU:$C75E PRG:075E A9 30 sta $02C1 ; CPU:$C760 PRG:0760 8D C1 02 ;=============================================================================== ; Routine: SubCC763 ; Global: The routine calls SubCC7D6, writes $02DD, $02D9, $02D5 and $02D1. ; Local: Executes 31 instructions: loads A from Zp57; compares A with $04; ; branches on negative to SubCC7A3; loads A from Zp57; clears the ; carry flag; subtracts $04 from A; and 25 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves $02DD, $02D9 and $02D5 ; changed. ; Clobbers: ; A, the N, Z, C and V flags, Zp57, the OAM shadow. ; ;=============================================================================== SubCC763: lda Zp57 ; CPU:$C763 PRG:0763 A5 57 cmp #$04 ; CPU:$C765 PRG:0765 C9 04 bmi SubCC7A3_Loop ; CPU:$C767 PRG:0767 30 3A lda Zp57 ; CPU:$C769 PRG:0769 A5 57 clc ; CPU:$C76B PRG:076B 18 sbc #$04 ; CPU:$C76C PRG:076C E9 04 sta Zp57 ; CPU:$C76E PRG:076E 85 57 lda #$F4 ; CPU:$C770 PRG:0770 A9 F4 sta $02DD ; CPU:$C772 PRG:0772 8D DD 02 lda Zp57 ; CPU:$C775 PRG:0775 A5 57 cmp #$04 ; CPU:$C777 PRG:0777 C9 04 bmi SubCC7B8_Loop ; CPU:$C779 PRG:0779 30 3D lda Zp57 ; CPU:$C77B PRG:077B A5 57 clc ; CPU:$C77D PRG:077D 18 sbc #$04 ; CPU:$C77E PRG:077E E9 04 sta Zp57 ; CPU:$C780 PRG:0780 85 57 lda #$D4 ; CPU:$C782 PRG:0782 A9 D4 sta $02D9 ; CPU:$C784 PRG:0784 8D D9 02 lda Zp57 ; CPU:$C787 PRG:0787 A5 57 cmp #$04 ; CPU:$C789 PRG:0789 C9 04 bmi SubCC7CA_Loop ; CPU:$C78B PRG:078B 30 3D lda Zp57 ; CPU:$C78D PRG:078D A5 57 clc ; CPU:$C78F PRG:078F 18 sbc #$04 ; CPU:$C790 PRG:0790 E9 04 sta Zp57 ; CPU:$C792 PRG:0792 85 57 lda #$D4 ; CPU:$C794 PRG:0794 A9 D4 sta $02D5 ; CPU:$C796 PRG:0796 8D D5 02 lda #$E0 ; CPU:$C799 PRG:0799 A9 E0 ora Zp57 ; CPU:$C79B PRG:079B 05 57 sta $02D1 ; CPU:$C79D PRG:079D 8D D1 02 jmp SubCC7D6 ; CPU:$C7A0 PRG:07A0 4C D6 C7 ;=============================================================================== ; Routine: SubCC7A3_Loop ; Global: The routine calls SubCC7D6, writes $02DD, $02D9, $02D5 and $02D1. ; Local: Executes 8 instructions: loads A with $F0; ORs A with Zp57; stores A ; to $02DD; loads A with $30; stores A to $02D9; stores A to $02D5; ; and 2 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $02DD, $02D9 and $02D5 changed. ; Clobbers: ; A, the N and Z flags, the OAM shadow. ; ;=============================================================================== SubCC7A3_Loop: lda #$F0 ; CPU:$C7A3 PRG:07A3 A9 F0 ora Zp57 ; CPU:$C7A5 PRG:07A5 05 57 sta $02DD ; CPU:$C7A7 PRG:07A7 8D DD 02 lda #$30 ; CPU:$C7AA PRG:07AA A9 30 sta $02D9 ; CPU:$C7AC PRG:07AC 8D D9 02 sta $02D5 ; CPU:$C7AF PRG:07AF 8D D5 02 sta $02D1 ; CPU:$C7B2 PRG:07B2 8D D1 02 jmp SubCC7D6 ; CPU:$C7B5 PRG:07B5 4C D6 C7 ;=============================================================================== ; Routine: SubCC7B8_Loop ; Global: The routine calls SubCC7D6, writes $02D9, $02D5 and $02D1. ; Local: Executes 7 instructions: loads A with $D0; ORs A with Zp57; stores A ; to $02D9; loads A with $30; stores A to $02D5; stores A to $02D1; ; and 1 more instruction. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $02D9, $02D5 and $02D1 changed. ; Clobbers: ; A, the N and Z flags, the OAM shadow. ; ;=============================================================================== SubCC7B8_Loop: lda #$D0 ; CPU:$C7B8 PRG:07B8 A9 D0 ora Zp57 ; CPU:$C7BA PRG:07BA 05 57 sta $02D9 ; CPU:$C7BC PRG:07BC 8D D9 02 lda #$30 ; CPU:$C7BF PRG:07BF A9 30 sta $02D5 ; CPU:$C7C1 PRG:07C1 8D D5 02 sta $02D1 ; CPU:$C7C4 PRG:07C4 8D D1 02 jmp SubCC7D6 ; CPU:$C7C7 PRG:07C7 4C D6 C7 ;=============================================================================== ; Routine: SubCC7CA_Loop ; Global: The routine writes $02D5 and $02D1. ; Local: Executes 5 instructions: loads A with $D0; ORs A with Zp57; stores A ; to $02D5; loads A with $30; stores A to $02D1. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $02D5 and $02D1 changed. ; Clobbers: ; A, the N and Z flags, the OAM shadow. ; ;=============================================================================== SubCC7CA_Loop: lda #$D0 ; CPU:$C7CA PRG:07CA A9 D0 ora Zp57 ; CPU:$C7CC PRG:07CC 05 57 sta $02D5 ; CPU:$C7CE PRG:07CE 8D D5 02 lda #$30 ; CPU:$C7D1 PRG:07D1 A9 30 sta $02D1 ; CPU:$C7D3 PRG:07D3 8D D1 02 ;=============================================================================== ; Routine: SubCC7D6 ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 1 instruction: returns with RTS. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. ; Clobbers: ; nothing. ; ;=============================================================================== SubCC7D6: rts ; CPU:$C7D6 PRG:07D6 60 ;=============================================================================== ; Routine: SubCC7D7 ; Global: The routine calls SubCC84A, writes $031D, $0315, $030D and $0305. ; Local: Executes 31 instructions: loads A from Zp63; compares A with $04; ; branches on negative to SubCC817; loads A from Zp63; clears the ; carry flag; subtracts $04 from A; and 25 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves $031D, $0315 and $030D ; changed. ; Clobbers: ; A, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC7D7: lda Zp63 ; CPU:$C7D7 PRG:07D7 A5 63 cmp #$04 ; CPU:$C7D9 PRG:07D9 C9 04 bmi SubCC817_Loop ; CPU:$C7DB PRG:07DB 30 3A lda Zp63 ; CPU:$C7DD PRG:07DD A5 63 clc ; CPU:$C7DF PRG:07DF 18 sbc #$04 ; CPU:$C7E0 PRG:07E0 E9 04 sta Zp63 ; CPU:$C7E2 PRG:07E2 85 63 lda #$F4 ; CPU:$C7E4 PRG:07E4 A9 F4 sta $031D ; CPU:$C7E6 PRG:07E6 8D 1D 03 lda Zp63 ; CPU:$C7E9 PRG:07E9 A5 63 cmp #$04 ; CPU:$C7EB PRG:07EB C9 04 bmi SubCC82C_Loop ; CPU:$C7ED PRG:07ED 30 3D lda Zp63 ; CPU:$C7EF PRG:07EF A5 63 clc ; CPU:$C7F1 PRG:07F1 18 sbc #$04 ; CPU:$C7F2 PRG:07F2 E9 04 sta Zp63 ; CPU:$C7F4 PRG:07F4 85 63 lda #$D4 ; CPU:$C7F6 PRG:07F6 A9 D4 sta $0315 ; CPU:$C7F8 PRG:07F8 8D 15 03 lda Zp63 ; CPU:$C7FB PRG:07FB A5 63 cmp #$04 ; CPU:$C7FD PRG:07FD C9 04 bmi SubCC83E_Loop ; CPU:$C7FF PRG:07FF 30 3D lda Zp63 ; CPU:$C801 PRG:0801 A5 63 clc ; CPU:$C803 PRG:0803 18 sbc #$04 ; CPU:$C804 PRG:0804 E9 04 sta Zp63 ; CPU:$C806 PRG:0806 85 63 lda #$D4 ; CPU:$C808 PRG:0808 A9 D4 sta $030D ; CPU:$C80A PRG:080A 8D 0D 03 lda #$E0 ; CPU:$C80D PRG:080D A9 E0 ora Zp63 ; CPU:$C80F PRG:080F 05 63 sta $0305 ; CPU:$C811 PRG:0811 8D 05 03 jmp SubCC84A ; CPU:$C814 PRG:0814 4C 4A C8 ;=============================================================================== ; Routine: SubCC817_Loop ; Global: The routine calls SubCC84A, writes $031D, $0315, $030D and $0305. ; Local: Executes 8 instructions: loads A with $F0; ORs A with Zp63; stores A ; to $031D; loads A with $30; stores A to $0315; stores A to $030D; ; and 2 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $031D, $0315 and $030D changed. ; Clobbers: ; A, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC817_Loop: lda #$F0 ; CPU:$C817 PRG:0817 A9 F0 ora Zp63 ; CPU:$C819 PRG:0819 05 63 sta $031D ; CPU:$C81B PRG:081B 8D 1D 03 lda #$30 ; CPU:$C81E PRG:081E A9 30 sta $0315 ; CPU:$C820 PRG:0820 8D 15 03 sta $030D ; CPU:$C823 PRG:0823 8D 0D 03 sta $0305 ; CPU:$C826 PRG:0826 8D 05 03 jmp SubCC84A ; CPU:$C829 PRG:0829 4C 4A C8 ;=============================================================================== ; Routine: SubCC82C_Loop ; Global: The routine calls SubCC84A, writes $0315, $030D and $0305. ; Local: Executes 7 instructions: loads A with $D0; ORs A with Zp63; stores A ; to $0315; loads A with $30; stores A to $030D; stores A to $0305; ; and 1 more instruction. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $0315, $030D and $0305 changed. ; Clobbers: ; A, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC82C_Loop: lda #$D0 ; CPU:$C82C PRG:082C A9 D0 ora Zp63 ; CPU:$C82E PRG:082E 05 63 sta $0315 ; CPU:$C830 PRG:0830 8D 15 03 lda #$30 ; CPU:$C833 PRG:0833 A9 30 sta $030D ; CPU:$C835 PRG:0835 8D 0D 03 sta $0305 ; CPU:$C838 PRG:0838 8D 05 03 jmp SubCC84A ; CPU:$C83B PRG:083B 4C 4A C8 ;=============================================================================== ; Routine: SubCC83E_Loop ; Global: The routine writes $030D and $0305. ; Local: Executes 5 instructions: loads A with $D0; ORs A with Zp63; stores A ; to $030D; loads A with $30; stores A to $0305. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $030D and $0305 changed. ; Clobbers: ; A, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC83E_Loop: lda #$D0 ; CPU:$C83E PRG:083E A9 D0 ora Zp63 ; CPU:$C840 PRG:0840 05 63 sta $030D ; CPU:$C842 PRG:0842 8D 0D 03 lda #$30 ; CPU:$C845 PRG:0845 A9 30 sta $0305 ; CPU:$C847 PRG:0847 8D 05 03 ;=============================================================================== ; Routine: SubCC84A ; Global: The routine calls SubCC8BD, writes $031F, $0317, $030F and $0307. ; Local: Executes 31 instructions: loads A from Zp5E; compares A with $04; ; branches on negative to SubCC88A; loads A from Zp5E; clears the ; carry flag; subtracts $04 from A; and 25 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves $031F, $0317 and $030F ; changed. ; Clobbers: ; A, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC84A: lda Zp5E ; CPU:$C84A PRG:084A A5 5E cmp #$04 ; CPU:$C84C PRG:084C C9 04 bmi SubCC88A_Loop ; CPU:$C84E PRG:084E 30 3A lda Zp5E ; CPU:$C850 PRG:0850 A5 5E clc ; CPU:$C852 PRG:0852 18 sbc #$04 ; CPU:$C853 PRG:0853 E9 04 sta Zp5E ; CPU:$C855 PRG:0855 85 5E lda #$F4 ; CPU:$C857 PRG:0857 A9 F4 sta $031F ; CPU:$C859 PRG:0859 8D 1F 03 lda Zp5E ; CPU:$C85C PRG:085C A5 5E cmp #$04 ; CPU:$C85E PRG:085E C9 04 bmi SubCC89F_Loop ; CPU:$C860 PRG:0860 30 3D lda Zp5E ; CPU:$C862 PRG:0862 A5 5E clc ; CPU:$C864 PRG:0864 18 sbc #$04 ; CPU:$C865 PRG:0865 E9 04 sta Zp5E ; CPU:$C867 PRG:0867 85 5E lda #$D4 ; CPU:$C869 PRG:0869 A9 D4 sta $0317 ; CPU:$C86B PRG:086B 8D 17 03 lda Zp5E ; CPU:$C86E PRG:086E A5 5E cmp #$04 ; CPU:$C870 PRG:0870 C9 04 bmi SubCC8B1_Loop ; CPU:$C872 PRG:0872 30 3D lda Zp5E ; CPU:$C874 PRG:0874 A5 5E clc ; CPU:$C876 PRG:0876 18 sbc #$04 ; CPU:$C877 PRG:0877 E9 04 sta Zp5E ; CPU:$C879 PRG:0879 85 5E lda #$D4 ; CPU:$C87B PRG:087B A9 D4 sta $030F ; CPU:$C87D PRG:087D 8D 0F 03 lda #$E0 ; CPU:$C880 PRG:0880 A9 E0 ora Zp5E ; CPU:$C882 PRG:0882 05 5E sta $0307 ; CPU:$C884 PRG:0884 8D 07 03 jmp SubCC8BD ; CPU:$C887 PRG:0887 4C BD C8 ;=============================================================================== ; Routine: SubCC88A_Loop ; Global: The routine calls SubCC8BD, writes $031F, $0317, $030F and $0307. ; Local: Executes 8 instructions: loads A with $F0; ORs A with Zp5E; stores A ; to $031F; loads A with $30; stores A to $0317; stores A to $030F; ; and 2 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $031F, $0317 and $030F changed. ; Clobbers: ; A, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC88A_Loop: lda #$F0 ; CPU:$C88A PRG:088A A9 F0 ora Zp5E ; CPU:$C88C PRG:088C 05 5E sta $031F ; CPU:$C88E PRG:088E 8D 1F 03 lda #$30 ; CPU:$C891 PRG:0891 A9 30 sta $0317 ; CPU:$C893 PRG:0893 8D 17 03 sta $030F ; CPU:$C896 PRG:0896 8D 0F 03 sta $0307 ; CPU:$C899 PRG:0899 8D 07 03 jmp SubCC8BD ; CPU:$C89C PRG:089C 4C BD C8 ;=============================================================================== ; Routine: SubCC89F_Loop ; Global: The routine calls SubCC8BD, writes $0317, $030F and $0307. ; Local: Executes 7 instructions: loads A with $D0; ORs A with Zp5E; stores A ; to $0317; loads A with $30; stores A to $030F; stores A to $0307; ; and 1 more instruction. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $0317, $030F and $0307 changed. ; Clobbers: ; A, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC89F_Loop: lda #$D0 ; CPU:$C89F PRG:089F A9 D0 ora Zp5E ; CPU:$C8A1 PRG:08A1 05 5E sta $0317 ; CPU:$C8A3 PRG:08A3 8D 17 03 lda #$30 ; CPU:$C8A6 PRG:08A6 A9 30 sta $030F ; CPU:$C8A8 PRG:08A8 8D 0F 03 sta $0307 ; CPU:$C8AB PRG:08AB 8D 07 03 jmp SubCC8BD ; CPU:$C8AE PRG:08AE 4C BD C8 ;=============================================================================== ; Routine: SubCC8B1_Loop ; Global: The routine writes $030F and $0307. ; Local: Executes 5 instructions: loads A with $D0; ORs A with Zp5E; stores A ; to $030F; loads A with $30; stores A to $0307. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $030F and $0307 changed. ; Clobbers: ; A, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC8B1_Loop: lda #$D0 ; CPU:$C8B1 PRG:08B1 A9 D0 ora Zp5E ; CPU:$C8B3 PRG:08B3 05 5E sta $030F ; CPU:$C8B5 PRG:08B5 8D 0F 03 lda #$30 ; CPU:$C8B8 PRG:08B8 A9 30 sta $0307 ; CPU:$C8BA PRG:08BA 8D 07 03 ;=============================================================================== ; Routine: SubCC8BD ; Global: The routine calls SubCC930, writes $0321, $0319, $0311 and $0309. ; Local: Executes 31 instructions: loads A from Zp59; compares A with $04; ; branches on negative to SubCC8FD; loads A from Zp59; clears the ; carry flag; subtracts $04 from A; and 25 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves $0321, $0319 and $0311 ; changed. ; Clobbers: ; A, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC8BD: lda Zp59 ; CPU:$C8BD PRG:08BD A5 59 cmp #$04 ; CPU:$C8BF PRG:08BF C9 04 bmi SubCC8FD_Loop ; CPU:$C8C1 PRG:08C1 30 3A lda Zp59 ; CPU:$C8C3 PRG:08C3 A5 59 clc ; CPU:$C8C5 PRG:08C5 18 sbc #$04 ; CPU:$C8C6 PRG:08C6 E9 04 sta Zp59 ; CPU:$C8C8 PRG:08C8 85 59 lda #$F4 ; CPU:$C8CA PRG:08CA A9 F4 sta $0321 ; CPU:$C8CC PRG:08CC 8D 21 03 lda Zp59 ; CPU:$C8CF PRG:08CF A5 59 cmp #$04 ; CPU:$C8D1 PRG:08D1 C9 04 bmi SubCC912_Loop ; CPU:$C8D3 PRG:08D3 30 3D lda Zp59 ; CPU:$C8D5 PRG:08D5 A5 59 clc ; CPU:$C8D7 PRG:08D7 18 sbc #$04 ; CPU:$C8D8 PRG:08D8 E9 04 sta Zp59 ; CPU:$C8DA PRG:08DA 85 59 lda #$D4 ; CPU:$C8DC PRG:08DC A9 D4 sta $0319 ; CPU:$C8DE PRG:08DE 8D 19 03 lda Zp59 ; CPU:$C8E1 PRG:08E1 A5 59 cmp #$04 ; CPU:$C8E3 PRG:08E3 C9 04 bmi SubCC924_Loop ; CPU:$C8E5 PRG:08E5 30 3D lda Zp59 ; CPU:$C8E7 PRG:08E7 A5 59 clc ; CPU:$C8E9 PRG:08E9 18 sbc #$04 ; CPU:$C8EA PRG:08EA E9 04 sta Zp59 ; CPU:$C8EC PRG:08EC 85 59 lda #$D4 ; CPU:$C8EE PRG:08EE A9 D4 sta $0311 ; CPU:$C8F0 PRG:08F0 8D 11 03 lda #$E0 ; CPU:$C8F3 PRG:08F3 A9 E0 ora Zp59 ; CPU:$C8F5 PRG:08F5 05 59 sta $0309 ; CPU:$C8F7 PRG:08F7 8D 09 03 jmp SubCC930 ; CPU:$C8FA PRG:08FA 4C 30 C9 ;=============================================================================== ; Routine: SubCC8FD_Loop ; Global: The routine calls SubCC930, writes $0321, $0319, $0311 and $0309. ; Local: Executes 8 instructions: loads A with $F0; ORs A with Zp59; stores A ; to $0321; loads A with $30; stores A to $0319; stores A to $0311; ; and 2 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $0321, $0319 and $0311 changed. ; Clobbers: ; A, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC8FD_Loop: lda #$F0 ; CPU:$C8FD PRG:08FD A9 F0 ora Zp59 ; CPU:$C8FF PRG:08FF 05 59 sta $0321 ; CPU:$C901 PRG:0901 8D 21 03 lda #$30 ; CPU:$C904 PRG:0904 A9 30 sta $0319 ; CPU:$C906 PRG:0906 8D 19 03 sta $0311 ; CPU:$C909 PRG:0909 8D 11 03 sta $0309 ; CPU:$C90C PRG:090C 8D 09 03 jmp SubCC930 ; CPU:$C90F PRG:090F 4C 30 C9 ;=============================================================================== ; Routine: SubCC912_Loop ; Global: The routine calls SubCC930, writes $0319, $0311 and $0309. ; Local: Executes 7 instructions: loads A with $D0; ORs A with Zp59; stores A ; to $0319; loads A with $30; stores A to $0311; stores A to $0309; ; and 1 more instruction. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $0319, $0311 and $0309 changed. ; Clobbers: ; A, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC912_Loop: lda #$D0 ; CPU:$C912 PRG:0912 A9 D0 ora Zp59 ; CPU:$C914 PRG:0914 05 59 sta $0319 ; CPU:$C916 PRG:0916 8D 19 03 lda #$30 ; CPU:$C919 PRG:0919 A9 30 sta $0311 ; CPU:$C91B PRG:091B 8D 11 03 sta $0309 ; CPU:$C91E PRG:091E 8D 09 03 jmp SubCC930 ; CPU:$C921 PRG:0921 4C 30 C9 ;=============================================================================== ; Routine: SubCC924_Loop ; Global: The routine writes $0311 and $0309. ; Local: Executes 5 instructions: loads A with $D0; ORs A with Zp59; stores A ; to $0311; loads A with $30; stores A to $0309. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $0311 and $0309 changed. ; Clobbers: ; A, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC924_Loop: lda #$D0 ; CPU:$C924 PRG:0924 A9 D0 ora Zp59 ; CPU:$C926 PRG:0926 05 59 sta $0311 ; CPU:$C928 PRG:0928 8D 11 03 lda #$30 ; CPU:$C92B PRG:092B A9 30 sta $0309 ; CPU:$C92D PRG:092D 8D 09 03 ;=============================================================================== ; Routine: SubCC930 ; Global: The routine calls SubCC9A3, writes $034D, $0345, $033D and $0335. ; Local: Executes 31 instructions: loads A from Zp64; compares A with $04; ; branches on negative to SubCC970; loads A from Zp64; clears the ; carry flag; subtracts $04 from A; and 25 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves $034D, $0345 and $033D ; changed. ; Clobbers: ; A, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC930: lda Zp64 ; CPU:$C930 PRG:0930 A5 64 cmp #$04 ; CPU:$C932 PRG:0932 C9 04 bmi SubCC970_Loop ; CPU:$C934 PRG:0934 30 3A lda Zp64 ; CPU:$C936 PRG:0936 A5 64 clc ; CPU:$C938 PRG:0938 18 sbc #$04 ; CPU:$C939 PRG:0939 E9 04 sta Zp64 ; CPU:$C93B PRG:093B 85 64 lda #$F4 ; CPU:$C93D PRG:093D A9 F4 sta $034D ; CPU:$C93F PRG:093F 8D 4D 03 lda Zp64 ; CPU:$C942 PRG:0942 A5 64 cmp #$04 ; CPU:$C944 PRG:0944 C9 04 bmi SubCC985_Loop ; CPU:$C946 PRG:0946 30 3D lda Zp64 ; CPU:$C948 PRG:0948 A5 64 clc ; CPU:$C94A PRG:094A 18 sbc #$04 ; CPU:$C94B PRG:094B E9 04 sta Zp64 ; CPU:$C94D PRG:094D 85 64 lda #$D4 ; CPU:$C94F PRG:094F A9 D4 sta $0345 ; CPU:$C951 PRG:0951 8D 45 03 lda Zp64 ; CPU:$C954 PRG:0954 A5 64 cmp #$04 ; CPU:$C956 PRG:0956 C9 04 bmi SubCC997_Loop ; CPU:$C958 PRG:0958 30 3D lda Zp64 ; CPU:$C95A PRG:095A A5 64 clc ; CPU:$C95C PRG:095C 18 sbc #$04 ; CPU:$C95D PRG:095D E9 04 sta Zp64 ; CPU:$C95F PRG:095F 85 64 lda #$D4 ; CPU:$C961 PRG:0961 A9 D4 sta $033D ; CPU:$C963 PRG:0963 8D 3D 03 lda #$E0 ; CPU:$C966 PRG:0966 A9 E0 ora Zp64 ; CPU:$C968 PRG:0968 05 64 sta $0335 ; CPU:$C96A PRG:096A 8D 35 03 jmp SubCC9A3 ; CPU:$C96D PRG:096D 4C A3 C9 ;=============================================================================== ; Routine: SubCC970_Loop ; Global: The routine calls SubCC9A3, writes $034D, $0345, $033D and $0335. ; Local: Executes 8 instructions: loads A with $F0; ORs A with Zp64; stores A ; to $034D; loads A with $30; stores A to $0345; stores A to $033D; ; and 2 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $034D, $0345 and $033D changed. ; Clobbers: ; A, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC970_Loop: lda #$F0 ; CPU:$C970 PRG:0970 A9 F0 ora Zp64 ; CPU:$C972 PRG:0972 05 64 sta $034D ; CPU:$C974 PRG:0974 8D 4D 03 lda #$30 ; CPU:$C977 PRG:0977 A9 30 sta $0345 ; CPU:$C979 PRG:0979 8D 45 03 sta $033D ; CPU:$C97C PRG:097C 8D 3D 03 sta $0335 ; CPU:$C97F PRG:097F 8D 35 03 jmp SubCC9A3 ; CPU:$C982 PRG:0982 4C A3 C9 ;=============================================================================== ; Routine: SubCC985_Loop ; Global: The routine calls SubCC9A3, writes $0345, $033D and $0335. ; Local: Executes 7 instructions: loads A with $D0; ORs A with Zp64; stores A ; to $0345; loads A with $30; stores A to $033D; stores A to $0335; ; and 1 more instruction. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $0345, $033D and $0335 changed. ; Clobbers: ; A, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC985_Loop: lda #$D0 ; CPU:$C985 PRG:0985 A9 D0 ora Zp64 ; CPU:$C987 PRG:0987 05 64 sta $0345 ; CPU:$C989 PRG:0989 8D 45 03 lda #$30 ; CPU:$C98C PRG:098C A9 30 sta $033D ; CPU:$C98E PRG:098E 8D 3D 03 sta $0335 ; CPU:$C991 PRG:0991 8D 35 03 jmp SubCC9A3 ; CPU:$C994 PRG:0994 4C A3 C9 ;=============================================================================== ; Routine: SubCC997_Loop ; Global: The routine writes $033D and $0335. ; Local: Executes 5 instructions: loads A with $D0; ORs A with Zp64; stores A ; to $033D; loads A with $30; stores A to $0335. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $033D and $0335 changed. ; Clobbers: ; A, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC997_Loop: lda #$D0 ; CPU:$C997 PRG:0997 A9 D0 ora Zp64 ; CPU:$C999 PRG:0999 05 64 sta $033D ; CPU:$C99B PRG:099B 8D 3D 03 lda #$30 ; CPU:$C99E PRG:099E A9 30 sta $0335 ; CPU:$C9A0 PRG:09A0 8D 35 03 ;=============================================================================== ; Routine: SubCC9A3 ; Global: The routine calls SubCCA16, writes $034F, $0347, $033F and $0337. ; Local: Executes 31 instructions: loads A from Zp5F; compares A with $04; ; branches on negative to SubCC9E3; loads A from Zp5F; clears the ; carry flag; subtracts $04 from A; and 25 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves $034F, $0347 and $033F ; changed. ; Clobbers: ; A, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC9A3: lda Zp5F ; CPU:$C9A3 PRG:09A3 A5 5F cmp #$04 ; CPU:$C9A5 PRG:09A5 C9 04 bmi SubCC9E3_Loop ; CPU:$C9A7 PRG:09A7 30 3A lda Zp5F ; CPU:$C9A9 PRG:09A9 A5 5F clc ; CPU:$C9AB PRG:09AB 18 sbc #$04 ; CPU:$C9AC PRG:09AC E9 04 sta Zp5F ; CPU:$C9AE PRG:09AE 85 5F lda #$F4 ; CPU:$C9B0 PRG:09B0 A9 F4 sta $034F ; CPU:$C9B2 PRG:09B2 8D 4F 03 lda Zp5F ; CPU:$C9B5 PRG:09B5 A5 5F cmp #$04 ; CPU:$C9B7 PRG:09B7 C9 04 bmi SubCC9F8_Loop ; CPU:$C9B9 PRG:09B9 30 3D lda Zp5F ; CPU:$C9BB PRG:09BB A5 5F clc ; CPU:$C9BD PRG:09BD 18 sbc #$04 ; CPU:$C9BE PRG:09BE E9 04 sta Zp5F ; CPU:$C9C0 PRG:09C0 85 5F lda #$D4 ; CPU:$C9C2 PRG:09C2 A9 D4 sta $0347 ; CPU:$C9C4 PRG:09C4 8D 47 03 lda Zp5F ; CPU:$C9C7 PRG:09C7 A5 5F cmp #$04 ; CPU:$C9C9 PRG:09C9 C9 04 bmi SubCCA0A_Loop ; CPU:$C9CB PRG:09CB 30 3D lda Zp5F ; CPU:$C9CD PRG:09CD A5 5F clc ; CPU:$C9CF PRG:09CF 18 sbc #$04 ; CPU:$C9D0 PRG:09D0 E9 04 sta Zp5F ; CPU:$C9D2 PRG:09D2 85 5F lda #$D4 ; CPU:$C9D4 PRG:09D4 A9 D4 sta $033F ; CPU:$C9D6 PRG:09D6 8D 3F 03 lda #$E0 ; CPU:$C9D9 PRG:09D9 A9 E0 ora Zp5F ; CPU:$C9DB PRG:09DB 05 5F sta $0337 ; CPU:$C9DD PRG:09DD 8D 37 03 jmp SubCCA16 ; CPU:$C9E0 PRG:09E0 4C 16 CA ;=============================================================================== ; Routine: SubCC9E3_Loop ; Global: The routine calls SubCCA16, writes $034F, $0347, $033F and $0337. ; Local: Executes 8 instructions: loads A with $F0; ORs A with Zp5F; stores A ; to $034F; loads A with $30; stores A to $0347; stores A to $033F; ; and 2 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $034F, $0347 and $033F changed. ; Clobbers: ; A, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC9E3_Loop: lda #$F0 ; CPU:$C9E3 PRG:09E3 A9 F0 ora Zp5F ; CPU:$C9E5 PRG:09E5 05 5F sta $034F ; CPU:$C9E7 PRG:09E7 8D 4F 03 lda #$30 ; CPU:$C9EA PRG:09EA A9 30 sta $0347 ; CPU:$C9EC PRG:09EC 8D 47 03 sta $033F ; CPU:$C9EF PRG:09EF 8D 3F 03 sta $0337 ; CPU:$C9F2 PRG:09F2 8D 37 03 jmp SubCCA16 ; CPU:$C9F5 PRG:09F5 4C 16 CA ;=============================================================================== ; Routine: SubCC9F8_Loop ; Global: The routine calls SubCCA16, writes $0347, $033F and $0337. ; Local: Executes 7 instructions: loads A with $D0; ORs A with Zp5F; stores A ; to $0347; loads A with $30; stores A to $033F; stores A to $0337; ; and 1 more instruction. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $0347, $033F and $0337 changed. ; Clobbers: ; A, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCC9F8_Loop: lda #$D0 ; CPU:$C9F8 PRG:09F8 A9 D0 ora Zp5F ; CPU:$C9FA PRG:09FA 05 5F sta $0347 ; CPU:$C9FC PRG:09FC 8D 47 03 lda #$30 ; CPU:$C9FF PRG:09FF A9 30 sta $033F ; CPU:$CA01 PRG:0A01 8D 3F 03 sta $0337 ; CPU:$CA04 PRG:0A04 8D 37 03 jmp SubCCA16 ; CPU:$CA07 PRG:0A07 4C 16 CA ;=============================================================================== ; Routine: SubCCA0A_Loop ; Global: The routine writes $033F and $0337. ; Local: Executes 5 instructions: loads A with $D0; ORs A with Zp5F; stores A ; to $033F; loads A with $30; stores A to $0337. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $033F and $0337 changed. ; Clobbers: ; A, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCCA0A_Loop: lda #$D0 ; CPU:$CA0A PRG:0A0A A9 D0 ora Zp5F ; CPU:$CA0C PRG:0A0C 05 5F sta $033F ; CPU:$CA0E PRG:0A0E 8D 3F 03 lda #$30 ; CPU:$CA11 PRG:0A11 A9 30 sta $0337 ; CPU:$CA13 PRG:0A13 8D 37 03 ;=============================================================================== ; Routine: SubCCA16 ; Global: The routine calls SubCCA89, writes $0351, $0349, $0341 and $0339. ; Local: Executes 31 instructions: loads A from Zp5A; compares A with $04; ; branches on negative to SubCCA56; loads A from Zp5A; clears the ; carry flag; subtracts $04 from A; and 25 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves $0351, $0349 and $0341 ; changed. ; Clobbers: ; A, the N, Z, C and V flags, Zp5A, $0339, $0341, $0349, $0351. ; ;=============================================================================== SubCCA16: lda Zp5A ; CPU:$CA16 PRG:0A16 A5 5A cmp #$04 ; CPU:$CA18 PRG:0A18 C9 04 bmi SubCCA56_Loop ; CPU:$CA1A PRG:0A1A 30 3A lda Zp5A ; CPU:$CA1C PRG:0A1C A5 5A clc ; CPU:$CA1E PRG:0A1E 18 sbc #$04 ; CPU:$CA1F PRG:0A1F E9 04 sta Zp5A ; CPU:$CA21 PRG:0A21 85 5A lda #$F4 ; CPU:$CA23 PRG:0A23 A9 F4 sta $0351 ; CPU:$CA25 PRG:0A25 8D 51 03 lda Zp5A ; CPU:$CA28 PRG:0A28 A5 5A cmp #$04 ; CPU:$CA2A PRG:0A2A C9 04 bmi SubCCA6B_Loop ; CPU:$CA2C PRG:0A2C 30 3D lda Zp5A ; CPU:$CA2E PRG:0A2E A5 5A clc ; CPU:$CA30 PRG:0A30 18 sbc #$04 ; CPU:$CA31 PRG:0A31 E9 04 sta Zp5A ; CPU:$CA33 PRG:0A33 85 5A lda #$D4 ; CPU:$CA35 PRG:0A35 A9 D4 sta $0349 ; CPU:$CA37 PRG:0A37 8D 49 03 lda Zp5A ; CPU:$CA3A PRG:0A3A A5 5A cmp #$04 ; CPU:$CA3C PRG:0A3C C9 04 bmi SubCCA7D_Loop ; CPU:$CA3E PRG:0A3E 30 3D lda Zp5A ; CPU:$CA40 PRG:0A40 A5 5A clc ; CPU:$CA42 PRG:0A42 18 sbc #$04 ; CPU:$CA43 PRG:0A43 E9 04 sta Zp5A ; CPU:$CA45 PRG:0A45 85 5A lda #$D4 ; CPU:$CA47 PRG:0A47 A9 D4 sta $0341 ; CPU:$CA49 PRG:0A49 8D 41 03 lda #$E0 ; CPU:$CA4C PRG:0A4C A9 E0 ora Zp5A ; CPU:$CA4E PRG:0A4E 05 5A sta $0339 ; CPU:$CA50 PRG:0A50 8D 39 03 jmp SubCCA89 ; CPU:$CA53 PRG:0A53 4C 89 CA ;=============================================================================== ; Routine: SubCCA56_Loop ; Global: The routine calls SubCCA89, writes $0351, $0349, $0341 and $0339. ; Local: Executes 8 instructions: loads A with $F0; ORs A with Zp5A; stores A ; to $0351; loads A with $30; stores A to $0349; stores A to $0341; ; and 2 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $0351, $0349 and $0341 changed. ; Clobbers: ; A, the N and Z flags, $0339, $0341, $0349, $0351. ; ;=============================================================================== SubCCA56_Loop: lda #$F0 ; CPU:$CA56 PRG:0A56 A9 F0 ora Zp5A ; CPU:$CA58 PRG:0A58 05 5A sta $0351 ; CPU:$CA5A PRG:0A5A 8D 51 03 lda #$30 ; CPU:$CA5D PRG:0A5D A9 30 sta $0349 ; CPU:$CA5F PRG:0A5F 8D 49 03 sta $0341 ; CPU:$CA62 PRG:0A62 8D 41 03 sta $0339 ; CPU:$CA65 PRG:0A65 8D 39 03 jmp SubCCA89 ; CPU:$CA68 PRG:0A68 4C 89 CA ;=============================================================================== ; Routine: SubCCA6B_Loop ; Global: The routine calls SubCCA89, writes $0349, $0341 and $0339. ; Local: Executes 7 instructions: loads A with $D0; ORs A with Zp5A; stores A ; to $0349; loads A with $30; stores A to $0341; stores A to $0339; ; and 1 more instruction. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $0349, $0341 and $0339 changed. ; Clobbers: ; A, the N and Z flags, $0339, $0341, $0349. ; ;=============================================================================== SubCCA6B_Loop: lda #$D0 ; CPU:$CA6B PRG:0A6B A9 D0 ora Zp5A ; CPU:$CA6D PRG:0A6D 05 5A sta $0349 ; CPU:$CA6F PRG:0A6F 8D 49 03 lda #$30 ; CPU:$CA72 PRG:0A72 A9 30 sta $0341 ; CPU:$CA74 PRG:0A74 8D 41 03 sta $0339 ; CPU:$CA77 PRG:0A77 8D 39 03 jmp SubCCA89 ; CPU:$CA7A PRG:0A7A 4C 89 CA ;=============================================================================== ; Routine: SubCCA7D_Loop ; Global: The routine writes $0341 and $0339. ; Local: Executes 5 instructions: loads A with $D0; ORs A with Zp5A; stores A ; to $0341; loads A with $30; stores A to $0339. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves $0341 and $0339 changed. ; Clobbers: ; A, the N and Z flags, $0339, $0341. ; ;=============================================================================== SubCCA7D_Loop: lda #$D0 ; CPU:$CA7D PRG:0A7D A9 D0 ora Zp5A ; CPU:$CA7F PRG:0A7F 05 5A sta $0341 ; CPU:$CA81 PRG:0A81 8D 41 03 lda #$30 ; CPU:$CA84 PRG:0A84 A9 30 sta $0339 ; CPU:$CA86 PRG:0A86 8D 39 03 ;=============================================================================== ; Routine: SubCCA89 ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 1 instruction: returns with RTS. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. ; Clobbers: ; nothing. ; ;=============================================================================== SubCCA89: rts ; CPU:$CA89 PRG:0A89 60 ;=============================================================================== ; Routine: ResetButtonCounters ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 20 instructions: loads A with $FF; stores A to Zp6A; loads A ; with $00; stores A to Zp60; stores A to Zp5B; stores A to Zp56; and ; 14 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. ; Clobbers: ; A, the N and Z flags, the RAM fields it writes. ; ;=============================================================================== ResetButtonCounters: lda #$FF ; CPU:$CA8A PRG:0A8A A9 FF sta Zp6A ; CPU:$CA8C PRG:0A8C 85 6A lda #$00 ; CPU:$CA8E PRG:0A8E A9 00 sta Zp60 ; CPU:$CA90 PRG:0A90 85 60 sta Zp5B ; CPU:$CA92 PRG:0A92 85 5B sta Zp56 ; CPU:$CA94 PRG:0A94 85 56 sta Zp61 ; CPU:$CA96 PRG:0A96 85 61 sta Zp5C ; CPU:$CA98 PRG:0A98 85 5C sta Zp57 ; CPU:$CA9A PRG:0A9A 85 57 sta Zp63 ; CPU:$CA9C PRG:0A9C 85 63 sta Zp5E ; CPU:$CA9E PRG:0A9E 85 5E sta Zp59 ; CPU:$CAA0 PRG:0AA0 85 59 sta Zp64 ; CPU:$CAA2 PRG:0AA2 85 64 sta Zp5F ; CPU:$CAA4 PRG:0AA4 85 5F sta Zp5A ; CPU:$CAA6 PRG:0AA6 85 5A sta Zp65 ; CPU:$CAA8 PRG:0AA8 85 65 sta Zp66 ; CPU:$CAAA PRG:0AAA 85 66 sta Zp68 ; CPU:$CAAC PRG:0AAC 85 68 sta Zp69 ; CPU:$CAAE PRG:0AAE 85 69 rts ; CPU:$CAB0 PRG:0AB0 60 ;=============================================================================== ; Routine: ResetFrameCounter ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 4 instructions: loads A with $00; stores A to Zp53; stores A ; to Zp54; returns with RTS. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. ; Clobbers: ; A, the N and Z flags, Zp53, Zp54. ; ;=============================================================================== ResetFrameCounter: lda #$00 ; CPU:$CAB1 PRG:0AB1 A9 00 sta Zp53 ; CPU:$CAB3 PRG:0AB3 85 53 sta Zp54 ; CPU:$CAB5 PRG:0AB5 85 54 rts ; CPU:$CAB7 PRG:0AB7 60 ;=============================================================================== ; Routine: ShiftMarkerBitToOam ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 4 instructions: rotates Zp4E,x left; branches on carry clear ; to SubCCAC1; loads A with $00; stores A to $0202,y. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, the N, Z and C flags, Zp4E, the OAM shadow. ; ;=============================================================================== ShiftMarkerBitToOam: rol Zp4E,x ; CPU:$CAB8 PRG:0AB8 36 4E bcc SubCCAC1_Loop ; CPU:$CABA PRG:0ABA 90 05 lda #$00 ; CPU:$CABC PRG:0ABC A9 00 sta $0202,y ; CPU:$CABE PRG:0ABE 99 02 02 ;=============================================================================== ; Routine: SubCCAC1_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 4 instructions: rotates Zp4E,x left; branches on carry clear ; to SubCCACA; loads A with $00; stores A to $0206,y. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, the N, Z and C flags, Zp4E, the OAM shadow. ; ;=============================================================================== SubCCAC1_Loop: rol Zp4E,x ; CPU:$CAC1 PRG:0AC1 36 4E bcc SubCCACA_Loop ; CPU:$CAC3 PRG:0AC3 90 05 lda #$00 ; CPU:$CAC5 PRG:0AC5 A9 00 sta $0206,y ; CPU:$CAC7 PRG:0AC7 99 06 02 ;=============================================================================== ; Routine: SubCCACA_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 4 instructions: rotates Zp4E,x left; branches on carry clear ; to SubCCAD3; loads A with $00; stores A to $020E,y. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, the N, Z and C flags, Zp4E, the OAM shadow. ; ;=============================================================================== SubCCACA_Loop: rol Zp4E,x ; CPU:$CACA PRG:0ACA 36 4E bcc SubCCAD3_Loop ; CPU:$CACC PRG:0ACC 90 05 lda #$00 ; CPU:$CACE PRG:0ACE A9 00 sta $020E,y ; CPU:$CAD0 PRG:0AD0 99 0E 02 ;=============================================================================== ; Routine: SubCCAD3_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 4 instructions: rotates Zp4E,x left; branches on carry clear ; to SubCCADC; loads A with $00; stores A to $020A,y. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, the N, Z and C flags, Zp4E, the OAM shadow. ; ;=============================================================================== SubCCAD3_Loop: rol Zp4E,x ; CPU:$CAD3 PRG:0AD3 36 4E bcc SubCCADC_Loop ; CPU:$CAD5 PRG:0AD5 90 05 lda #$00 ; CPU:$CAD7 PRG:0AD7 A9 00 sta $020A,y ; CPU:$CAD9 PRG:0AD9 99 0A 02 ;=============================================================================== ; Routine: SubCCADC_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 4 instructions: rotates Zp4E,x left; branches on carry clear ; to SubCCAE5; loads A with $00; stores A to $0212,y. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, the N, Z and C flags, Zp4E, the OAM shadow. ; ;=============================================================================== SubCCADC_Loop: rol Zp4E,x ; CPU:$CADC PRG:0ADC 36 4E bcc SubCCAE5_Loop ; CPU:$CADE PRG:0ADE 90 05 lda #$00 ; CPU:$CAE0 PRG:0AE0 A9 00 sta $0212,y ; CPU:$CAE2 PRG:0AE2 99 12 02 ;=============================================================================== ; Routine: SubCCAE5_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 4 instructions: rotates Zp4E,x left; branches on carry clear ; to SubCCAEE; loads A with $00; stores A to $0216,y. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, the N, Z and C flags, Zp4E, the OAM shadow. ; ;=============================================================================== SubCCAE5_Loop: rol Zp4E,x ; CPU:$CAE5 PRG:0AE5 36 4E bcc SubCCAEE_Loop ; CPU:$CAE7 PRG:0AE7 90 05 lda #$00 ; CPU:$CAE9 PRG:0AE9 A9 00 sta $0216,y ; CPU:$CAEB PRG:0AEB 99 16 02 ;=============================================================================== ; Routine: SubCCAEE_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 4 instructions: rotates Zp4E,x left; branches on carry clear ; to SubCCAF7; loads A with $00; stores A to $021A,y. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, the N, Z and C flags, Zp4E, the OAM shadow. ; ;=============================================================================== SubCCAEE_Loop: rol Zp4E,x ; CPU:$CAEE PRG:0AEE 36 4E bcc SubCCAF7_Loop ; CPU:$CAF0 PRG:0AF0 90 05 lda #$00 ; CPU:$CAF2 PRG:0AF2 A9 00 sta $021A,y ; CPU:$CAF4 PRG:0AF4 99 1A 02 ;=============================================================================== ; Routine: SubCCAF7_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 4 instructions: rotates Zp4E,x left; branches on carry clear ; to SubCCB00; loads A with $00; stores A to $021E,y. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, the N, Z and C flags, Zp4E, the OAM shadow. ; ;=============================================================================== SubCCAF7_Loop: rol Zp4E,x ; CPU:$CAF7 PRG:0AF7 36 4E bcc SubCCB00_Loop ; CPU:$CAF9 PRG:0AF9 90 05 lda #$00 ; CPU:$CAFB PRG:0AFB A9 00 sta $021E,y ; CPU:$CAFD PRG:0AFD 99 1E 02 ;=============================================================================== ; Routine: SubCCB00_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 2 instructions: rotates Zp4E,x left; returns with RTS. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. ; Clobbers: ; no register, the N, Z and C flags, Zp4E. ; ;=============================================================================== SubCCB00_Loop: rol Zp4E,x ; CPU:$CB00 PRG:0B00 36 4E rts ; CPU:$CB02 PRG:0B02 60 ;=============================================================================== ; Routine: ClearAuxRam ; Global: The routine calls PpuMaskSetup. ; Local: Executes 3 instructions: calls PpuMaskSetup; loads X with $00; loads A ; with $EE. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== ClearAuxRam: jsr PpuMaskSetup ; CPU:$CB03 PRG:0B03 20 2F CD ldx #$00 ; CPU:$CB06 PRG:0B06 A2 00 lda #$EE ; CPU:$CB08 PRG:0B08 A9 EE ;=============================================================================== ; Routine: SubCCB0A_OnNonzero ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 6 instructions: stores A to $6000,x; increments X; compares ; X with $06; branches on not equal to SubCCB0A; loads A with $00; ; loads X with $00. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCCB0A_OnNonzero: sta $6000,x ; CPU:$CB0A PRG:0B0A 9D 00 60 inx ; CPU:$CB0D PRG:0B0D E8 cpx #$06 ; CPU:$CB0E PRG:0B0E E0 06 bne SubCCB0A_OnNonzero ; CPU:$CB10 PRG:0B10 D0 F8 lda #$00 ; CPU:$CB12 PRG:0B12 A9 00 ldx #$00 ; CPU:$CB14 PRG:0B14 A2 00 ;=============================================================================== ; Routine: SubCCB16_OnNonzero ; Global: The routine calls VramWrite and VramPtrWrite, writes the PPUCTRL and ; PPUMASK registers. ; Local: Executes 22 instructions: stores A to Zp00,x; stores A to $0100,x; ; loads A with $F4; stores A to $0200,x; loads A with $00; stores A ; to $0300,x; and 16 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the PPUCTRL and PPUMASK ; registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCCB16_OnNonzero: sta Zp00,x ; CPU:$CB16 PRG:0B16 95 00 sta $0100,x ; CPU:$CB18 PRG:0B18 9D 00 01 lda #$F4 ; CPU:$CB1B PRG:0B1B A9 F4 sta $0200,x ; CPU:$CB1D PRG:0B1D 9D 00 02 lda #$00 ; CPU:$CB20 PRG:0B20 A9 00 sta $0300,x ; CPU:$CB22 PRG:0B22 9D 00 03 sta $0400,x ; CPU:$CB25 PRG:0B25 9D 00 04 sta $0500,x ; CPU:$CB28 PRG:0B28 9D 00 05 sta $0600,x ; CPU:$CB2B PRG:0B2B 9D 00 06 inx ; CPU:$CB2E PRG:0B2E E8 bne SubCCB16_OnNonzero ; CPU:$CB2F PRG:0B2F D0 E5 lda #$10 ; CPU:$CB31 PRG:0B31 A9 10 sta PPUCTRL ; CPU:$CB33 PRG:0B33 8D 00 20 sta ZpEF ; CPU:$CB36 PRG:0B36 85 EF lda #$00 ; CPU:$CB38 PRG:0B38 A9 00 sta PPUMASK ; CPU:$CB3A PRG:0B3A 8D 01 20 sta ZpEE ; CPU:$CB3D PRG:0B3D 85 EE lda #$20 ; CPU:$CB3F PRG:0B3F A9 20 ldx #$24 ; CPU:$CB41 PRG:0B41 A2 24 ldy #$00 ; CPU:$CB43 PRG:0B43 A0 00 jsr VramWrite ; CPU:$CB45 PRG:0B45 20 EE CD jsr VramPtrWrite ; CPU:$CB48 PRG:0B48 20 3F CD ; ---- data $CB4B-$CB4C (2 bytes) ---- MasterPaletteStreamPtrAlt: .byte $06, $CF ; CPU:$CB4B PRG:0B4B 06 CF ;=============================================================================== ; Routine: SubCCB4D ; Global: The routine calls PpuScrollLatch and VramPtrWrite. ; Local: Executes 2 instructions: calls PpuScrollLatch; calls VramPtrWrite. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCCB4D: jsr PpuScrollLatch ; CPU:$CB4D PRG:0B4D 20 3C CE jsr VramPtrWrite ; CPU:$CB50 PRG:0B50 20 3F CD ; ---- data $CB53-$CB54 (2 bytes) ---- JoypadPanelScreenTwoPtr: .byte $63, $D0 ; CPU:$CB53 PRG:0B53 63 D0 ;=============================================================================== ; Routine: SubCCB55 ; Global: The routine calls PpuScrollLatch and ClearOamRoutine. ; Local: Executes 3 instructions: calls PpuScrollLatch; calls ClearOamRoutine; loads X with ; $DF. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCCB55: jsr PpuScrollLatch ; CPU:$CB55 PRG:0B55 20 3C CE jsr ClearOamRoutine ; CPU:$CB58 PRG:0B58 20 74 C1 ldx #$DF ; CPU:$CB5B PRG:0B5B A2 DF ;=============================================================================== ; Routine: SubCCB5D_OnNonzero ; Global: The routine calls SetPpuMaskBits, writes the APUPULSE1CTRL register. ; Local: Executes 28 instructions: loads A from $D5C4,x; stores A to $0200,x; ; decrements X; branches on not equal to SubCCB5D; loads A from ; $D5C4,x; stores A to $0200,x; and 22 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the APUPULSE1CTRL register ; set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCCB5D_OnNonzero: lda $D5C4,x ; CPU:$CB5D PRG:0B5D BD C4 D5 sta $0200,x ; CPU:$CB60 PRG:0B60 9D 00 02 dex ; CPU:$CB63 PRG:0B63 CA bne SubCCB5D_OnNonzero ; CPU:$CB64 PRG:0B64 D0 F7 lda $D5C4,x ; CPU:$CB66 PRG:0B66 BD C4 D5 sta $0200,x ; CPU:$CB69 PRG:0B69 9D 00 02 lda #$FF ; CPU:$CB6C PRG:0B6C A9 FF sta Zp6A ; CPU:$CB6E PRG:0B6E 85 6A lda #$00 ; CPU:$CB70 PRG:0B70 A9 00 sta Zp4E ; CPU:$CB72 PRG:0B72 85 4E sta Zp4F ; CPU:$CB74 PRG:0B74 85 4F sta Zp51 ; CPU:$CB76 PRG:0B76 85 51 sta Zp52 ; CPU:$CB78 PRG:0B78 85 52 sta Zp54 ; CPU:$CB7A PRG:0B7A 85 54 sta Zp53 ; CPU:$CB7C PRG:0B7C 85 53 sta Zp60 ; CPU:$CB7E PRG:0B7E 85 60 sta Zp5B ; CPU:$CB80 PRG:0B80 85 5B sta Zp56 ; CPU:$CB82 PRG:0B82 85 56 sta Zp61 ; CPU:$CB84 PRG:0B84 85 61 sta Zp5C ; CPU:$CB86 PRG:0B86 85 5C sta Zp57 ; CPU:$CB88 PRG:0B88 85 57 sta Zp65 ; CPU:$CB8A PRG:0B8A 85 65 sta Zp66 ; CPU:$CB8C PRG:0B8C 85 66 sta Zp68 ; CPU:$CB8E PRG:0B8E 85 68 sta Zp69 ; CPU:$CB90 PRG:0B90 85 69 lda #$BF ; CPU:$CB92 PRG:0B92 A9 BF sta APUPULSE1CTRL ; CPU:$CB94 PRG:0B94 8D 00 40 jsr SetPpuMaskBits ; CPU:$CB97 PRG:0B97 20 39 CD ;=============================================================================== ; Routine: PollControllerAndSilenceApu ; Global: The routine calls EnablePpuNmi, StrobeController1 and SilenceApuWhenNoButtonPressed. ; Local: Executes 7 instructions: calls EnablePpuNmi; calls StrobeController1; increments ; Zp6A; loads A with $0F; compares A with Zp6A; branches on equal to ; SubCCBAB; and 1 more instruction. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== PollControllerAndSilenceApu: jsr EnablePpuNmi ; CPU:$CB9A PRG:0B9A 20 E2 CC jsr StrobeController1 ; CPU:$CB9D PRG:0B9D 20 F8 CB inc Zp6A ; CPU:$CBA0 PRG:0BA0 E6 6A lda #$0F ; CPU:$CBA2 PRG:0BA2 A9 0F cmp Zp6A ; CPU:$CBA4 PRG:0BA4 C5 6A beq SubCCBAB_Loop ; CPU:$CBA6 PRG:0BA6 F0 03 jmp SilenceApuWhenNoButtonPressed ; CPU:$CBA8 PRG:0BA8 4C B1 CB ;=============================================================================== ; Routine: SubCCBAB_Loop ; Global: The routine calls SubCC524 and ResetButtonCounters. ; Local: Executes 2 instructions: calls SubCC524; calls ResetButtonCounters. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCCBAB_Loop: jsr SubCC524 ; CPU:$CBAB PRG:0BAB 20 24 C5 jsr ResetButtonCounters ; CPU:$CBAE PRG:0BAE 20 8A CA ;=============================================================================== ; Routine: SilenceApuWhenNoButtonPressed ; Global: The routine writes the APUSTATUS register. ; Local: Executes 7 instructions: loads A with $00; compares A with Zp40; ; branches on not equal to SubCCBC0; compares A with Zp41; branches ; on not equal to SubCCBC0; loads A with $00; and 1 more instruction. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the APUSTATUS register set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SilenceApuWhenNoButtonPressed: lda #$00 ; CPU:$CBB1 PRG:0BB1 A9 00 cmp Zp40 ; CPU:$CBB3 PRG:0BB3 C5 40 bne SubCCBC0_Loop ; CPU:$CBB5 PRG:0BB5 D0 09 cmp Zp41 ; CPU:$CBB7 PRG:0BB7 C5 41 bne SubCCBC0_Loop ; CPU:$CBB9 PRG:0BB9 D0 05 lda #$00 ; CPU:$CBBB PRG:0BBB A9 00 sta APUSTATUS ; CPU:$CBBD PRG:0BBD 8D 15 40 ;=============================================================================== ; Routine: SubCCBC0_Loop ; Global: The routine calls ReadController1Bit, CountPressedButtons and CopyMarkerSpriteTable1. ; Local: Executes 14 instructions: loads Y with $00; loads X with $00; calls ; ReadController1Bit; calls CountPressedButtons; loads Y with $20; increments X; and 8 ; more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCCBC0_Loop: ldy #$00 ; CPU:$CBC0 PRG:0BC0 A0 00 ldx #$00 ; CPU:$CBC2 PRG:0BC2 A2 00 jsr ReadController1Bit ; CPU:$CBC4 PRG:0BC4 20 11 CC jsr CountPressedButtons ; CPU:$CBC7 PRG:0BC7 20 61 C3 ldy #$20 ; CPU:$CBCA PRG:0BCA A0 20 inx ; CPU:$CBCC PRG:0BCC E8 jsr ReadController1Bit ; CPU:$CBCD PRG:0BCD 20 11 CC jsr CountPressedButtons ; CPU:$CBD0 PRG:0BD0 20 61 C3 lda #$FF ; CPU:$CBD3 PRG:0BD3 A9 FF cmp Zp4E ; CPU:$CBD5 PRG:0BD5 C5 4E bne SubCCBE0_Loop ; CPU:$CBD7 PRG:0BD7 D0 07 cmp Zp4F ; CPU:$CBD9 PRG:0BD9 C5 4F bne SubCCBE0_Loop ; CPU:$CBDB PRG:0BDB D0 03 jmp CopyMarkerSpriteTable1 ; CPU:$CBDD PRG:0BDD 4C A0 C1 ;=============================================================================== ; Routine: SubCCBE0_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 3 instructions: increments Zp54; branches on not equal to ; SubCCBE6; increments Zp53. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCCBE0_Loop: inc Zp54 ; CPU:$CBE0 PRG:0BE0 E6 54 bne SubCCBE6_Loop ; CPU:$CBE2 PRG:0BE2 D0 02 inc Zp53 ; CPU:$CBE4 PRG:0BE4 E6 53 ;=============================================================================== ; Routine: SubCCBE6_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 6 instructions: loads A with $00; compares A with Zp54; ; branches on not equal to SubCCBF2; loads A with $38; compares A ; with Zp53; branches on equal to SubCCBF5. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCCBE6_Loop: lda #$00 ; CPU:$CBE6 PRG:0BE6 A9 00 cmp Zp54 ; CPU:$CBE8 PRG:0BE8 C5 54 bne SubCCBF2_Loop ; CPU:$CBEA PRG:0BEA D0 06 lda #$38 ; CPU:$CBEC PRG:0BEC A9 38 cmp Zp53 ; CPU:$CBEE PRG:0BEE C5 53 beq SubCCBF5_Loop ; CPU:$CBF0 PRG:0BF0 F0 03 ;=============================================================================== ; Routine: SubCCBF2_Loop ; Global: The routine calls PollControllerAndSilenceApu. ; Local: Executes 1 instruction: calls PollControllerAndSilenceApu. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCCBF2_Loop: jmp PollControllerAndSilenceApu; CPU:$CBF2 PRG:0BF2 4C 9A CB ;=============================================================================== ; Routine: SubCCBF5_Loop ; Global: The routine calls ClearRamAndOam. ; Local: Executes 1 instruction: calls ClearRamAndOam. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the OAM shadow and the RAM fields ; it writes. ; ;=============================================================================== SubCCBF5_Loop: jmp ClearRamAndOam ; CPU:$CBF5 PRG:0BF5 4C 55 C0 ;=============================================================================== ; Routine: StrobeController1 ; Global: The routine writes the JOY1 registers. ; Local: Executes 5 instructions: loads X with $01; stores X to the JOY1 ; register; decrements X; stores X to the JOY1 register; increments ; X. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves the JOY1 registers set. ; Clobbers: ; A, X and Y, the N, Z and C flags, Zp40, JOY1. ; ;=============================================================================== StrobeController1: ldx #$01 ; CPU:$CBF8 PRG:0BF8 A2 01 stx JOY1 ; CPU:$CBFA PRG:0BFA 8E 16 40 dex ; CPU:$CBFD PRG:0BFD CA stx JOY1 ; CPU:$CBFE PRG:0BFE 8E 16 40 inx ; CPU:$CC01 PRG:0C01 E8 ;=============================================================================== ; Routine: SubCCC02_OnZero ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 1 instruction: loads Y with $08. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z and C flags, Zp40. ; ;=============================================================================== SubCCC02_OnZero: ldy #$08 ; CPU:$CC02 PRG:0C02 A0 08 ;=============================================================================== ; Routine: SubCCC04_OnNonzero ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 9 instructions: loads Y with $08; loads A from JOY1,x; ; shifts a right; rotates Zp40,x left; decrements Y; branches on not ; equal to SubCCC04; and 3 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. ; Clobbers: ; A, X and Y, the N, Z and C flags, Zp40. ; ;=============================================================================== SubCCC04_OnNonzero: lda JOY1,x ; CPU:$CC04 PRG:0C04 BD 16 40 lsr a ; CPU:$CC07 PRG:0C07 4A rol Zp40,x ; CPU:$CC08 PRG:0C08 36 40 dey ; CPU:$CC0A PRG:0C0A 88 bne SubCCC04_OnNonzero ; CPU:$CC0B PRG:0C0B D0 F7 dex ; CPU:$CC0D PRG:0C0D CA beq SubCCC02_OnZero ; CPU:$CC0E PRG:0C0E F0 F2 rts ; CPU:$CC10 PRG:0C10 60 ;=============================================================================== ; Routine: ReadController1Bit ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 4 instructions: loads A from JOY1,x; shifts a right; ; branches on carry clear to SubCCC18; returns with RTS. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. ; Clobbers: ; A, the N, Z and C flags, the OAM shadow and the RAM fields it writes. ; ;=============================================================================== ReadController1Bit: lda JOY1,x ; CPU:$CC11 PRG:0C11 BD 16 40 lsr a ; CPU:$CC14 PRG:0C14 4A bcc SubCCC18_Loop ; CPU:$CC15 PRG:0C15 90 01 rts ; CPU:$CC17 PRG:0C17 60 ;=============================================================================== ; Routine: SubCCC18_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 20 instructions: loads A with $03; stores A to $0202,y; ; stores A to $0206,y; stores A to $020A,y; stores A to $020E,y; ; stores A to $0212,y; and 14 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, the N and Z flags, the OAM shadow and the RAM fields it writes. ; ;=============================================================================== SubCCC18_Loop: lda #$03 ; CPU:$CC18 PRG:0C18 A9 03 sta $0202,y ; CPU:$CC1A PRG:0C1A 99 02 02 sta $0206,y ; CPU:$CC1D PRG:0C1D 99 06 02 sta $020A,y ; CPU:$CC20 PRG:0C20 99 0A 02 sta $020E,y ; CPU:$CC23 PRG:0C23 99 0E 02 sta $0212,y ; CPU:$CC26 PRG:0C26 99 12 02 sta $0216,y ; CPU:$CC29 PRG:0C29 99 16 02 sta $021A,y ; CPU:$CC2C PRG:0C2C 99 1A 02 sta $021E,y ; CPU:$CC2F PRG:0C2F 99 1E 02 lda #$00 ; CPU:$CC32 PRG:0C32 A9 00 sta Zp40,x ; CPU:$CC34 PRG:0C34 95 40 sta Zp56,x ; CPU:$CC36 PRG:0C36 95 56 sta Zp5B,x ; CPU:$CC38 PRG:0C38 95 5B sta Zp60,x ; CPU:$CC3A PRG:0C3A 95 60 sta Zp65,x ; CPU:$CC3C PRG:0C3C 95 65 sta Zp4E,x ; CPU:$CC3E PRG:0C3E 95 4E txa ; CPU:$CC40 PRG:0C40 8A pha ; CPU:$CC41 PRG:0C41 48 ldx #$1F ; CPU:$CC42 PRG:0C42 A2 1F lda #$F4 ; CPU:$CC44 PRG:0C44 A9 F4 ;=============================================================================== ; Routine: SubCCC46_OnNonnegative ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 6 instructions: stores A to $02E0,x; decrements X; branches ; on non-negative to SubCCC46; pulls A; copies A into X; returns with ; RTS. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. ; Clobbers: ; A and X, the N and Z flags, the OAM shadow. ; ;=============================================================================== SubCCC46_OnNonnegative: sta $02E0,x ; CPU:$CC46 PRG:0C46 9D E0 02 dex ; CPU:$CC49 PRG:0C49 CA bpl SubCCC46_OnNonnegative ; CPU:$CC4A PRG:0C4A 10 FA pla ; CPU:$CC4C PRG:0C4C 68 tax ; CPU:$CC4D PRG:0C4D AA rts ; CPU:$CC4E PRG:0C4E 60 ;=============================================================================== ; Routine: StrobeController2 ; Global: The routine writes the JOY1 registers. ; Local: Executes 5 instructions: loads X with $01; stores X to the JOY1 ; register; decrements X; stores X to the JOY1 register; increments ; X. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves the JOY1 registers set. ; Clobbers: ; A, X and Y, the N, Z and C flags, the RAM fields it writes. ; ;=============================================================================== StrobeController2: ldx #$01 ; CPU:$CC4F PRG:0C4F A2 01 stx JOY1 ; CPU:$CC51 PRG:0C51 8E 16 40 dex ; CPU:$CC54 PRG:0C54 CA stx JOY1 ; CPU:$CC55 PRG:0C55 8E 16 40 inx ; CPU:$CC58 PRG:0C58 E8 ;=============================================================================== ; Routine: SubCCC59_OnZero ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 1 instruction: loads Y with $08. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z and C flags, the RAM fields it writes. ; ;=============================================================================== SubCCC59_OnZero: ldy #$08 ; CPU:$CC59 PRG:0C59 A0 08 ;=============================================================================== ; Routine: SubCCC5B_OnNonzero ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 10 instructions: loads Y with $08; loads A from JOY1,x; ANDs ; A with $03; compares A with $01; rotates Zp40,x left; decrements Y; ; and 4 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z and C flags, the RAM fields it writes. ; ;=============================================================================== SubCCC5B_OnNonzero: lda JOY1,x ; CPU:$CC5B PRG:0C5B BD 16 40 and #$03 ; CPU:$CC5E PRG:0C5E 29 03 cmp #$01 ; CPU:$CC60 PRG:0C60 C9 01 rol Zp40,x ; CPU:$CC62 PRG:0C62 36 40 dey ; CPU:$CC64 PRG:0C64 88 bne SubCCC5B_OnNonzero ; CPU:$CC65 PRG:0C65 D0 F4 dex ; CPU:$CC67 PRG:0C67 CA beq SubCCC59_OnZero ; CPU:$CC68 PRG:0C68 F0 EF ldx #$01 ; CPU:$CC6A PRG:0C6A A2 01 ;=============================================================================== ; Routine: SubCCC6C_OnZero ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 1 instruction: loads Y with $08. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z and C flags, Zp42, Zp45, Zp47, Zp49, Zp4B, Zp4D. ; ;=============================================================================== SubCCC6C_OnZero: ldy #$08 ; CPU:$CC6C PRG:0C6C A0 08 ;=============================================================================== ; Routine: SubCCC6E_OnNonzero ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 11 instructions: loads Y with $08; loads A from JOY1,x; ; shifts a right; rotates Zp47,x left; shifts a right; rotates Zp45,x ; left; and 5 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z and C flags, Zp42, Zp45, Zp47, Zp49, Zp4B, Zp4D. ; ;=============================================================================== SubCCC6E_OnNonzero: lda JOY1,x ; CPU:$CC6E PRG:0C6E BD 16 40 lsr a ; CPU:$CC71 PRG:0C71 4A rol Zp47,x ; CPU:$CC72 PRG:0C72 36 47 lsr a ; CPU:$CC74 PRG:0C74 4A rol Zp45,x ; CPU:$CC75 PRG:0C75 36 45 dey ; CPU:$CC77 PRG:0C77 88 bne SubCCC6E_OnNonzero ; CPU:$CC78 PRG:0C78 D0 F4 dex ; CPU:$CC7A PRG:0C7A CA beq SubCCC6C_OnZero ; CPU:$CC7B PRG:0C7B F0 EF ldx #$01 ; CPU:$CC7D PRG:0C7D A2 01 ;=============================================================================== ; Routine: SubCCC7F_OnZero ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 1 instruction: loads Y with $08. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z and C flags, Zp42, Zp49, Zp4B, Zp4D. ; ;=============================================================================== SubCCC7F_OnZero: ldy #$08 ; CPU:$CC7F PRG:0C7F A0 08 ;=============================================================================== ; Routine: SubCCC81_OnNonzero ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 18 instructions: loads Y with $08; loads A from JOY1,x; ; shifts a right; rotates Zp4B,x left; shifts a right; rotates Zp49,x ; left; and 12 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A, X and Y, the N, Z and C flags, Zp42, Zp49, Zp4B, Zp4D. ; ;=============================================================================== SubCCC81_OnNonzero: lda JOY1,x ; CPU:$CC81 PRG:0C81 BD 16 40 lsr a ; CPU:$CC84 PRG:0C84 4A rol Zp4B,x ; CPU:$CC85 PRG:0C85 36 4B lsr a ; CPU:$CC87 PRG:0C87 4A rol Zp49,x ; CPU:$CC88 PRG:0C88 36 49 dey ; CPU:$CC8A PRG:0C8A 88 bne SubCCC81_OnNonzero ; CPU:$CC8B PRG:0C8B D0 F4 dex ; CPU:$CC8D PRG:0C8D CA beq SubCCC7F_OnZero ; CPU:$CC8E PRG:0C8E F0 EF lda #$00 ; CPU:$CC90 PRG:0C90 A9 00 sta Zp4D ; CPU:$CC92 PRG:0C92 85 4D lda Zp49 ; CPU:$CC94 PRG:0C94 A5 49 cmp #$20 ; CPU:$CC96 PRG:0C96 C9 20 bne SubCCCA0_Loop ; CPU:$CC98 PRG:0C98 D0 06 lda #$80 ; CPU:$CC9A PRG:0C9A A9 80 ora Zp4D ; CPU:$CC9C PRG:0C9C 05 4D sta Zp4D ; CPU:$CC9E PRG:0C9E 85 4D ;=============================================================================== ; Routine: SubCCCA0_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 6 instructions: loads A from Zp4A; compares A with $10; ; branches on not equal to SubCCCAC; loads A with $40; ORs A with ; Zp4D; stores A to Zp4D. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A and X, the N, Z and C flags, Zp42, Zp4D. ; ;=============================================================================== SubCCCA0_Loop: lda Zp4A ; CPU:$CCA0 PRG:0CA0 A5 4A cmp #$10 ; CPU:$CCA2 PRG:0CA2 C9 10 bne SubCCCAC_Loop ; CPU:$CCA4 PRG:0CA4 D0 06 lda #$40 ; CPU:$CCA6 PRG:0CA6 A9 40 ora Zp4D ; CPU:$CCA8 PRG:0CA8 05 4D sta Zp4D ; CPU:$CCAA PRG:0CAA 85 4D ;=============================================================================== ; Routine: SubCCCAC_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 6 instructions: loads A from Zp4B; compares A with $10; ; branches on not equal to SubCCCB8; loads A with $20; ORs A with ; Zp4D; stores A to Zp4D. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A and X, the N, Z and C flags, Zp42, Zp4D. ; ;=============================================================================== SubCCCAC_Loop: lda Zp4B ; CPU:$CCAC PRG:0CAC A5 4B cmp #$10 ; CPU:$CCAE PRG:0CAE C9 10 bne SubCCCB8_Loop ; CPU:$CCB0 PRG:0CB0 D0 06 lda #$20 ; CPU:$CCB2 PRG:0CB2 A9 20 ora Zp4D ; CPU:$CCB4 PRG:0CB4 05 4D sta Zp4D ; CPU:$CCB6 PRG:0CB6 85 4D ;=============================================================================== ; Routine: SubCCCB8_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 6 instructions: loads A from Zp4C; compares A with $20; ; branches on not equal to SubCCCC4; loads A with $10; ORs A with ; Zp4D; stores A to Zp4D. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A and X, the N, Z and C flags, Zp42, Zp4D. ; ;=============================================================================== SubCCCB8_Loop: lda Zp4C ; CPU:$CCB8 PRG:0CB8 A5 4C cmp #$20 ; CPU:$CCBA PRG:0CBA C9 20 bne SubCCCC4_Loop ; CPU:$CCBC PRG:0CBC D0 06 lda #$10 ; CPU:$CCBE PRG:0CBE A9 10 ora Zp4D ; CPU:$CCC0 PRG:0CC0 05 4D sta Zp4D ; CPU:$CCC2 PRG:0CC2 85 4D ;=============================================================================== ; Routine: SubCCCC4_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 4 instructions: loads A from Zp4D; compares A with $C0; ; branches on not equal to SubCCCD4; loads X with $02. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A and X, the N, Z and C flags, Zp42. ; ;=============================================================================== SubCCCC4_Loop: lda Zp4D ; CPU:$CCC4 PRG:0CC4 A5 4D cmp #$C0 ; CPU:$CCC6 PRG:0CC6 C9 C0 bne SubCCCD4_Loop ; CPU:$CCC8 PRG:0CC8 D0 0A ldx #$02 ; CPU:$CCCA PRG:0CCA A2 02 ;=============================================================================== ; Routine: SubCCCCC_OnNonzero ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 5 instructions: loads A from Zp44,x; stores A to Zp42,x; ; decrements X; branches on not equal to SubCCCCC; returns with RTS. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. ; Clobbers: ; A and X, the N and Z flags, Zp42. ; ;=============================================================================== SubCCCCC_OnNonzero: lda Zp44,x ; CPU:$CCCC PRG:0CCC B5 44 sta Zp42,x ; CPU:$CCCE PRG:0CCE 95 42 dex ; CPU:$CCD0 PRG:0CD0 CA bne SubCCCCC_OnNonzero ; CPU:$CCD1 PRG:0CD1 D0 F9 rts ; CPU:$CCD3 PRG:0CD3 60 ;=============================================================================== ; Routine: SubCCCD4_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 3 instructions: compares A with $30; branches on not equal ; to SubCCCE1; loads X with $02. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A and X, the N, Z and C flags, Zp42. ; ;=============================================================================== SubCCCD4_Loop: cmp #$30 ; CPU:$CCD4 PRG:0CD4 C9 30 bne SubCCCE1_Loop ; CPU:$CCD6 PRG:0CD6 D0 09 ldx #$02 ; CPU:$CCD8 PRG:0CD8 A2 02 ;=============================================================================== ; Routine: SubCCCDA_OnNonzero ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 4 instructions: loads A from Zp46,x; stores A to Zp42,x; ; decrements X; branches on not equal to SubCCCDA. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A and X, the N and Z flags, Zp42. ; ;=============================================================================== SubCCCDA_OnNonzero: lda Zp46,x ; CPU:$CCDA PRG:0CDA B5 46 sta Zp42,x ; CPU:$CCDC PRG:0CDC 95 42 dex ; CPU:$CCDE PRG:0CDE CA bne SubCCCDA_OnNonzero ; CPU:$CCDF PRG:0CDF D0 F9 ;=============================================================================== ; Routine: SubCCCE1_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 1 instruction: returns with RTS. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. ; Clobbers: ; nothing. ; ;=============================================================================== SubCCCE1_Loop: rts ; CPU:$CCE1 PRG:0CE1 60 ;=============================================================================== ; Routine: EnablePpuNmi ; Global: The routine writes the PPUCTRL register, reads the PPUSTATUS ; register. ; Local: Executes 8 instructions: pushes A; loads A from the PPUSTATUS ; register; loads A from ZpEF; ORs A with $80; stores A to ZpEF; ; stores A to the PPUCTRL register; and 2 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves the PPUCTRL register set. ; Clobbers: ; no register, the N, Z and V flags, ZpE0, ZpEF, PPUCTRL. ; ;=============================================================================== EnablePpuNmi: pha ; CPU:$CCE2 PRG:0CE2 48 lda PPUSTATUS ; CPU:$CCE3 PRG:0CE3 AD 02 20 lda ZpEF ; CPU:$CCE6 PRG:0CE6 A5 EF ora #$80 ; CPU:$CCE8 PRG:0CE8 09 80 sta ZpEF ; CPU:$CCEA PRG:0CEA 85 EF sta PPUCTRL ; CPU:$CCEC PRG:0CEC 8D 00 20 sta ZpE0 ; CPU:$CCEF PRG:0CEF 85 E0 pla ; CPU:$CCF1 PRG:0CF1 68 ;=============================================================================== ; Routine: SubCCCF2_OnNegative ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 3 instructions: tests the bits of ZpE0; branches on negative ; to SubCCCF2; returns with RTS. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. ; Clobbers: ; no register, the N, Z and V flags. ; ;=============================================================================== SubCCCF2_OnNegative: bit ZpE0 ; CPU:$CCF2 PRG:0CF2 24 E0 bmi SubCCCF2_OnNegative ; CPU:$CCF4 PRG:0CF4 30 FC rts ; CPU:$CCF6 PRG:0CF6 60 ;=============================================================================== ; Routine: NmiHandler ; Global: The routine calls PpuCtrlSetup, OamDmaSetup and VramBurstWrite, reads $0300. ; Local: Executes 10 instructions: pushes A; copies X into A; pushes A; copies ; Y into A; pushes A; calls PpuCtrlSetup; and 4 more instructions. ; Parameters: Reads $0300 from the zero page and RAM; the values it acts on ; are those fields' contents. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; no register, the N, Z and C flags, the RAM fields it writes. ; ;=============================================================================== NmiHandler: pha ; CPU:$CCF7 PRG:0CF7 48 txa ; CPU:$CCF8 PRG:0CF8 8A pha ; CPU:$CCF9 PRG:0CF9 48 tya ; CPU:$CCFA PRG:0CFA 98 pha ; CPU:$CCFB PRG:0CFB 48 jsr PpuCtrlSetup ; CPU:$CCFC PRG:0CFC 20 17 CD jsr OamDmaSetup ; CPU:$CCFF PRG:0CFF 20 24 CD lda $0300 ; CPU:$CD02 PRG:0D02 AD 00 03 beq SubCCD0A_Loop ; CPU:$CD05 PRG:0D05 F0 03 jsr VramBurstWrite ; CPU:$CD07 PRG:0D07 20 4F CE ;=============================================================================== ; Routine: SubCCD0A_Loop ; Global: Interrupt handler - the CPU enters it from the vector table; it ; calls PpuScrollLatch. ; Local: Executes 9 instructions: calls PpuScrollLatch; loads A with $00; stores A ; to ZpE0; pulls A; copies A into Y; pulls A; and 3 more ; instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns from the interrupt with RTI. ; Clobbers: ; A, X and Y, the N and Z flags, ZpE0, PPUCTRL, PPUSCROLL. ; ;=============================================================================== SubCCD0A_Loop: jsr PpuScrollLatch ; CPU:$CD0A PRG:0D0A 20 3C CE lda #$00 ; CPU:$CD0D PRG:0D0D A9 00 sta ZpE0 ; CPU:$CD0F PRG:0D0F 85 E0 pla ; CPU:$CD11 PRG:0D11 68 tay ; CPU:$CD12 PRG:0D12 A8 pla ; CPU:$CD13 PRG:0D13 68 tax ; CPU:$CD14 PRG:0D14 AA pla ; CPU:$CD15 PRG:0D15 68 rti ; CPU:$CD16 PRG:0D16 40 ;=============================================================================== ; Routine: PpuCtrlSetup ; Global: The routine writes the PPUCTRL register, reads the PPUSTATUS ; register. ; Local: Executes 6 instructions: loads A from the PPUSTATUS register; loads A ; from ZpEF; ANDs A with $7F; stores A to ZpEF; stores A to the ; PPUCTRL register; returns with RTS. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. Leaves the PPUCTRL register set. ; Clobbers: ; A, the N and Z flags, ZpEF, PPUCTRL. ; ;=============================================================================== PpuCtrlSetup: lda PPUSTATUS ; CPU:$CD17 PRG:0D17 AD 02 20 lda ZpEF ; CPU:$CD1A PRG:0D1A A5 EF and #$7F ; CPU:$CD1C PRG:0D1C 29 7F sta ZpEF ; CPU:$CD1E PRG:0D1E 85 EF sta PPUCTRL ; CPU:$CD20 PRG:0D20 8D 00 20 rts ; CPU:$CD23 PRG:0D23 60 ;=============================================================================== ; Routine: OamDmaSetup ; Global: The routine writes the OAMADDR and OAMDMA registers. ; Local: Executes 5 instructions: loads A with $00; stores A to the OAMADDR ; register; loads A with $02; stores A to the OAMDMA register; ; returns with RTS. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. Leaves the OAMADDR and OAMDMA registers set. ; Clobbers: ; A, the N and Z flags, OAMADDR, OAMDMA. ; ;=============================================================================== OamDmaSetup: lda #$00 ; CPU:$CD24 PRG:0D24 A9 00 sta OAMADDR ; CPU:$CD26 PRG:0D26 8D 03 20 lda #$02 ; CPU:$CD29 PRG:0D29 A9 02 sta OAMDMA ; CPU:$CD2B PRG:0D2B 8D 14 40 rts ; CPU:$CD2E PRG:0D2E 60 ;=============================================================================== ; Routine: PpuMaskSetup ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 2 instructions: loads A from ZpEE; ANDs A with $E7. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, the N and Z flags, ZpEE, PPUMASK. ; ;=============================================================================== PpuMaskSetup: lda ZpEE ; CPU:$CD2F PRG:0D2F A5 EE and #$E7 ; CPU:$CD31 PRG:0D31 29 E7 ;=============================================================================== ; Routine: SubCCD33_OnNonzero ; Global: The routine writes the PPUMASK register. ; Local: Executes 3 instructions: stores A to ZpEE; stores A to the PPUMASK ; register; returns with RTS. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. Leaves the PPUMASK register set. ; Clobbers: ; no register, ZpEE, PPUMASK. ; ;=============================================================================== SubCCD33_OnNonzero: sta ZpEE ; CPU:$CD33 PRG:0D33 85 EE sta PPUMASK ; CPU:$CD35 PRG:0D35 8D 01 20 rts ; CPU:$CD38 PRG:0D38 60 ;=============================================================================== ; Routine: SetPpuMaskBits ; Global: The routine writes the PPUMASK register. ; Local: Executes 6 instructions: stores A to ZpEE; stores A to the PPUMASK ; register; returns with RTS; loads A from ZpEE; ORs A with $18; ; branches on not equal to SubCCD33. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. Leaves the PPUMASK register set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SetPpuMaskBits: lda ZpEE ; CPU:$CD39 PRG:0D39 A5 EE ora #$18 ; CPU:$CD3B PRG:0D3B 09 18 bne SubCCD33_OnNonzero ; CPU:$CD3D PRG:0D3D D0 F4 ;=============================================================================== ; Routine: VramPtrWrite ; Global: The routine calls RetAddrUpdate and SubCCD99. ; Local: Executes 2 instructions: calls RetAddrUpdate; calls SubCCD99. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== VramPtrWrite: jsr RetAddrUpdate ; CPU:$CD3F PRG:0D3F 20 C8 CD jmp SubCCD99_OnCarrySet ; CPU:$CD42 PRG:0D42 4C 99 CD ;=============================================================================== ; Routine: SubCCD45_OnNonzero ; Global: The routine writes the PPUADDR registers. ; Local: Executes 13 instructions: pushes A; stores A to the PPUADDR register; ; increments Y; loads A from ((Zp00),y); stores A to the PPUADDR ; register; increments Y; and 7 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the PPUADDR registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCCD45_OnNonzero: pha ; CPU:$CD45 PRG:0D45 48 sta PPUADDR ; CPU:$CD46 PRG:0D46 8D 06 20 iny ; CPU:$CD49 PRG:0D49 C8 lda (Zp00),y ; CPU:$CD4A PRG:0D4A B1 00 sta PPUADDR ; CPU:$CD4C PRG:0D4C 8D 06 20 iny ; CPU:$CD4F PRG:0D4F C8 lda (Zp00),y ; CPU:$CD50 PRG:0D50 B1 00 asl a ; CPU:$CD52 PRG:0D52 0A pha ; CPU:$CD53 PRG:0D53 48 lda ZpEF ; CPU:$CD54 PRG:0D54 A5 EF ora #$04 ; CPU:$CD56 PRG:0D56 09 04 bcs SubCCD5C_Loop ; CPU:$CD58 PRG:0D58 B0 02 and #$FB ; CPU:$CD5A PRG:0D5A 29 FB ;=============================================================================== ; Routine: SubCCD5C_Loop ; Global: The routine writes the PPUADDR and PPUCTRL registers. ; Local: Executes 21 instructions: pushes A; stores A to the PPUADDR register; ; increments Y; loads A from ((Zp00),y); stores A to the PPUADDR ; register; increments Y; and 15 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the PPUADDR and PPUCTRL ; registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCCD5C_Loop: sta PPUCTRL ; CPU:$CD5C PRG:0D5C 8D 00 20 sta ZpEF ; CPU:$CD5F PRG:0D5F 85 EF pla ; CPU:$CD61 PRG:0D61 68 asl a ; CPU:$CD62 PRG:0D62 0A php ; CPU:$CD63 PRG:0D63 08 bcc SubCCD69_Loop ; CPU:$CD64 PRG:0D64 90 03 ora #$02 ; CPU:$CD66 PRG:0D66 09 02 iny ; CPU:$CD68 PRG:0D68 C8 ;=============================================================================== ; Routine: SubCCD69_Loop ; Global: The routine writes the PPUADDR and PPUCTRL registers. ; Local: Executes 25 instructions: pushes A; stores A to the PPUADDR register; ; increments Y; loads A from ((Zp00),y); stores A to the PPUADDR ; register; increments Y; and 19 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the PPUADDR and PPUCTRL ; registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCCD69_Loop: plp ; CPU:$CD69 PRG:0D69 28 clc ; CPU:$CD6A PRG:0D6A 18 bne SubCCD6E_Loop ; CPU:$CD6B PRG:0D6B D0 01 sec ; CPU:$CD6D PRG:0D6D 38 ;=============================================================================== ; Routine: SubCCD6E_Loop ; Global: The routine writes the PPUADDR and PPUCTRL registers. ; Local: Executes 28 instructions: pushes A; stores A to the PPUADDR register; ; increments Y; loads A from ((Zp00),y); stores A to the PPUADDR ; register; increments Y; and 22 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the PPUADDR and PPUCTRL ; registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCCD6E_Loop: ror a ; CPU:$CD6E PRG:0D6E 6A lsr a ; CPU:$CD6F PRG:0D6F 4A tax ; CPU:$CD70 PRG:0D70 AA ;=============================================================================== ; Routine: SubCCD71_OnNonzero ; Global: The routine writes the PPUADDR and PPUCTRL registers. ; Local: Executes 30 instructions: pushes A; stores A to the PPUADDR register; ; increments Y; loads A from ((Zp00),y); stores A to the PPUADDR ; register; increments Y; and 24 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the PPUADDR and PPUCTRL ; registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCCD71_OnNonzero: bcs SubCCD74_Loop ; CPU:$CD71 PRG:0D71 B0 01 iny ; CPU:$CD73 PRG:0D73 C8 ;=============================================================================== ; Routine: SubCCD74_Loop ; Global: The routine writes the PPUADDR, PPUCTRL and PPUDATA registers. ; Local: Executes 41 instructions: pushes A; stores A to the PPUADDR register; ; increments Y; loads A from ((Zp00),y); stores A to the PPUADDR ; register; increments Y; and 35 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the PPUADDR and PPUCTRL ; registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCCD74_Loop: lda (Zp00),y ; CPU:$CD74 PRG:0D74 B1 00 sta PPUDATA ; CPU:$CD76 PRG:0D76 8D 07 20 dex ; CPU:$CD79 PRG:0D79 CA bne SubCCD71_OnNonzero ; CPU:$CD7A PRG:0D7A D0 F5 pla ; CPU:$CD7C PRG:0D7C 68 cmp #$3F ; CPU:$CD7D PRG:0D7D C9 3F bne SubCCD8D_OnNonzero ; CPU:$CD7F PRG:0D7F D0 0C sta PPUADDR ; CPU:$CD81 PRG:0D81 8D 06 20 stx PPUADDR ; CPU:$CD84 PRG:0D84 8E 06 20 stx PPUADDR ; CPU:$CD87 PRG:0D87 8E 06 20 stx PPUADDR ; CPU:$CD8A PRG:0D8A 8E 06 20 ;=============================================================================== ; Routine: SubCCD8D_OnNonzero ; Global: The routine writes the PPUADDR, PPUCTRL and PPUDATA registers. ; Local: Executes 48 instructions: pushes A; stores A to the PPUADDR register; ; increments Y; loads A from ((Zp00),y); stores A to the PPUADDR ; register; increments Y; and 42 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the PPUADDR and PPUCTRL ; registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCCD8D_OnNonzero: sec ; CPU:$CD8D PRG:0D8D 38 tya ; CPU:$CD8E PRG:0D8E 98 adc Zp00 ; CPU:$CD8F PRG:0D8F 65 00 sta Zp00 ; CPU:$CD91 PRG:0D91 85 00 lda #$00 ; CPU:$CD93 PRG:0D93 A9 00 adc Zp01 ; CPU:$CD95 PRG:0D95 65 01 sta Zp01 ; CPU:$CD97 PRG:0D97 85 01 ;=============================================================================== ; Routine: SubCCD99_OnCarrySet ; Global: The routine writes the PPUADDR, PPUCTRL and PPUDATA registers, reads ; the PPUSTATUS register. ; Local: Executes 53 instructions: pushes A; stores A to the PPUADDR register; ; increments Y; loads A from ((Zp00),y); stores A to the PPUADDR ; register; increments Y; and 47 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. Leaves the PPUADDR and PPUCTRL registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCCD99_OnCarrySet: ldx PPUSTATUS ; CPU:$CD99 PRG:0D99 AE 02 20 ldy #$00 ; CPU:$CD9C PRG:0D9C A0 00 lda (Zp00),y ; CPU:$CD9E PRG:0D9E B1 00 bpl SubCCDA3_Loop ; CPU:$CDA0 PRG:0DA0 10 01 rts ; CPU:$CDA2 PRG:0DA2 60 ;=============================================================================== ; Routine: SubCCDA3_Loop ; Global: The routine writes the PPUADDR, PPUCTRL and PPUDATA registers, reads ; the PPUSTATUS register. ; Local: Executes 61 instructions: pushes A; stores A to the PPUADDR register; ; increments Y; loads A from ((Zp00),y); stores A to the PPUADDR ; register; increments Y; and 55 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. Leaves the PPUADDR and PPUCTRL registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCCDA3_Loop: cmp #$60 ; CPU:$CDA3 PRG:0DA3 C9 60 bne SubCCDB1_Loop ; CPU:$CDA5 PRG:0DA5 D0 0A pla ; CPU:$CDA7 PRG:0DA7 68 sta Zp01 ; CPU:$CDA8 PRG:0DA8 85 01 pla ; CPU:$CDAA PRG:0DAA 68 sta Zp00 ; CPU:$CDAB PRG:0DAB 85 00 ldy #$02 ; CPU:$CDAD PRG:0DAD A0 02 bne SubCCD8D_OnNonzero ; CPU:$CDAF PRG:0DAF D0 DC ;=============================================================================== ; Routine: SubCCDB1_Loop ; Global: The routine writes the PPUADDR, PPUCTRL and PPUDATA registers, reads ; the PPUSTATUS register. ; Local: Executes 75 instructions: pushes A; stores A to the PPUADDR register; ; increments Y; loads A from ((Zp00),y); stores A to the PPUADDR ; register; increments Y; and 69 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. Leaves the PPUADDR and PPUCTRL registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== SubCCDB1_Loop: cmp #$4C ; CPU:$CDB1 PRG:0DB1 C9 4C bne SubCCD45_OnNonzero ; CPU:$CDB3 PRG:0DB3 D0 90 lda Zp00 ; CPU:$CDB5 PRG:0DB5 A5 00 pha ; CPU:$CDB7 PRG:0DB7 48 lda Zp01 ; CPU:$CDB8 PRG:0DB8 A5 01 pha ; CPU:$CDBA PRG:0DBA 48 iny ; CPU:$CDBB PRG:0DBB C8 lda (Zp00),y ; CPU:$CDBC PRG:0DBC B1 00 tax ; CPU:$CDBE PRG:0DBE AA iny ; CPU:$CDBF PRG:0DBF C8 lda (Zp00),y ; CPU:$CDC0 PRG:0DC0 B1 00 sta Zp01 ; CPU:$CDC2 PRG:0DC2 85 01 stx Zp00 ; CPU:$CDC4 PRG:0DC4 86 00 bcs SubCCD99_OnCarrySet ; CPU:$CDC6 PRG:0DC6 B0 D1 ;=============================================================================== ; Routine: RetAddrUpdate ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 19 instructions: copies the stack pointer into X; loads A ; from $0103,x; stores A to Zp05; loads A from $0104,x; stores A to ; Zp06; loads Y with $01; and 13 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. ; Clobbers: ; A and Y, the N, Z, C and V flags, Zp00, Zp01, Zp05, Zp06, $0103, $0104. ; ;=============================================================================== RetAddrUpdate: tsx ; CPU:$CDC8 PRG:0DC8 BA lda $0103,x ; CPU:$CDC9 PRG:0DC9 BD 03 01 sta Zp05 ; CPU:$CDCC PRG:0DCC 85 05 lda $0104,x ; CPU:$CDCE PRG:0DCE BD 04 01 sta Zp06 ; CPU:$CDD1 PRG:0DD1 85 06 ldy #$01 ; CPU:$CDD3 PRG:0DD3 A0 01 lda (Zp05),y ; CPU:$CDD5 PRG:0DD5 B1 05 sta Zp00 ; CPU:$CDD7 PRG:0DD7 85 00 iny ; CPU:$CDD9 PRG:0DD9 C8 lda (Zp05),y ; CPU:$CDDA PRG:0DDA B1 05 sta Zp01 ; CPU:$CDDC PRG:0DDC 85 01 clc ; CPU:$CDDE PRG:0DDE 18 lda #$02 ; CPU:$CDDF PRG:0DDF A9 02 adc Zp05 ; CPU:$CDE1 PRG:0DE1 65 05 sta $0103,x ; CPU:$CDE3 PRG:0DE3 9D 03 01 lda #$00 ; CPU:$CDE6 PRG:0DE6 A9 00 adc Zp06 ; CPU:$CDE8 PRG:0DE8 65 06 sta $0104,x ; CPU:$CDEA PRG:0DEA 9D 04 01 rts ; CPU:$CDED PRG:0DED 60 ;=============================================================================== ; Routine: VramWrite ; Global: The routine writes the PPUCTRL and PPUADDR registers, reads the ; PPUSTATUS register. ; Local: Executes 16 instructions: stores A to Zp00; stores X to Zp01; stores ; Y to Zp02; loads A from the PPUSTATUS register; loads A from ZpEF; ; ANDs A with $FB; and 10 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the PPUCTRL and PPUADDR ; registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== VramWrite: sta Zp00 ; CPU:$CDEE PRG:0DEE 85 00 stx Zp01 ; CPU:$CDF0 PRG:0DF0 86 01 sty Zp02 ; CPU:$CDF2 PRG:0DF2 84 02 lda PPUSTATUS ; CPU:$CDF4 PRG:0DF4 AD 02 20 lda ZpEF ; CPU:$CDF7 PRG:0DF7 A5 EF and #$FB ; CPU:$CDF9 PRG:0DF9 29 FB sta PPUCTRL ; CPU:$CDFB PRG:0DFB 8D 00 20 sta ZpEF ; CPU:$CDFE PRG:0DFE 85 EF lda Zp00 ; CPU:$CE00 PRG:0E00 A5 00 sta PPUADDR ; CPU:$CE02 PRG:0E02 8D 06 20 ldy #$00 ; CPU:$CE05 PRG:0E05 A0 00 sty PPUADDR ; CPU:$CE07 PRG:0E07 8C 06 20 ldx #$04 ; CPU:$CE0A PRG:0E0A A2 04 cmp #$20 ; CPU:$CE0C PRG:0E0C C9 20 bcs SubCCE12_Loop ; CPU:$CE0E PRG:0E0E B0 02 ldx Zp02 ; CPU:$CE10 PRG:0E10 A6 02 ;=============================================================================== ; Routine: SubCCE12_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 2 instructions: loads Y with $00; loads A from Zp01. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, PPUADDR, PPUDATA. ; ;=============================================================================== SubCCE12_Loop: ldy #$00 ; CPU:$CE12 PRG:0E12 A0 00 lda Zp01 ; CPU:$CE14 PRG:0E14 A5 01 ;=============================================================================== ; Routine: SubCCE16_OnNonzero ; Global: The routine writes the PPUDATA and PPUADDR registers. ; Local: Executes 14 instructions: stores A to the PPUDATA register; ; decrements Y; branches on not equal to SubCCE16; decrements X; ; branches on not equal to SubCCE16; loads Y from Zp02; and 8 more ; instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the PPUDATA and PPUADDR ; registers set. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, PPUADDR, PPUDATA. ; ;=============================================================================== SubCCE16_OnNonzero: sta PPUDATA ; CPU:$CE16 PRG:0E16 8D 07 20 dey ; CPU:$CE19 PRG:0E19 88 bne SubCCE16_OnNonzero ; CPU:$CE1A PRG:0E1A D0 FA dex ; CPU:$CE1C PRG:0E1C CA bne SubCCE16_OnNonzero ; CPU:$CE1D PRG:0E1D D0 F7 ldy Zp02 ; CPU:$CE1F PRG:0E1F A4 02 lda Zp00 ; CPU:$CE21 PRG:0E21 A5 00 cmp #$20 ; CPU:$CE23 PRG:0E23 C9 20 bcc SubCCE39_Loop ; CPU:$CE25 PRG:0E25 90 12 adc #$02 ; CPU:$CE27 PRG:0E27 69 02 sta PPUADDR ; CPU:$CE29 PRG:0E29 8D 06 20 lda #$C0 ; CPU:$CE2C PRG:0E2C A9 C0 sta PPUADDR ; CPU:$CE2E PRG:0E2E 8D 06 20 ldx #$40 ; CPU:$CE31 PRG:0E31 A2 40 ;=============================================================================== ; Routine: SubCCE33_OnNonzero ; Global: The routine writes the PPUDATA register. ; Local: Executes 3 instructions: stores Y to the PPUDATA register; decrements ; X; branches on not equal to SubCCE33. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the PPUDATA register set. ; Clobbers: ; X, the N and Z flags, PPUDATA. ; ;=============================================================================== SubCCE33_OnNonzero: sty PPUDATA ; CPU:$CE33 PRG:0E33 8C 07 20 dex ; CPU:$CE36 PRG:0E36 CA bne SubCCE33_OnNonzero ; CPU:$CE37 PRG:0E37 D0 FA ;=============================================================================== ; Routine: SubCCE39_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 2 instructions: loads X from Zp01; returns with RTS. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. ; Clobbers: ; X, the N and Z flags. ; ;=============================================================================== SubCCE39_Loop: ldx Zp01 ; CPU:$CE39 PRG:0E39 A6 01 rts ; CPU:$CE3B PRG:0E3B 60 ;=============================================================================== ; Routine: PpuScrollLatch ; Global: The routine writes the PPUSCROLL and PPUCTRL registers, reads the ; PPUSTATUS register. ; Local: Executes 8 instructions: loads A from the PPUSTATUS register; loads A ; from ZpED; stores A to the PPUSCROLL register; loads A from ZpEC; ; stores A to the PPUSCROLL register; loads A from ZpEF; and 2 more ; instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. Leaves the PPUSCROLL and PPUCTRL registers set. ; Clobbers: ; A, the N and Z flags, PPUCTRL, PPUSCROLL. ; ;=============================================================================== PpuScrollLatch: lda PPUSTATUS ; CPU:$CE3C PRG:0E3C AD 02 20 lda ZpED ; CPU:$CE3F PRG:0E3F A5 ED sta PPUSCROLL ; CPU:$CE41 PRG:0E41 8D 05 20 lda ZpEC ; CPU:$CE44 PRG:0E44 A5 EC sta PPUSCROLL ; CPU:$CE46 PRG:0E46 8D 05 20 lda ZpEF ; CPU:$CE49 PRG:0E49 A5 EF sta PPUCTRL ; CPU:$CE4B PRG:0E4B 8D 00 20 rts ; CPU:$CE4E PRG:0E4E 60 ;=============================================================================== ; Routine: VramBurstWrite ; Global: The routine writes the PPUCTRL register, reads the PPUSTATUS ; register. ; Local: Executes 7 instructions: loads A from ZpEF; ANDs A with $FB; stores A ; to the PPUCTRL register; stores A to ZpEF; loads X from the ; PPUSTATUS register; loads Y with $00; and 1 more instruction. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the PPUCTRL register set. ; Clobbers: ; A, X and Y, the N, Z and C flags, ZpEF, $0301, $0302, PPUCTRL, PPUADDR, ; PPUDATA. ; ;=============================================================================== VramBurstWrite: lda ZpEF ; CPU:$CE4F PRG:0E4F A5 EF and #$FB ; CPU:$CE51 PRG:0E51 29 FB sta PPUCTRL ; CPU:$CE53 PRG:0E53 8D 00 20 sta ZpEF ; CPU:$CE56 PRG:0E56 85 EF ldx PPUSTATUS ; CPU:$CE58 PRG:0E58 AE 02 20 ldy #$00 ; CPU:$CE5B PRG:0E5B A0 00 beq SubCCE8A_Loop ; CPU:$CE5D PRG:0E5D F0 2B ;=============================================================================== ; Routine: SubCCE5F_OnNonnegative ; Global: The routine writes the PPUADDR registers. ; Local: Executes 7 instructions: pushes A; stores A to the PPUADDR register; ; increments Y; loads A from $0302,y; stores A to the PPUADDR ; register; increments Y; and 1 more instruction. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. Leaves the PPUADDR registers set. ; Clobbers: ; A, X and Y, the N, Z and C flags, $0301, $0302, PPUADDR, PPUDATA. ; ;=============================================================================== SubCCE5F_OnNonnegative: pha ; CPU:$CE5F PRG:0E5F 48 sta PPUADDR ; CPU:$CE60 PRG:0E60 8D 06 20 iny ; CPU:$CE63 PRG:0E63 C8 lda $0302,y ; CPU:$CE64 PRG:0E64 B9 02 03 sta PPUADDR ; CPU:$CE67 PRG:0E67 8D 06 20 iny ; CPU:$CE6A PRG:0E6A C8 ldx $0302,y ; CPU:$CE6B PRG:0E6B BE 02 03 ;=============================================================================== ; Routine: SubCCE6E_OnNonzero ; Global: The routine writes the PPUADDR and PPUDATA registers. ; Local: Executes 19 instructions: pushes A; stores A to the PPUADDR register; ; increments Y; loads A from $0302,y; stores A to the PPUADDR ; register; increments Y; and 13 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the PPUADDR and PPUDATA ; registers set. ; Clobbers: ; A, X and Y, the N, Z and C flags, $0301, $0302, PPUADDR, PPUDATA. ; ;=============================================================================== SubCCE6E_OnNonzero: iny ; CPU:$CE6E PRG:0E6E C8 lda $0302,y ; CPU:$CE6F PRG:0E6F B9 02 03 sta PPUDATA ; CPU:$CE72 PRG:0E72 8D 07 20 dex ; CPU:$CE75 PRG:0E75 CA bne SubCCE6E_OnNonzero ; CPU:$CE76 PRG:0E76 D0 F6 pla ; CPU:$CE78 PRG:0E78 68 cmp #$3F ; CPU:$CE79 PRG:0E79 C9 3F bne SubCCE89_Loop ; CPU:$CE7B PRG:0E7B D0 0C sta PPUADDR ; CPU:$CE7D PRG:0E7D 8D 06 20 stx PPUADDR ; CPU:$CE80 PRG:0E80 8E 06 20 stx PPUADDR ; CPU:$CE83 PRG:0E83 8E 06 20 stx PPUADDR ; CPU:$CE86 PRG:0E86 8E 06 20 ;=============================================================================== ; Routine: SubCCE89_Loop ; Global: The routine writes the PPUADDR and PPUDATA registers. ; Local: Executes 20 instructions: pushes A; stores A to the PPUADDR register; ; increments Y; loads A from $0302,y; stores A to the PPUADDR ; register; increments Y; and 14 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. Leaves the PPUADDR and PPUDATA ; registers set. ; Clobbers: ; A, X and Y, the N, Z and C flags, $0301, $0302, PPUADDR, PPUDATA. ; ;=============================================================================== SubCCE89_Loop: iny ; CPU:$CE89 PRG:0E89 C8 ;=============================================================================== ; Routine: SubCCE8A_Loop ; Global: The routine writes $0302 and $0301, writes the PPUADDR and PPUDATA ; registers. ; Local: Executes 26 instructions: pushes A; stores A to the PPUADDR register; ; increments Y; loads A from $0302,y; stores A to the PPUADDR ; register; increments Y; and 20 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. Leaves $0302 and $0301 changed. ; Clobbers: ; A, X and Y, the N, Z and C flags, $0301, $0302, PPUADDR, PPUDATA. ; ;=============================================================================== SubCCE8A_Loop: lda $0302,y ; CPU:$CE8A PRG:0E8A B9 02 03 bpl SubCCE5F_OnNonnegative ; CPU:$CE8D PRG:0E8D 10 D0 sta $0302 ; CPU:$CE8F PRG:0E8F 8D 02 03 lda #$00 ; CPU:$CE92 PRG:0E92 A9 00 sta $0301 ; CPU:$CE94 PRG:0E94 8D 01 03 rts ; CPU:$CE97 PRG:0E97 60 ;=============================================================================== ; Routine: PlayVramStream ; Global: The routine calls RetAddrUpdate, reads $0301. ; Local: Executes 14 instructions: stores A to Zp03; stores X to Zp02; calls ; RetAddrUpdate; loads Y with $00; loads A from ((Zp00),y); ANDs A with ; $0F; and 8 more instructions. ; Parameters: Reads $0301 from the zero page and RAM; the values it acts on ; are those fields' contents. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, the RAM fields it writes. ; ;=============================================================================== PlayVramStream: sta Zp03 ; CPU:$CE98 PRG:0E98 85 03 stx Zp02 ; CPU:$CE9A PRG:0E9A 86 02 jsr RetAddrUpdate ; CPU:$CE9C PRG:0E9C 20 C8 CD ldy #$00 ; CPU:$CE9F PRG:0E9F A0 00 lda (Zp00),y ; CPU:$CEA1 PRG:0EA1 B1 00 and #$0F ; CPU:$CEA3 PRG:0EA3 29 0F sta Zp04 ; CPU:$CEA5 PRG:0EA5 85 04 lda (Zp00),y ; CPU:$CEA7 PRG:0EA7 B1 00 lsr a ; CPU:$CEA9 PRG:0EA9 4A lsr a ; CPU:$CEAA PRG:0EAA 4A lsr a ; CPU:$CEAB PRG:0EAB 4A lsr a ; CPU:$CEAC PRG:0EAC 4A sta Zp05 ; CPU:$CEAD PRG:0EAD 85 05 ldx $0301 ; CPU:$CEAF PRG:0EAF AE 01 03 ;=============================================================================== ; Routine: SubCCEB2_OnNonzero ; Global: The routine calls EndVramStream. ; Local: Executes 9 instructions: loads A from Zp03; stores A to $0302,x; ; calls EndVramStream; loads A from Zp02; stores A to $0302,x; calls ; EndVramStream; and 3 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Falls through to the next routine in the source; it has no return ; of its own. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, Zp02, Zp03, Zp05, Zp06, $0301, ; $0302. ; ;=============================================================================== SubCCEB2_OnNonzero: lda Zp03 ; CPU:$CEB2 PRG:0EB2 A5 03 sta $0302,x ; CPU:$CEB4 PRG:0EB4 9D 02 03 jsr EndVramStream ; CPU:$CEB7 PRG:0EB7 20 F3 CE lda Zp02 ; CPU:$CEBA PRG:0EBA A5 02 sta $0302,x ; CPU:$CEBC PRG:0EBC 9D 02 03 jsr EndVramStream ; CPU:$CEBF PRG:0EBF 20 F3 CE lda Zp04 ; CPU:$CEC2 PRG:0EC2 A5 04 sta Zp06 ; CPU:$CEC4 PRG:0EC4 85 06 sta $0302,x ; CPU:$CEC6 PRG:0EC6 9D 02 03 ;=============================================================================== ; Routine: SubCCEC9_OnNonzero ; Global: The routine calls EndVramStream, writes $0301. ; Local: Executes 29 instructions: loads A from Zp03; stores A to $0302,x; ; calls EndVramStream; loads A from Zp02; stores A to $0302,x; calls ; EndVramStream; and 23 more instructions. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. Leaves $0301 changed. ; Clobbers: ; A, X and Y, the N, Z, C and V flags, Zp02, Zp03, Zp05, Zp06, $0301, ; $0302. ; ;=============================================================================== SubCCEC9_OnNonzero: jsr EndVramStream ; CPU:$CEC9 PRG:0EC9 20 F3 CE iny ; CPU:$CECC PRG:0ECC C8 lda (Zp00),y ; CPU:$CECD PRG:0ECD B1 00 sta $0302,x ; CPU:$CECF PRG:0ECF 9D 02 03 dec Zp06 ; CPU:$CED2 PRG:0ED2 C6 06 bne SubCCEC9_OnNonzero ; CPU:$CED4 PRG:0ED4 D0 F3 jsr EndVramStream ; CPU:$CED6 PRG:0ED6 20 F3 CE stx $0301 ; CPU:$CED9 PRG:0ED9 8E 01 03 clc ; CPU:$CEDC PRG:0EDC 18 lda #$20 ; CPU:$CEDD PRG:0EDD A9 20 adc Zp02 ; CPU:$CEDF PRG:0EDF 65 02 sta Zp02 ; CPU:$CEE1 PRG:0EE1 85 02 lda #$00 ; CPU:$CEE3 PRG:0EE3 A9 00 adc Zp03 ; CPU:$CEE5 PRG:0EE5 65 03 sta Zp03 ; CPU:$CEE7 PRG:0EE7 85 03 dec Zp05 ; CPU:$CEE9 PRG:0EE9 C6 05 bne SubCCEB2_OnNonzero ; CPU:$CEEB PRG:0EEB D0 C5 lda #$FF ; CPU:$CEED PRG:0EED A9 FF sta $0302,x ; CPU:$CEEF PRG:0EEF 9D 02 03 rts ; CPU:$CEF2 PRG:0EF2 60 ;=============================================================================== ; Routine: EndVramStream ; Global: The routine reads $0300 and $0301. ; Local: Executes 9 instructions: increments X; compares X with $0300; ; branches on carry clear to SubCCF05; loads X from $0301; loads A ; with $FF; stores A to $0302,x; and 3 more instructions. ; Parameters: Reads $0300 and $0301 from the zero page and RAM; the values it ; acts on are those fields' contents. ; Returns: Leaves through one of its branches rather than a return; the caller ; resumes at the branch target. ; Clobbers: ; A and X, the N, Z and C flags, $0302. ; ;=============================================================================== EndVramStream: inx ; CPU:$CEF3 PRG:0EF3 E8 cpx $0300 ; CPU:$CEF4 PRG:0EF4 EC 00 03 bcc SubCCF05_Loop ; CPU:$CEF7 PRG:0EF7 90 0C ldx $0301 ; CPU:$CEF9 PRG:0EF9 AE 01 03 lda #$FF ; CPU:$CEFC PRG:0EFC A9 FF sta $0302,x ; CPU:$CEFE PRG:0EFE 9D 02 03 pla ; CPU:$CF01 PRG:0F01 68 pla ; CPU:$CF02 PRG:0F02 68 lda #$01 ; CPU:$CF03 PRG:0F03 A9 01 ;=============================================================================== ; Routine: SubCCF05_Loop ; Global: The routine reads no RAM field, writes none and calls nothing - it ; is a straight-line sequence whose only effect is on the registers ; and the flags. ; Local: Executes 1 instruction: returns with RTS. ; Parameters: Takes its input from the registers and the immediate values in ; the code; it reads no zero-page or RAM field. ; Returns: Returns with RTS; the registers it loaded still hold the values it ; computed. ; Clobbers: ; nothing. ; ;=============================================================================== SubCCF05_Loop: rts ; CPU:$CF05 PRG:0F05 60 ; ---- data $CF06-$FFFF (12538 bytes) ---- ; referenced by `lda $D6A5,x` at $C1A2 (operand $D6A5 falls inside this region) ; referenced by `lda $D6C5,x` at $C1F4 (operand $D6C5 falls inside this region) ; referenced by `lda $D4E3,x` at $C2A7 (operand $D4E3 falls inside this region) ; referenced by `lda $D4E3,x` at $C2B0 (operand $D4E3 falls inside this region) ; referenced by `lda $D5C4,x` at $CB5D (operand $D5C4 falls inside this region) ; referenced by `lda $D5C4,x` at $CB66 (operand $D5C4 falls inside this region) MasterPaletteStream: .byte $3F, $00, $20, $0F, $16, $00, $30, $0F, $1A, $2A, $30, $0F, $1A, $00, $30, $0F ; CPU:$CF06 PRG:0F06 3F 00 20 0F 16 00 30 0F 1A 2A 30 0F 1A 00 30 0F .byte $30, $00, $30, $0F, $16, $00, $30, $0F, $1A, $2A, $30, $0F, $1A, $00, $30, $0F ; CPU:$CF16 PRG:0F16 30 00 30 0F 16 00 30 0F 1A 2A 30 0F 1A 00 30 0F .byte $30, $00, $30, $FF ; CPU:$CF26 PRG:0F26 30 00 30 FF JoypadPanelScreenOneStream: .byte $20, $A2, $1C, $60, $61, $61, $61, $61, $61, $61, $61, $61 ; CPU:$CF2A PRG:0F2A 20 A2 1C 60 61 61 61 61 61 61 61 61 .byte $61, $61, $61, $61, $61, $61, $61, $61, $61, $61, $61, $61, $61, $61, $61, $61 ; CPU:$CF36 PRG:0F36 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 .byte $61, $61, $66, $20, $C2, $1C, $64, $70, $71, $72, $73, $74, $75, $76, $77, $78 ; CPU:$CF46 PRG:0F46 61 61 66 20 C2 1C 64 70 71 72 73 74 75 76 77 78 .byte $79, $7A, $7B, $24, $7D, $7E, $7F, $A0, $A1, $A2, $A3, $A4, $A5, $A6, $A7, $A8 ; CPU:$CF56 PRG:0F56 79 7A 7B 24 7D 7E 7F A0 A1 A2 A3 A4 A5 A6 A7 A8 .byte $A9, $67, $20, $E2, $1C, $64, $80, $81, $82, $83, $84, $85, $86, $87, $88, $89 ; CPU:$CF66 PRG:0F66 A9 67 20 E2 1C 64 80 81 82 83 84 85 86 87 88 89 .byte $8A, $8B, $24, $8D, $8E, $8F, $B0, $B1, $24, $B3, $B4, $B5, $B6, $B7, $B8, $B9 ; CPU:$CF76 PRG:0F76 8A 8B 24 8D 8E 8F B0 B1 24 B3 B4 B5 B6 B7 B8 B9 .byte $67, $21, $02, $1C, $64, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99, $9A ; CPU:$CF86 PRG:0F86 67 21 02 1C 64 90 91 92 93 94 95 96 97 98 99 9A .byte $9B, $9C, $9D, $9E, $9F, $C0, $C1, $24, $C3, $C4, $C5, $C6, $C7, $C8, $C9, $67 ; CPU:$CF96 PRG:0F96 9B 9C 9D 9E 9F C0 C1 24 C3 C4 C5 C6 C7 C8 C9 67 .byte $21, $22, $1C, $62, $63, $63, $63, $63, $63, $63, $63, $63, $63, $63, $63, $63 ; CPU:$CFA6 PRG:0FA6 21 22 1C 62 63 63 63 63 63 63 63 63 63 63 63 63 .byte $63, $63, $63, $63, $63, $63, $63, $63, $63, $63, $63, $63, $63, $63, $65, $21 ; CPU:$CFB6 PRG:0FB6 63 63 63 63 63 63 63 63 63 63 63 63 63 63 65 21 .byte $C5, $18, $01, $24, $17, $18, $1B, $16, $0A, $15, $24, $0C, $18, $17, $1D, $1B ; CPU:$CFC6 PRG:0FC6 C5 18 01 24 17 18 1B 16 0A 15 24 0C 18 17 1D 1B .byte $18, $15, $15, $0E, $1B, $24, $1D, $0E, $1C, $1D, $22, $25, $18, $02, $24, $04 ; CPU:$CFD6 PRG:0FD6 18 15 15 0E 1B 24 1D 0E 1C 1D 22 25 18 02 24 04 .byte $24, $19, $15, $0A, $22, $24, $0C, $18, $17, $1D, $1B, $18, $15, $15, $0E, $1B ; CPU:$CFE6 PRG:0FE6 24 19 15 0A 22 24 0C 18 17 1D 1B 18 15 15 0E 1B .byte $24, $1D, $0E, $1C, $1D, $22, $85, $18, $03, $24, $1B, $0E, $1D, $1E, $1B, $17 ; CPU:$CFF6 PRG:0FF6 24 1D 0E 1C 1D 22 85 18 03 24 1B 0E 1D 1E 1B 17 .byte $24, $1D, $18, $24, $16, $0A, $12, $17, $24, $16, $0E, $17, $1E, $24, $24, $24 ; CPU:$D006 PRG:1006 24 1D 18 24 16 0A 12 17 24 16 0E 17 1E 24 24 24 .byte $23, $C0, $10, $00, $00, $00, $00, $00, $00, $00, $00, $44, $55, $55, $55, $55 ; CPU:$D016 PRG:1016 23 C0 10 00 00 00 00 00 00 00 00 44 55 55 55 55 .byte $55, $55, $11, $23, $D0, $10, $04, $05, $05, $05, $05, $05, $05, $01, $00, $00 ; CPU:$D026 PRG:1026 55 55 11 23 D0 10 04 05 05 05 05 05 05 01 00 00 .byte $00, $00, $00, $00, $00, $00, $23, $E0, $10, $00, $00, $00, $00, $00, $00, $00 ; CPU:$D036 PRG:1036 00 00 00 00 00 00 23 E0 10 00 00 00 00 00 00 00 .byte $00, $00, $00, $00, $00, $00, $00, $00, $00, $23, $F0, $10, $00, $00, $00, $00 ; CPU:$D046 PRG:1046 00 00 00 00 00 00 00 00 00 23 F0 10 00 00 00 00 .byte $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF ; CPU:$D056 PRG:1056 00 00 00 00 00 00 00 00 00 00 00 00 FF JoypadPanelScreenTwoStream: .byte $20, $62, $1A ; CPU:$D063 PRG:1063 20 62 1A .byte $1D, $1E, $1B, $0B, $18, $24, $1C, $24, $0B, $24, $0A, $24, $24, $02, $24, $19 ; CPU:$D066 PRG:1066 1D 1E 1B 0B 18 24 1C 24 0B 24 0A 24 24 02 24 19 .byte $15, $0A, $22, $0E, $1B, $24, $1D, $0E, $1C, $1D, $20, $8F, $0D, $40, $42, $42 ; CPU:$D076 PRG:1076 15 0A 22 0E 1B 24 1D 0E 1C 1D 20 8F 0D 40 42 42 .byte $42, $42, $42, $42, $42, $42, $42, $42, $42, $41, $20, $AF, $0D, $47, $24, $24 ; CPU:$D086 PRG:1086 42 42 42 42 42 42 42 42 42 41 20 AF 0D 47 24 24 .byte $24, $24, $24, $01, $24, $28, $29, $2A, $2B, $46, $20, $CF, $0D, $47, $24, $4A ; CPU:$D096 PRG:1096 24 24 24 01 24 28 29 2A 2B 46 20 CF 0D 47 24 4A .byte $24, $24, $24, $24, $24, $24, $24, $24, $24, $46, $20, $EF, $0D, $47, $24, $24 ; CPU:$D0A6 PRG:10A6 24 24 24 24 24 24 24 24 24 46 20 EF 0D 47 24 24 .byte $24, $24, $24, $26, $24, $24, $24, $26, $24, $46, $21, $0F, $0D, $44, $43, $43 ; CPU:$D0B6 PRG:10B6 24 24 24 26 24 24 24 26 24 46 21 0F 0D 44 43 43 .byte $43, $43, $43, $43, $43, $43, $43, $43, $43, $45, $21, $4F, $0D, $40, $42, $42 ; CPU:$D0C6 PRG:10C6 43 43 43 43 43 43 43 43 43 45 21 4F 0D 40 42 42 .byte $42, $42, $42, $42, $42, $42, $42, $42, $42, $41, $21, $6F, $0D, $47, $24, $24 ; CPU:$D0D6 PRG:10D6 42 42 42 42 42 42 42 42 42 41 21 6F 0D 47 24 24 .byte $24, $24, $24, $02, $24, $28, $29, $2A, $2B, $46, $21, $8F, $0D, $47, $24, $4A ; CPU:$D0E6 PRG:10E6 24 24 24 02 24 28 29 2A 2B 46 21 8F 0D 47 24 4A .byte $24, $24, $24, $24, $24, $24, $24, $24, $24, $46, $21, $AF, $0D, $47, $24, $24 ; CPU:$D0F6 PRG:10F6 24 24 24 24 24 24 24 24 24 46 21 AF 0D 47 24 24 .byte $24, $24, $24, $26, $24, $24, $24, $26, $24, $46, $21, $CF, $0D, $44, $43, $43 ; CPU:$D106 PRG:1106 24 24 24 26 24 24 24 26 24 46 21 CF 0D 44 43 43 .byte $43, $43, $43, $43, $43, $43, $43, $43, $43, $45, $20, $A6, $01, $D1, $21, $06 ; CPU:$D116 PRG:1116 43 43 43 43 43 43 43 43 43 45 20 A6 01 D1 21 06 .byte $01, $2C, $21, $66, $01, $D1, $21, $C6, $01, $2C, $20, $87, $07, $58, $53, $5A ; CPU:$D126 PRG:1126 01 2C 21 66 01 D1 21 C6 01 2C 20 87 07 58 53 5A .byte $53, $5A, $53, $57, $20, $A7, $07, $50, $24, $54, $24, $54, $24, $51, $20, $C7 ; CPU:$D136 PRG:1136 53 5A 53 57 20 A7 07 50 24 54 24 54 24 51 20 C7 .byte $07, $50, $24, $54, $24, $54, $24, $51, $20, $E7, $07, $50, $24, $54, $24, $54 ; CPU:$D146 PRG:1146 07 50 24 54 24 54 24 51 20 E7 07 50 24 54 24 54 .byte $24, $51, $21, $07, $07, $50, $24, $54, $24, $54, $24, $51, $21, $27, $07, $56 ; CPU:$D156 PRG:1156 24 51 21 07 07 50 24 54 24 54 24 51 21 27 07 56 .byte $52, $59, $52, $59, $52, $55, $21, $47, $07, $58, $53, $5A, $53, $5A, $53, $57 ; CPU:$D166 PRG:1166 52 59 52 59 52 55 21 47 07 58 53 5A 53 5A 53 57 .byte $21, $67, $07, $50, $24, $54, $24, $54, $24, $51, $21, $87, $07, $50, $24, $54 ; CPU:$D176 PRG:1176 21 67 07 50 24 54 24 54 24 51 21 87 07 50 24 54 .byte $24, $54, $24, $51, $21, $A7, $07, $50, $24, $54, $24, $54, $24, $51, $21, $C7 ; CPU:$D186 PRG:1186 24 54 24 51 21 A7 07 50 24 54 24 54 24 51 21 C7 .byte $07, $50, $24, $54, $24, $54, $24, $51, $21, $E7, $07, $56, $52, $59, $52, $59 ; CPU:$D196 PRG:1196 07 50 24 54 24 54 24 51 21 E7 07 56 52 59 52 59 .byte $52, $55, $23, $C0, $10, $40, $50, $50, $50, $50, $50, $50, $00, $00, $00, $00 ; CPU:$D1A6 PRG:11A6 52 55 23 C0 10 40 50 50 50 50 50 50 00 00 00 00 .byte $00, $00, $03, $00, $00, $23, $D0, $10, $00, $00, $00, $00, $00, $30, $00, $00 ; CPU:$D1B6 PRG:11B6 00 00 03 00 00 23 D0 10 00 00 00 00 00 30 00 00 .byte $00, $00, $00, $00, $00, $00, $00, $00, $23, $E0, $10, $00, $00, $00, $00, $00 ; CPU:$D1C6 PRG:11C6 00 00 00 00 00 00 00 00 23 E0 10 00 00 00 00 00 .byte $03, $00, $00, $00, $00, $00, $00, $00, $30, $00, $00, $23, $F0, $10, $00, $00 ; CPU:$D1D6 PRG:11D6 03 00 00 00 00 00 00 00 30 00 00 23 F0 10 00 00 .byte $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF ; CPU:$D1E6 PRG:11E6 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF JoypadPanelScreenThreeStream: .byte $20 ; CPU:$D1F5 PRG:11F5 20 .byte $62, $1A, $1D, $1E, $1B, $0B, $18, $24, $1C, $24, $0B, $24, $0A, $24, $24, $04 ; CPU:$D1F6 PRG:11F6 62 1A 1D 1E 1B 0B 18 24 1C 24 0B 24 0A 24 24 04 .byte $24, $19, $15, $0A, $22, $0E, $1B, $24, $1D, $0E, $1C, $1D, $20, $8F, $0D, $40 ; CPU:$D206 PRG:1206 24 19 15 0A 22 0E 1B 24 1D 0E 1C 1D 20 8F 0D 40 .byte $42, $42, $42, $42, $42, $42, $42, $42, $42, $42, $42, $41, $20, $AF, $0D, $47 ; CPU:$D216 PRG:1216 42 42 42 42 42 42 42 42 42 42 42 41 20 AF 0D 47 .byte $24, $24, $24, $24, $24, $01, $24, $28, $29, $2A, $2B, $46, $20, $CF, $0D, $47 ; CPU:$D226 PRG:1226 24 24 24 24 24 01 24 28 29 2A 2B 46 20 CF 0D 47 .byte $24, $4A, $24, $24, $24, $24, $24, $24, $24, $24, $24, $46, $20, $EF, $0D, $47 ; CPU:$D236 PRG:1236 24 4A 24 24 24 24 24 24 24 24 24 46 20 EF 0D 47 .byte $24, $24, $24, $24, $24, $26, $24, $24, $24, $26, $24, $46, $21, $0F, $0D, $44 ; CPU:$D246 PRG:1246 24 24 24 24 24 26 24 24 24 26 24 46 21 0F 0D 44 .byte $43, $43, $43, $43, $43, $43, $43, $43, $43, $43, $43, $45, $21, $4F, $0D, $40 ; CPU:$D256 PRG:1256 43 43 43 43 43 43 43 43 43 43 43 45 21 4F 0D 40 .byte $42, $42, $42, $42, $42, $42, $42, $42, $42, $42, $42, $41, $21, $6F, $0D, $47 ; CPU:$D266 PRG:1266 42 42 42 42 42 42 42 42 42 42 42 41 21 6F 0D 47 .byte $24, $24, $24, $24, $24, $02, $24, $28, $29, $2A, $2B, $46, $21, $8F, $0D, $47 ; CPU:$D276 PRG:1276 24 24 24 24 24 02 24 28 29 2A 2B 46 21 8F 0D 47 .byte $24, $4A, $24, $24, $24, $24, $24, $24, $24, $24, $24, $46, $21, $AF, $0D, $47 ; CPU:$D286 PRG:1286 24 4A 24 24 24 24 24 24 24 24 24 46 21 AF 0D 47 .byte $24, $24, $24, $24, $24, $26, $24, $24, $24, $26, $24, $46, $21, $CF, $0D, $44 ; CPU:$D296 PRG:1296 24 24 24 24 24 26 24 24 24 26 24 46 21 CF 0D 44 .byte $43, $43, $43, $43, $43, $43, $43, $43, $43, $43, $43, $45, $22, $0F, $0D, $40 ; CPU:$D2A6 PRG:12A6 43 43 43 43 43 43 43 43 43 43 43 45 22 0F 0D 40 .byte $42, $42, $42, $42, $42, $42, $42, $42, $42, $42, $42, $41, $22, $2F, $0D, $47 ; CPU:$D2B6 PRG:12B6 42 42 42 42 42 42 42 42 42 42 42 41 22 2F 0D 47 .byte $24, $24, $24, $24, $24, $03, $24, $28, $29, $2A, $2B, $46, $22, $4F, $0D, $47 ; CPU:$D2C6 PRG:12C6 24 24 24 24 24 03 24 28 29 2A 2B 46 22 4F 0D 47 .byte $24, $4A, $24, $24, $24, $24, $24, $24, $24, $24, $24, $46, $22, $6F, $0D, $47 ; CPU:$D2D6 PRG:12D6 24 4A 24 24 24 24 24 24 24 24 24 46 22 6F 0D 47 .byte $24, $24, $24, $24, $24, $26, $24, $24, $24, $26, $24, $46, $22, $8F, $0D, $44 ; CPU:$D2E6 PRG:12E6 24 24 24 24 24 26 24 24 24 26 24 46 22 8F 0D 44 .byte $43, $43, $43, $43, $43, $43, $43, $43, $43, $43, $43, $45, $22, $CF, $0D, $40 ; CPU:$D2F6 PRG:12F6 43 43 43 43 43 43 43 43 43 43 43 45 22 CF 0D 40 .byte $42, $42, $42, $42, $42, $42, $42, $42, $42, $42, $42, $41, $22, $EF, $0D, $47 ; CPU:$D306 PRG:1306 42 42 42 42 42 42 42 42 42 42 42 41 22 EF 0D 47 .byte $24, $24, $24, $24, $24, $04, $24, $28, $29, $2A, $2B, $46, $23, $0F, $0D, $47 ; CPU:$D316 PRG:1316 24 24 24 24 24 04 24 28 29 2A 2B 46 23 0F 0D 47 .byte $24, $4A, $24, $24, $24, $24, $24, $24, $24, $24, $24, $46, $23, $2F, $0D, $47 ; CPU:$D326 PRG:1326 24 4A 24 24 24 24 24 24 24 24 24 46 23 2F 0D 47 .byte $24, $24, $24, $24, $24, $26, $24, $24, $24, $26, $24, $46, $23, $4F, $0D, $44 ; CPU:$D336 PRG:1336 24 24 24 24 24 26 24 24 24 26 24 46 23 4F 0D 44 .byte $43, $43, $43, $43, $43, $43, $43, $43, $43, $43, $43, $45, $20, $A6, $01, $D1 ; CPU:$D346 PRG:1346 43 43 43 43 43 43 43 43 43 43 43 45 20 A6 01 D1 .byte $21, $06, $01, $2C, $21, $66, $01, $D1, $21, $C6, $01, $2C, $22, $26, $01, $D1 ; CPU:$D356 PRG:1356 21 06 01 2C 21 66 01 D1 21 C6 01 2C 22 26 01 D1 .byte $22, $86, $01, $2C, $22, $E6, $01, $D1, $23, $46, $01, $2C, $20, $87, $07, $58 ; CPU:$D366 PRG:1366 22 86 01 2C 22 E6 01 D1 23 46 01 2C 20 87 07 58 .byte $53, $5A, $53, $5A, $53, $57, $20, $A7, $07, $50, $24, $54, $24, $54, $24, $51 ; CPU:$D376 PRG:1376 53 5A 53 5A 53 57 20 A7 07 50 24 54 24 54 24 51 .byte $20, $C7, $07, $50, $24, $54, $24, $54, $24, $51, $20, $E7, $07, $50, $24, $54 ; CPU:$D386 PRG:1386 20 C7 07 50 24 54 24 54 24 51 20 E7 07 50 24 54 .byte $24, $54, $24, $51, $21, $07, $07, $50, $24, $54, $24, $54, $24, $51, $21, $27 ; CPU:$D396 PRG:1396 24 54 24 51 21 07 07 50 24 54 24 54 24 51 21 27 .byte $07, $56, $52, $59, $52, $59, $52, $55, $21, $47, $07, $58, $53, $5A, $53, $5A ; CPU:$D3A6 PRG:13A6 07 56 52 59 52 59 52 55 21 47 07 58 53 5A 53 5A .byte $53, $57, $21, $67, $07, $50, $24, $54, $24, $54, $24, $51, $21, $87, $07, $50 ; CPU:$D3B6 PRG:13B6 53 57 21 67 07 50 24 54 24 54 24 51 21 87 07 50 .byte $24, $54, $24, $54, $24, $51, $21, $A7, $07, $50, $24, $54, $24, $54, $24, $51 ; CPU:$D3C6 PRG:13C6 24 54 24 54 24 51 21 A7 07 50 24 54 24 54 24 51 .byte $21, $C7, $07, $50, $24, $54, $24, $54, $24, $51, $21, $E7, $07, $56, $52, $59 ; CPU:$D3D6 PRG:13D6 21 C7 07 50 24 54 24 54 24 51 21 E7 07 56 52 59 .byte $52, $59, $52, $55, $22, $07, $07, $58, $53, $5A, $53, $5A, $53, $57, $22, $27 ; CPU:$D3E6 PRG:13E6 52 59 52 55 22 07 07 58 53 5A 53 5A 53 57 22 27 .byte $07, $50, $24, $54, $24, $54, $24, $51, $22, $47, $07, $50, $24, $54, $24, $54 ; CPU:$D3F6 PRG:13F6 07 50 24 54 24 54 24 51 22 47 07 50 24 54 24 54 .byte $24, $51, $22, $67, $07, $50, $24, $54, $24, $54, $24, $51, $22, $87, $07, $50 ; CPU:$D406 PRG:1406 24 51 22 67 07 50 24 54 24 54 24 51 22 87 07 50 .byte $24, $54, $24, $54, $24, $51, $22, $A7, $07, $56, $52, $59, $52, $59, $52, $55 ; CPU:$D416 PRG:1416 24 54 24 54 24 51 22 A7 07 56 52 59 52 59 52 55 .byte $22, $C7, $07, $58, $53, $5A, $53, $5A, $53, $57, $22, $E7, $07, $50, $24, $54 ; CPU:$D426 PRG:1426 22 C7 07 58 53 5A 53 5A 53 57 22 E7 07 50 24 54 .byte $24, $54, $24, $51, $23, $07, $07, $50, $24, $54, $24, $54, $24, $51, $23, $27 ; CPU:$D436 PRG:1436 24 54 24 51 23 07 07 50 24 54 24 54 24 51 23 27 .byte $07, $50, $24, $54, $24, $54, $24, $51, $23, $47, $07, $50, $24, $54, $24, $54 ; CPU:$D446 PRG:1446 07 50 24 54 24 54 24 51 23 47 07 50 24 54 24 54 .byte $24, $51, $23, $67, $07, $56, $52, $59, $52, $59, $52, $55, $23, $C0, $10, $40 ; CPU:$D456 PRG:1456 24 51 23 67 07 56 52 59 52 59 52 55 23 C0 10 40 .byte $50, $50, $50, $50, $50, $50, $00, $00, $00, $00, $00, $00, $03, $00, $00, $23 ; CPU:$D466 PRG:1466 50 50 50 50 50 50 00 00 00 00 00 00 03 00 00 23 .byte $D0, $10, $00, $00, $00, $00, $00, $30, $00, $00, $00, $00, $00, $00, $00, $00 ; CPU:$D476 PRG:1476 D0 10 00 00 00 00 00 30 00 00 00 00 00 00 00 00 .byte $00, $00, $23, $E0, $10, $00, $00, $00, $00, $00, $03, $00, $00, $00, $00, $00 ; CPU:$D486 PRG:1486 00 00 23 E0 10 00 00 00 00 00 03 00 00 00 00 00 .byte $00, $00, $30, $00, $00, $23, $F0, $10, $00, $00, $00, $00, $00, $00, $00, $00 ; CPU:$D496 PRG:1496 00 00 30 00 00 23 F0 10 00 00 00 00 00 00 00 00 .byte $00, $00, $00, $00, $00, $00, $00, $00, $FF ; CPU:$D4A6 PRG:14A6 00 00 00 00 00 00 00 00 FF MarkerTileBurstStream: .byte $A5, $24, $54, $24, $54, $24, $24 ; CPU:$D4AF PRG:14AF A5 24 54 24 54 24 24 .byte $54, $24, $54, $24, $24, $54, $24, $54, $24, $24, $54, $24, $54, $24, $52, $59 ; CPU:$D4B6 PRG:14B6 54 24 54 24 24 54 24 54 24 24 54 24 54 24 52 59 .byte $52, $59, $52, $53, $5A, $53, $5A, $53, $24, $54, $24, $54, $24, $24, $54, $24 ; CPU:$D4C6 PRG:14C6 52 59 52 53 5A 53 5A 53 24 54 24 54 24 24 54 24 .byte $54, $24, $24, $54, $24, $54, $24, $24, $54, $24, $54, $24, $FF ; CPU:$D4D6 PRG:14D6 54 24 24 54 24 54 24 24 54 24 54 24 FF MarkerSpriteTable: .byte $37, $4D, $03 ; CPU:$D4E3 PRG:14E3 37 4D 03 .byte $D0, $37, $4D, $03, $C0, $37, $4E, $03, $B0, $37, $4E, $03, $A0, $27, $48, $03 ; CPU:$D4E6 PRG:14E6 D0 37 4D 03 C0 37 4E 03 B0 37 4E 03 A0 27 48 03 .byte $88, $37, $4C, $03, $88, $2F, $49, $03, $80, $2F, $4B, $03, $90, $67, $4D, $03 ; CPU:$D4F6 PRG:14F6 88 37 4C 03 88 2F 49 03 80 2F 4B 03 90 67 4D 03 .byte $D0, $67, $4D, $03, $C0, $67, $4E, $03, $B0, $67, $4E, $03, $A0, $57, $48, $03 ; CPU:$D506 PRG:1506 D0 67 4D 03 C0 67 4E 03 B0 67 4E 03 A0 57 48 03 .byte $88, $67, $4C, $03, $88, $5F, $49, $03, $80, $5F, $4B, $03, $90, $97, $4D, $03 ; CPU:$D516 PRG:1516 88 67 4C 03 88 5F 49 03 80 5F 4B 03 90 97 4D 03 .byte $D0, $97, $4D, $03, $C0, $97, $4E, $03, $B0, $97, $4E, $03, $A0, $87, $48, $03 ; CPU:$D526 PRG:1526 D0 97 4D 03 C0 97 4E 03 B0 97 4E 03 A0 87 48 03 .byte $88, $97, $4C, $03, $88, $8F, $49, $03, $80, $8F, $4B, $03, $90, $C7, $4D, $03 ; CPU:$D536 PRG:1536 88 97 4C 03 88 8F 49 03 80 8F 4B 03 90 C7 4D 03 .byte $D0, $C7, $4D, $03, $C0, $C7, $4E, $03, $B0, $C7, $4E, $03, $A0, $B7, $48, $03 ; CPU:$D546 PRG:1546 D0 C7 4D 03 C0 C7 4E 03 B0 C7 4E 03 A0 B7 48 03 .byte $88, $C7, $4C, $03, $88, $BF, $49, $03, $80, $BF, $4B, $03, $90, $27, $30, $00 ; CPU:$D556 PRG:1556 88 C7 4C 03 88 BF 49 03 80 BF 4B 03 90 27 30 00 .byte $40, $2F, $30, $00, $40, $37, $30, $00, $40, $3F, $30, $00, $40, $27, $30, $00 ; CPU:$D566 PRG:1566 40 2F 30 00 40 37 30 00 40 3F 30 00 40 27 30 00 .byte $50, $2F, $30, $00, $50, $37, $30, $00, $50, $3F, $30, $00, $50, $27, $30, $00 ; CPU:$D576 PRG:1576 50 2F 30 00 50 37 30 00 50 3F 30 00 50 27 30 00 .byte $60, $2F, $30, $00, $60, $37, $30, $00, $60, $3F, $30, $00, $60, $57, $30, $00 ; CPU:$D586 PRG:1586 60 2F 30 00 60 37 30 00 60 3F 30 00 60 57 30 00 .byte $40, $5F, $30, $00, $40, $67, $30, $00, $40, $6F, $30, $00, $40, $57, $30, $00 ; CPU:$D596 PRG:1596 40 5F 30 00 40 67 30 00 40 6F 30 00 40 57 30 00 .byte $50, $5F, $30, $00, $50, $67, $30, $00, $50, $6F, $30, $00, $50, $57, $30, $00 ; CPU:$D5A6 PRG:15A6 50 5F 30 00 50 67 30 00 50 6F 30 00 50 57 30 00 .byte $60, $5F, $30, $00, $60, $67, $30, $00, $60, $6F, $30, $00, $60, $FF ; CPU:$D5B6 PRG:15B6 60 5F 30 00 60 67 30 00 60 6F 30 00 60 FF MarkerSpriteTableAlt: .byte $37, $4D ; CPU:$D5C4 PRG:15C4 37 4D .byte $03, $D0, $37, $4D, $03, $C0, $37, $4E, $03, $B0, $37, $4E, $03, $A0, $27, $48 ; CPU:$D5C6 PRG:15C6 03 D0 37 4D 03 C0 37 4E 03 B0 37 4E 03 A0 27 48 .byte $03, $88, $37, $4C, $03, $88, $2F, $49, $03, $80, $2F, $4B, $03, $90, $67, $4D ; CPU:$D5D6 PRG:15D6 03 88 37 4C 03 88 2F 49 03 80 2F 4B 03 90 67 4D .byte $03, $D0, $67, $4D, $03, $C0, $67, $4E, $03, $B0, $67, $4E, $03, $A0, $57, $48 ; CPU:$D5E6 PRG:15E6 03 D0 67 4D 03 C0 67 4E 03 B0 67 4E 03 A0 57 48 .byte $03, $88, $67, $4C, $03, $88, $5F, $49, $03, $80, $5F, $4B, $03, $90, $F4, $F4 ; CPU:$D5F6 PRG:15F6 03 88 67 4C 03 88 5F 49 03 80 5F 4B 03 90 F4 F4 .byte $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4 ; CPU:$D606 PRG:1606 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 .byte $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4 ; CPU:$D616 PRG:1616 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 .byte $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4 ; CPU:$D626 PRG:1626 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 .byte $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $27, $30 ; CPU:$D636 PRG:1636 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 27 30 .byte $00, $40, $2F, $30, $00, $40, $37, $30, $00, $40, $3F, $30, $00, $40, $27, $30 ; CPU:$D646 PRG:1646 00 40 2F 30 00 40 37 30 00 40 3F 30 00 40 27 30 .byte $00, $50, $2F, $30, $00, $50, $37, $30, $00, $50, $3F, $30, $00, $50, $27, $30 ; CPU:$D656 PRG:1656 00 50 2F 30 00 50 37 30 00 50 3F 30 00 50 27 30 .byte $00, $60, $2F, $30, $00, $60, $37, $30, $00, $60, $3F, $30, $00, $60, $57, $30 ; CPU:$D666 PRG:1666 00 60 2F 30 00 60 37 30 00 60 3F 30 00 60 57 30 .byte $00, $40, $5F, $30, $00, $40, $67, $30, $00, $40, $6F, $30, $00, $40, $57, $30 ; CPU:$D676 PRG:1676 00 40 5F 30 00 40 67 30 00 40 6F 30 00 40 57 30 .byte $00, $50, $5F, $30, $00, $50, $67, $30, $00, $50, $6F, $30, $00, $50, $57, $30 ; CPU:$D686 PRG:1686 00 50 5F 30 00 50 67 30 00 50 6F 30 00 50 57 30 .byte $00, $60, $5F, $30, $00, $60, $67, $30, $00, $60, $6F, $30, $00, $60, $FF ; CPU:$D696 PRG:1696 00 60 5F 30 00 60 67 30 00 60 6F 30 00 60 FF ButtonLabelSpriteTemplate: .byte $79 ; CPU:$D6A5 PRG:16A5 79 .byte $1D, $00, $18, $79, $0E, $00, $20, $79, $1C, $00, $28, $79, $1D, $00, $30, $79 ; CPU:$D6A6 PRG:16A6 1D 00 18 79 0E 00 20 79 1C 00 28 79 1D 00 30 79 .byte $18, $00, $40, $79, $1F, $00, $48, $79, $0E, $00, $50, $79, $1B, $00, $58 ; CPU:$D6B6 PRG:16B6 18 00 40 79 1F 00 48 79 0E 00 50 79 1B 00 58 ButtonStateSpriteTemplate: .byte $79 ; CPU:$D6C5 PRG:16C5 79 .byte $0C, $00, $18, $79, $18, $00, $20, $79, $17, $00, $28, $79, $1D, $00, $30, $79 ; CPU:$D6C6 PRG:16C6 0C 00 18 79 18 00 20 79 17 00 28 79 1D 00 30 79 .byte $0B, $00, $40, $79, $0A, $00, $48, $79, $0D, $00, $50, $79, $24, $00, $58 ; CPU:$D6D6 PRG:16D6 0B 00 40 79 0A 00 48 79 0D 00 50 79 24 00 58 RomPadding: .byte $FF ; CPU:$D6E5 PRG:16E5 FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D6E6 PRG:16E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D6F6 PRG:16F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D706 PRG:1706 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D716 PRG:1716 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D726 PRG:1726 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D736 PRG:1736 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D746 PRG:1746 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D756 PRG:1756 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D766 PRG:1766 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D776 PRG:1776 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D786 PRG:1786 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D796 PRG:1796 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7A6 PRG:17A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7B6 PRG:17B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7C6 PRG:17C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7D6 PRG:17D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7E6 PRG:17E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7F6 PRG:17F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D806 PRG:1806 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D816 PRG:1816 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D826 PRG:1826 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D836 PRG:1836 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D846 PRG:1846 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D856 PRG:1856 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D866 PRG:1866 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D876 PRG:1876 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D886 PRG:1886 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D896 PRG:1896 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8A6 PRG:18A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8B6 PRG:18B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8C6 PRG:18C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8D6 PRG:18D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8E6 PRG:18E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8F6 PRG:18F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D906 PRG:1906 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D916 PRG:1916 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D926 PRG:1926 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D936 PRG:1936 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D946 PRG:1946 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D956 PRG:1956 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D966 PRG:1966 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D976 PRG:1976 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D986 PRG:1986 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D996 PRG:1996 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9A6 PRG:19A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9B6 PRG:19B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9C6 PRG:19C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9D6 PRG:19D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9E6 PRG:19E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9F6 PRG:19F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA06 PRG:1A06 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA16 PRG:1A16 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA26 PRG:1A26 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA36 PRG:1A36 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA46 PRG:1A46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA56 PRG:1A56 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA66 PRG:1A66 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA76 PRG:1A76 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA86 PRG:1A86 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA96 PRG:1A96 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAA6 PRG:1AA6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAB6 PRG:1AB6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAC6 PRG:1AC6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAD6 PRG:1AD6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAE6 PRG:1AE6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAF6 PRG:1AF6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB06 PRG:1B06 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB16 PRG:1B16 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB26 PRG:1B26 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB36 PRG:1B36 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB46 PRG:1B46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB56 PRG:1B56 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB66 PRG:1B66 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB76 PRG:1B76 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB86 PRG:1B86 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB96 PRG:1B96 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBA6 PRG:1BA6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBB6 PRG:1BB6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBC6 PRG:1BC6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBD6 PRG:1BD6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBE6 PRG:1BE6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBF6 PRG:1BF6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC06 PRG:1C06 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC16 PRG:1C16 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC26 PRG:1C26 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC36 PRG:1C36 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC46 PRG:1C46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC56 PRG:1C56 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC66 PRG:1C66 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC76 PRG:1C76 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC86 PRG:1C86 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC96 PRG:1C96 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCA6 PRG:1CA6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCB6 PRG:1CB6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCC6 PRG:1CC6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCD6 PRG:1CD6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCE6 PRG:1CE6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCF6 PRG:1CF6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD06 PRG:1D06 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD16 PRG:1D16 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD26 PRG:1D26 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD36 PRG:1D36 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD46 PRG:1D46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD56 PRG:1D56 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD66 PRG:1D66 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD76 PRG:1D76 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD86 PRG:1D86 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD96 PRG:1D96 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDA6 PRG:1DA6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDB6 PRG:1DB6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDC6 PRG:1DC6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDD6 PRG:1DD6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDE6 PRG:1DE6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDF6 PRG:1DF6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE06 PRG:1E06 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE16 PRG:1E16 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE26 PRG:1E26 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE36 PRG:1E36 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE46 PRG:1E46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE56 PRG:1E56 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE66 PRG:1E66 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE76 PRG:1E76 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE86 PRG:1E86 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE96 PRG:1E96 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DEA6 PRG:1EA6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DEB6 PRG:1EB6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DEC6 PRG:1EC6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DED6 PRG:1ED6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DEE6 PRG:1EE6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DEF6 PRG:1EF6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF06 PRG:1F06 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF16 PRG:1F16 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF26 PRG:1F26 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF36 PRG:1F36 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF46 PRG:1F46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF56 PRG:1F56 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF66 PRG:1F66 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF76 PRG:1F76 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF86 PRG:1F86 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF96 PRG:1F96 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFA6 PRG:1FA6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFB6 PRG:1FB6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFC6 PRG:1FC6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFD6 PRG:1FD6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFE6 PRG:1FE6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFF6 PRG:1FF6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E006 PRG:2006 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E016 PRG:2016 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E026 PRG:2026 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E036 PRG:2036 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E046 PRG:2046 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E056 PRG:2056 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E066 PRG:2066 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E076 PRG:2076 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E086 PRG:2086 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E096 PRG:2096 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0A6 PRG:20A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0B6 PRG:20B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0C6 PRG:20C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0D6 PRG:20D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0E6 PRG:20E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0F6 PRG:20F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E106 PRG:2106 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E116 PRG:2116 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E126 PRG:2126 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E136 PRG:2136 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E146 PRG:2146 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E156 PRG:2156 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E166 PRG:2166 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E176 PRG:2176 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E186 PRG:2186 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E196 PRG:2196 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1A6 PRG:21A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1B6 PRG:21B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1C6 PRG:21C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1D6 PRG:21D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1E6 PRG:21E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1F6 PRG:21F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E206 PRG:2206 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E216 PRG:2216 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E226 PRG:2226 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E236 PRG:2236 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E246 PRG:2246 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E256 PRG:2256 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E266 PRG:2266 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E276 PRG:2276 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E286 PRG:2286 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E296 PRG:2296 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2A6 PRG:22A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2B6 PRG:22B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2C6 PRG:22C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2D6 PRG:22D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2E6 PRG:22E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2F6 PRG:22F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E306 PRG:2306 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E316 PRG:2316 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E326 PRG:2326 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E336 PRG:2336 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E346 PRG:2346 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E356 PRG:2356 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E366 PRG:2366 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E376 PRG:2376 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E386 PRG:2386 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E396 PRG:2396 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3A6 PRG:23A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3B6 PRG:23B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3C6 PRG:23C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3D6 PRG:23D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3E6 PRG:23E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3F6 PRG:23F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E406 PRG:2406 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E416 PRG:2416 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E426 PRG:2426 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E436 PRG:2436 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E446 PRG:2446 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E456 PRG:2456 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E466 PRG:2466 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E476 PRG:2476 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E486 PRG:2486 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E496 PRG:2496 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4A6 PRG:24A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4B6 PRG:24B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4C6 PRG:24C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4D6 PRG:24D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4E6 PRG:24E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4F6 PRG:24F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E506 PRG:2506 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E516 PRG:2516 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E526 PRG:2526 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E536 PRG:2536 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E546 PRG:2546 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E556 PRG:2556 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E566 PRG:2566 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E576 PRG:2576 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E586 PRG:2586 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E596 PRG:2596 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5A6 PRG:25A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5B6 PRG:25B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5C6 PRG:25C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5D6 PRG:25D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5E6 PRG:25E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5F6 PRG:25F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E606 PRG:2606 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E616 PRG:2616 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E626 PRG:2626 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E636 PRG:2636 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E646 PRG:2646 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E656 PRG:2656 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E666 PRG:2666 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E676 PRG:2676 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E686 PRG:2686 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E696 PRG:2696 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6A6 PRG:26A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6B6 PRG:26B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6C6 PRG:26C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6D6 PRG:26D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6E6 PRG:26E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6F6 PRG:26F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E706 PRG:2706 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E716 PRG:2716 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E726 PRG:2726 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E736 PRG:2736 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E746 PRG:2746 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E756 PRG:2756 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E766 PRG:2766 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E776 PRG:2776 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E786 PRG:2786 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E796 PRG:2796 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7A6 PRG:27A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7B6 PRG:27B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7C6 PRG:27C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7D6 PRG:27D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7E6 PRG:27E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7F6 PRG:27F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E806 PRG:2806 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E816 PRG:2816 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E826 PRG:2826 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E836 PRG:2836 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E846 PRG:2846 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E856 PRG:2856 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E866 PRG:2866 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E876 PRG:2876 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E886 PRG:2886 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E896 PRG:2896 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8A6 PRG:28A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8B6 PRG:28B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8C6 PRG:28C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8D6 PRG:28D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8E6 PRG:28E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8F6 PRG:28F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E906 PRG:2906 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E916 PRG:2916 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E926 PRG:2926 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E936 PRG:2936 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E946 PRG:2946 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E956 PRG:2956 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E966 PRG:2966 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E976 PRG:2976 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E986 PRG:2986 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E996 PRG:2996 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9A6 PRG:29A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9B6 PRG:29B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9C6 PRG:29C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9D6 PRG:29D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9E6 PRG:29E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9F6 PRG:29F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA06 PRG:2A06 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA16 PRG:2A16 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA26 PRG:2A26 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA36 PRG:2A36 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA46 PRG:2A46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA56 PRG:2A56 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA66 PRG:2A66 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA76 PRG:2A76 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA86 PRG:2A86 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA96 PRG:2A96 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAA6 PRG:2AA6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAB6 PRG:2AB6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAC6 PRG:2AC6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAD6 PRG:2AD6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAE6 PRG:2AE6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAF6 PRG:2AF6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB06 PRG:2B06 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB16 PRG:2B16 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB26 PRG:2B26 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB36 PRG:2B36 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB46 PRG:2B46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB56 PRG:2B56 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB66 PRG:2B66 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB76 PRG:2B76 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB86 PRG:2B86 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB96 PRG:2B96 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBA6 PRG:2BA6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBB6 PRG:2BB6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBC6 PRG:2BC6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBD6 PRG:2BD6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBE6 PRG:2BE6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBF6 PRG:2BF6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC06 PRG:2C06 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC16 PRG:2C16 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC26 PRG:2C26 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC36 PRG:2C36 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC46 PRG:2C46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC56 PRG:2C56 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC66 PRG:2C66 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC76 PRG:2C76 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC86 PRG:2C86 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC96 PRG:2C96 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECA6 PRG:2CA6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECB6 PRG:2CB6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECC6 PRG:2CC6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECD6 PRG:2CD6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECE6 PRG:2CE6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECF6 PRG:2CF6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED06 PRG:2D06 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED16 PRG:2D16 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED26 PRG:2D26 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED36 PRG:2D36 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED46 PRG:2D46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED56 PRG:2D56 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED66 PRG:2D66 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED76 PRG:2D76 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED86 PRG:2D86 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED96 PRG:2D96 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDA6 PRG:2DA6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDB6 PRG:2DB6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDC6 PRG:2DC6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDD6 PRG:2DD6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDE6 PRG:2DE6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDF6 PRG:2DF6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE06 PRG:2E06 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE16 PRG:2E16 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE26 PRG:2E26 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE36 PRG:2E36 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE46 PRG:2E46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE56 PRG:2E56 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE66 PRG:2E66 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE76 PRG:2E76 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE86 PRG:2E86 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE96 PRG:2E96 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEA6 PRG:2EA6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEB6 PRG:2EB6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEC6 PRG:2EC6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EED6 PRG:2ED6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEE6 PRG:2EE6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEF6 PRG:2EF6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF06 PRG:2F06 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF16 PRG:2F16 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF26 PRG:2F26 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF36 PRG:2F36 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF46 PRG:2F46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF56 PRG:2F56 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF66 PRG:2F66 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF76 PRG:2F76 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF86 PRG:2F86 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF96 PRG:2F96 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFA6 PRG:2FA6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFB6 PRG:2FB6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFC6 PRG:2FC6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFD6 PRG:2FD6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFE6 PRG:2FE6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFF6 PRG:2FF6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F006 PRG:3006 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F016 PRG:3016 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F026 PRG:3026 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F036 PRG:3036 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F046 PRG:3046 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F056 PRG:3056 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F066 PRG:3066 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F076 PRG:3076 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F086 PRG:3086 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F096 PRG:3096 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0A6 PRG:30A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0B6 PRG:30B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0C6 PRG:30C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0D6 PRG:30D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0E6 PRG:30E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0F6 PRG:30F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F106 PRG:3106 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F116 PRG:3116 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F126 PRG:3126 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F136 PRG:3136 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F146 PRG:3146 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F156 PRG:3156 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F166 PRG:3166 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F176 PRG:3176 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F186 PRG:3186 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F196 PRG:3196 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1A6 PRG:31A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1B6 PRG:31B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1C6 PRG:31C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1D6 PRG:31D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1E6 PRG:31E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1F6 PRG:31F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F206 PRG:3206 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F216 PRG:3216 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F226 PRG:3226 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F236 PRG:3236 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F246 PRG:3246 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F256 PRG:3256 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F266 PRG:3266 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F276 PRG:3276 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F286 PRG:3286 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F296 PRG:3296 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2A6 PRG:32A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2B6 PRG:32B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2C6 PRG:32C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2D6 PRG:32D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2E6 PRG:32E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2F6 PRG:32F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F306 PRG:3306 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F316 PRG:3316 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F326 PRG:3326 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F336 PRG:3336 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F346 PRG:3346 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F356 PRG:3356 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F366 PRG:3366 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F376 PRG:3376 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F386 PRG:3386 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F396 PRG:3396 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3A6 PRG:33A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3B6 PRG:33B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3C6 PRG:33C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3D6 PRG:33D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3E6 PRG:33E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3F6 PRG:33F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F406 PRG:3406 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F416 PRG:3416 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F426 PRG:3426 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F436 PRG:3436 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F446 PRG:3446 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F456 PRG:3456 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F466 PRG:3466 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F476 PRG:3476 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F486 PRG:3486 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F496 PRG:3496 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4A6 PRG:34A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4B6 PRG:34B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4C6 PRG:34C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4D6 PRG:34D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4E6 PRG:34E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4F6 PRG:34F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F506 PRG:3506 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F516 PRG:3516 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F526 PRG:3526 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F536 PRG:3536 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F546 PRG:3546 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F556 PRG:3556 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F566 PRG:3566 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F576 PRG:3576 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F586 PRG:3586 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F596 PRG:3596 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5A6 PRG:35A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5B6 PRG:35B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5C6 PRG:35C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5D6 PRG:35D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5E6 PRG:35E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5F6 PRG:35F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F606 PRG:3606 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F616 PRG:3616 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F626 PRG:3626 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F636 PRG:3636 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F646 PRG:3646 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F656 PRG:3656 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F666 PRG:3666 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F676 PRG:3676 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F686 PRG:3686 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F696 PRG:3696 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6A6 PRG:36A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6B6 PRG:36B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6C6 PRG:36C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6D6 PRG:36D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6E6 PRG:36E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6F6 PRG:36F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F706 PRG:3706 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F716 PRG:3716 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F726 PRG:3726 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F736 PRG:3736 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F746 PRG:3746 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F756 PRG:3756 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F766 PRG:3766 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F776 PRG:3776 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F786 PRG:3786 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F796 PRG:3796 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7A6 PRG:37A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7B6 PRG:37B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7C6 PRG:37C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7D6 PRG:37D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7E6 PRG:37E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7F6 PRG:37F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F806 PRG:3806 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F816 PRG:3816 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F826 PRG:3826 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F836 PRG:3836 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F846 PRG:3846 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F856 PRG:3856 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F866 PRG:3866 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F876 PRG:3876 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F886 PRG:3886 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F896 PRG:3896 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8A6 PRG:38A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8B6 PRG:38B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8C6 PRG:38C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8D6 PRG:38D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8E6 PRG:38E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8F6 PRG:38F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F906 PRG:3906 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F916 PRG:3916 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F926 PRG:3926 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F936 PRG:3936 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F946 PRG:3946 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F956 PRG:3956 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F966 PRG:3966 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F976 PRG:3976 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F986 PRG:3986 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F996 PRG:3996 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9A6 PRG:39A6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9B6 PRG:39B6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9C6 PRG:39C6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9D6 PRG:39D6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9E6 PRG:39E6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9F6 PRG:39F6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA06 PRG:3A06 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA16 PRG:3A16 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA26 PRG:3A26 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA36 PRG:3A36 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA46 PRG:3A46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA56 PRG:3A56 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA66 PRG:3A66 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA76 PRG:3A76 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA86 PRG:3A86 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA96 PRG:3A96 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FAA6 PRG:3AA6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FAB6 PRG:3AB6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FAC6 PRG:3AC6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FAD6 PRG:3AD6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FAE6 PRG:3AE6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FAF6 PRG:3AF6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB06 PRG:3B06 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB16 PRG:3B16 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB26 PRG:3B26 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB36 PRG:3B36 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB46 PRG:3B46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB56 PRG:3B56 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB66 PRG:3B66 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB76 PRG:3B76 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB86 PRG:3B86 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB96 PRG:3B96 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBA6 PRG:3BA6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBB6 PRG:3BB6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBC6 PRG:3BC6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBD6 PRG:3BD6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBE6 PRG:3BE6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBF6 PRG:3BF6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC06 PRG:3C06 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC16 PRG:3C16 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC26 PRG:3C26 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC36 PRG:3C36 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC46 PRG:3C46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC56 PRG:3C56 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC66 PRG:3C66 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC76 PRG:3C76 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC86 PRG:3C86 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC96 PRG:3C96 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCA6 PRG:3CA6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCB6 PRG:3CB6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCC6 PRG:3CC6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCD6 PRG:3CD6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCE6 PRG:3CE6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCF6 PRG:3CF6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD06 PRG:3D06 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD16 PRG:3D16 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD26 PRG:3D26 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD36 PRG:3D36 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD46 PRG:3D46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD56 PRG:3D56 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD66 PRG:3D66 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD76 PRG:3D76 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD86 PRG:3D86 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD96 PRG:3D96 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDA6 PRG:3DA6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDB6 PRG:3DB6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDC6 PRG:3DC6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDD6 PRG:3DD6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDE6 PRG:3DE6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDF6 PRG:3DF6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE06 PRG:3E06 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE16 PRG:3E16 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE26 PRG:3E26 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE36 PRG:3E36 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE46 PRG:3E46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE56 PRG:3E56 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE66 PRG:3E66 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE76 PRG:3E76 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE86 PRG:3E86 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE96 PRG:3E96 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEA6 PRG:3EA6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEB6 PRG:3EB6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEC6 PRG:3EC6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FED6 PRG:3ED6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEE6 PRG:3EE6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEF6 PRG:3EF6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF06 PRG:3F06 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF16 PRG:3F16 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF26 PRG:3F26 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF36 PRG:3F36 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF46 PRG:3F46 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF56 PRG:3F56 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF66 PRG:3F66 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF76 PRG:3F76 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF86 PRG:3F86 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF96 PRG:3F96 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFA6 PRG:3FA6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFB6 PRG:3FB6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFC6 PRG:3FC6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFD6 PRG:3FD6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFE6 PRG:3FE6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF .byte $FF, $FF, $FF, $FF ; CPU:$FFF6 PRG:3FF6 FF FF FF FF CpuVectors: .byte $F7, $CC, $00, $C0, $00, $C0 ; CPU:$FFFA PRG:3FFA F7 CC 00 C0 00 C0