diff --git a/Joypad Test Cartridge (U)/OVERVIEW.md b/Joypad Test Cartridge (U)/OVERVIEW.md new file mode 100644 index 0000000..51a4a8a --- /dev/null +++ b/Joypad Test Cartridge (U)/OVERVIEW.md @@ -0,0 +1,182 @@ +# Joypad Test Cartridge (U) — Game Flow from Power-On + +This document describes the execution flow of the disassembled Joypad Test Cartridge (U) PRG bank (16 KB, mapped at CPU **$C000–$FFFF**), starting from power-on. It is based entirely on `copilot/prg.s` in the repository. The rebuild is verified **byte-identical** to the original `prg.bin`. + +--- + +## 1. ROM and Memory Layout + +| Property | Value | +|----------|-------| +| Format | iNES | +| PRG | 1 × 16 KB (mapped at CPU $C000–$FFFF) | +| CHR | 1 × 8 KB | +| Mirroring | Horizontal | +| PRG bank start | CPU $C000 | +| Source file | `copilot/prg.s` (~1,360 lines with headers) | +| Output | `reconstructed_prg.bin` (16,384 bytes) | + +### Interrupt vectors (CPU $FFFA–$FFFF) + +| Vector | Address | Handler | +|--------|---------|---------| +| NMI | $CCF7 | `NmiHandler` | +| RESET | $C000 | `Reset` | +| IRQ / BRK | $C000 | Reuses `Reset` | + +--- + +## 2. Build Status + +`make` in `copilot/` assembles `prg.s` with `ca65`, links with `ld65`, and verifies against `prg.bin`. + +**Verification result: BYTE-IDENTICAL** — `reconstructed_prg.bin` matches `prg.bin` exactly (all 16,384 bytes), and `prg.bin` matches the PRG bank of `Joypad Test Cartridge (U).nes`. + +--- + +## 3. Pass Status + +| Pass | Status | Description | +|------|--------|-------------| +| Pass 1 | Complete | Code/data split — ~580 bytes traced code (~3.5%) or explicit `.byte` data (~96.5%) with `; CPU:$xxxx PRG:$xxxx` annotations | +| Pass 2 | Complete | Routine headers added for all labeled positions; key routines semantically named (`Reset`, `NmiHandler`, `VramWrite`, `PpuScrollLatch`, etc.); zero-page aliases in `locals.inc` | +| Pass 3 | Partial | Some data table references named in code; larger data regions (test patterns, button mappings) remain as `.byte` blocks | + +--- + +## 4. Reset — CPU $FFFC → $C000 + +**`Reset`** ($C000) + +On power-on or reset: + +1. **Wait for three PPU warm-up vblanks** — `WaitVblank2` ($C005) and `WaitVblank3` ($C00A) each poll `$2002` bit 7, following an initial poll at $C000. +2. **Clear RAM** — `ClearRAM1_Loop` ($C013) clears pages $0000–$07FF via indirect indexed store (`STA VramPtrLo,X` / `STA $0100,X` etc.). +3. **Initialize PPU** — `InitPPU_1` ($C031): `STA $2000` with $10 (PPUCTRL, NMI disabled), shadow in `PpuCtrlShadow` ($EF); `STA $2001` with $00 (PPUMASK off), shadow in `PpuMaskValue` ($EE). +4. **OAM DMA** — `OamDma` ($C03F): `STA $4014` with $02 (DMA from $0200–$02FF). +5. **Clear controller state** — `ClearController` ($C044): clears $2003 (OAMADDR) and state variables. +6. `JSR PpuScrollLatch` ($CE3C) — latch scroll and control registers. +7. `LDX #$FF / TXS` — initialize stack pointer. +8. `JSR PpuMaskSetup` ($CD2F) — set PPUMASK from shadow. +9. **Clear RAM again** — `ClearRAM2_Loop` ($C05D) clears pages $0000–$06FF. +10. **Re-initialize PPU** — `InitPPU_2` ($C078): same as InitPPU_1. +11. **VRAM write** — `VramWriteSetup1` ($C086): set up address/length for a VRAM write via `VramWrite` ($CDEE). +12. `JSR ClearOAM_Routine` ($C174) — clear OAM with sprite flush value $F4. +13. `JSR VramPtrWrite` ($CD3F) — write VRAM data via pointer table. +14. `ToggleFlag` ($C095) — toggle `VramToggleFlag` ($CF). +15. `JSR PpuScrollLatch` ($CE3C) and `JSR VramPtrWrite` ($CD3F) again. +16. **Main loop** — spins, toggling $CF each iteration and calling PPU/VRAM update routines. + +--- + +## 5. NMI / Frame Heartbeat — `NmiHandler` ($CCF7) + +The NMI fires once per frame: + +1. **Save registers** (`PHA / TXA / PHA / TYA / PHA`). +2. `JSR PpuCtrlSetup` ($CD17) — latch PPUSTATUS, clear NMI bit in `PpuCtrlShadow` ($EF), write to PPUCTRL. +3. `JSR OamDmaSetup` ($CD24) — set OAMADDR=0, trigger OAM DMA ($4014=$02). +4. Check `$0300` (vblank flag) — if nonzero, `JSR VramBurstWrite` ($CE4F) to burst-write VRAM data from table at $0302. +5. `JSR PpuScrollLatch` ($CE3C) — latch scroll and control. +6. Clear `NmiFlagByte` ($E0) to 0. +7. **Restore registers** (`PLA / TAX / PLA / TAY / PLA / RTI`). + +--- + +## 6. Key Subroutines + +| Label | Address | Description | +|-------|---------|-------------| +| `Reset` | $C000 | Cold-start initialization: vblank waits, RAM clear, PPU init, OAM DMA | +| `WaitVblank2` | $C005 | Wait for second PPU warm-up vblank | +| `WaitVblank3` | $C00A | Wait for third PPU warm-up vblank | +| `ClearRAM1_Loop` | $C013 | Clear RAM pages $00–$07 | +| `InitPPU_1` | $C031 | Initialize PPUCTRL and PPUMASK | +| `OamDma` | $C03F | Trigger OAM DMA via $4014 | +| `ClearController` | $C044 | Clear OAMADDR and controller state | +| `PpuScrollLatch` | $CE3C | Latch PPU scroll X/Y and control register | +| `InitStack` | $C052 | Initialize stack pointer to $FF | +| `PpuMaskSetup` | $CD2F | Set PPUMASK from shadow register | +| `ClearRAM2_Loop` | $C05D | Clear RAM pages $00–$06 | +| `InitPPU_2` | $C078 | Re-initialize PPU control and mask | +| `VramWriteSetup1` | $C086 | Set up VRAM write parameters | +| `ClearOAM_Call` | $C08F | Call OAM clear routine | +| `VramPtrWrite1` | $C092 | Write VRAM data via pointer table | +| `ToggleFlag` | $C095 | Toggle VramToggleFlag ($CF) | +| `SetupScroll2` | $C097 | Latch PPU scroll and control | +| `VramPtrWrite2` | $C09A | Write VRAM data via pointer table again | +| `ClearOAM_Routine` | $C174 | Clear OAM ($0200–$02FF) with $F4 | +| `NmiHandler` | $CCF7 | Per-frame NMI: PPU updates, OAM DMA, VRAM burst write | +| `NmiContinue` | $CD0A | Continue NMI: latch PPU scroll, clear flag | +| `PpuCtrlSetup` | $CD17 | Latch PPUSTATUS, write PPUCTRL from shadow | +| `OamDmaSetup` | $CD24 | Set OAMADDR=0, trigger OAM DMA | +| `PpuMaskSetup` | $CD2F | Set PPUMASK from shadow | +| `VramPtrWrite` | $CD3F | Write VRAM via pointer table (uses RetAddrUpdate) | +| `VramWriteLoop` | $CD45 | Loop writing bytes from indirect pointer to PPUDATA | +| `VramPtrTableRead` | $CD99 | Read from pointer table at $0000 | +| `RetAddrUpdate` | $CDC8 | Get return address from stack, advance by 2 | +| `VramWrite` | $CDEE | Set PPU address, write data bytes to PPUDATA | +| `VramBurstWrite` | $CE4F | Burst-write VRAM from table at $0302 | + +--- + +## 7. Zero-Page Aliases (`locals.inc`) + +| Alias | Address | Role | +|-------|---------|------| +| `VramPtrLo` | $00 | VRAM write pointer low byte | +| `VramPtrHi` | $01 | VRAM write pointer high byte | +| `VramLen` | $02 | VRAM write data length | +| `PpuScrollX` | $03 | PPU horizontal scroll | +| `RetAddrTempLo` | $05 | Return address temp lo | +| `RetAddrTempHi` | $06 | Return address temp hi | +| `PpuMaskShadow` | $0E | PPUMASK shadow | +| `PpuCtrlShadow` | $EF | PPUCTRL shadow (NMI bit cleared) | +| `VramToggleFlag` | $CF | Frame toggle flag | +| `NmiFlagByte` | $E0 | NMI flag byte | +| `JoyBtnStateBase` | $4E | Base for indexed button states | +| `FrameCounterLo` | $53 | Frame counter low byte | +| `FrameCounterHi` | $54 | Frame counter high byte | + +Full list in `copilot/locals.inc`. + +--- + +## 8. Data Regions + +The PRG is approximately 3.5% code / 96.5% data. The data regions include: + +- **$C09E–$C173** (214 bytes): Main loop inline code/data (pointer table references, VRAM write parameters) +- **$C17F–$CCF6** (2,936 bytes): Test patterns, button mapping tables, screen data +- **$CD39–$CD3E** (6 bytes): PPU mask toggle code fragment +- **$CE98–$FFFF** (12,648 bytes): Test pattern data, button mapping tables, screen layout data + +Notable data structures: +- Pointer table at $0000–$0001 (read by `VramPtrTableRead` at $CD99) +- VRAM burst write table at $0302 (read by `VramBurstWrite` at $CE4F) +- Button mapping / test pattern tables in the $C000–$FFFF range + +--- + +## 9. Build + +```bash +cd "_wip/Joypad Test Cartridge (U)/copilot" +make # → ca65 + ld65 + cmp reconstructed_prg.bin prg.bin → "BYTE-IDENTICAL" +``` + +--- + +## 10. Notes + +- The NMI handler drives per-frame updates; the main loop spins waiting for NMI phase changes. +- `RetAddrUpdate` ($CDC8) implements a return-address modification trick: it reads the return address from the stack, advances it by 2, and stores it back. This is used with `VramPtrWrite` ($CD3F) to implement runtime-computed control flow (effectively a coroutine/threaded dispatch). +- The IRQ vector points to $C000 (Reset) and is effectively unused. +- Large portions of the PRG are test pattern and button mapping data, not executable code. + +--- + +## 11. Next Steps + +- **Promotion** — move to a top-level `Joypad Test Cartridge (U)/` folder, add `header.s` / `chr.s` + full-ROM `make` target (as e.g. `Burger Time (U)`), then join the root `OVERVIEW.md` numbered inventory. +- **Pass 3 continuation** — name data tables (button mappings at $C000–$FFFF, test patterns), refine zero-page aliases for the untraced code region. diff --git a/Joypad Test Cartridge (U)/copilot/Makefile b/Joypad Test Cartridge (U)/copilot/Makefile new file mode 100644 index 0000000..0d14c9a --- /dev/null +++ b/Joypad Test Cartridge (U)/copilot/Makefile @@ -0,0 +1,25 @@ +CA65 ?= ca65 +LD65 ?= ld65 + +all: reconstructed.nes verify + +prg.o: prg.s symbols.inc locals.inc + $(CA65) -g -o $@ $< + +header.o: header.s + $(CA65) -g -o $@ $< + +chr.o: chr.s + $(CA65) -g -o $@ $< + +reconstructed.nes: header.o prg.o chr.o linker.cfg + $(LD65) -C linker.cfg -m reconstructed.map -Ln reconstructed.lbl -o $@ header.o prg.o chr.o + +verify: reconstructed.nes + cmp reconstructed.nes rom.nes + @echo "Byte-identical ROM verified." + +clean: + rm -f *.o reconstructed.nes reconstructed.map reconstructed.lbl + +.PHONY: all verify clean diff --git a/_wip/Joypad Test Cartridge (U)/copilot/chr.bin b/Joypad Test Cartridge (U)/copilot/chr.bin similarity index 100% rename from _wip/Joypad Test Cartridge (U)/copilot/chr.bin rename to Joypad Test Cartridge (U)/copilot/chr.bin diff --git a/Joypad Test Cartridge (U)/copilot/chr.s b/Joypad Test Cartridge (U)/copilot/chr.s new file mode 100644 index 0000000..a5c5801 --- /dev/null +++ b/Joypad Test Cartridge (U)/copilot/chr.s @@ -0,0 +1,2 @@ +.segment "CHR" + .incbin "chr.bin" diff --git a/_wip/Joypad Test Cartridge (U)/copilot/header.bin b/Joypad Test Cartridge (U)/copilot/header.bin similarity index 100% rename from _wip/Joypad Test Cartridge (U)/copilot/header.bin rename to Joypad Test Cartridge (U)/copilot/header.bin diff --git a/Joypad Test Cartridge (U)/copilot/header.s b/Joypad Test Cartridge (U)/copilot/header.s new file mode 100644 index 0000000..6091055 --- /dev/null +++ b/Joypad Test Cartridge (U)/copilot/header.s @@ -0,0 +1,2 @@ +.segment "HEADER" + .incbin "header.bin" diff --git a/Joypad Test Cartridge (U)/copilot/linker.cfg b/Joypad Test Cartridge (U)/copilot/linker.cfg new file mode 100644 index 0000000..e6835f6 --- /dev/null +++ b/Joypad Test Cartridge (U)/copilot/linker.cfg @@ -0,0 +1,10 @@ +MEMORY { + HEADER: start = $0000, size = $0010, fill = yes; + PRG: start = $C000, size = $4000, file = %O, fill = yes; + CHR: start = $0000, size = $2000, file = %O, fill = yes; +} +SEGMENTS { + HEADER: load = HEADER, type = ro; + PRG: load = PRG, type = ro; + CHR: load = CHR, type = ro; +} diff --git a/Joypad Test Cartridge (U)/copilot/locals.inc b/Joypad Test Cartridge (U)/copilot/locals.inc new file mode 100644 index 0000000..4b19347 --- /dev/null +++ b/Joypad Test Cartridge (U)/copilot/locals.inc @@ -0,0 +1,46 @@ +; Joypad Test Cartridge (U) zero-page aliases - Pass 2 +; Semantic names for addresses with observed usage patterns; ZpXX names for +; addresses whose role is not yet uniquely determined. + +VramPtrLo = $00 ; VRAM write pointer low byte (indirect, used by VramWriteLoop/VramWrite) +VramPtrHi = $01 ; VRAM write pointer high byte (indirect) +VramLen = $02 ; VRAM write data length counter +PpuScrollX = $03 ; PPU horizontal scroll value (latched to $2005) +Zp04 = $04 ; Temporary zero-page storage +RetAddrTempLo = $05 ; Return address temp low byte (used by RetAddrUpdate) +RetAddrTempHi = $06 ; Return address temp high byte (used by RetAddrUpdate) +Zp0D = $0D ; Temporary zero-page storage +PpuMaskShadow = $0E ; PPUMASK shadow register (bits cleared for sprite/bg) +PpuScrollY = $0EC ; PPU vertical scroll value (latched to $2005) +PpuScrollX_Init = $0ED ; PPU horizontal scroll value written during init +PpuMaskValue = $0EE ; PPUMASK value written during init (also shadow) +PpuCtrlShadow = $EF ; PPUCTRL shadow register (NMI bit cleared via and #$7F) +VramToggleFlag = $CF ; Flag toggled each frame (asl/rol at $C095-$C09D) +NmiFlagByte = $E0 ; Flag cleared during NMI ($CD0F) + +; Controller / button state (indexed by button number via $4E,X) +JoyBtnStateBase = $4E ; Base address for indexed button states ($4E,X) +JoyBtnState_P1_A = $4E ; Player 1 button A state/timer +JoyBtnState_P1_B = $4F ; Player 1 button B state/timer +JoyBtnState_P1_Select = $50 ; Player 1 select state/timer (if used) +JoyBtnState_P1_Start = $51 ; Player 1 start state/timer +JoyBtnState_P1_Up = $52 ; Player 1 up state/timer +FrameCounterLo = $53 ; Frame counter low byte (incremented each frame) +FrameCounterHi = $54 ; Frame counter high byte +JoyBtnTimer_P1_Down = $55 ; Player 1 down button timer +JoyBtnTimer_P1_Left = $56 ; Player 1 left button timer +JoyBtnTimer_P1_Right = $57 ; Player 1 right button timer +JoyBtnTimer_P1_Start2 = $5C ; Player 1 start timer (second instance) +JoyBtnTimer_P1_A2 = $61 ; Player 1 button A timer (second instance) +JoyBtnTimer_P2_Down = $5E ; Player 2 down button timer +JoyBtnTimer_P2_Left = $59 ; Player 2 left button timer +JoyBtnTimer_P2_Right = $64 ; Player 2 right button timer +JoyBtnTimer_P2_A = $5F ; Player 2 button A timer +JoyBtnTimer_P2_B = $5A ; Player 2 button B timer + +; Generic zero-page aliases (role not yet uniquely determined) +Zp60 = $60 ; Temporary zero-page storage +Zp65 = $65 ; Temporary zero-page storage +Zp66 = $66 ; Temporary zero-page storage +Zp68 = $68 ; Temporary zero-page storage +Zp69 = $69 ; Temporary zero-page storage diff --git a/_wip/Joypad Test Cartridge (U)/copilot/prg.bin b/Joypad Test Cartridge (U)/copilot/prg.bin similarity index 100% rename from _wip/Joypad Test Cartridge (U)/copilot/prg.bin rename to Joypad Test Cartridge (U)/copilot/prg.bin diff --git a/Joypad Test Cartridge (U)/copilot/prg.s b/Joypad Test Cartridge (U)/copilot/prg.s new file mode 100644 index 0000000..b826cac --- /dev/null +++ b/Joypad Test Cartridge (U)/copilot/prg.s @@ -0,0 +1,1639 @@ +; Joypad Test Cartridge (U) NES disassembly - Pass 1 +; Byte-oriented ca65 source generated from the supplied 16 KiB PRG image. +; Recursively reachable instructions are emitted explicitly with address/byte comments. +; All Pass 1 .incbin spans are now explicit classified bytes; no ROM bytes are hidden. +; Pass 2 replaces address-derived labels, RAM aliases, and table names while preserving byte identity. + +.setcpu "6502" + +.include "symbols.inc" +.include "locals.inc" + +.segment "PRG" + +; ----------------------------------------------------------------------------- +; Routine: Reset +; Global: Initialize CPU, RAM, PPU state, and enter the main program loop. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +Reset: + lda $2002 ; CPU:$C000 PRG:0000 AD 02 20 + bpl Reset ; CPU:$C003 PRG:0003 10 FB +; ----------------------------------------------------------------------------- +; Routine: WaitVblank2 +; Global: Wait for second PPU warm-up vblank. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +WaitVblank2: + lda $2002 ; CPU:$C005 PRG:0005 AD 02 20 + bpl WaitVblank2 ; CPU:$C008 PRG:0008 10 FB +; ----------------------------------------------------------------------------- +; Routine: WaitVblank3 +; Global: Wait for third PPU warm-up vblank. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +WaitVblank3: + lda $2002 ; CPU:$C00A PRG:000A AD 02 20 + bpl WaitVblank3 ; CPU:$C00D PRG:000D 10 FB + lda #$00 ; CPU:$C00F PRG:000F A9 00 + ldx #$00 ; CPU:$C011 PRG:0011 A2 00 +; ----------------------------------------------------------------------------- +; Routine: ClearRAM1_Loop +; Global: Clear RAM loop 1 via indirect indexed store. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +ClearRAM1_Loop: + sta VramPtrLo,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 ClearRAM1_Loop ; CPU:$C02F PRG:002F D0 E2 + lda #$10 ; CPU:$C031 PRG:0031 A9 10 + sta $2000 ; CPU:$C033 PRG:0033 8D 00 20 + sta PpuCtrlShadow ; CPU:$C036 PRG:0036 85 EF + lda #$00 ; CPU:$C038 PRG:0038 A9 00 + sta $2001 ; CPU:$C03A PRG:003A 8D 01 20 + sta PpuMaskValue ; CPU:$C03D PRG:003D 85 EE + lda #$02 ; CPU:$C03F PRG:003F A9 02 + sta $4014 ; CPU:$C041 PRG:0041 8D 14 40 + lda #$00 ; CPU:$C044 PRG:0044 A9 00 + sta $2003 ; CPU:$C046 PRG:0046 8D 03 20 + lda #$00 ; CPU:$C049 PRG:0049 A9 00 + sta PpuScrollX_Init ; CPU:$C04B PRG:004B 85 ED + sta PpuScrollY ; CPU:$C04D PRG:004D 85 EC + jsr $CE3C ; CPU:$C04F PRG:004F 20 3C CE + ldx #$FF ; CPU:$C052 PRG:0052 A2 FF + txs ; CPU:$C054 PRG:0054 9A + jsr $CD2F ; 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: ClearRAM2_Loop +; Global: Clear RAM loop 2 via indirect indexed store. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +ClearRAM2_Loop: + sta VramPtrLo,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 ClearRAM2_Loop ; CPU:$C076 PRG:0076 D0 E5 + lda #$10 ; CPU:$C078 PRG:0078 A9 10 + sta $2000 ; CPU:$C07A PRG:007A 8D 00 20 + sta PpuCtrlShadow ; CPU:$C07D PRG:007D 85 EF + lda #$00 ; CPU:$C07F PRG:007F A9 00 + sta $2001 ; CPU:$C081 PRG:0081 8D 01 20 + sta PpuMaskValue ; 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 $CDEE ; CPU:$C08C PRG:008C 20 EE CD + jsr $C174 ; CPU:$C08F PRG:008F 20 74 C1 + jsr $CD3F ; CPU:$C092 PRG:0092 20 3F CD + asl VramToggleFlag ; CPU:$C095 PRG:0095 06 CF + jsr $CE3C ; CPU:$C097 PRG:0097 20 3C CE + jsr $CD3F ; CPU:$C09A PRG:009A 20 3F CD + rol ; CPU:$C09D PRG:009D 2A +; ---- data $C09E-$C173 (214 bytes) ---- + .byte $CF, $20, $3C, $CE, $A9, $70, $8D, $00, $02, $A9, $35, $8D, $01, $02, $A9, $00 ; CPU:$C09E PRG:009E CF 20 3C CE A9 70 8D 00 02 A9 35 8D 01 02 A9 00 + .byte $8D, $02, $02, $A9, $18, $8D, $03, $02, $A9, $9F, $8D, $00, $40, $A9, $00, $8D ; CPU:$C0AE PRG:00AE 8D 02 02 A9 18 8D 03 02 A9 9F 8D 00 40 A9 00 8D + .byte $01, $40, $A9, $FD, $8D, $02, $40, $A9, $29, $8D, $03, $40, $A9, $00, $8D, $15 ; CPU:$C0BE PRG:00BE 01 40 A9 FD 8D 02 40 A9 29 8D 03 40 A9 00 8D 15 + .byte $40, $20, $39, $CD, $20, $7F, $C1, $A9, $70, $85, $55, $A9, $00, $85, $53, $85 ; CPU:$C0CE PRG:00CE 40 20 39 CD 20 7F C1 A9 70 85 55 A9 00 85 53 85 + .byte $54, $20, $E2, $CC, $20, $4F, $CC, $A2, $01, $36, $40, $36, $40, $36, $40, $B0 ; CPU:$C0DE PRG:00DE 54 20 E2 CC 20 4F CC A2 01 36 40 36 40 36 40 B0 + .byte $46, $36, $40, $B0, $1E, $CA, $30, $03, $4C, $E7, $C0, $E6, $54, $D0, $02, $E6 ; CPU:$C0EE PRG:00EE 46 36 40 B0 1E CA 30 03 4C E7 C0 E6 54 D0 02 E6 + .byte $53, $A9, $00, $C5, $54, $D0, $06, $A9, $38, $C5, $53, $F0, $03, $4C, $DF, $C0 ; CPU:$C0FE PRG:00FE 53 A9 00 C5 54 D0 06 A9 38 C5 53 F0 03 4C DF C0 + .byte $4C, $55, $C0, $A9, $70, $C5, $55, $F0, $12, $A9, $88, $C5, $55, $F0, $12, $A9 ; CPU:$C10E PRG:010E 4C 55 C0 A9 70 C5 55 F0 12 A9 88 C5 55 F0 12 A9 + .byte $A0, $C5, $55, $F0, $03, $4C, $DF, $C0, $4C, $55, $C0, $20, $7F, $C1, $4C, $03 ; CPU:$C11E PRG:011E A0 C5 55 F0 03 4C DF C0 4C 55 C0 20 7F C1 4C 03 + .byte $CB, $20, $7F, $C1, $4C, $3F, $C2, $20, $B1, $CA, $A9, $70, $C5, $55, $F0, $0F ; CPU:$C12E PRG:012E CB 20 7F C1 4C 3F C2 20 B1 CA A9 70 C5 55 F0 0F + .byte $A9, $88, $C5, $55, $F0, $0E, $A9, $A0, $C5, $55, $F0, $0D, $4C, $DF, $C0, $A9 ; CPU:$C13E PRG:013E A9 88 C5 55 F0 0E A9 A0 C5 55 F0 0D 4C DF C0 A9 + .byte $88, $4C, $5C, $C1, $A9, $A0, $4C, $5C, $C1, $A9, $70, $4C, $5C, $C1, $8D, $00 ; CPU:$C14E PRG:014E 88 4C 5C C1 A9 A0 4C 5C C1 A9 70 4C 5C C1 8D 00 + .byte $02, $85, $55, $A9, $01, $0D, $15, $40, $8D, $15, $40, $A9, $29, $8D, $03, $40 ; CPU:$C15E PRG:015E 02 85 55 A9 01 0D 15 40 8D 15 40 A9 29 8D 03 40 + .byte $20, $7F, $C1, $4C, $DF, $C0 ; CPU:$C16E PRG:016E 20 7F C1 4C DF C0 +; ----------------------------------------------------------------------------- +; Routine: ClearOAM_Routine +; Global: Clear OAM ($0200-$02FF) with sprite flush value $F4. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +ClearOAM_Routine: + lda #$F4 ; CPU:$C174 PRG:0174 A9 F4 + ldx #$00 ; CPU:$C176 PRG:0176 A2 00 +; ----------------------------------------------------------------------------- +; Routine: Label_C178 +; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +Label_C178: + sta $0200,X ; CPU:$C178 PRG:0178 9D 00 02 + inx ; CPU:$C17B PRG:017B E8 + bne Label_C178 ; CPU:$C17C PRG:017C D0 FA + rts ; CPU:$C17E PRG:017E 60 +; ---- data $C17F-$CCF6 (2936 bytes) ---- + .byte $8A, $48, $20, $E2, $CC, $20, $4F, $CC, $68, $AA, $A9, $FF, $35, $40, $D0, $F0 ; CPU:$C17F PRG:017F 8A 48 20 E2 CC 20 4F CC 68 AA A9 FF 35 40 D0 F0 + .byte $8A, $48, $20, $E2, $CC, $20, $4F, $CC, $68, $AA, $A9, $FF, $35, $40, $D0, $F0 ; CPU:$C18F PRG:018F 8A 48 20 E2 CC 20 4F CC 68 AA A9 FF 35 40 D0 F0 + .byte $60, $A2, $1F, $BD, $A5, $D6, $9D, $E0, $02, $CA, $10, $F7, $A2, $F0, $20, $E2 ; CPU:$C19F PRG:019F 60 A2 1F BD A5 D6 9D E0 02 CA 10 F7 A2 F0 20 E2 + .byte $CC, $8A, $48, $20, $4F, $CC, $A9, $00, $C5, $40, $D0, $11, $C5, $41, $D0, $0D ; CPU:$C1AF PRG:01AF CC 8A 48 20 4F CC A9 00 C5 40 D0 11 C5 41 D0 0D + .byte $C5, $43, $D0, $09, $C5, $44, $D0, $05, $A9, $C0, $8D, $15, $40, $A0, $00, $A2 ; CPU:$C1BF PRG:01BF C5 43 D0 09 C5 44 D0 05 A9 C0 8D 15 40 A0 00 A2 + .byte $00, $20, $61, $C3, $A0, $20, $E8, $20, $61, $C3, $A0, $40, $E8, $E8, $20, $61 ; CPU:$C1CF PRG:01CF 00 20 61 C3 A0 20 E8 20 61 C3 A0 40 E8 E8 20 61 + .byte $C3, $A0, $60, $E8, $20, $61, $C3, $68, $AA, $CA, $D0, $C2, $4C, $55, $C0, $98 ; CPU:$C1DF PRG:01DF C3 A0 60 E8 20 61 C3 68 AA CA D0 C2 4C 55 C0 98 + .byte $48, $8A, $48, $A2, $1F, $BD, $C5, $D6, $9D, $E0, $02, $CA, $10, $F7, $20, $E2 ; CPU:$C1EF PRG:01EF 48 8A 48 A2 1F BD C5 D6 9D E0 02 CA 10 F7 20 E2 + .byte $CC, $20, $4F, $CC, $68, $AA, $A9, $00, $D5, $40, $F0, $05, $8A, $48, $4C, $FD ; CPU:$C1FF PRG:01FF CC 20 4F CC 68 AA A9 00 D5 40 F0 05 8A 48 4C FD + .byte $C1, $A9, $00, $95, $4E, $8A, $48, $A2, $1F, $A9, $F4, $9D, $E0, $02, $CA, $10 ; CPU:$C20F PRG:020F C1 A9 00 95 4E 8A 48 A2 1F A9 F4 9D E0 02 CA 10 + .byte $FA, $68, $AA, $68, $A8, $A9, $03, $99, $02, $02, $99, $06, $02, $99, $0A, $02 ; CPU:$C21F PRG:021F FA 68 AA 68 A8 A9 03 99 02 02 99 06 02 99 0A 02 + .byte $99, $0E, $02, $99, $12, $02, $99, $16, $02, $99, $1A, $02, $99, $1E, $02, $60 ; CPU:$C22F PRG:022F 99 0E 02 99 12 02 99 16 02 99 1A 02 99 1E 02 60 + .byte $20, $2F, $CD, $A2, $00, $A9, $FF, $9D, $00, $60, $E8, $E0, $06, $D0, $F8, $A9 ; CPU:$C23F PRG:023F 20 2F CD A2 00 A9 FF 9D 00 60 E8 E0 06 D0 F8 A9 + .byte $00, $A2, $00, $95, $00, $9D, $00, $01, $A9, $F4, $9D, $00, $02, $A9, $00, $9D ; CPU:$C24F PRG:024F 00 A2 00 95 00 9D 00 01 A9 F4 9D 00 02 A9 00 9D + .byte $00, $03, $9D, $00, $04, $9D, $00, $05, $9D, $00, $06, $E8, $D0, $E5, $A9, $10 ; CPU:$C25F PRG:025F 00 03 9D 00 04 9D 00 05 9D 00 06 E8 D0 E5 A9 10 + .byte $8D, $00, $20, $85, $EF, $A9, $00, $8D, $01, $20, $85, $EE, $A9, $20, $A2, $24 ; CPU:$C26F PRG:026F 8D 00 20 85 EF A9 00 8D 01 20 85 EE A9 20 A2 24 + .byte $A0, $00, $20, $EE, $CD, $20, $3F, $CD, $06, $CF, $20, $3C, $CE, $20, $3F, $CD ; CPU:$C27F PRG:027F A0 00 20 EE CD 20 3F CD 06 CF 20 3C CE 20 3F CD + .byte $F5, $D1, $20, $3C, $CE, $A9, $51, $8D, $00, $03, $A9, $22, $A2, $28, $20, $98 ; CPU:$C28F PRG:028F F5 D1 20 3C CE A9 51 8D 00 03 A9 22 A2 28 20 98 + .byte $CE, $AF, $D4, $20, $74, $C1, $A2, $DF, $BD, $E3, $D4, $9D, $00, $02, $CA, $D0 ; CPU:$C29F PRG:029F CE AF D4 20 74 C1 A2 DF BD E3 D4 9D 00 02 CA D0 + .byte $F7, $BD, $E3, $D4, $9D, $00, $02, $A9, $FF, $85, $6A, $A9, $00, $85, $4E, $85 ; CPU:$C2AF PRG:02AF F7 BD E3 D4 9D 00 02 A9 FF 85 6A A9 00 85 4E 85 + .byte $4F, $85, $51, $85, $52, $85, $54, $85, $53, $85, $60, $85, $5B, $85, $56, $85 ; CPU:$C2BF PRG:02BF 4F 85 51 85 52 85 54 85 53 85 60 85 5B 85 56 85 + .byte $61, $85, $5C, $85, $57, $85, $65, $85, $66, $85, $68, $85, $69, $A9, $BF, $8D ; CPU:$C2CF PRG:02CF 61 85 5C 85 57 85 65 85 66 85 68 85 69 A9 BF 8D + .byte $00, $40, $20, $39, $CD, $20, $E2, $CC, $20, $4F, $CC, $E6, $6A, $A9, $0F, $C5 ; CPU:$C2DF PRG:02DF 00 40 20 39 CD 20 E2 CC 20 4F CC E6 6A A9 0F C5 + .byte $6A, $F0, $03, $4C, $FE, $C2, $20, $24, $C5, $20, $D7, $C7, $20, $8A, $CA, $A9 ; CPU:$C2EF PRG:02EF 6A F0 03 4C FE C2 20 24 C5 20 D7 C7 20 8A CA A9 + .byte $00, $C5, $40, $D0, $11, $C5, $41, $D0, $0D, $C5, $43, $D0, $09, $C5, $44, $D0 ; CPU:$C2FF PRG:02FF 00 C5 40 D0 11 C5 41 D0 0D C5 43 D0 09 C5 44 D0 + .byte $05, $A9, $C0, $8D, $15, $40, $A0, $00, $A2, $00, $20, $61, $C3, $A0, $20, $E8 ; CPU:$C30F PRG:030F 05 A9 C0 8D 15 40 A0 00 A2 00 20 61 C3 A0 20 E8 + .byte $20, $61, $C3, $A0, $40, $E8, $E8, $20, $61, $C3, $A0, $60, $E8, $20, $61, $C3 ; CPU:$C31F PRG:031F 20 61 C3 A0 40 E8 E8 20 61 C3 A0 60 E8 20 61 C3 + .byte $A9, $FF, $C5, $4E, $D0, $0F, $C5, $4F, $D0, $0B, $C5, $51, $D0, $07, $C5, $52 ; CPU:$C32F PRG:032F A9 FF C5 4E D0 0F C5 4F D0 0B C5 51 D0 07 C5 52 + .byte $D0, $03, $4C, $A0, $C1, $E6, $54, $D0, $02, $E6, $53, $A9, $00, $C5, $54, $D0 ; CPU:$C33F PRG:033F D0 03 4C A0 C1 E6 54 D0 02 E6 53 A9 00 C5 54 D0 + .byte $06, $A9, $38, $C5, $53, $F0, $08, $A9, $22, $8D, $02, $03, $4C, $E4, $C2, $4C ; CPU:$C34F PRG:034F 06 A9 38 C5 53 F0 08 A9 22 8D 02 03 4C E4 C2 4C + .byte $55, $C0, $B5, $40, $48, $20, $B8, $CA, $36, $40, $90, $0C, $76, $40, $36, $65 ; CPU:$C35F PRG:035F 55 C0 B5 40 48 20 B8 CA 36 40 90 0C 76 40 36 65 + .byte $B0, $0F, $F6, $56, $38, $4C, $80, $C3, $76, $40, $36, $65, $90, $03, $F6, $56 ; CPU:$C36F PRG:036F B0 0F F6 56 38 4C 80 C3 76 40 36 65 90 03 F6 56 + .byte $18, $76, $65, $36, $40, $90, $24, $A9, $01, $2D, $15, $40, $D0, $0F, $A9, $01 ; CPU:$C37F PRG:037F 18 76 65 36 40 90 24 A9 01 2D 15 40 D0 0F A9 01 + .byte $8D, $15, $40, $A9, $FD, $8D, $02, $40, $A9, $29, $8D, $03, $40, $A9, $02, $99 ; CPU:$C38F PRG:038F 8D 15 40 A9 FD 8D 02 40 A9 29 8D 03 40 A9 02 99 + .byte $02, $02, $A9, $80, $15, $4E, $95, $4E, $20, $B1, $CA, $36, $40, $90, $0E, $76 ; CPU:$C39F PRG:039F 02 02 A9 80 15 4E 95 4E 20 B1 CA 36 40 90 0E 76 + .byte $40, $36, $65, $36, $65, $B0, $11, $F6, $5B, $38, $4C, $C7, $C3, $76, $40, $36 ; CPU:$C3AF PRG:03AF 40 36 65 36 65 B0 11 F6 5B 38 4C C7 C3 76 40 36 + .byte $65, $36, $65, $90, $03, $F6, $5B, $18, $76, $65, $76, $65, $36, $40, $90, $24 ; CPU:$C3BF PRG:03BF 65 36 65 90 03 F6 5B 18 76 65 76 65 36 40 90 24 + .byte $A9, $01, $2D, $15, $40, $D0, $0F, $A9, $01, $8D, $15, $40, $A9, $C5, $8D, $02 ; CPU:$C3CF PRG:03CF A9 01 2D 15 40 D0 0F A9 01 8D 15 40 A9 C5 8D 02 + .byte $40, $A9, $29, $8D, $03, $40, $A9, $02, $99, $06, $02, $A9, $40, $15, $4E, $95 ; CPU:$C3DF PRG:03DF 40 A9 29 8D 03 40 A9 02 99 06 02 A9 40 15 4E 95 + .byte $4E, $20, $B1, $CA, $36, $40, $90, $24, $A9, $01, $2D, $15, $40, $D0, $0F, $A9 ; CPU:$C3EF PRG:03EF 4E 20 B1 CA 36 40 90 24 A9 01 2D 15 40 D0 0F A9 + .byte $01, $8D, $15, $40, $A9, $7D, $8D, $02, $40, $A9, $29, $8D, $03, $40, $A9, $02 ; CPU:$C3FF PRG:03FF 01 8D 15 40 A9 7D 8D 02 40 A9 29 8D 03 40 A9 02 + .byte $99, $0E, $02, $A9, $20, $15, $4E, $95, $4E, $20, $B1, $CA, $36, $40, $90, $10 ; CPU:$C40F PRG:040F 99 0E 02 A9 20 15 4E 95 4E 20 B1 CA 36 40 90 10 + .byte $76, $40, $36, $65, $36, $65, $36, $65, $B0, $13, $F6, $60, $38, $4C, $3C, $C4 ; CPU:$C41F PRG:041F 76 40 36 65 36 65 36 65 B0 13 F6 60 38 4C 3C C4 + .byte $76, $40, $36, $65, $36, $65, $36, $65, $90, $03, $F6, $60, $18, $76, $65, $76 ; CPU:$C42F PRG:042F 76 40 36 65 36 65 36 65 90 03 F6 60 18 76 65 76 + .byte $65, $76, $65, $36, $40, $90, $24, $A9, $01, $2D, $15, $40, $D0, $0F, $A9, $01 ; CPU:$C43F PRG:043F 65 76 65 36 40 90 24 A9 01 2D 15 40 D0 0F A9 01 + .byte $8D, $15, $40, $A9, $94, $8D, $02, $40, $A9, $29, $8D, $03, $40, $A9, $02, $99 ; CPU:$C44F PRG:044F 8D 15 40 A9 94 8D 02 40 A9 29 8D 03 40 A9 02 99 + .byte $0A, $02, $A9, $10, $15, $4E, $95, $4E, $20, $B1, $CA, $36, $40, $90, $24, $A9 ; CPU:$C45F PRG:045F 0A 02 A9 10 15 4E 95 4E 20 B1 CA 36 40 90 24 A9 + .byte $01, $2D, $15, $40, $D0, $0F, $A9, $01, $8D, $15, $40, $A9, $53, $8D, $02, $40 ; CPU:$C46F PRG:046F 01 2D 15 40 D0 0F A9 01 8D 15 40 A9 53 8D 02 40 + .byte $A9, $29, $8D, $03, $40, $A9, $02, $99, $12, $02, $A9, $08, $15, $4E, $95, $4E ; CPU:$C47F PRG:047F A9 29 8D 03 40 A9 02 99 12 02 A9 08 15 4E 95 4E + .byte $20, $B1, $CA, $36, $40, $90, $24, $A9, $01, $2D, $15, $40, $D0, $0F, $A9, $01 ; CPU:$C48F PRG:048F 20 B1 CA 36 40 90 24 A9 01 2D 15 40 D0 0F A9 01 + .byte $8D, $15, $40, $A9, $2E, $8D, $02, $40, $A9, $29, $8D, $03, $40, $A9, $02, $99 ; CPU:$C49F PRG:049F 8D 15 40 A9 2E 8D 02 40 A9 29 8D 03 40 A9 02 99 + .byte $16, $02, $A9, $04, $15, $4E, $95, $4E, $20, $B1, $CA, $36, $40, $90, $24, $A9 ; CPU:$C4AF PRG:04AF 16 02 A9 04 15 4E 95 4E 20 B1 CA 36 40 90 24 A9 + .byte $01, $2D, $15, $40, $D0, $0F, $A9, $01, $8D, $15, $40, $A9, $0D, $8D, $02, $40 ; CPU:$C4BF PRG:04BF 01 2D 15 40 D0 0F A9 01 8D 15 40 A9 0D 8D 02 40 + .byte $A9, $29, $8D, $03, $40, $A9, $02, $99, $1A, $02, $A9, $02, $15, $4E, $95, $4E ; CPU:$C4CF PRG:04CF A9 29 8D 03 40 A9 02 99 1A 02 A9 02 15 4E 95 4E + .byte $20, $B1, $CA, $36, $40, $90, $24, $A9, $01, $2D, $15, $40, $D0, $0F, $A9, $01 ; CPU:$C4DF PRG:04DF 20 B1 CA 36 40 90 24 A9 01 2D 15 40 D0 0F A9 01 + .byte $8D, $15, $40, $A9, $FE, $8D, $02, $40, $A9, $28, $8D, $03, $40, $A9, $02, $99 ; CPU:$C4EF PRG:04EF 8D 15 40 A9 FE 8D 02 40 A9 28 8D 03 40 A9 02 99 + .byte $1E, $02, $A9, $01, $15, $4E, $95, $4E, $20, $B1, $CA, $68, $95, $40, $A9, $0C ; CPU:$C4FF PRG:04FF 1E 02 A9 01 15 4E 95 4E 20 B1 CA 68 95 40 A9 0C + .byte $35, $40, $C9, $0C, $F0, $0B, $A9, $03, $35, $40, $C9, $03, $F0, $03, $4C, $23 ; CPU:$C50F PRG:050F 35 40 C9 0C F0 0B A9 03 35 40 C9 03 F0 03 4C 23 + .byte $C5, $20, $EE, $C1, $60, $A5, $60, $C9, $04, $30, $3A, $A5, $60, $18, $E9, $04 ; CPU:$C51F PRG:051F C5 20 EE C1 60 A5 60 C9 04 30 3A A5 60 18 E9 04 + .byte $85, $60, $A9, $F4, $8D, $8D, $02, $A5, $60, $C9, $04, $30, $3D, $A5, $60, $18 ; CPU:$C52F PRG:052F 85 60 A9 F4 8D 8D 02 A5 60 C9 04 30 3D A5 60 18 + .byte $E9, $04, $85, $60, $A9, $D4, $8D, $89, $02, $A5, $60, $C9, $04, $30, $3D, $A5 ; CPU:$C53F PRG:053F E9 04 85 60 A9 D4 8D 89 02 A5 60 C9 04 30 3D A5 + .byte $60, $18, $E9, $04, $85, $60, $A9, $D4, $8D, $85, $02, $A9, $E0, $05, $60, $8D ; CPU:$C54F PRG:054F 60 18 E9 04 85 60 A9 D4 8D 85 02 A9 E0 05 60 8D + .byte $81, $02, $4C, $97, $C5, $A9, $F0, $05, $60, $8D, $8D, $02, $A9, $30, $8D, $89 ; CPU:$C55F PRG:055F 81 02 4C 97 C5 A9 F0 05 60 8D 8D 02 A9 30 8D 89 + .byte $02, $8D, $85, $02, $8D, $81, $02, $4C, $97, $C5, $A9, $D0, $05, $60, $8D, $89 ; CPU:$C56F PRG:056F 02 8D 85 02 8D 81 02 4C 97 C5 A9 D0 05 60 8D 89 + .byte $02, $A9, $30, $8D, $85, $02, $8D, $81, $02, $4C, $97, $C5, $A9, $D0, $05, $60 ; CPU:$C57F PRG:057F 02 A9 30 8D 85 02 8D 81 02 4C 97 C5 A9 D0 05 60 + .byte $8D, $85, $02, $A9, $30, $8D, $81, $02, $A5, $5B, $C9, $04, $30, $3A, $A5, $5B ; CPU:$C58F PRG:058F 8D 85 02 A9 30 8D 81 02 A5 5B C9 04 30 3A A5 5B + .byte $18, $E9, $04, $85, $5B, $A9, $F4, $8D, $9D, $02, $A5, $5B, $C9, $04, $30, $3D ; CPU:$C59F PRG:059F 18 E9 04 85 5B A9 F4 8D 9D 02 A5 5B C9 04 30 3D + .byte $A5, $5B, $18, $E9, $04, $85, $5B, $A9, $D4, $8D, $99, $02, $A5, $5B, $C9, $04 ; CPU:$C5AF PRG:05AF A5 5B 18 E9 04 85 5B A9 D4 8D 99 02 A5 5B C9 04 + .byte $30, $3D, $A5, $5B, $18, $E9, $04, $85, $5B, $A9, $D4, $8D, $95, $02, $A9, $E0 ; CPU:$C5BF PRG:05BF 30 3D A5 5B 18 E9 04 85 5B A9 D4 8D 95 02 A9 E0 + .byte $05, $5B, $8D, $91, $02, $4C, $0A, $C6, $A9, $F0, $05, $5B, $8D, $9D, $02, $A9 ; CPU:$C5CF PRG:05CF 05 5B 8D 91 02 4C 0A C6 A9 F0 05 5B 8D 9D 02 A9 + .byte $30, $8D, $99, $02, $8D, $95, $02, $8D, $91, $02, $4C, $0A, $C6, $A9, $D0, $05 ; CPU:$C5DF PRG:05DF 30 8D 99 02 8D 95 02 8D 91 02 4C 0A C6 A9 D0 05 + .byte $5B, $8D, $99, $02, $A9, $30, $8D, $95, $02, $8D, $91, $02, $4C, $0A, $C6, $A9 ; CPU:$C5EF PRG:05EF 5B 8D 99 02 A9 30 8D 95 02 8D 91 02 4C 0A C6 A9 + .byte $D0, $05, $5B, $8D, $95, $02, $A9, $30, $8D, $91, $02, $A5, $56, $C9, $04, $30 ; CPU:$C5FF PRG:05FF D0 05 5B 8D 95 02 A9 30 8D 91 02 A5 56 C9 04 30 + .byte $3A, $A5, $56, $18, $E9, $04, $85, $56, $A9, $F4, $8D, $AD, $02, $A5, $56, $C9 ; CPU:$C60F PRG:060F 3A A5 56 18 E9 04 85 56 A9 F4 8D AD 02 A5 56 C9 + .byte $04, $30, $3D, $A5, $56, $18, $E9, $04, $85, $56, $A9, $D4, $8D, $A9, $02, $A5 ; CPU:$C61F PRG:061F 04 30 3D A5 56 18 E9 04 85 56 A9 D4 8D A9 02 A5 + .byte $56, $C9, $04, $30, $3D, $A5, $56, $18, $E9, $04, $85, $56, $A9, $D4, $8D, $A5 ; CPU:$C62F PRG:062F 56 C9 04 30 3D A5 56 18 E9 04 85 56 A9 D4 8D A5 + .byte $02, $A9, $E0, $05, $56, $8D, $A1, $02, $4C, $7D, $C6, $A9, $F0, $05, $56, $8D ; CPU:$C63F PRG:063F 02 A9 E0 05 56 8D A1 02 4C 7D C6 A9 F0 05 56 8D + .byte $AD, $02, $A9, $30, $8D, $A9, $02, $8D, $A5, $02, $8D, $A1, $02, $4C, $7D, $C6 ; CPU:$C64F PRG:064F AD 02 A9 30 8D A9 02 8D A5 02 8D A1 02 4C 7D C6 + .byte $A9, $D0, $05, $56, $8D, $A9, $02, $A9, $30, $8D, $A5, $02, $8D, $A1, $02, $4C ; CPU:$C65F PRG:065F A9 D0 05 56 8D A9 02 A9 30 8D A5 02 8D A1 02 4C + .byte $7D, $C6, $A9, $D0, $05, $56, $8D, $A5, $02, $A9, $30, $8D, $A1, $02, $A5, $61 ; CPU:$C66F PRG:066F 7D C6 A9 D0 05 56 8D A5 02 A9 30 8D A1 02 A5 61 + .byte $C9, $04, $30, $3A, $A5, $61, $18, $E9, $04, $85, $61, $A9, $F4, $8D, $BD, $02 ; CPU:$C67F PRG:067F C9 04 30 3A A5 61 18 E9 04 85 61 A9 F4 8D BD 02 + .byte $A5, $61, $C9, $04, $30, $3D, $A5, $61, $18, $E9, $04, $85, $61, $A9, $D4, $8D ; CPU:$C68F PRG:068F A5 61 C9 04 30 3D A5 61 18 E9 04 85 61 A9 D4 8D + .byte $B9, $02, $A5, $61, $C9, $04, $30, $3D, $A5, $61, $18, $E9, $04, $85, $61, $A9 ; CPU:$C69F PRG:069F B9 02 A5 61 C9 04 30 3D A5 61 18 E9 04 85 61 A9 + .byte $D4, $8D, $B5, $02, $A9, $E0, $05, $61, $8D, $B1, $02, $4C, $F0, $C6, $A9, $F0 ; CPU:$C6AF PRG:06AF D4 8D B5 02 A9 E0 05 61 8D B1 02 4C F0 C6 A9 F0 + .byte $05, $61, $8D, $BD, $02, $A9, $30, $8D, $B9, $02, $8D, $B5, $02, $8D, $B1, $02 ; CPU:$C6BF PRG:06BF 05 61 8D BD 02 A9 30 8D B9 02 8D B5 02 8D B1 02 + .byte $4C, $F0, $C6, $A9, $D0, $05, $61, $8D, $B9, $02, $A9, $30, $8D, $B5, $02, $8D ; CPU:$C6CF PRG:06CF 4C F0 C6 A9 D0 05 61 8D B9 02 A9 30 8D B5 02 8D + .byte $B1, $02, $4C, $F0, $C6, $A9, $D0, $05, $61, $8D, $B5, $02, $A9, $30, $8D, $B1 ; CPU:$C6DF PRG:06DF B1 02 4C F0 C6 A9 D0 05 61 8D B5 02 A9 30 8D B1 + .byte $02, $A5, $5C, $C9, $04, $30, $3A, $A5, $5C, $18, $E9, $04, $85, $5C, $A9, $F4 ; CPU:$C6EF PRG:06EF 02 A5 5C C9 04 30 3A A5 5C 18 E9 04 85 5C A9 F4 + .byte $8D, $CD, $02, $A5, $5C, $C9, $04, $30, $3D, $A5, $5C, $18, $E9, $04, $85, $5C ; CPU:$C6FF PRG:06FF 8D CD 02 A5 5C C9 04 30 3D A5 5C 18 E9 04 85 5C + .byte $A9, $D4, $8D, $C9, $02, $A5, $5C, $C9, $04, $30, $3D, $A5, $5C, $18, $E9, $04 ; CPU:$C70F PRG:070F A9 D4 8D C9 02 A5 5C C9 04 30 3D A5 5C 18 E9 04 + .byte $85, $5C, $A9, $D4, $8D, $C5, $02, $A9, $E0, $05, $5C, $8D, $C1, $02, $4C, $63 ; CPU:$C71F PRG:071F 85 5C A9 D4 8D C5 02 A9 E0 05 5C 8D C1 02 4C 63 + .byte $C7, $A9, $F0, $05, $5C, $8D, $CD, $02, $A9, $30, $8D, $C9, $02, $8D, $C5, $02 ; CPU:$C72F PRG:072F C7 A9 F0 05 5C 8D CD 02 A9 30 8D C9 02 8D C5 02 + .byte $8D, $C1, $02, $4C, $63, $C7, $A9, $D0, $05, $5C, $8D, $C9, $02, $A9, $30, $8D ; CPU:$C73F PRG:073F 8D C1 02 4C 63 C7 A9 D0 05 5C 8D C9 02 A9 30 8D + .byte $C5, $02, $8D, $C1, $02, $4C, $63, $C7, $A9, $D0, $05, $5C, $8D, $C5, $02, $A9 ; CPU:$C74F PRG:074F C5 02 8D C1 02 4C 63 C7 A9 D0 05 5C 8D C5 02 A9 + .byte $30, $8D, $C1, $02, $A5, $57, $C9, $04, $30, $3A, $A5, $57, $18, $E9, $04, $85 ; CPU:$C75F PRG:075F 30 8D C1 02 A5 57 C9 04 30 3A A5 57 18 E9 04 85 + .byte $57, $A9, $F4, $8D, $DD, $02, $A5, $57, $C9, $04, $30, $3D, $A5, $57, $18, $E9 ; CPU:$C76F PRG:076F 57 A9 F4 8D DD 02 A5 57 C9 04 30 3D A5 57 18 E9 + .byte $04, $85, $57, $A9, $D4, $8D, $D9, $02, $A5, $57, $C9, $04, $30, $3D, $A5, $57 ; CPU:$C77F PRG:077F 04 85 57 A9 D4 8D D9 02 A5 57 C9 04 30 3D A5 57 + .byte $18, $E9, $04, $85, $57, $A9, $D4, $8D, $D5, $02, $A9, $E0, $05, $57, $8D, $D1 ; CPU:$C78F PRG:078F 18 E9 04 85 57 A9 D4 8D D5 02 A9 E0 05 57 8D D1 + .byte $02, $4C, $D6, $C7, $A9, $F0, $05, $57, $8D, $DD, $02, $A9, $30, $8D, $D9, $02 ; CPU:$C79F PRG:079F 02 4C D6 C7 A9 F0 05 57 8D DD 02 A9 30 8D D9 02 + .byte $8D, $D5, $02, $8D, $D1, $02, $4C, $D6, $C7, $A9, $D0, $05, $57, $8D, $D9, $02 ; CPU:$C7AF PRG:07AF 8D D5 02 8D D1 02 4C D6 C7 A9 D0 05 57 8D D9 02 + .byte $A9, $30, $8D, $D5, $02, $8D, $D1, $02, $4C, $D6, $C7, $A9, $D0, $05, $57, $8D ; CPU:$C7BF PRG:07BF A9 30 8D D5 02 8D D1 02 4C D6 C7 A9 D0 05 57 8D + .byte $D5, $02, $A9, $30, $8D, $D1, $02, $60, $A5, $63, $C9, $04, $30, $3A, $A5, $63 ; CPU:$C7CF PRG:07CF D5 02 A9 30 8D D1 02 60 A5 63 C9 04 30 3A A5 63 + .byte $18, $E9, $04, $85, $63, $A9, $F4, $8D, $1D, $03, $A5, $63, $C9, $04, $30, $3D ; CPU:$C7DF PRG:07DF 18 E9 04 85 63 A9 F4 8D 1D 03 A5 63 C9 04 30 3D + .byte $A5, $63, $18, $E9, $04, $85, $63, $A9, $D4, $8D, $15, $03, $A5, $63, $C9, $04 ; CPU:$C7EF PRG:07EF A5 63 18 E9 04 85 63 A9 D4 8D 15 03 A5 63 C9 04 + .byte $30, $3D, $A5, $63, $18, $E9, $04, $85, $63, $A9, $D4, $8D, $0D, $03, $A9, $E0 ; CPU:$C7FF PRG:07FF 30 3D A5 63 18 E9 04 85 63 A9 D4 8D 0D 03 A9 E0 + .byte $05, $63, $8D, $05, $03, $4C, $4A, $C8, $A9, $F0, $05, $63, $8D, $1D, $03, $A9 ; CPU:$C80F PRG:080F 05 63 8D 05 03 4C 4A C8 A9 F0 05 63 8D 1D 03 A9 + .byte $30, $8D, $15, $03, $8D, $0D, $03, $8D, $05, $03, $4C, $4A, $C8, $A9, $D0, $05 ; CPU:$C81F PRG:081F 30 8D 15 03 8D 0D 03 8D 05 03 4C 4A C8 A9 D0 05 + .byte $63, $8D, $15, $03, $A9, $30, $8D, $0D, $03, $8D, $05, $03, $4C, $4A, $C8, $A9 ; CPU:$C82F PRG:082F 63 8D 15 03 A9 30 8D 0D 03 8D 05 03 4C 4A C8 A9 + .byte $D0, $05, $63, $8D, $0D, $03, $A9, $30, $8D, $05, $03, $A5, $5E, $C9, $04, $30 ; CPU:$C83F PRG:083F D0 05 63 8D 0D 03 A9 30 8D 05 03 A5 5E C9 04 30 + .byte $3A, $A5, $5E, $18, $E9, $04, $85, $5E, $A9, $F4, $8D, $1F, $03, $A5, $5E, $C9 ; CPU:$C84F PRG:084F 3A A5 5E 18 E9 04 85 5E A9 F4 8D 1F 03 A5 5E C9 + .byte $04, $30, $3D, $A5, $5E, $18, $E9, $04, $85, $5E, $A9, $D4, $8D, $17, $03, $A5 ; CPU:$C85F PRG:085F 04 30 3D A5 5E 18 E9 04 85 5E A9 D4 8D 17 03 A5 + .byte $5E, $C9, $04, $30, $3D, $A5, $5E, $18, $E9, $04, $85, $5E, $A9, $D4, $8D, $0F ; CPU:$C86F PRG:086F 5E C9 04 30 3D A5 5E 18 E9 04 85 5E A9 D4 8D 0F + .byte $03, $A9, $E0, $05, $5E, $8D, $07, $03, $4C, $BD, $C8, $A9, $F0, $05, $5E, $8D ; CPU:$C87F PRG:087F 03 A9 E0 05 5E 8D 07 03 4C BD C8 A9 F0 05 5E 8D + .byte $1F, $03, $A9, $30, $8D, $17, $03, $8D, $0F, $03, $8D, $07, $03, $4C, $BD, $C8 ; CPU:$C88F PRG:088F 1F 03 A9 30 8D 17 03 8D 0F 03 8D 07 03 4C BD C8 + .byte $A9, $D0, $05, $5E, $8D, $17, $03, $A9, $30, $8D, $0F, $03, $8D, $07, $03, $4C ; CPU:$C89F PRG:089F A9 D0 05 5E 8D 17 03 A9 30 8D 0F 03 8D 07 03 4C + .byte $BD, $C8, $A9, $D0, $05, $5E, $8D, $0F, $03, $A9, $30, $8D, $07, $03, $A5, $59 ; CPU:$C8AF PRG:08AF BD C8 A9 D0 05 5E 8D 0F 03 A9 30 8D 07 03 A5 59 + .byte $C9, $04, $30, $3A, $A5, $59, $18, $E9, $04, $85, $59, $A9, $F4, $8D, $21, $03 ; CPU:$C8BF PRG:08BF C9 04 30 3A A5 59 18 E9 04 85 59 A9 F4 8D 21 03 + .byte $A5, $59, $C9, $04, $30, $3D, $A5, $59, $18, $E9, $04, $85, $59, $A9, $D4, $8D ; CPU:$C8CF PRG:08CF A5 59 C9 04 30 3D A5 59 18 E9 04 85 59 A9 D4 8D + .byte $19, $03, $A5, $59, $C9, $04, $30, $3D, $A5, $59, $18, $E9, $04, $85, $59, $A9 ; CPU:$C8DF PRG:08DF 19 03 A5 59 C9 04 30 3D A5 59 18 E9 04 85 59 A9 + .byte $D4, $8D, $11, $03, $A9, $E0, $05, $59, $8D, $09, $03, $4C, $30, $C9, $A9, $F0 ; CPU:$C8EF PRG:08EF D4 8D 11 03 A9 E0 05 59 8D 09 03 4C 30 C9 A9 F0 + .byte $05, $59, $8D, $21, $03, $A9, $30, $8D, $19, $03, $8D, $11, $03, $8D, $09, $03 ; CPU:$C8FF PRG:08FF 05 59 8D 21 03 A9 30 8D 19 03 8D 11 03 8D 09 03 + .byte $4C, $30, $C9, $A9, $D0, $05, $59, $8D, $19, $03, $A9, $30, $8D, $11, $03, $8D ; CPU:$C90F PRG:090F 4C 30 C9 A9 D0 05 59 8D 19 03 A9 30 8D 11 03 8D + .byte $09, $03, $4C, $30, $C9, $A9, $D0, $05, $59, $8D, $11, $03, $A9, $30, $8D, $09 ; CPU:$C91F PRG:091F 09 03 4C 30 C9 A9 D0 05 59 8D 11 03 A9 30 8D 09 + .byte $03, $A5, $64, $C9, $04, $30, $3A, $A5, $64, $18, $E9, $04, $85, $64, $A9, $F4 ; CPU:$C92F PRG:092F 03 A5 64 C9 04 30 3A A5 64 18 E9 04 85 64 A9 F4 + .byte $8D, $4D, $03, $A5, $64, $C9, $04, $30, $3D, $A5, $64, $18, $E9, $04, $85, $64 ; CPU:$C93F PRG:093F 8D 4D 03 A5 64 C9 04 30 3D A5 64 18 E9 04 85 64 + .byte $A9, $D4, $8D, $45, $03, $A5, $64, $C9, $04, $30, $3D, $A5, $64, $18, $E9, $04 ; CPU:$C94F PRG:094F A9 D4 8D 45 03 A5 64 C9 04 30 3D A5 64 18 E9 04 + .byte $85, $64, $A9, $D4, $8D, $3D, $03, $A9, $E0, $05, $64, $8D, $35, $03, $4C, $A3 ; CPU:$C95F PRG:095F 85 64 A9 D4 8D 3D 03 A9 E0 05 64 8D 35 03 4C A3 + .byte $C9, $A9, $F0, $05, $64, $8D, $4D, $03, $A9, $30, $8D, $45, $03, $8D, $3D, $03 ; CPU:$C96F PRG:096F C9 A9 F0 05 64 8D 4D 03 A9 30 8D 45 03 8D 3D 03 + .byte $8D, $35, $03, $4C, $A3, $C9, $A9, $D0, $05, $64, $8D, $45, $03, $A9, $30, $8D ; CPU:$C97F PRG:097F 8D 35 03 4C A3 C9 A9 D0 05 64 8D 45 03 A9 30 8D + .byte $3D, $03, $8D, $35, $03, $4C, $A3, $C9, $A9, $D0, $05, $64, $8D, $3D, $03, $A9 ; CPU:$C98F PRG:098F 3D 03 8D 35 03 4C A3 C9 A9 D0 05 64 8D 3D 03 A9 + .byte $30, $8D, $35, $03, $A5, $5F, $C9, $04, $30, $3A, $A5, $5F, $18, $E9, $04, $85 ; CPU:$C99F PRG:099F 30 8D 35 03 A5 5F C9 04 30 3A A5 5F 18 E9 04 85 + .byte $5F, $A9, $F4, $8D, $4F, $03, $A5, $5F, $C9, $04, $30, $3D, $A5, $5F, $18, $E9 ; CPU:$C9AF PRG:09AF 5F A9 F4 8D 4F 03 A5 5F C9 04 30 3D A5 5F 18 E9 + .byte $04, $85, $5F, $A9, $D4, $8D, $47, $03, $A5, $5F, $C9, $04, $30, $3D, $A5, $5F ; CPU:$C9BF PRG:09BF 04 85 5F A9 D4 8D 47 03 A5 5F C9 04 30 3D A5 5F + .byte $18, $E9, $04, $85, $5F, $A9, $D4, $8D, $3F, $03, $A9, $E0, $05, $5F, $8D, $37 ; CPU:$C9CF PRG:09CF 18 E9 04 85 5F A9 D4 8D 3F 03 A9 E0 05 5F 8D 37 + .byte $03, $4C, $16, $CA, $A9, $F0, $05, $5F, $8D, $4F, $03, $A9, $30, $8D, $47, $03 ; CPU:$C9DF PRG:09DF 03 4C 16 CA A9 F0 05 5F 8D 4F 03 A9 30 8D 47 03 + .byte $8D, $3F, $03, $8D, $37, $03, $4C, $16, $CA, $A9, $D0, $05, $5F, $8D, $47, $03 ; CPU:$C9EF PRG:09EF 8D 3F 03 8D 37 03 4C 16 CA A9 D0 05 5F 8D 47 03 + .byte $A9, $30, $8D, $3F, $03, $8D, $37, $03, $4C, $16, $CA, $A9, $D0, $05, $5F, $8D ; CPU:$C9FF PRG:09FF A9 30 8D 3F 03 8D 37 03 4C 16 CA A9 D0 05 5F 8D + .byte $3F, $03, $A9, $30, $8D, $37, $03, $A5, $5A, $C9, $04, $30, $3A, $A5, $5A, $18 ; CPU:$CA0F PRG:0A0F 3F 03 A9 30 8D 37 03 A5 5A C9 04 30 3A A5 5A 18 + .byte $E9, $04, $85, $5A, $A9, $F4, $8D, $51, $03, $A5, $5A, $C9, $04, $30, $3D, $A5 ; CPU:$CA1F PRG:0A1F E9 04 85 5A A9 F4 8D 51 03 A5 5A C9 04 30 3D A5 + .byte $5A, $18, $E9, $04, $85, $5A, $A9, $D4, $8D, $49, $03, $A5, $5A, $C9, $04, $30 ; CPU:$CA2F PRG:0A2F 5A 18 E9 04 85 5A A9 D4 8D 49 03 A5 5A C9 04 30 + .byte $3D, $A5, $5A, $18, $E9, $04, $85, $5A, $A9, $D4, $8D, $41, $03, $A9, $E0, $05 ; CPU:$CA3F PRG:0A3F 3D A5 5A 18 E9 04 85 5A A9 D4 8D 41 03 A9 E0 05 + .byte $5A, $8D, $39, $03, $4C, $89, $CA, $A9, $F0, $05, $5A, $8D, $51, $03, $A9, $30 ; CPU:$CA4F PRG:0A4F 5A 8D 39 03 4C 89 CA A9 F0 05 5A 8D 51 03 A9 30 + .byte $8D, $49, $03, $8D, $41, $03, $8D, $39, $03, $4C, $89, $CA, $A9, $D0, $05, $5A ; CPU:$CA5F PRG:0A5F 8D 49 03 8D 41 03 8D 39 03 4C 89 CA A9 D0 05 5A + .byte $8D, $49, $03, $A9, $30, $8D, $41, $03, $8D, $39, $03, $4C, $89, $CA, $A9, $D0 ; CPU:$CA6F PRG:0A6F 8D 49 03 A9 30 8D 41 03 8D 39 03 4C 89 CA A9 D0 + .byte $05, $5A, $8D, $41, $03, $A9, $30, $8D, $39, $03, $60, $A9, $FF, $85, $6A, $A9 ; CPU:$CA7F PRG:0A7F 05 5A 8D 41 03 A9 30 8D 39 03 60 A9 FF 85 6A A9 + .byte $00, $85, $60, $85, $5B, $85, $56, $85, $61, $85, $5C, $85, $57, $85, $63, $85 ; CPU:$CA8F PRG:0A8F 00 85 60 85 5B 85 56 85 61 85 5C 85 57 85 63 85 + .byte $5E, $85, $59, $85, $64, $85, $5F, $85, $5A, $85, $65, $85, $66, $85, $68, $85 ; CPU:$CA9F PRG:0A9F 5E 85 59 85 64 85 5F 85 5A 85 65 85 66 85 68 85 + .byte $69, $60, $A9, $00, $85, $53, $85, $54, $60, $36, $4E, $90, $05, $A9, $00, $99 ; CPU:$CAAF PRG:0AAF 69 60 A9 00 85 53 85 54 60 36 4E 90 05 A9 00 99 + .byte $02, $02, $36, $4E, $90, $05, $A9, $00, $99, $06, $02, $36, $4E, $90, $05, $A9 ; CPU:$CABF PRG:0ABF 02 02 36 4E 90 05 A9 00 99 06 02 36 4E 90 05 A9 + .byte $00, $99, $0E, $02, $36, $4E, $90, $05, $A9, $00, $99, $0A, $02, $36, $4E, $90 ; CPU:$CACF PRG:0ACF 00 99 0E 02 36 4E 90 05 A9 00 99 0A 02 36 4E 90 + .byte $05, $A9, $00, $99, $12, $02, $36, $4E, $90, $05, $A9, $00, $99, $16, $02, $36 ; CPU:$CADF PRG:0ADF 05 A9 00 99 12 02 36 4E 90 05 A9 00 99 16 02 36 + .byte $4E, $90, $05, $A9, $00, $99, $1A, $02, $36, $4E, $90, $05, $A9, $00, $99, $1E ; CPU:$CAEF PRG:0AEF 4E 90 05 A9 00 99 1A 02 36 4E 90 05 A9 00 99 1E + .byte $02, $36, $4E, $60, $20, $2F, $CD, $A2, $00, $A9, $EE, $9D, $00, $60, $E8, $E0 ; CPU:$CAFF PRG:0AFF 02 36 4E 60 20 2F CD A2 00 A9 EE 9D 00 60 E8 E0 + .byte $06, $D0, $F8, $A9, $00, $A2, $00, $95, $00, $9D, $00, $01, $A9, $F4, $9D, $00 ; CPU:$CB0F PRG:0B0F 06 D0 F8 A9 00 A2 00 95 00 9D 00 01 A9 F4 9D 00 + .byte $02, $A9, $00, $9D, $00, $03, $9D, $00, $04, $9D, $00, $05, $9D, $00, $06, $E8 ; CPU:$CB1F PRG:0B1F 02 A9 00 9D 00 03 9D 00 04 9D 00 05 9D 00 06 E8 + .byte $D0, $E5, $A9, $10, $8D, $00, $20, $85, $EF, $A9, $00, $8D, $01, $20, $85, $EE ; CPU:$CB2F PRG:0B2F D0 E5 A9 10 8D 00 20 85 EF A9 00 8D 01 20 85 EE + .byte $A9, $20, $A2, $24, $A0, $00, $20, $EE, $CD, $20, $3F, $CD, $06, $CF, $20, $3C ; CPU:$CB3F PRG:0B3F A9 20 A2 24 A0 00 20 EE CD 20 3F CD 06 CF 20 3C + .byte $CE, $20, $3F, $CD, $63, $D0, $20, $3C, $CE, $20, $74, $C1, $A2, $DF, $BD, $C4 ; CPU:$CB4F PRG:0B4F CE 20 3F CD 63 D0 20 3C CE 20 74 C1 A2 DF BD C4 + .byte $D5, $9D, $00, $02, $CA, $D0, $F7, $BD, $C4, $D5, $9D, $00, $02, $A9, $FF, $85 ; CPU:$CB5F PRG:0B5F D5 9D 00 02 CA D0 F7 BD C4 D5 9D 00 02 A9 FF 85 + .byte $6A, $A9, $00, $85, $4E, $85, $4F, $85, $51, $85, $52, $85, $54, $85, $53, $85 ; CPU:$CB6F PRG:0B6F 6A A9 00 85 4E 85 4F 85 51 85 52 85 54 85 53 85 + .byte $60, $85, $5B, $85, $56, $85, $61, $85, $5C, $85, $57, $85, $65, $85, $66, $85 ; CPU:$CB7F PRG:0B7F 60 85 5B 85 56 85 61 85 5C 85 57 85 65 85 66 85 + .byte $68, $85, $69, $A9, $BF, $8D, $00, $40, $20, $39, $CD, $20, $E2, $CC, $20, $F8 ; CPU:$CB8F PRG:0B8F 68 85 69 A9 BF 8D 00 40 20 39 CD 20 E2 CC 20 F8 + .byte $CB, $E6, $6A, $A9, $0F, $C5, $6A, $F0, $03, $4C, $B1, $CB, $20, $24, $C5, $20 ; CPU:$CB9F PRG:0B9F CB E6 6A A9 0F C5 6A F0 03 4C B1 CB 20 24 C5 20 + .byte $8A, $CA, $A9, $00, $C5, $40, $D0, $09, $C5, $41, $D0, $05, $A9, $00, $8D, $15 ; CPU:$CBAF PRG:0BAF 8A CA A9 00 C5 40 D0 09 C5 41 D0 05 A9 00 8D 15 + .byte $40, $A0, $00, $A2, $00, $20, $11, $CC, $20, $61, $C3, $A0, $20, $E8, $20, $11 ; CPU:$CBBF PRG:0BBF 40 A0 00 A2 00 20 11 CC 20 61 C3 A0 20 E8 20 11 + .byte $CC, $20, $61, $C3, $A9, $FF, $C5, $4E, $D0, $07, $C5, $4F, $D0, $03, $4C, $A0 ; CPU:$CBCF PRG:0BCF CC 20 61 C3 A9 FF C5 4E D0 07 C5 4F D0 03 4C A0 + .byte $C1, $E6, $54, $D0, $02, $E6, $53, $A9, $00, $C5, $54, $D0, $06, $A9, $38, $C5 ; CPU:$CBDF PRG:0BDF C1 E6 54 D0 02 E6 53 A9 00 C5 54 D0 06 A9 38 C5 + .byte $53, $F0, $03, $4C, $9A, $CB, $4C, $55, $C0, $A2, $01, $8E, $16, $40, $CA, $8E ; CPU:$CBEF PRG:0BEF 53 F0 03 4C 9A CB 4C 55 C0 A2 01 8E 16 40 CA 8E + .byte $16, $40, $E8, $A0, $08, $BD, $16, $40, $4A, $36, $40, $88, $D0, $F7, $CA, $F0 ; CPU:$CBFF PRG:0BFF 16 40 E8 A0 08 BD 16 40 4A 36 40 88 D0 F7 CA F0 + .byte $F2, $60, $BD, $16, $40, $4A, $90, $01, $60, $A9, $03, $99, $02, $02, $99, $06 ; CPU:$CC0F PRG:0C0F F2 60 BD 16 40 4A 90 01 60 A9 03 99 02 02 99 06 + .byte $02, $99, $0A, $02, $99, $0E, $02, $99, $12, $02, $99, $16, $02, $99, $1A, $02 ; CPU:$CC1F PRG:0C1F 02 99 0A 02 99 0E 02 99 12 02 99 16 02 99 1A 02 + .byte $99, $1E, $02, $A9, $00, $95, $40, $95, $56, $95, $5B, $95, $60, $95, $65, $95 ; CPU:$CC2F PRG:0C2F 99 1E 02 A9 00 95 40 95 56 95 5B 95 60 95 65 95 + .byte $4E, $8A, $48, $A2, $1F, $A9, $F4, $9D, $E0, $02, $CA, $10, $FA, $68, $AA, $60 ; CPU:$CC3F PRG:0C3F 4E 8A 48 A2 1F A9 F4 9D E0 02 CA 10 FA 68 AA 60 + .byte $A2, $01, $8E, $16, $40, $CA, $8E, $16, $40, $E8, $A0, $08, $BD, $16, $40, $29 ; CPU:$CC4F PRG:0C4F A2 01 8E 16 40 CA 8E 16 40 E8 A0 08 BD 16 40 29 + .byte $03, $C9, $01, $36, $40, $88, $D0, $F4, $CA, $F0, $EF, $A2, $01, $A0, $08, $BD ; CPU:$CC5F PRG:0C5F 03 C9 01 36 40 88 D0 F4 CA F0 EF A2 01 A0 08 BD + .byte $16, $40, $4A, $36, $47, $4A, $36, $45, $88, $D0, $F4, $CA, $F0, $EF, $A2, $01 ; CPU:$CC6F PRG:0C6F 16 40 4A 36 47 4A 36 45 88 D0 F4 CA F0 EF A2 01 + .byte $A0, $08, $BD, $16, $40, $4A, $36, $4B, $4A, $36, $49, $88, $D0, $F4, $CA, $F0 ; CPU:$CC7F PRG:0C7F A0 08 BD 16 40 4A 36 4B 4A 36 49 88 D0 F4 CA F0 + .byte $EF, $A9, $00, $85, $4D, $A5, $49, $C9, $20, $D0, $06, $A9, $80, $05, $4D, $85 ; CPU:$CC8F PRG:0C8F EF A9 00 85 4D A5 49 C9 20 D0 06 A9 80 05 4D 85 + .byte $4D, $A5, $4A, $C9, $10, $D0, $06, $A9, $40, $05, $4D, $85, $4D, $A5, $4B, $C9 ; CPU:$CC9F PRG:0C9F 4D A5 4A C9 10 D0 06 A9 40 05 4D 85 4D A5 4B C9 + .byte $10, $D0, $06, $A9, $20, $05, $4D, $85, $4D, $A5, $4C, $C9, $20, $D0, $06, $A9 ; CPU:$CCAF PRG:0CAF 10 D0 06 A9 20 05 4D 85 4D A5 4C C9 20 D0 06 A9 + .byte $10, $05, $4D, $85, $4D, $A5, $4D, $C9, $C0, $D0, $0A, $A2, $02, $B5, $44, $95 ; CPU:$CCBF PRG:0CBF 10 05 4D 85 4D A5 4D C9 C0 D0 0A A2 02 B5 44 95 + .byte $42, $CA, $D0, $F9, $60, $C9, $30, $D0, $09, $A2, $02, $B5, $46, $95, $42, $CA ; CPU:$CCCF PRG:0CCF 42 CA D0 F9 60 C9 30 D0 09 A2 02 B5 46 95 42 CA + .byte $D0, $F9, $60, $48, $AD, $02, $20, $A5, $EF, $09, $80, $85, $EF, $8D, $00, $20 ; CPU:$CCDF PRG:0CDF D0 F9 60 48 AD 02 20 A5 EF 09 80 85 EF 8D 00 20 + .byte $85, $E0, $68, $24, $E0, $30, $FC, $60 ; CPU:$CCEF PRG:0CEF 85 E0 68 24 E0 30 FC 60 +; ----------------------------------------------------------------------------- +; Routine: NmiHandler +; Global: Per-frame NMI handler: PPU updates, OAM DMA, VRAM burst write. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +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 $CD17 ; CPU:$CCFC PRG:0CFC 20 17 CD + jsr $CD24 ; CPU:$CCFF PRG:0CFF 20 24 CD + lda $0300 ; CPU:$CD02 PRG:0D02 AD 00 03 + beq NmiContinue ; CPU:$CD05 PRG:0D05 F0 03 + jsr $CE4F ; CPU:$CD07 PRG:0D07 20 4F CE +; ----------------------------------------------------------------------------- +; Routine: NmiContinue +; Global: Continue NMI: latch PPU scroll, clear flag byte. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +NmiContinue: + jsr $CE3C ; CPU:$CD0A PRG:0D0A 20 3C CE + lda #$00 ; CPU:$CD0D PRG:0D0D A9 00 + sta NmiFlagByte ; 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: Latch PPUSTATUS, clear NMI bit in shadow, write to PPUCTRL. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +PpuCtrlSetup: + lda $2002 ; CPU:$CD17 PRG:0D17 AD 02 20 + lda PpuCtrlShadow ; CPU:$CD1A PRG:0D1A A5 EF + and #$7F ; CPU:$CD1C PRG:0D1C 29 7F + sta PpuCtrlShadow ; CPU:$CD1E PRG:0D1E 85 EF + sta $2000 ; CPU:$CD20 PRG:0D20 8D 00 20 + rts ; CPU:$CD23 PRG:0D23 60 +; ----------------------------------------------------------------------------- +; Routine: OamDmaSetup +; Global: Set OAMADDR=0 and trigger OAM DMA ($4014=$02). +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +OamDmaSetup: + lda #$00 ; CPU:$CD24 PRG:0D24 A9 00 + sta $2003 ; CPU:$CD26 PRG:0D26 8D 03 20 + lda #$02 ; CPU:$CD29 PRG:0D29 A9 02 + sta $4014 ; CPU:$CD2B PRG:0D2B 8D 14 40 + rts ; CPU:$CD2E PRG:0D2E 60 +; ----------------------------------------------------------------------------- +; Routine: PpuMaskSetup +; Global: Clear sprite/background bits in PPUMASK shadow. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +PpuMaskSetup: + lda PpuMaskValue ; CPU:$CD2F PRG:0D2F A5 EE + and #$E7 ; CPU:$CD31 PRG:0D31 29 E7 + sta PpuMaskValue ; CPU:$CD33 PRG:0D33 85 EE + sta $2001 ; CPU:$CD35 PRG:0D35 8D 01 20 + rts ; CPU:$CD38 PRG:0D38 60 +; ---- data $CD39-$CD3E (6 bytes) ---- + .byte $A5, $EE, $09, $18, $D0, $F4 ; CPU:$CD39 PRG:0D39 A5 EE 09 18 D0 F4 +; ----------------------------------------------------------------------------- +; Routine: VramPtrWrite +; Global: Write VRAM data via pointer table at $0000 (jsr CDC8 + jmp CD99). +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +VramPtrWrite: + jsr $CDC8 ; CPU:$CD3F PRG:0D3F 20 C8 CD + jmp $CD99 ; CPU:$CD42 PRG:0D42 4C 99 CD +; ----------------------------------------------------------------------------- +; Routine: VramWriteLoop +; Global: Loop writing bytes from indirect pointer to PPUDATA. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +VramWriteLoop: + pha ; CPU:$CD45 PRG:0D45 48 + sta $2006 ; CPU:$CD46 PRG:0D46 8D 06 20 + iny ; CPU:$CD49 PRG:0D49 C8 + lda (VramPtrLo),Y ; CPU:$CD4A PRG:0D4A B1 00 + sta $2006 ; CPU:$CD4C PRG:0D4C 8D 06 20 + iny ; CPU:$CD4F PRG:0D4F C8 + lda (VramPtrLo),Y ; CPU:$CD50 PRG:0D50 B1 00 + asl ; CPU:$CD52 PRG:0D52 0A + pha ; CPU:$CD53 PRG:0D53 48 + lda PpuCtrlShadow ; CPU:$CD54 PRG:0D54 A5 EF + ora #$04 ; CPU:$CD56 PRG:0D56 09 04 + bcs Label_CD5C ; CPU:$CD58 PRG:0D58 B0 02 + and #$FB ; CPU:$CD5A PRG:0D5A 29 FB +; ----------------------------------------------------------------------------- +; Routine: Label_CD5C +; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +Label_CD5C: + sta $2000 ; CPU:$CD5C PRG:0D5C 8D 00 20 + sta PpuCtrlShadow ; CPU:$CD5F PRG:0D5F 85 EF + pla ; CPU:$CD61 PRG:0D61 68 + asl ; CPU:$CD62 PRG:0D62 0A + php ; CPU:$CD63 PRG:0D63 08 + bcc Label_CD69 ; CPU:$CD64 PRG:0D64 90 03 + ora #$02 ; CPU:$CD66 PRG:0D66 09 02 + iny ; CPU:$CD68 PRG:0D68 C8 +; ----------------------------------------------------------------------------- +; Routine: Label_CD69 +; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +Label_CD69: + plp ; CPU:$CD69 PRG:0D69 28 + clc ; CPU:$CD6A PRG:0D6A 18 + bne Label_CD6E ; CPU:$CD6B PRG:0D6B D0 01 + sec ; CPU:$CD6D PRG:0D6D 38 +; ----------------------------------------------------------------------------- +; Routine: Label_CD6E +; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +Label_CD6E: + ror ; CPU:$CD6E PRG:0D6E 6A + lsr ; CPU:$CD6F PRG:0D6F 4A + tax ; CPU:$CD70 PRG:0D70 AA +; ----------------------------------------------------------------------------- +; Routine: Label_CD71 +; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +Label_CD71: + bcs Label_CD74 ; CPU:$CD71 PRG:0D71 B0 01 + iny ; CPU:$CD73 PRG:0D73 C8 +; ----------------------------------------------------------------------------- +; Routine: Label_CD74 +; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +Label_CD74: + lda (VramPtrLo),Y ; CPU:$CD74 PRG:0D74 B1 00 + sta $2007 ; CPU:$CD76 PRG:0D76 8D 07 20 + dex ; CPU:$CD79 PRG:0D79 CA + bne Label_CD71 ; CPU:$CD7A PRG:0D7A D0 F5 + pla ; CPU:$CD7C PRG:0D7C 68 + cmp #$3F ; CPU:$CD7D PRG:0D7D C9 3F + bne Label_CD8D ; CPU:$CD7F PRG:0D7F D0 0C + sta $2006 ; CPU:$CD81 PRG:0D81 8D 06 20 + stx $2006 ; CPU:$CD84 PRG:0D84 8E 06 20 + stx $2006 ; CPU:$CD87 PRG:0D87 8E 06 20 + stx $2006 ; CPU:$CD8A PRG:0D8A 8E 06 20 +; ----------------------------------------------------------------------------- +; Routine: Label_CD8D +; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +Label_CD8D: + sec ; CPU:$CD8D PRG:0D8D 38 + tya ; CPU:$CD8E PRG:0D8E 98 + adc VramPtrLo ; CPU:$CD8F PRG:0D8F 65 00 + sta VramPtrLo ; CPU:$CD91 PRG:0D91 85 00 + lda #$00 ; CPU:$CD93 PRG:0D93 A9 00 + adc VramPtrHi ; CPU:$CD95 PRG:0D95 65 01 + sta VramPtrHi ; CPU:$CD97 PRG:0D97 85 01 +; ----------------------------------------------------------------------------- +; Routine: VramPtrTableRead +; Global: Read from pointer table at $0000; handle pointer table opcodes. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +VramPtrTableRead: + ldx $2002 ; CPU:$CD99 PRG:0D99 AE 02 20 + ldy #$00 ; CPU:$CD9C PRG:0D9C A0 00 + lda (VramPtrLo),Y ; CPU:$CD9E PRG:0D9E B1 00 + bpl Label_CDA3 ; CPU:$CDA0 PRG:0DA0 10 01 + rts ; CPU:$CDA2 PRG:0DA2 60 +; ----------------------------------------------------------------------------- +; Routine: Label_CDA3 +; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +Label_CDA3: + cmp #$60 ; CPU:$CDA3 PRG:0DA3 C9 60 + bne Label_CDB1 ; CPU:$CDA5 PRG:0DA5 D0 0A + pla ; CPU:$CDA7 PRG:0DA7 68 + sta VramPtrHi ; CPU:$CDA8 PRG:0DA8 85 01 + pla ; CPU:$CDAA PRG:0DAA 68 + sta VramPtrLo ; CPU:$CDAB PRG:0DAB 85 00 + ldy #$02 ; CPU:$CDAD PRG:0DAD A0 02 + bne Label_CD8D ; CPU:$CDAF PRG:0DAF D0 DC +; ----------------------------------------------------------------------------- +; Routine: Label_CDB1 +; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +Label_CDB1: + cmp #$4C ; CPU:$CDB1 PRG:0DB1 C9 4C + bne VramWriteLoop ; CPU:$CDB3 PRG:0DB3 D0 90 + lda VramPtrLo ; CPU:$CDB5 PRG:0DB5 A5 00 + pha ; CPU:$CDB7 PRG:0DB7 48 + lda VramPtrHi ; CPU:$CDB8 PRG:0DB8 A5 01 + pha ; CPU:$CDBA PRG:0DBA 48 + iny ; CPU:$CDBB PRG:0DBB C8 + lda (VramPtrLo),Y ; CPU:$CDBC PRG:0DBC B1 00 + tax ; CPU:$CDBE PRG:0DBE AA + iny ; CPU:$CDBF PRG:0DBF C8 + lda (VramPtrLo),Y ; CPU:$CDC0 PRG:0DC0 B1 00 + sta VramPtrHi ; CPU:$CDC2 PRG:0DC2 85 01 + stx VramPtrLo ; CPU:$CDC4 PRG:0DC4 86 00 + bcs VramPtrTableRead ; CPU:$CDC6 PRG:0DC6 B0 D1 +; ----------------------------------------------------------------------------- +; Routine: RetAddrUpdate +; Global: Get return address from stack, advance by 2, store back. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +RetAddrUpdate: + tsx ; CPU:$CDC8 PRG:0DC8 BA + lda $0103,X ; CPU:$CDC9 PRG:0DC9 BD 03 01 + sta RetAddrTempLo ; CPU:$CDCC PRG:0DCC 85 05 + lda $0104,X ; CPU:$CDCE PRG:0DCE BD 04 01 + sta RetAddrTempHi ; CPU:$CDD1 PRG:0DD1 85 06 + ldy #$01 ; CPU:$CDD3 PRG:0DD3 A0 01 + lda (RetAddrTempLo),Y ; CPU:$CDD5 PRG:0DD5 B1 05 + sta VramPtrLo ; CPU:$CDD7 PRG:0DD7 85 00 + iny ; CPU:$CDD9 PRG:0DD9 C8 + lda (RetAddrTempLo),Y ; CPU:$CDDA PRG:0DDA B1 05 + sta VramPtrHi ; CPU:$CDDC PRG:0DDC 85 01 + clc ; CPU:$CDDE PRG:0DDE 18 + lda #$02 ; CPU:$CDDF PRG:0DDF A9 02 + adc RetAddrTempLo ; 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 RetAddrTempHi ; 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: Set PPU address and write data bytes to PPUDATA. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +VramWrite: + sta VramPtrLo ; CPU:$CDEE PRG:0DEE 85 00 + stx VramPtrHi ; CPU:$CDF0 PRG:0DF0 86 01 + sty VramLen ; CPU:$CDF2 PRG:0DF2 84 02 + lda $2002 ; CPU:$CDF4 PRG:0DF4 AD 02 20 + lda PpuCtrlShadow ; CPU:$CDF7 PRG:0DF7 A5 EF + and #$FB ; CPU:$CDF9 PRG:0DF9 29 FB + sta $2000 ; CPU:$CDFB PRG:0DFB 8D 00 20 + sta PpuCtrlShadow ; CPU:$CDFE PRG:0DFE 85 EF + lda VramPtrLo ; CPU:$CE00 PRG:0E00 A5 00 + sta $2006 ; CPU:$CE02 PRG:0E02 8D 06 20 + ldy #$00 ; CPU:$CE05 PRG:0E05 A0 00 + sty $2006 ; CPU:$CE07 PRG:0E07 8C 06 20 + ldx #$04 ; CPU:$CE0A PRG:0E0A A2 04 + cmp #$20 ; CPU:$CE0C PRG:0E0C C9 20 + bcs Label_CE12 ; CPU:$CE0E PRG:0E0E B0 02 + ldx VramLen ; CPU:$CE10 PRG:0E10 A6 02 +; ----------------------------------------------------------------------------- +; Routine: Label_CE12 +; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +Label_CE12: + ldy #$00 ; CPU:$CE12 PRG:0E12 A0 00 + lda VramPtrHi ; CPU:$CE14 PRG:0E14 A5 01 +; ----------------------------------------------------------------------------- +; Routine: Label_CE16 +; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +Label_CE16: + sta $2007 ; CPU:$CE16 PRG:0E16 8D 07 20 + dey ; CPU:$CE19 PRG:0E19 88 + bne Label_CE16 ; CPU:$CE1A PRG:0E1A D0 FA + dex ; CPU:$CE1C PRG:0E1C CA + bne Label_CE16 ; CPU:$CE1D PRG:0E1D D0 F7 + ldy VramLen ; CPU:$CE1F PRG:0E1F A4 02 + lda VramPtrLo ; CPU:$CE21 PRG:0E21 A5 00 + cmp #$20 ; CPU:$CE23 PRG:0E23 C9 20 + bcc Label_CE39 ; CPU:$CE25 PRG:0E25 90 12 + adc #$02 ; CPU:$CE27 PRG:0E27 69 02 + sta $2006 ; CPU:$CE29 PRG:0E29 8D 06 20 + lda #$C0 ; CPU:$CE2C PRG:0E2C A9 C0 + sta $2006 ; CPU:$CE2E PRG:0E2E 8D 06 20 + ldx #$40 ; CPU:$CE31 PRG:0E31 A2 40 +; ----------------------------------------------------------------------------- +; Routine: Label_CE33 +; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +Label_CE33: + sty $2007 ; CPU:$CE33 PRG:0E33 8C 07 20 + dex ; CPU:$CE36 PRG:0E36 CA + bne Label_CE33 ; CPU:$CE37 PRG:0E37 D0 FA +; ----------------------------------------------------------------------------- +; Routine: Label_CE39 +; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +Label_CE39: + ldx VramPtrHi ; CPU:$CE39 PRG:0E39 A6 01 + rts ; CPU:$CE3B PRG:0E3B 60 +; ----------------------------------------------------------------------------- +; Routine: PpuScrollLatch +; Global: Latch PPU scroll (X/Y) and control register. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +PpuScrollLatch: + lda $2002 ; CPU:$CE3C PRG:0E3C AD 02 20 + lda PpuScrollX_Init ; CPU:$CE3F PRG:0E3F A5 ED + sta $2005 ; CPU:$CE41 PRG:0E41 8D 05 20 + lda PpuScrollY ; CPU:$CE44 PRG:0E44 A5 EC + sta $2005 ; CPU:$CE46 PRG:0E46 8D 05 20 + lda PpuCtrlShadow ; CPU:$CE49 PRG:0E49 A5 EF + sta $2000 ; CPU:$CE4B PRG:0E4B 8D 00 20 + rts ; CPU:$CE4E PRG:0E4E 60 +; ----------------------------------------------------------------------------- +; Routine: VramBurstWrite +; Global: Burst-write VRAM data from table at $0302. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +VramBurstWrite: + lda PpuCtrlShadow ; CPU:$CE4F PRG:0E4F A5 EF + and #$FB ; CPU:$CE51 PRG:0E51 29 FB + sta $2000 ; CPU:$CE53 PRG:0E53 8D 00 20 + sta PpuCtrlShadow ; CPU:$CE56 PRG:0E56 85 EF + ldx $2002 ; CPU:$CE58 PRG:0E58 AE 02 20 + ldy #$00 ; CPU:$CE5B PRG:0E5B A0 00 + beq Label_CE8A ; CPU:$CE5D PRG:0E5D F0 2B +; ----------------------------------------------------------------------------- +; Routine: Label_CE5F +; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +Label_CE5F: + pha ; CPU:$CE5F PRG:0E5F 48 + sta $2006 ; CPU:$CE60 PRG:0E60 8D 06 20 + iny ; CPU:$CE63 PRG:0E63 C8 + lda $0302,Y ; CPU:$CE64 PRG:0E64 B9 02 03 + sta $2006 ; CPU:$CE67 PRG:0E67 8D 06 20 + iny ; CPU:$CE6A PRG:0E6A C8 + ldx $0302,Y ; CPU:$CE6B PRG:0E6B BE 02 03 +; ----------------------------------------------------------------------------- +; Routine: Label_CE6E +; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +Label_CE6E: + iny ; CPU:$CE6E PRG:0E6E C8 + lda $0302,Y ; CPU:$CE6F PRG:0E6F B9 02 03 + sta $2007 ; CPU:$CE72 PRG:0E72 8D 07 20 + dex ; CPU:$CE75 PRG:0E75 CA + bne Label_CE6E ; CPU:$CE76 PRG:0E76 D0 F6 + pla ; CPU:$CE78 PRG:0E78 68 + cmp #$3F ; CPU:$CE79 PRG:0E79 C9 3F + bne Label_CE89 ; CPU:$CE7B PRG:0E7B D0 0C + sta $2006 ; CPU:$CE7D PRG:0E7D 8D 06 20 + stx $2006 ; CPU:$CE80 PRG:0E80 8E 06 20 + stx $2006 ; CPU:$CE83 PRG:0E83 8E 06 20 + stx $2006 ; CPU:$CE86 PRG:0E86 8E 06 20 +; ----------------------------------------------------------------------------- +; Routine: Label_CE89 +; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +Label_CE89: + iny ; CPU:$CE89 PRG:0E89 C8 +; ----------------------------------------------------------------------------- +; Routine: Label_CE8A +; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage. +; Local: Continues its parent routine along the condition or operation encoded in this label, +; then returns, branches again, or rejoins shared code as documented by the instructions. +; Parameters: Undetermined in Pass 1 unless implied by the caller. +; Returns: Undetermined in Pass 1; status flags and registers may carry results. +; Clobbers: Undetermined in Pass 1. +; ----------------------------------------------------------------------------- +Label_CE8A: + lda $0302,Y ; CPU:$CE8A PRG:0E8A B9 02 03 + bpl Label_CE5F ; 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 +; ---- data $CE98-$FFFF (12648 bytes) ---- + .byte $85, $03, $86, $02, $20, $C8, $CD, $A0, $00, $B1, $00, $29, $0F, $85, $04, $B1 ; CPU:$CE98 PRG:0E98 85 03 86 02 20 C8 CD A0 00 B1 00 29 0F 85 04 B1 + .byte $00, $4A, $4A, $4A, $4A, $85, $05, $AE, $01, $03, $A5, $03, $9D, $02, $03, $20 ; CPU:$CEA8 PRG:0EA8 00 4A 4A 4A 4A 85 05 AE 01 03 A5 03 9D 02 03 20 + .byte $F3, $CE, $A5, $02, $9D, $02, $03, $20, $F3, $CE, $A5, $04, $85, $06, $9D, $02 ; CPU:$CEB8 PRG:0EB8 F3 CE A5 02 9D 02 03 20 F3 CE A5 04 85 06 9D 02 + .byte $03, $20, $F3, $CE, $C8, $B1, $00, $9D, $02, $03, $C6, $06, $D0, $F3, $20, $F3 ; CPU:$CEC8 PRG:0EC8 03 20 F3 CE C8 B1 00 9D 02 03 C6 06 D0 F3 20 F3 + .byte $CE, $8E, $01, $03, $18, $A9, $20, $65, $02, $85, $02, $A9, $00, $65, $03, $85 ; CPU:$CED8 PRG:0ED8 CE 8E 01 03 18 A9 20 65 02 85 02 A9 00 65 03 85 + .byte $03, $C6, $05, $D0, $C5, $A9, $FF, $9D, $02, $03, $60, $E8, $EC, $00, $03, $90 ; CPU:$CEE8 PRG:0EE8 03 C6 05 D0 C5 A9 FF 9D 02 03 60 E8 EC 00 03 90 + .byte $0C, $AE, $01, $03, $A9, $FF, $9D, $02, $03, $68, $68, $A9, $01, $60, $3F, $00 ; CPU:$CEF8 PRG:0EF8 0C AE 01 03 A9 FF 9D 02 03 68 68 A9 01 60 3F 00 + .byte $20, $0F, $16, $00, $30, $0F, $1A, $2A, $30, $0F, $1A, $00, $30, $0F, $30, $00 ; CPU:$CF08 PRG:0F08 20 0F 16 00 30 0F 1A 2A 30 0F 1A 00 30 0F 30 00 + .byte $30, $0F, $16, $00, $30, $0F, $1A, $2A, $30, $0F, $1A, $00, $30, $0F, $30, $00 ; CPU:$CF18 PRG:0F18 30 0F 16 00 30 0F 1A 2A 30 0F 1A 00 30 0F 30 00 + .byte $30, $FF, $20, $A2, $1C, $60, $61, $61, $61, $61, $61, $61, $61, $61, $61, $61 ; CPU:$CF28 PRG:0F28 30 FF 20 A2 1C 60 61 61 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:$CF38 PRG:0F38 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 61 + .byte $66, $20, $C2, $1C, $64, $70, $71, $72, $73, $74, $75, $76, $77, $78, $79, $7A ; CPU:$CF48 PRG:0F48 66 20 C2 1C 64 70 71 72 73 74 75 76 77 78 79 7A + .byte $7B, $24, $7D, $7E, $7F, $A0, $A1, $A2, $A3, $A4, $A5, $A6, $A7, $A8, $A9, $67 ; CPU:$CF58 PRG:0F58 7B 24 7D 7E 7F A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 67 + .byte $20, $E2, $1C, $64, $80, $81, $82, $83, $84, $85, $86, $87, $88, $89, $8A, $8B ; CPU:$CF68 PRG:0F68 20 E2 1C 64 80 81 82 83 84 85 86 87 88 89 8A 8B + .byte $24, $8D, $8E, $8F, $B0, $B1, $24, $B3, $B4, $B5, $B6, $B7, $B8, $B9, $67, $21 ; CPU:$CF78 PRG:0F78 24 8D 8E 8F B0 B1 24 B3 B4 B5 B6 B7 B8 B9 67 21 + .byte $02, $1C, $64, $90, $91, $92, $93, $94, $95, $96, $97, $98, $99, $9A, $9B, $9C ; CPU:$CF88 PRG:0F88 02 1C 64 90 91 92 93 94 95 96 97 98 99 9A 9B 9C + .byte $9D, $9E, $9F, $C0, $C1, $24, $C3, $C4, $C5, $C6, $C7, $C8, $C9, $67, $21, $22 ; CPU:$CF98 PRG:0F98 9D 9E 9F C0 C1 24 C3 C4 C5 C6 C7 C8 C9 67 21 22 + .byte $1C, $62, $63, $63, $63, $63, $63, $63, $63, $63, $63, $63, $63, $63, $63, $63 ; CPU:$CFA8 PRG:0FA8 1C 62 63 63 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, $65, $21, $C5, $18 ; CPU:$CFB8 PRG:0FB8 63 63 63 63 63 63 63 63 63 63 63 63 65 21 C5 18 + .byte $01, $24, $17, $18, $1B, $16, $0A, $15, $24, $0C, $18, $17, $1D, $1B, $18, $15 ; CPU:$CFC8 PRG:0FC8 01 24 17 18 1B 16 0A 15 24 0C 18 17 1D 1B 18 15 + .byte $15, $0E, $1B, $24, $1D, $0E, $1C, $1D, $22, $25, $18, $02, $24, $04, $24, $19 ; CPU:$CFD8 PRG:0FD8 15 0E 1B 24 1D 0E 1C 1D 22 25 18 02 24 04 24 19 + .byte $15, $0A, $22, $24, $0C, $18, $17, $1D, $1B, $18, $15, $15, $0E, $1B, $24, $1D ; CPU:$CFE8 PRG:0FE8 15 0A 22 24 0C 18 17 1D 1B 18 15 15 0E 1B 24 1D + .byte $0E, $1C, $1D, $22, $85, $18, $03, $24, $1B, $0E, $1D, $1E, $1B, $17, $24, $1D ; CPU:$CFF8 PRG:0FF8 0E 1C 1D 22 85 18 03 24 1B 0E 1D 1E 1B 17 24 1D + .byte $18, $24, $16, $0A, $12, $17, $24, $16, $0E, $17, $1E, $24, $24, $24, $23, $C0 ; CPU:$D008 PRG:1008 18 24 16 0A 12 17 24 16 0E 17 1E 24 24 24 23 C0 + .byte $10, $00, $00, $00, $00, $00, $00, $00, $00, $44, $55, $55, $55, $55, $55, $55 ; CPU:$D018 PRG:1018 10 00 00 00 00 00 00 00 00 44 55 55 55 55 55 55 + .byte $11, $23, $D0, $10, $04, $05, $05, $05, $05, $05, $05, $01, $00, $00, $00, $00 ; CPU:$D028 PRG:1028 11 23 D0 10 04 05 05 05 05 05 05 01 00 00 00 00 + .byte $00, $00, $00, $00, $23, $E0, $10, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; CPU:$D038 PRG:1038 00 00 00 00 23 E0 10 00 00 00 00 00 00 00 00 00 + .byte $00, $00, $00, $00, $00, $00, $00, $23, $F0, $10, $00, $00, $00, $00, $00, $00 ; CPU:$D048 PRG:1048 00 00 00 00 00 00 00 23 F0 10 00 00 00 00 00 00 + .byte $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $20, $62, $1A, $1D, $1E ; CPU:$D058 PRG:1058 00 00 00 00 00 00 00 00 00 00 FF 20 62 1A 1D 1E + .byte $1B, $0B, $18, $24, $1C, $24, $0B, $24, $0A, $24, $24, $02, $24, $19, $15, $0A ; CPU:$D068 PRG:1068 1B 0B 18 24 1C 24 0B 24 0A 24 24 02 24 19 15 0A + .byte $22, $0E, $1B, $24, $1D, $0E, $1C, $1D, $20, $8F, $0D, $40, $42, $42, $42, $42 ; CPU:$D078 PRG:1078 22 0E 1B 24 1D 0E 1C 1D 20 8F 0D 40 42 42 42 42 + .byte $42, $42, $42, $42, $42, $42, $42, $41, $20, $AF, $0D, $47, $24, $24, $24, $24 ; CPU:$D088 PRG:1088 42 42 42 42 42 42 42 41 20 AF 0D 47 24 24 24 24 + .byte $24, $01, $24, $28, $29, $2A, $2B, $46, $20, $CF, $0D, $47, $24, $4A, $24, $24 ; CPU:$D098 PRG:1098 24 01 24 28 29 2A 2B 46 20 CF 0D 47 24 4A 24 24 + .byte $24, $24, $24, $24, $24, $24, $24, $46, $20, $EF, $0D, $47, $24, $24, $24, $24 ; CPU:$D0A8 PRG:10A8 24 24 24 24 24 24 24 46 20 EF 0D 47 24 24 24 24 + .byte $24, $26, $24, $24, $24, $26, $24, $46, $21, $0F, $0D, $44, $43, $43, $43, $43 ; CPU:$D0B8 PRG:10B8 24 26 24 24 24 26 24 46 21 0F 0D 44 43 43 43 43 + .byte $43, $43, $43, $43, $43, $43, $43, $45, $21, $4F, $0D, $40, $42, $42, $42, $42 ; CPU:$D0C8 PRG:10C8 43 43 43 43 43 43 43 45 21 4F 0D 40 42 42 42 42 + .byte $42, $42, $42, $42, $42, $42, $42, $41, $21, $6F, $0D, $47, $24, $24, $24, $24 ; CPU:$D0D8 PRG:10D8 42 42 42 42 42 42 42 41 21 6F 0D 47 24 24 24 24 + .byte $24, $02, $24, $28, $29, $2A, $2B, $46, $21, $8F, $0D, $47, $24, $4A, $24, $24 ; CPU:$D0E8 PRG:10E8 24 02 24 28 29 2A 2B 46 21 8F 0D 47 24 4A 24 24 + .byte $24, $24, $24, $24, $24, $24, $24, $46, $21, $AF, $0D, $47, $24, $24, $24, $24 ; CPU:$D0F8 PRG:10F8 24 24 24 24 24 24 24 46 21 AF 0D 47 24 24 24 24 + .byte $24, $26, $24, $24, $24, $26, $24, $46, $21, $CF, $0D, $44, $43, $43, $43, $43 ; CPU:$D108 PRG:1108 24 26 24 24 24 26 24 46 21 CF 0D 44 43 43 43 43 + .byte $43, $43, $43, $43, $43, $43, $43, $45, $20, $A6, $01, $D1, $21, $06, $01, $2C ; CPU:$D118 PRG:1118 43 43 43 43 43 43 43 45 20 A6 01 D1 21 06 01 2C + .byte $21, $66, $01, $D1, $21, $C6, $01, $2C, $20, $87, $07, $58, $53, $5A, $53, $5A ; CPU:$D128 PRG:1128 21 66 01 D1 21 C6 01 2C 20 87 07 58 53 5A 53 5A + .byte $53, $57, $20, $A7, $07, $50, $24, $54, $24, $54, $24, $51, $20, $C7, $07, $50 ; CPU:$D138 PRG:1138 53 57 20 A7 07 50 24 54 24 54 24 51 20 C7 07 50 + .byte $24, $54, $24, $54, $24, $51, $20, $E7, $07, $50, $24, $54, $24, $54, $24, $51 ; CPU:$D148 PRG:1148 24 54 24 54 24 51 20 E7 07 50 24 54 24 54 24 51 + .byte $21, $07, $07, $50, $24, $54, $24, $54, $24, $51, $21, $27, $07, $56, $52, $59 ; CPU:$D158 PRG:1158 21 07 07 50 24 54 24 54 24 51 21 27 07 56 52 59 + .byte $52, $59, $52, $55, $21, $47, $07, $58, $53, $5A, $53, $5A, $53, $57, $21, $67 ; CPU:$D168 PRG:1168 52 59 52 55 21 47 07 58 53 5A 53 5A 53 57 21 67 + .byte $07, $50, $24, $54, $24, $54, $24, $51, $21, $87, $07, $50, $24, $54, $24, $54 ; CPU:$D178 PRG:1178 07 50 24 54 24 54 24 51 21 87 07 50 24 54 24 54 + .byte $24, $51, $21, $A7, $07, $50, $24, $54, $24, $54, $24, $51, $21, $C7, $07, $50 ; CPU:$D188 PRG:1188 24 51 21 A7 07 50 24 54 24 54 24 51 21 C7 07 50 + .byte $24, $54, $24, $54, $24, $51, $21, $E7, $07, $56, $52, $59, $52, $59, $52, $55 ; CPU:$D198 PRG:1198 24 54 24 54 24 51 21 E7 07 56 52 59 52 59 52 55 + .byte $23, $C0, $10, $40, $50, $50, $50, $50, $50, $50, $00, $00, $00, $00, $00, $00 ; CPU:$D1A8 PRG:11A8 23 C0 10 40 50 50 50 50 50 50 00 00 00 00 00 00 + .byte $03, $00, $00, $23, $D0, $10, $00, $00, $00, $00, $00, $30, $00, $00, $00, $00 ; CPU:$D1B8 PRG:11B8 03 00 00 23 D0 10 00 00 00 00 00 30 00 00 00 00 + .byte $00, $00, $00, $00, $00, $00, $23, $E0, $10, $00, $00, $00, $00, $00, $03, $00 ; CPU:$D1C8 PRG:11C8 00 00 00 00 00 00 23 E0 10 00 00 00 00 00 03 00 + .byte $00, $00, $00, $00, $00, $00, $30, $00, $00, $23, $F0, $10, $00, $00, $00, $00 ; CPU:$D1D8 PRG:11D8 00 00 00 00 00 00 30 00 00 23 F0 10 00 00 00 00 + .byte $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $FF, $20, $62, $1A ; CPU:$D1E8 PRG:11E8 00 00 00 00 00 00 00 00 00 00 00 00 FF 20 62 1A + .byte $1D, $1E, $1B, $0B, $18, $24, $1C, $24, $0B, $24, $0A, $24, $24, $04, $24, $19 ; CPU:$D1F8 PRG:11F8 1D 1E 1B 0B 18 24 1C 24 0B 24 0A 24 24 04 24 19 + .byte $15, $0A, $22, $0E, $1B, $24, $1D, $0E, $1C, $1D, $20, $8F, $0D, $40, $42, $42 ; CPU:$D208 PRG:1208 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:$D218 PRG:1218 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:$D228 PRG:1228 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:$D238 PRG:1238 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:$D248 PRG:1248 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:$D258 PRG:1258 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:$D268 PRG:1268 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:$D278 PRG:1278 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:$D288 PRG:1288 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:$D298 PRG:1298 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, $22, $0F, $0D, $40, $42, $42 ; CPU:$D2A8 PRG:12A8 43 43 43 43 43 43 43 43 43 45 22 0F 0D 40 42 42 + .byte $42, $42, $42, $42, $42, $42, $42, $42, $42, $41, $22, $2F, $0D, $47, $24, $24 ; CPU:$D2B8 PRG:12B8 42 42 42 42 42 42 42 42 42 41 22 2F 0D 47 24 24 + .byte $24, $24, $24, $03, $24, $28, $29, $2A, $2B, $46, $22, $4F, $0D, $47, $24, $4A ; CPU:$D2C8 PRG:12C8 24 24 24 03 24 28 29 2A 2B 46 22 4F 0D 47 24 4A + .byte $24, $24, $24, $24, $24, $24, $24, $24, $24, $46, $22, $6F, $0D, $47, $24, $24 ; CPU:$D2D8 PRG:12D8 24 24 24 24 24 24 24 24 24 46 22 6F 0D 47 24 24 + .byte $24, $24, $24, $26, $24, $24, $24, $26, $24, $46, $22, $8F, $0D, $44, $43, $43 ; CPU:$D2E8 PRG:12E8 24 24 24 26 24 24 24 26 24 46 22 8F 0D 44 43 43 + .byte $43, $43, $43, $43, $43, $43, $43, $43, $43, $45, $22, $CF, $0D, $40, $42, $42 ; CPU:$D2F8 PRG:12F8 43 43 43 43 43 43 43 43 43 45 22 CF 0D 40 42 42 + .byte $42, $42, $42, $42, $42, $42, $42, $42, $42, $41, $22, $EF, $0D, $47, $24, $24 ; CPU:$D308 PRG:1308 42 42 42 42 42 42 42 42 42 41 22 EF 0D 47 24 24 + .byte $24, $24, $24, $04, $24, $28, $29, $2A, $2B, $46, $23, $0F, $0D, $47, $24, $4A ; CPU:$D318 PRG:1318 24 24 24 04 24 28 29 2A 2B 46 23 0F 0D 47 24 4A + .byte $24, $24, $24, $24, $24, $24, $24, $24, $24, $46, $23, $2F, $0D, $47, $24, $24 ; CPU:$D328 PRG:1328 24 24 24 24 24 24 24 24 24 46 23 2F 0D 47 24 24 + .byte $24, $24, $24, $26, $24, $24, $24, $26, $24, $46, $23, $4F, $0D, $44, $43, $43 ; CPU:$D338 PRG:1338 24 24 24 26 24 24 24 26 24 46 23 4F 0D 44 43 43 + .byte $43, $43, $43, $43, $43, $43, $43, $43, $43, $45, $20, $A6, $01, $D1, $21, $06 ; CPU:$D348 PRG:1348 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, $22, $26, $01, $D1, $22, $86 ; CPU:$D358 PRG:1358 01 2C 21 66 01 D1 21 C6 01 2C 22 26 01 D1 22 86 + .byte $01, $2C, $22, $E6, $01, $D1, $23, $46, $01, $2C, $20, $87, $07, $58, $53, $5A ; CPU:$D368 PRG:1368 01 2C 22 E6 01 D1 23 46 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:$D378 PRG:1378 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:$D388 PRG:1388 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:$D398 PRG:1398 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:$D3A8 PRG:13A8 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:$D3B8 PRG:13B8 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:$D3C8 PRG:13C8 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:$D3D8 PRG:13D8 07 50 24 54 24 54 24 51 21 E7 07 56 52 59 52 59 + .byte $52, $55, $22, $07, $07, $58, $53, $5A, $53, $5A, $53, $57, $22, $27, $07, $50 ; CPU:$D3E8 PRG:13E8 52 55 22 07 07 58 53 5A 53 5A 53 57 22 27 07 50 + .byte $24, $54, $24, $54, $24, $51, $22, $47, $07, $50, $24, $54, $24, $54, $24, $51 ; CPU:$D3F8 PRG:13F8 24 54 24 54 24 51 22 47 07 50 24 54 24 54 24 51 + .byte $22, $67, $07, $50, $24, $54, $24, $54, $24, $51, $22, $87, $07, $50, $24, $54 ; CPU:$D408 PRG:1408 22 67 07 50 24 54 24 54 24 51 22 87 07 50 24 54 + .byte $24, $54, $24, $51, $22, $A7, $07, $56, $52, $59, $52, $59, $52, $55, $22, $C7 ; CPU:$D418 PRG:1418 24 54 24 51 22 A7 07 56 52 59 52 59 52 55 22 C7 + .byte $07, $58, $53, $5A, $53, $5A, $53, $57, $22, $E7, $07, $50, $24, $54, $24, $54 ; CPU:$D428 PRG:1428 07 58 53 5A 53 5A 53 57 22 E7 07 50 24 54 24 54 + .byte $24, $51, $23, $07, $07, $50, $24, $54, $24, $54, $24, $51, $23, $27, $07, $50 ; CPU:$D438 PRG:1438 24 51 23 07 07 50 24 54 24 54 24 51 23 27 07 50 + .byte $24, $54, $24, $54, $24, $51, $23, $47, $07, $50, $24, $54, $24, $54, $24, $51 ; CPU:$D448 PRG:1448 24 54 24 54 24 51 23 47 07 50 24 54 24 54 24 51 + .byte $23, $67, $07, $56, $52, $59, $52, $59, $52, $55, $23, $C0, $10, $40, $50, $50 ; CPU:$D458 PRG:1458 23 67 07 56 52 59 52 59 52 55 23 C0 10 40 50 50 + .byte $50, $50, $50, $50, $00, $00, $00, $00, $00, $00, $03, $00, $00, $23, $D0, $10 ; CPU:$D468 PRG:1468 50 50 50 50 00 00 00 00 00 00 03 00 00 23 D0 10 + .byte $00, $00, $00, $00, $00, $30, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; CPU:$D478 PRG:1478 00 00 00 00 00 30 00 00 00 00 00 00 00 00 00 00 + .byte $23, $E0, $10, $00, $00, $00, $00, $00, $03, $00, $00, $00, $00, $00, $00, $00 ; CPU:$D488 PRG:1488 23 E0 10 00 00 00 00 00 03 00 00 00 00 00 00 00 + .byte $30, $00, $00, $23, $F0, $10, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; CPU:$D498 PRG:1498 30 00 00 23 F0 10 00 00 00 00 00 00 00 00 00 00 + .byte $00, $00, $00, $00, $00, $00, $FF, $A5, $24, $54, $24, $54, $24, $24, $54, $24 ; CPU:$D4A8 PRG:14A8 00 00 00 00 00 00 FF A5 24 54 24 54 24 24 54 24 + .byte $54, $24, $24, $54, $24, $54, $24, $24, $54, $24, $54, $24, $52, $59, $52, $59 ; CPU:$D4B8 PRG:14B8 54 24 24 54 24 54 24 24 54 24 54 24 52 59 52 59 + .byte $52, $53, $5A, $53, $5A, $53, $24, $54, $24, $54, $24, $24, $54, $24, $54, $24 ; CPU:$D4C8 PRG:14C8 52 53 5A 53 5A 53 24 54 24 54 24 24 54 24 54 24 + .byte $24, $54, $24, $54, $24, $24, $54, $24, $54, $24, $FF, $37, $4D, $03, $D0, $37 ; CPU:$D4D8 PRG:14D8 24 54 24 54 24 24 54 24 54 24 FF 37 4D 03 D0 37 + .byte $4D, $03, $C0, $37, $4E, $03, $B0, $37, $4E, $03, $A0, $27, $48, $03, $88, $37 ; CPU:$D4E8 PRG:14E8 4D 03 C0 37 4E 03 B0 37 4E 03 A0 27 48 03 88 37 + .byte $4C, $03, $88, $2F, $49, $03, $80, $2F, $4B, $03, $90, $67, $4D, $03, $D0, $67 ; CPU:$D4F8 PRG:14F8 4C 03 88 2F 49 03 80 2F 4B 03 90 67 4D 03 D0 67 + .byte $4D, $03, $C0, $67, $4E, $03, $B0, $67, $4E, $03, $A0, $57, $48, $03, $88, $67 ; CPU:$D508 PRG:1508 4D 03 C0 67 4E 03 B0 67 4E 03 A0 57 48 03 88 67 + .byte $4C, $03, $88, $5F, $49, $03, $80, $5F, $4B, $03, $90, $97, $4D, $03, $D0, $97 ; CPU:$D518 PRG:1518 4C 03 88 5F 49 03 80 5F 4B 03 90 97 4D 03 D0 97 + .byte $4D, $03, $C0, $97, $4E, $03, $B0, $97, $4E, $03, $A0, $87, $48, $03, $88, $97 ; CPU:$D528 PRG:1528 4D 03 C0 97 4E 03 B0 97 4E 03 A0 87 48 03 88 97 + .byte $4C, $03, $88, $8F, $49, $03, $80, $8F, $4B, $03, $90, $C7, $4D, $03, $D0, $C7 ; CPU:$D538 PRG:1538 4C 03 88 8F 49 03 80 8F 4B 03 90 C7 4D 03 D0 C7 + .byte $4D, $03, $C0, $C7, $4E, $03, $B0, $C7, $4E, $03, $A0, $B7, $48, $03, $88, $C7 ; CPU:$D548 PRG:1548 4D 03 C0 C7 4E 03 B0 C7 4E 03 A0 B7 48 03 88 C7 + .byte $4C, $03, $88, $BF, $49, $03, $80, $BF, $4B, $03, $90, $27, $30, $00, $40, $2F ; CPU:$D558 PRG:1558 4C 03 88 BF 49 03 80 BF 4B 03 90 27 30 00 40 2F + .byte $30, $00, $40, $37, $30, $00, $40, $3F, $30, $00, $40, $27, $30, $00, $50, $2F ; CPU:$D568 PRG:1568 30 00 40 37 30 00 40 3F 30 00 40 27 30 00 50 2F + .byte $30, $00, $50, $37, $30, $00, $50, $3F, $30, $00, $50, $27, $30, $00, $60, $2F ; CPU:$D578 PRG:1578 30 00 50 37 30 00 50 3F 30 00 50 27 30 00 60 2F + .byte $30, $00, $60, $37, $30, $00, $60, $3F, $30, $00, $60, $57, $30, $00, $40, $5F ; CPU:$D588 PRG:1588 30 00 60 37 30 00 60 3F 30 00 60 57 30 00 40 5F + .byte $30, $00, $40, $67, $30, $00, $40, $6F, $30, $00, $40, $57, $30, $00, $50, $5F ; CPU:$D598 PRG:1598 30 00 40 67 30 00 40 6F 30 00 40 57 30 00 50 5F + .byte $30, $00, $50, $67, $30, $00, $50, $6F, $30, $00, $50, $57, $30, $00, $60, $5F ; CPU:$D5A8 PRG:15A8 30 00 50 67 30 00 50 6F 30 00 50 57 30 00 60 5F + .byte $30, $00, $60, $67, $30, $00, $60, $6F, $30, $00, $60, $FF, $37, $4D, $03, $D0 ; CPU:$D5B8 PRG:15B8 30 00 60 67 30 00 60 6F 30 00 60 FF 37 4D 03 D0 + .byte $37, $4D, $03, $C0, $37, $4E, $03, $B0, $37, $4E, $03, $A0, $27, $48, $03, $88 ; CPU:$D5C8 PRG:15C8 37 4D 03 C0 37 4E 03 B0 37 4E 03 A0 27 48 03 88 + .byte $37, $4C, $03, $88, $2F, $49, $03, $80, $2F, $4B, $03, $90, $67, $4D, $03, $D0 ; CPU:$D5D8 PRG:15D8 37 4C 03 88 2F 49 03 80 2F 4B 03 90 67 4D 03 D0 + .byte $67, $4D, $03, $C0, $67, $4E, $03, $B0, $67, $4E, $03, $A0, $57, $48, $03, $88 ; CPU:$D5E8 PRG:15E8 67 4D 03 C0 67 4E 03 B0 67 4E 03 A0 57 48 03 88 + .byte $67, $4C, $03, $88, $5F, $49, $03, $80, $5F, $4B, $03, $90, $F4, $F4, $F4, $F4 ; CPU:$D5F8 PRG:15F8 67 4C 03 88 5F 49 03 80 5F 4B 03 90 F4 F4 F4 F4 + .byte $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4, $F4 ; CPU:$D608 PRG:1608 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:$D618 PRG:1618 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:$D628 PRG:1628 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, $27, $30, $00, $40 ; CPU:$D638 PRG:1638 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 F4 27 30 00 40 + .byte $2F, $30, $00, $40, $37, $30, $00, $40, $3F, $30, $00, $40, $27, $30, $00, $50 ; CPU:$D648 PRG:1648 2F 30 00 40 37 30 00 40 3F 30 00 40 27 30 00 50 + .byte $2F, $30, $00, $50, $37, $30, $00, $50, $3F, $30, $00, $50, $27, $30, $00, $60 ; CPU:$D658 PRG:1658 2F 30 00 50 37 30 00 50 3F 30 00 50 27 30 00 60 + .byte $2F, $30, $00, $60, $37, $30, $00, $60, $3F, $30, $00, $60, $57, $30, $00, $40 ; CPU:$D668 PRG:1668 2F 30 00 60 37 30 00 60 3F 30 00 60 57 30 00 40 + .byte $5F, $30, $00, $40, $67, $30, $00, $40, $6F, $30, $00, $40, $57, $30, $00, $50 ; CPU:$D678 PRG:1678 5F 30 00 40 67 30 00 40 6F 30 00 40 57 30 00 50 + .byte $5F, $30, $00, $50, $67, $30, $00, $50, $6F, $30, $00, $50, $57, $30, $00, $60 ; CPU:$D688 PRG:1688 5F 30 00 50 67 30 00 50 6F 30 00 50 57 30 00 60 + .byte $5F, $30, $00, $60, $67, $30, $00, $60, $6F, $30, $00, $60, $FF, $79, $1D, $00 ; CPU:$D698 PRG:1698 5F 30 00 60 67 30 00 60 6F 30 00 60 FF 79 1D 00 + .byte $18, $79, $0E, $00, $20, $79, $1C, $00, $28, $79, $1D, $00, $30, $79, $18, $00 ; CPU:$D6A8 PRG:16A8 18 79 0E 00 20 79 1C 00 28 79 1D 00 30 79 18 00 + .byte $40, $79, $1F, $00, $48, $79, $0E, $00, $50, $79, $1B, $00, $58, $79, $0C, $00 ; CPU:$D6B8 PRG:16B8 40 79 1F 00 48 79 0E 00 50 79 1B 00 58 79 0C 00 + .byte $18, $79, $18, $00, $20, $79, $17, $00, $28, $79, $1D, $00, $30, $79, $0B, $00 ; CPU:$D6C8 PRG:16C8 18 79 18 00 20 79 17 00 28 79 1D 00 30 79 0B 00 + .byte $40, $79, $0A, $00, $48, $79, $0D, $00, $50, $79, $24, $00, $58, $FF, $FF, $FF ; CPU:$D6D8 PRG:16D8 40 79 0A 00 48 79 0D 00 50 79 24 00 58 FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D6E8 PRG:16E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D6F8 PRG:16F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D708 PRG:1708 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D718 PRG:1718 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D728 PRG:1728 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D738 PRG:1738 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D748 PRG:1748 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D758 PRG:1758 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D768 PRG:1768 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D778 PRG:1778 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D788 PRG:1788 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D798 PRG:1798 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7A8 PRG:17A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7B8 PRG:17B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7C8 PRG:17C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7D8 PRG:17D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7E8 PRG:17E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7F8 PRG:17F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D808 PRG:1808 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D818 PRG:1818 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D828 PRG:1828 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D838 PRG:1838 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D848 PRG:1848 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D858 PRG:1858 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D868 PRG:1868 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D878 PRG:1878 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D888 PRG:1888 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D898 PRG:1898 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8A8 PRG:18A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8B8 PRG:18B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8C8 PRG:18C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8D8 PRG:18D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8E8 PRG:18E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8F8 PRG:18F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D908 PRG:1908 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D918 PRG:1918 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D928 PRG:1928 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D938 PRG:1938 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D948 PRG:1948 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D958 PRG:1958 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D968 PRG:1968 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D978 PRG:1978 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D988 PRG:1988 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D998 PRG:1998 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9A8 PRG:19A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9B8 PRG:19B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9C8 PRG:19C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9D8 PRG:19D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9E8 PRG:19E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9F8 PRG:19F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA08 PRG:1A08 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA18 PRG:1A18 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA28 PRG:1A28 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA38 PRG:1A38 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA48 PRG:1A48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA58 PRG:1A58 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA68 PRG:1A68 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA78 PRG:1A78 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA88 PRG:1A88 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA98 PRG:1A98 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAA8 PRG:1AA8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAB8 PRG:1AB8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAC8 PRG:1AC8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAD8 PRG:1AD8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAE8 PRG:1AE8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAF8 PRG:1AF8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB08 PRG:1B08 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB18 PRG:1B18 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB28 PRG:1B28 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB38 PRG:1B38 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB48 PRG:1B48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB58 PRG:1B58 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB68 PRG:1B68 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB78 PRG:1B78 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB88 PRG:1B88 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB98 PRG:1B98 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBA8 PRG:1BA8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBB8 PRG:1BB8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBC8 PRG:1BC8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBD8 PRG:1BD8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBE8 PRG:1BE8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBF8 PRG:1BF8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC08 PRG:1C08 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC18 PRG:1C18 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC28 PRG:1C28 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC38 PRG:1C38 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC48 PRG:1C48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC58 PRG:1C58 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC68 PRG:1C68 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC78 PRG:1C78 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC88 PRG:1C88 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC98 PRG:1C98 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCA8 PRG:1CA8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCB8 PRG:1CB8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCC8 PRG:1CC8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCD8 PRG:1CD8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCE8 PRG:1CE8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCF8 PRG:1CF8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD08 PRG:1D08 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD18 PRG:1D18 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD28 PRG:1D28 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD38 PRG:1D38 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD48 PRG:1D48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD58 PRG:1D58 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD68 PRG:1D68 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD78 PRG:1D78 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD88 PRG:1D88 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD98 PRG:1D98 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDA8 PRG:1DA8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDB8 PRG:1DB8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDC8 PRG:1DC8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDD8 PRG:1DD8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDE8 PRG:1DE8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDF8 PRG:1DF8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE08 PRG:1E08 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE18 PRG:1E18 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE28 PRG:1E28 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE38 PRG:1E38 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE48 PRG:1E48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE58 PRG:1E58 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE68 PRG:1E68 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE78 PRG:1E78 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE88 PRG:1E88 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE98 PRG:1E98 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DEA8 PRG:1EA8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DEB8 PRG:1EB8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DEC8 PRG:1EC8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DED8 PRG:1ED8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DEE8 PRG:1EE8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DEF8 PRG:1EF8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF08 PRG:1F08 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF18 PRG:1F18 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF28 PRG:1F28 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF38 PRG:1F38 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF48 PRG:1F48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF58 PRG:1F58 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF68 PRG:1F68 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF78 PRG:1F78 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF88 PRG:1F88 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF98 PRG:1F98 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFA8 PRG:1FA8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFB8 PRG:1FB8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFC8 PRG:1FC8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFD8 PRG:1FD8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFE8 PRG:1FE8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFF8 PRG:1FF8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E008 PRG:2008 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E018 PRG:2018 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E028 PRG:2028 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E038 PRG:2038 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E048 PRG:2048 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E058 PRG:2058 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E068 PRG:2068 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E078 PRG:2078 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E088 PRG:2088 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E098 PRG:2098 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0A8 PRG:20A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0B8 PRG:20B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0C8 PRG:20C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0D8 PRG:20D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0E8 PRG:20E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0F8 PRG:20F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E108 PRG:2108 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E118 PRG:2118 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E128 PRG:2128 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E138 PRG:2138 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E148 PRG:2148 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E158 PRG:2158 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E168 PRG:2168 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E178 PRG:2178 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E188 PRG:2188 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E198 PRG:2198 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1A8 PRG:21A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1B8 PRG:21B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1C8 PRG:21C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1D8 PRG:21D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1E8 PRG:21E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1F8 PRG:21F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E208 PRG:2208 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E218 PRG:2218 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E228 PRG:2228 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E238 PRG:2238 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E248 PRG:2248 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E258 PRG:2258 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E268 PRG:2268 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E278 PRG:2278 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E288 PRG:2288 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E298 PRG:2298 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2A8 PRG:22A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2B8 PRG:22B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2C8 PRG:22C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2D8 PRG:22D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2E8 PRG:22E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2F8 PRG:22F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E308 PRG:2308 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E318 PRG:2318 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E328 PRG:2328 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E338 PRG:2338 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E348 PRG:2348 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E358 PRG:2358 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E368 PRG:2368 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E378 PRG:2378 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E388 PRG:2388 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E398 PRG:2398 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3A8 PRG:23A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3B8 PRG:23B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3C8 PRG:23C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3D8 PRG:23D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3E8 PRG:23E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3F8 PRG:23F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E408 PRG:2408 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E418 PRG:2418 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E428 PRG:2428 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E438 PRG:2438 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E448 PRG:2448 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E458 PRG:2458 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E468 PRG:2468 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E478 PRG:2478 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E488 PRG:2488 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E498 PRG:2498 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4A8 PRG:24A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4B8 PRG:24B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4C8 PRG:24C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4D8 PRG:24D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4E8 PRG:24E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4F8 PRG:24F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E508 PRG:2508 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E518 PRG:2518 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E528 PRG:2528 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E538 PRG:2538 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E548 PRG:2548 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E558 PRG:2558 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E568 PRG:2568 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E578 PRG:2578 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E588 PRG:2588 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E598 PRG:2598 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5A8 PRG:25A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5B8 PRG:25B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5C8 PRG:25C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5D8 PRG:25D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5E8 PRG:25E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5F8 PRG:25F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E608 PRG:2608 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E618 PRG:2618 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E628 PRG:2628 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E638 PRG:2638 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E648 PRG:2648 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E658 PRG:2658 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E668 PRG:2668 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E678 PRG:2678 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E688 PRG:2688 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E698 PRG:2698 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6A8 PRG:26A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6B8 PRG:26B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6C8 PRG:26C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6D8 PRG:26D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6E8 PRG:26E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6F8 PRG:26F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E708 PRG:2708 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E718 PRG:2718 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E728 PRG:2728 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E738 PRG:2738 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E748 PRG:2748 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E758 PRG:2758 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E768 PRG:2768 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E778 PRG:2778 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E788 PRG:2788 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E798 PRG:2798 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7A8 PRG:27A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7B8 PRG:27B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7C8 PRG:27C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7D8 PRG:27D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7E8 PRG:27E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7F8 PRG:27F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E808 PRG:2808 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E818 PRG:2818 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E828 PRG:2828 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E838 PRG:2838 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E848 PRG:2848 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E858 PRG:2858 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E868 PRG:2868 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E878 PRG:2878 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E888 PRG:2888 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E898 PRG:2898 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8A8 PRG:28A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8B8 PRG:28B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8C8 PRG:28C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8D8 PRG:28D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8E8 PRG:28E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8F8 PRG:28F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E908 PRG:2908 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E918 PRG:2918 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E928 PRG:2928 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E938 PRG:2938 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E948 PRG:2948 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E958 PRG:2958 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E968 PRG:2968 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E978 PRG:2978 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E988 PRG:2988 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E998 PRG:2998 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9A8 PRG:29A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9B8 PRG:29B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9C8 PRG:29C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9D8 PRG:29D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9E8 PRG:29E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9F8 PRG:29F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA08 PRG:2A08 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA18 PRG:2A18 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA28 PRG:2A28 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA38 PRG:2A38 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA48 PRG:2A48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA58 PRG:2A58 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA68 PRG:2A68 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA78 PRG:2A78 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA88 PRG:2A88 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA98 PRG:2A98 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAA8 PRG:2AA8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAB8 PRG:2AB8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAC8 PRG:2AC8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAD8 PRG:2AD8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAE8 PRG:2AE8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAF8 PRG:2AF8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB08 PRG:2B08 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB18 PRG:2B18 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB28 PRG:2B28 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB38 PRG:2B38 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB48 PRG:2B48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB58 PRG:2B58 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB68 PRG:2B68 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB78 PRG:2B78 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB88 PRG:2B88 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB98 PRG:2B98 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBA8 PRG:2BA8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBB8 PRG:2BB8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBC8 PRG:2BC8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBD8 PRG:2BD8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBE8 PRG:2BE8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBF8 PRG:2BF8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC08 PRG:2C08 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC18 PRG:2C18 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC28 PRG:2C28 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC38 PRG:2C38 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC48 PRG:2C48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC58 PRG:2C58 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC68 PRG:2C68 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC78 PRG:2C78 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC88 PRG:2C88 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC98 PRG:2C98 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECA8 PRG:2CA8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECB8 PRG:2CB8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECC8 PRG:2CC8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECD8 PRG:2CD8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECE8 PRG:2CE8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECF8 PRG:2CF8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED08 PRG:2D08 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED18 PRG:2D18 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED28 PRG:2D28 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED38 PRG:2D38 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED48 PRG:2D48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED58 PRG:2D58 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED68 PRG:2D68 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED78 PRG:2D78 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED88 PRG:2D88 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED98 PRG:2D98 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDA8 PRG:2DA8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDB8 PRG:2DB8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDC8 PRG:2DC8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDD8 PRG:2DD8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDE8 PRG:2DE8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDF8 PRG:2DF8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE08 PRG:2E08 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE18 PRG:2E18 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE28 PRG:2E28 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE38 PRG:2E38 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE48 PRG:2E48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE58 PRG:2E58 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE68 PRG:2E68 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE78 PRG:2E78 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE88 PRG:2E88 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE98 PRG:2E98 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEA8 PRG:2EA8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEB8 PRG:2EB8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEC8 PRG:2EC8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EED8 PRG:2ED8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEE8 PRG:2EE8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEF8 PRG:2EF8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF08 PRG:2F08 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF18 PRG:2F18 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF28 PRG:2F28 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF38 PRG:2F38 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF48 PRG:2F48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF58 PRG:2F58 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF68 PRG:2F68 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF78 PRG:2F78 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF88 PRG:2F88 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF98 PRG:2F98 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFA8 PRG:2FA8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFB8 PRG:2FB8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFC8 PRG:2FC8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFD8 PRG:2FD8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFE8 PRG:2FE8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFF8 PRG:2FF8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F008 PRG:3008 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F018 PRG:3018 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F028 PRG:3028 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F038 PRG:3038 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F048 PRG:3048 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F058 PRG:3058 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F068 PRG:3068 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F078 PRG:3078 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F088 PRG:3088 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F098 PRG:3098 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0A8 PRG:30A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0B8 PRG:30B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0C8 PRG:30C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0D8 PRG:30D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0E8 PRG:30E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0F8 PRG:30F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F108 PRG:3108 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F118 PRG:3118 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F128 PRG:3128 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F138 PRG:3138 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F148 PRG:3148 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F158 PRG:3158 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F168 PRG:3168 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F178 PRG:3178 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F188 PRG:3188 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F198 PRG:3198 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1A8 PRG:31A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1B8 PRG:31B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1C8 PRG:31C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1D8 PRG:31D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1E8 PRG:31E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1F8 PRG:31F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F208 PRG:3208 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F218 PRG:3218 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F228 PRG:3228 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F238 PRG:3238 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F248 PRG:3248 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F258 PRG:3258 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F268 PRG:3268 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F278 PRG:3278 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F288 PRG:3288 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F298 PRG:3298 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2A8 PRG:32A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2B8 PRG:32B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2C8 PRG:32C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2D8 PRG:32D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2E8 PRG:32E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2F8 PRG:32F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F308 PRG:3308 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F318 PRG:3318 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F328 PRG:3328 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F338 PRG:3338 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F348 PRG:3348 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F358 PRG:3358 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F368 PRG:3368 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F378 PRG:3378 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F388 PRG:3388 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F398 PRG:3398 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3A8 PRG:33A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3B8 PRG:33B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3C8 PRG:33C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3D8 PRG:33D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3E8 PRG:33E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3F8 PRG:33F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F408 PRG:3408 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F418 PRG:3418 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F428 PRG:3428 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F438 PRG:3438 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F448 PRG:3448 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F458 PRG:3458 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F468 PRG:3468 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F478 PRG:3478 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F488 PRG:3488 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F498 PRG:3498 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4A8 PRG:34A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4B8 PRG:34B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4C8 PRG:34C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4D8 PRG:34D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4E8 PRG:34E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4F8 PRG:34F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F508 PRG:3508 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F518 PRG:3518 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F528 PRG:3528 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F538 PRG:3538 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F548 PRG:3548 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F558 PRG:3558 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F568 PRG:3568 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F578 PRG:3578 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F588 PRG:3588 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F598 PRG:3598 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5A8 PRG:35A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5B8 PRG:35B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5C8 PRG:35C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5D8 PRG:35D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5E8 PRG:35E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5F8 PRG:35F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F608 PRG:3608 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F618 PRG:3618 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F628 PRG:3628 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F638 PRG:3638 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F648 PRG:3648 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F658 PRG:3658 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F668 PRG:3668 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F678 PRG:3678 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F688 PRG:3688 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F698 PRG:3698 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6A8 PRG:36A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6B8 PRG:36B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6C8 PRG:36C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6D8 PRG:36D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6E8 PRG:36E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6F8 PRG:36F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F708 PRG:3708 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F718 PRG:3718 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F728 PRG:3728 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F738 PRG:3738 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F748 PRG:3748 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F758 PRG:3758 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F768 PRG:3768 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F778 PRG:3778 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F788 PRG:3788 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F798 PRG:3798 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7A8 PRG:37A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7B8 PRG:37B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7C8 PRG:37C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7D8 PRG:37D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7E8 PRG:37E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7F8 PRG:37F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F808 PRG:3808 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F818 PRG:3818 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F828 PRG:3828 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F838 PRG:3838 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F848 PRG:3848 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F858 PRG:3858 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F868 PRG:3868 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F878 PRG:3878 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F888 PRG:3888 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F898 PRG:3898 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8A8 PRG:38A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8B8 PRG:38B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8C8 PRG:38C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8D8 PRG:38D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8E8 PRG:38E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8F8 PRG:38F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F908 PRG:3908 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F918 PRG:3918 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F928 PRG:3928 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F938 PRG:3938 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F948 PRG:3948 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F958 PRG:3958 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F968 PRG:3968 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F978 PRG:3978 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F988 PRG:3988 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F998 PRG:3998 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9A8 PRG:39A8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9B8 PRG:39B8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9C8 PRG:39C8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9D8 PRG:39D8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9E8 PRG:39E8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9F8 PRG:39F8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA08 PRG:3A08 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA18 PRG:3A18 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA28 PRG:3A28 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA38 PRG:3A38 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA48 PRG:3A48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA58 PRG:3A58 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA68 PRG:3A68 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA78 PRG:3A78 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA88 PRG:3A88 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA98 PRG:3A98 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FAA8 PRG:3AA8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FAB8 PRG:3AB8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FAC8 PRG:3AC8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FAD8 PRG:3AD8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FAE8 PRG:3AE8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FAF8 PRG:3AF8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB08 PRG:3B08 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB18 PRG:3B18 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB28 PRG:3B28 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB38 PRG:3B38 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB48 PRG:3B48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB58 PRG:3B58 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB68 PRG:3B68 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB78 PRG:3B78 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB88 PRG:3B88 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB98 PRG:3B98 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBA8 PRG:3BA8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBB8 PRG:3BB8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBC8 PRG:3BC8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBD8 PRG:3BD8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBE8 PRG:3BE8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBF8 PRG:3BF8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC08 PRG:3C08 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC18 PRG:3C18 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC28 PRG:3C28 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC38 PRG:3C38 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC48 PRG:3C48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC58 PRG:3C58 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC68 PRG:3C68 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC78 PRG:3C78 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC88 PRG:3C88 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC98 PRG:3C98 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCA8 PRG:3CA8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCB8 PRG:3CB8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCC8 PRG:3CC8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCD8 PRG:3CD8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCE8 PRG:3CE8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCF8 PRG:3CF8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD08 PRG:3D08 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD18 PRG:3D18 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD28 PRG:3D28 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD38 PRG:3D38 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD48 PRG:3D48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD58 PRG:3D58 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD68 PRG:3D68 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD78 PRG:3D78 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD88 PRG:3D88 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD98 PRG:3D98 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDA8 PRG:3DA8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDB8 PRG:3DB8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDC8 PRG:3DC8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDD8 PRG:3DD8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDE8 PRG:3DE8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDF8 PRG:3DF8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE08 PRG:3E08 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE18 PRG:3E18 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE28 PRG:3E28 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE38 PRG:3E38 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE48 PRG:3E48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE58 PRG:3E58 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE68 PRG:3E68 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE78 PRG:3E78 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE88 PRG:3E88 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE98 PRG:3E98 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEA8 PRG:3EA8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEB8 PRG:3EB8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEC8 PRG:3EC8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FED8 PRG:3ED8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEE8 PRG:3EE8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEF8 PRG:3EF8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF08 PRG:3F08 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF18 PRG:3F18 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF28 PRG:3F28 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF38 PRG:3F38 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF48 PRG:3F48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF58 PRG:3F58 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF68 PRG:3F68 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF78 PRG:3F78 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF88 PRG:3F88 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF98 PRG:3F98 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFA8 PRG:3FA8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFB8 PRG:3FB8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFC8 PRG:3FC8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFD8 PRG:3FD8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFE8 PRG:3FE8 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $F7, $CC, $00, $C0, $00, $C0 ; CPU:$FFF8 PRG:3FF8 FF FF F7 CC 00 C0 00 C0 diff --git a/Joypad Test Cartridge (U)/copilot/reconstructed.lbl b/Joypad Test Cartridge (U)/copilot/reconstructed.lbl new file mode 100644 index 0000000..9bb01a9 --- /dev/null +++ b/Joypad Test Cartridge (U)/copilot/reconstructed.lbl @@ -0,0 +1,35 @@ +al 00CE89 .Label_CE89 +al 00CE6E .Label_CE6E +al 00CE5F .Label_CE5F +al 00CE8A .Label_CE8A +al 00CE4F .VramBurstWrite +al 00CE3C .PpuScrollLatch +al 00CE33 .Label_CE33 +al 00CE39 .Label_CE39 +al 00CE16 .Label_CE16 +al 00CE12 .Label_CE12 +al 00CDEE .VramWrite +al 00CDC8 .RetAddrUpdate +al 00CDB1 .Label_CDB1 +al 00CDA3 .Label_CDA3 +al 00CD99 .VramPtrTableRead +al 00CD8D .Label_CD8D +al 00CD74 .Label_CD74 +al 00CD71 .Label_CD71 +al 00CD6E .Label_CD6E +al 00CD69 .Label_CD69 +al 00CD5C .Label_CD5C +al 00CD45 .VramWriteLoop +al 00CD3F .VramPtrWrite +al 00CD2F .PpuMaskSetup +al 00CD24 .OamDmaSetup +al 00CD17 .PpuCtrlSetup +al 00CD0A .NmiContinue +al 00CCF7 .NmiHandler +al 00C178 .Label_C178 +al 00C174 .ClearOAM_Routine +al 00C05D .ClearRAM2_Loop +al 00C013 .ClearRAM1_Loop +al 00C00A .WaitVblank3 +al 00C005 .WaitVblank2 +al 00C000 .Reset diff --git a/_wip/Joypad Test Cartridge (U)/copilot/reconstructed.map b/Joypad Test Cartridge (U)/copilot/reconstructed.map similarity index 61% rename from _wip/Joypad Test Cartridge (U)/copilot/reconstructed.map rename to Joypad Test Cartridge (U)/copilot/reconstructed.map index aaf7f17..1ad1cc6 100644 --- a/_wip/Joypad Test Cartridge (U)/copilot/reconstructed.map +++ b/Joypad Test Cartridge (U)/copilot/reconstructed.map @@ -1,13 +1,19 @@ Modules list: ------------- +header.o: + HEADER Offs=000000 Size=000010 Align=00001 Fill=0000 prg.o: PRG Offs=000000 Size=004000 Align=00001 Fill=0000 +chr.o: + CHR Offs=000000 Size=002000 Align=00001 Fill=0000 Segment list: ------------- Name Start End Size Align ---------------------------------------------------- +CHR 000000 001FFF 002000 00001 +HEADER 000000 00000F 000010 00001 PRG 00C000 00FFFF 004000 00001 diff --git a/_wip/Joypad Test Cartridge (U)/Joypad Test Cartridge (U).nes b/Joypad Test Cartridge (U)/copilot/reconstructed.nes similarity index 100% rename from _wip/Joypad Test Cartridge (U)/Joypad Test Cartridge (U).nes rename to Joypad Test Cartridge (U)/copilot/reconstructed.nes diff --git a/_wip/Joypad Test Cartridge (U)/copilot/reconstructed_prg.bin b/Joypad Test Cartridge (U)/copilot/reconstructed_prg.bin similarity index 100% rename from _wip/Joypad Test Cartridge (U)/copilot/reconstructed_prg.bin rename to Joypad Test Cartridge (U)/copilot/reconstructed_prg.bin diff --git a/Joypad Test Cartridge (U)/copilot/rom.nes b/Joypad Test Cartridge (U)/copilot/rom.nes new file mode 120000 index 0000000..ba0d050 --- /dev/null +++ b/Joypad Test Cartridge (U)/copilot/rom.nes @@ -0,0 +1 @@ +../rom.nes \ No newline at end of file diff --git a/_wip/Joypad Test Cartridge (U)/copilot/symbols.inc b/Joypad Test Cartridge (U)/copilot/symbols.inc similarity index 100% rename from _wip/Joypad Test Cartridge (U)/copilot/symbols.inc rename to Joypad Test Cartridge (U)/copilot/symbols.inc diff --git a/Joypad Test Cartridge (U)/rom.nes b/Joypad Test Cartridge (U)/rom.nes new file mode 100644 index 0000000..9d23a71 Binary files /dev/null and b/Joypad Test Cartridge (U)/rom.nes differ diff --git a/OVERVIEW.md b/OVERVIEW.md index 683b7ce..ef05623 100644 --- a/OVERVIEW.md +++ b/OVERVIEW.md @@ -154,11 +154,21 @@ This document provides a consolidated overview of all NES disassembly projects i - **Build fix:** None needed; byte-identical out of the box (`make` in `copilot/`). Pass 1 complete — full code/data classification (~20% code / ~80% data); Pass 2 partial — routine headers and semantic naming for key routines (`Reset`, `NmiHandler`, `MainStateDispatch`, `MainLoopBody`, etc.); zero-page aliases in `locals.inc` (`GameMode`=$30, `NmiPhase`=$20, `NmiFlag`=$22, `Timer2F`=$2F, etc.) - **Details:** `Wild Gunman (U)/OVERVIEW.md` +### 14. Joypad Test Cartridge (U) +- **Folder:** `Joypad Test Cartridge (U)/` +- **ROM:** `rom.nes` (24,592 bytes) +- **Source:** `copilot/prg.s` (~1,360 lines with routine headers) +- **Linker:** HEADER at $0000 (16 bytes), PRG at $C000 (16 KB), CHR at $0000 (8 KB) +- **Vectors:** NMI → $CCF7 (`NmiHandler`), RESET → $C000 (`Reset`), IRQ → $C000 (reuses `Reset`) +- **Key subsystems:** NMI-driven frame loop — main loop spins waiting on NMI phase; NMI handler does OAM DMA ($4014), PPU scroll/control latch, and burst VRAM writes from table at $0302; `VramPtrWrite` ($CD3F) uses a return-address modification trick at `RetAddrUpdate` ($CDC8) for runtime-computed dispatch; `VramWrite` ($CDEE) sets PPU address and writes data to PPUDATA; reset clears RAM, initializes PPU ($2000=$10, $2001=$00), triggers OAM DMA, and enters main loop +- **Build fix:** None needed; byte-identical out of the box (`make` in `copilot/`). Pass 1 complete — full code/data classification (~3.5% code / ~96.5% data); Pass 2 complete — routine headers for all labels, semantic naming for key routines, zero-page aliases in `locals.inc` (`VramPtrLo`=$00, `PpuCtrlShadow`=$EF, `FrameCounterLo`=$53, etc.) +- **Details:** `Joypad Test Cartridge (U)/OVERVIEW.md` + --- ## Skeleton Projects (under `_wip/`) -22 additional ROMs awaiting full disassembly. Each is set up as a Pass-0 skeleton (`default_project.tar.gz`): `copilot/` contains the split `prg.bin`/`header.bin`/`chr.bin`, a symbolic skeleton `prg.s`, and builds **BYTE-IDENTICAL** at the PRG level. Mapper 0 / 16 KB PRG / 8 KB CHR for all. +21 additional ROMs awaiting full disassembly. Each is set up as a Pass-0 skeleton (`default_project.tar.gz`): `copilot/` contains the split `prg.bin`/`header.bin`/`chr.bin`, a symbolic skeleton `prg.s`, and builds **BYTE-IDENTICAL** at the PRG level. Mapper 0 / 16 KB PRG / 8 KB CHR for all. | Project | Vectors (NMI/RESET/IRQ) | Mir. | Status | |---------|--------------------------|------|--------| @@ -169,7 +179,6 @@ This document provides a consolidated overview of all NES disassembly projects i | `Hogan's Alley (JU)` | $C088 / $C000 / $C000 | H | BYTE-IDENTICAL | | `Ice Climber (JE)` | $C076 / $C014 / $FFF0 | V | BYTE-IDENTICAL | | `Ice Climber (U)` | $C076 / $C014 / $FFF0 | V | BYTE-IDENTICAL | -| `Joypad Test Cartridge (U)` | $CCF7 / $C000 / $C000 | H | BYTE-IDENTICAL | | `Lode Runner (U)` | $C02C / $C000 / $FFF9 | H | BYTE-IDENTICAL | | `Lunar Pool (U)` | $FF65 / $E80C / $FF64 | H | BYTE-IDENTICAL | | `MUSCLE (U)` | $86CB / $8000 / $8764 | H | BYTE-IDENTICAL | @@ -196,6 +205,7 @@ Notable vector/header observations for Pass 1 work: - **Raid on Bungeling Bay (U) vs [a2]**: `[a2]` differs in mirroring only per header, but PRGs differ — separate builds. - **Pyramid (U)** — *already at Pass 1*: interesting unlicensed Sachen boot ($4100 mapper pokes, "AV" stack-byte check, two queued-event dispatchers). See its `OVERVIEW.md`. - **CIRCUS** — *at Pass 2/3*: full recursive disassembly complete. NMI-driven frame state machine (main loop is a spin loop at $C057). Menu text at $C763 ("CONTINUE", "STAGE", "SELECT", "PLAY"). Object state machine at $DC3F–$FE7B. Audio sequence data at $FABB–$FFFB. See `_wip/CIRCUS/OVERVIEW.md`. +- **Joypad Test Cartridge (U)** — *at Pass 2*: minimal code (~3.5%), data-heavy test cartridge. NMI handler drives per-frame PPU/OAM updates. Uses return-address modification trick at `RetAddrUpdate` ($CDC8) with `VramPtrWrite` ($CD3F) for runtime-computed dispatch. See `Joypad Test Cartridge (U)/OVERVIEW.md`. ## Common Patterns Across All Projects @@ -249,7 +259,7 @@ make verify # (where supported by the Makefile) ## Summary -All 13 projects in this repository rebuild **byte-identical** to their original ROMs: +All 14 projects in this repository rebuild **byte-identical** to their original ROMs: | # | Project | Build Status | |---|---------|--------------| @@ -266,7 +276,8 @@ All 13 projects in this repository rebuild **byte-identical** to their original | 11 | Donkey Kong Jr. (JU) | BYTE-IDENTICAL (Pass 1) | | 12 | CIRCUS | BYTE-IDENTICAL (Pass 2/3) | | 13 | Wild Gunman (U) | BYTE-IDENTICAL (Pass 2) | +| 14 | Joypad Test Cartridge (U) | BYTE-IDENTICAL (Pass 2) | Every project builds successfully with `make` in the `copilot/` folder, and every reconstructed ROM matches the original byte-for-byte. Donkey Kong Jr. shares the same byte-identical build guarantee; its remaining Pass 2/3 work is semantic renaming and table decoding, not build-correctness. -The 23 `_wip/` skeleton projects above also all rebuild byte-identical (PRG level); all Pass 1 work and promotion to this index's numbered inventory is future work. \ No newline at end of file +The 21 `_wip/` skeleton projects above also all rebuild byte-identical (PRG level); all Pass 1 work and promotion to this index's numbered inventory is future work. \ No newline at end of file diff --git a/_wip/Joypad Test Cartridge (U)/OVERVIEW.md b/_wip/Joypad Test Cartridge (U)/OVERVIEW.md deleted file mode 100644 index 2842ca0..0000000 --- a/_wip/Joypad Test Cartridge (U)/OVERVIEW.md +++ /dev/null @@ -1,53 +0,0 @@ -# Joypad Test Cartridge (U) — Skeleton Project - -ROM: `_wip/Joypad Test Cartridge (U)/Joypad Test Cartridge (U).nes` (24,592 bytes, iNES). Status: **SKELETON — not yet disassembled.** The entire 16 KB PRG bank is a single unclassified block; `copilot/prg.s` is the default-project skeleton (`default_project.tar.gz`) that reproduces it as one `.incbin`. The skeleton build is **byte-identical** at the PRG level. - - -## ROM Facts - -| Property | Value | -|----------|-------| -| Mapper | 0 (NROM) — from the iNES header | -| PRG | 16 KB (header claims map at CPU $C000–$FFFF) | -| CHR | 8 KB | -| Mirroring | Horizontal | -| Battery-backed flag | clear | -| ROM SHA-256 | `dd64415bfddb17e9c284cdf3f99bb4eb9c468a6ef509cebe8a5f68856ef5fb51` | -| PRG SHA-256 | `dc8988c978f0db51473c3a0fb0b31e568ba0203534665f220dc00cbc78cfdc7d` | - -## Interrupt Vectors (taken from PRG $3FFA–$3FFF) - -| Vector | Target | Note | -|--------|--------|------| -| NMI | `$CCF7` | per-frame heartbeat | -| RESET | `$C000` | cold start at $C000 — the usual pattern in this repo | -| IRQ | `$C000` | redirects to RESET — unused placeholder | - -## `copilot/` Contents - -| File | Purpose | -|------|---------| -| `Joypad Test Cartridge (U).nes` | original ROM image (reference) | -| `prg.bin` / `header.bin` / `chr.bin` | split image, produced by `_tools/splitnes.py` | -| `prg.s` | Pass-1 skeleton: `.incbin "prg.bin", $0000, $4000` (whole PRG) | -| `symbols.inc` | shared NES hardware constants (PPU/APU/controller, from the skeleton) | -| `locals.inc` | project-local zero-page aliases — empty for now (filled in Pass 2) | -| `linker.cfg` | PRG at $C000, 16 KB, `fill = yes` | -| `Makefile` | links `reconstructed_prg.bin` and `cmp`s it against `prg.bin` | -| `reconstructed_prg.bin` | build output from the last verified build | - -Header/CHR are reproduced verbatim from `header.bin`/`chr.bin` (not linked): `make` verifies **PRG bytes only** at this stage, which is exactly what a skeleton proves. When this project is promoted to a full disassembly, `header.s` / `chr.s` (as e.g. `Burger Time (U)`) and a full-ROM `make` target get added. - -## Build - -```bash -cd "_wip/Joypad Test Cartridge (U)/copilot" -make # → cmp reconstructed_prg.bin prg.bin → "BYTE-IDENTICAL" -``` - -## Next Steps (per `PROMPTS.md`) - -1. **Pass 1** — replace the blanket `.incbin` with classified code/data: trace reachability from RESET ($C000) and NMI ($CCF7), emit per-instruction `; PRG:$xxxx AA BB` annotations, keep unreached bytes as explicit `.byte` blocks. -2. **Pass 2** — replace `Label_`/`Sub_` names with semantic routine names; fill `locals.inc`. -3. **Pass 3** — name data tables/structures; release provisional flags. -4. **Promotion** — move to a top-level `/copilot/` folder, add full-ROM build (header.s + chr.s + vectors), and write the power-on flow `OVERVIEW.md` in the established style; then it joins the root index's numbered inventory. diff --git a/_wip/Joypad Test Cartridge (U)/copilot/Makefile b/_wip/Joypad Test Cartridge (U)/copilot/Makefile deleted file mode 100644 index 3f9ba6f..0000000 --- a/_wip/Joypad Test Cartridge (U)/copilot/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -all: reconstructed_prg.bin verify -prg.o: prg.s symbols.inc prg.bin - ca65 -g -o $@ prg.s -reconstructed_prg.bin: prg.o linker.cfg - ld65 -C linker.cfg -m reconstructed.map -Ln reconstructed.lbl -o $@ prg.o -verify: reconstructed_prg.bin prg.bin - cmp reconstructed_prg.bin prg.bin - @echo BYTE-IDENTICAL -clean: - rm -f prg.o reconstructed_prg.bin reconstructed.map reconstructed.lbl diff --git a/_wip/Joypad Test Cartridge (U)/copilot/linker.cfg b/_wip/Joypad Test Cartridge (U)/copilot/linker.cfg deleted file mode 100644 index d9d421d..0000000 --- a/_wip/Joypad Test Cartridge (U)/copilot/linker.cfg +++ /dev/null @@ -1,6 +0,0 @@ -MEMORY { - PRG: start = $C000, size = $4000, file = %O, fill = yes; -} -SEGMENTS { - PRG: load = PRG, type = ro; -} diff --git a/_wip/Joypad Test Cartridge (U)/copilot/locals.inc b/_wip/Joypad Test Cartridge (U)/copilot/locals.inc deleted file mode 100644 index 580811b..0000000 --- a/_wip/Joypad Test Cartridge (U)/copilot/locals.inc +++ /dev/null @@ -1,2 +0,0 @@ -; Joypad Test Cartridge (U) zero-page aliases (declared during Pass 2). -; These intentionally conservative names will be refined in Passes 2 and 3. diff --git a/_wip/Joypad Test Cartridge (U)/copilot/prg.s b/_wip/Joypad Test Cartridge (U)/copilot/prg.s deleted file mode 100644 index 9ba2660..0000000 --- a/_wip/Joypad Test Cartridge (U)/copilot/prg.s +++ /dev/null @@ -1,12 +0,0 @@ -; Joypad Test Cartridge (U) NES disassembly - Pass 1 (skeleton) -; Generated from the supplied 16 KiB PRG image. -; Pass 1 classifies recursively reachable code, inline address tables, vectors, -; and untraced/data regions. All PRG data bytes are emitted explicitly with .byte directives. - -.setcpu "6502" - -.include "symbols.inc" -.include "locals.inc" - -.segment "PRG" -.incbin "prg.bin", $0000, $4000 diff --git a/_wip/Joypad Test Cartridge (U)/copilot/reconstructed.lbl b/_wip/Joypad Test Cartridge (U)/copilot/reconstructed.lbl deleted file mode 100644 index e69de29..0000000