From 3ef16a6f9988d8fb771f15c0f54716734ff7d2a3 Mon Sep 17 00:00:00 2001 From: Trevor Merritt Date: Fri, 16 Oct 2026 19:24:12 -0400 Subject: [PATCH] Promote NES PowerPad Test Card (U) from _wip to top-level project MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Moves NES PowerPad Test Card (U) from _wip/ to NES PowerPad Test Card (U)/ with full ROM build: - Adds header.s, chr.s, linker.cfg (HEADER+PRG+CHR segments) - Updates Makefile to build and verify reconstructed.nes vs rom.nes - Adds rom.nes copy + copilot/rom.nes symlink per repo convention - Verified byte-identical build Pass 1 complete: full code/data classification (~7.2% code / ~92.8% data) Pass 2 complete: routine headers for all ~50 labels, semantic naming for key routines (Reset, NmiHandler, VramWrite, ReadPad, ProcessPads, etc.), zero-page aliases in locals.inc (Zp00-Zp15) Pass 3 complete: data tables named (PaletteData at , PadBitTableLives at ) Root OVERVIEW.md updated: - Removes NES PowerPad Test Card from _wip skeleton table (21 → 20 skeletons) - Adds NES PowerPad Test Card as #15 in numbered inventory (BYTE-IDENTICAL, Pass 2/3) - Updates summary count from 14 to 15 projects --- NES PowerPad Test Card (U)/OVERVIEW.md | 187 ++ NES PowerPad Test Card (U)/copilot/Makefile | 25 + .../copilot/chr.bin | Bin NES PowerPad Test Card (U)/copilot/chr.s | 2 + .../copilot/header.bin | Bin NES PowerPad Test Card (U)/copilot/header.s | 2 + NES PowerPad Test Card (U)/copilot/linker.cfg | 10 + NES PowerPad Test Card (U)/copilot/locals.inc | 24 + .../copilot/prg.bin | Bin NES PowerPad Test Card (U)/copilot/prg.s | 2444 +++++++++++++++++ .../copilot/reconstructed.lbl | 94 + .../copilot/reconstructed.map | 6 + .../copilot/reconstructed.nes | Bin .../copilot/reconstructed_prg.bin | Bin NES PowerPad Test Card (U)/copilot/rom.nes | 1 + .../copilot/symbols.inc | 0 NES PowerPad Test Card (U)/rom.nes | Bin 0 -> 24592 bytes OVERVIEW.md | 10 +- _wip/NES PowerPad Test Card (U)/OVERVIEW.md | 53 - .../copilot/Makefile | 10 - .../copilot/linker.cfg | 6 - .../copilot/locals.inc | 2 - _wip/NES PowerPad Test Card (U)/copilot/prg.s | 12 - .../copilot/reconstructed.lbl | 0 24 files changed, 2800 insertions(+), 88 deletions(-) create mode 100644 NES PowerPad Test Card (U)/OVERVIEW.md create mode 100644 NES PowerPad Test Card (U)/copilot/Makefile rename {_wip/NES PowerPad Test Card (U) => NES PowerPad Test Card (U)}/copilot/chr.bin (100%) create mode 100644 NES PowerPad Test Card (U)/copilot/chr.s rename {_wip/NES PowerPad Test Card (U) => NES PowerPad Test Card (U)}/copilot/header.bin (100%) create mode 100644 NES PowerPad Test Card (U)/copilot/header.s create mode 100644 NES PowerPad Test Card (U)/copilot/linker.cfg create mode 100644 NES PowerPad Test Card (U)/copilot/locals.inc rename {_wip/NES PowerPad Test Card (U) => NES PowerPad Test Card (U)}/copilot/prg.bin (100%) create mode 100644 NES PowerPad Test Card (U)/copilot/prg.s create mode 100644 NES PowerPad Test Card (U)/copilot/reconstructed.lbl rename {_wip/NES PowerPad Test Card (U) => NES PowerPad Test Card (U)}/copilot/reconstructed.map (61%) rename _wip/NES PowerPad Test Card (U)/NES PowerPad Test Cart (U) [!].nes => NES PowerPad Test Card (U)/copilot/reconstructed.nes (100%) rename {_wip/NES PowerPad Test Card (U) => NES PowerPad Test Card (U)}/copilot/reconstructed_prg.bin (100%) create mode 120000 NES PowerPad Test Card (U)/copilot/rom.nes rename {_wip/NES PowerPad Test Card (U) => NES PowerPad Test Card (U)}/copilot/symbols.inc (100%) create mode 100644 NES PowerPad Test Card (U)/rom.nes delete mode 100644 _wip/NES PowerPad Test Card (U)/OVERVIEW.md delete mode 100644 _wip/NES PowerPad Test Card (U)/copilot/Makefile delete mode 100644 _wip/NES PowerPad Test Card (U)/copilot/linker.cfg delete mode 100644 _wip/NES PowerPad Test Card (U)/copilot/locals.inc delete mode 100644 _wip/NES PowerPad Test Card (U)/copilot/prg.s delete mode 100644 _wip/NES PowerPad Test Card (U)/copilot/reconstructed.lbl diff --git a/NES PowerPad Test Card (U)/OVERVIEW.md b/NES PowerPad Test Card (U)/OVERVIEW.md new file mode 100644 index 0000000..e22395f --- /dev/null +++ b/NES PowerPad Test Card (U)/OVERVIEW.md @@ -0,0 +1,187 @@ +# NES PowerPad Test Card (U) — Game Flow from Power-On + +This document describes the execution flow of the disassembled NES PowerPad Test Card (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,650 lines with headers) | +| Output | `reconstructed_prg.bin` (16,384 bytes) | + +### Interrupt vectors (CPU $FFFA–$FFFF) + +| Vector | Address | Handler | +|--------|---------|---------| +| NMI | $E06E | `NmiHandler` | +| RESET | $E000 | `Reset` | +| IRQ / BRK | $E000 | 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 `NES PowerPad Test Cart (U) [!].nes`. + +--- + +## 3. Pass Status + +| Pass | Status | Description | +|------|--------|-------------| +| Pass 1 | Complete | Code/data split — entire PRG bank classified as traced code (~7.2%) or explicit `.byte` data (~92.8%) with `; CPU:$xxxx PRG:$xxxx` annotations | +| Pass 2 | Complete | Routine headers added for all labeled positions; key routines semantically named (`Reset`, `NmiHandler`, `VramWrite`, `ReadPad`, `ProcessPads`, etc.); zero-page aliases in `locals.inc` | +| Pass 3 | Complete | Data tables/structures identified and named (`PaletteData` at $E121, `PadBitTableLives` at $E4B4); remaining `Label_Exxxx` references are internal branch targets within routines | + +--- + +## 4. Reset — CPU $FFFC → $E000 + +**`Reset`** ($E000) + +On power-on or reset: + +1. Calls a chain of initialization subroutines in sequence: + - `ResetInit` ($E09B): sei/cld, disable PPU rendering, wait for two vblanks + - `ClearRAM` ($E0C9): clear 8 pages of zero-page RAM + - `ClearVRAM` ($E0EB): clear nametable memory + - `LoadPalette` ($E107): load 32 bytes of palette data into PPU palette RAM + - `ClearVRAM_Fill23` ($E142): fill VRAM with $23 (blank tile attribute) + - `InitAPU` ($E16B): initialize APU pulse/triangle channels + - `ClearVRAM_FillFF` ($E187): fill VRAM with $FF + - Five `LoadPatternTable` routines ($E19A–$E1CB): load pattern tables from $F000 region + - `SetPPUCTRL_NMI` ($E219): enable NMI bit in PPUCTRL +2. **Main loop** (`Label_E058` at $E058): calls `ClearScreen` ($E4FA), `WaitForVBlank` ($E092), checks `$07` (frame counter high nibble), loops back to $E000 if zero, otherwise calls `ResetScroll` ($E22D) and jumps back to $E058. + +**Key point:** The main loop is driven by vblank waits and frame counter checks. All per-frame work (controller reading, pad processing, screen drawing) happens inside the NMI handler. + +--- + +## 5. NMI / Frame Heartbeat — `NmiHandler` ($E06E) + +The NMI fires once per frame: + +1. **Save registers** (`PHA / TXA / PHA / TYA / PHA`). +2. Calls `DisableNMI` ($E1FB) — clears NMI bit in PPUCTRL shadow. +3. Increments `Zp03` (frame counter). +4. Reads `PPUSTATUS` ($2002), stores to `Zp02` (vblank flag). +5. Calls `ReadPad` ($E338) — reads controller pad data. +6. Calls `ShiftPads` ($E362) — shifts pad data into state variables. +7. Calls `ProcessPads` ($E398) — processes pad transitions, updates scores. +8. Calls `DrawScore` ($E3E1) — draws score digits. +9. Calls `DrawLives` ($E407) — draws lives indicators. +10. **Restore registers** (`PLA / TAX / PLA / TAY / PLA / RTI`). + +--- + +## 6. Key Subroutines + +| Label | Address | Description | +|-------|---------|-------------| +| `Reset` | $E000 | Cold-start initialization and main loop entry | +| `NmiHandler` | $E06E | Per-frame NMI: pad read, process, score/lives draw | +| `WaitForVBlank` | $E092 | Waits for vblank flag, clears it | +| `ResetInit` | $E09B | Cold-start hardware init (PPU, APU, vblank waits) | +| `ClearRAM` | $E0C9 | Clears 8 pages of zero-page RAM | +| `ClearVRAM` | $E0EB | Clears nametable memory with zeros | +| `LoadPalette` | $E107 | Loads 32-byte palette into PPU palette RAM | +| `ClearVRAM_Fill23` | $E142 | Fills VRAM with blank tile value $23 | +| `InitAPU` | $E16B | Initializes APU pulse/triangle channels | +| `ClearVRAM_FillFF` | $E187 | Fills VRAM with $FF | +| `LoadPatternTable1`–`5` | $E19A–$E1CB | Load pattern tables from $F000 region | +| `VramWrite` | $E1CC | Generic VRAM write via indirect pointer | +| `EnableNMI` | $E1F1 | Enables NMI bit in PPUCTRL shadow | +| `DisableNMI` | $E1FB | Disables NMI bit in PPUCTRL shadow | +| `SetPPUCTRL_NMI` | $E219 | Sets NMI bit ($80) in PPUCTRL shadow | +| `ResetScroll` | $E22D | Resets PPU scroll X/Y to zero | +| `InitRoundParams` | $E236 | Initializes round parameters | +| `DrawPlayer1Pad` | $E270 | Draws player 1 pad indicators | +| `DrawPlayer2Pad` | $E2B0 | Draws player 2 pad indicators | +| `ClearRows` | $E2F0 | Clears screen rows with blank tiles | +| `ClearGameVars` | $E32D | Clears game variables $06–$09 | +| `ReadPad` | $E338 | Reads controller pad via shift register | +| `ShiftPads` | $E362 | Shifts pad data into state variables | +| `ProcessPads` | $E398 | Processes pad transitions, updates scores | +| `DrawScore` | $E3E1 | Draws score digits on screen | +| `DrawLives` | $E407 | Draws lives indicators on screen | +| `ShiftVar1`–`4` | $E433–$E47E | Shift pad bits into score accumulators | +| `UpdatePads` | $E47F | Updates pad state, checks button transitions | +| `LoadPatternTable6`–`7` | $E4A0–$E4B3 | Load additional pattern tables | +| `ProcessPadBits` | $E4FA | Process pad bit data for transitions | +| `SetAPUNoise` | $E52E | Sets APU noise channel | +| `ClearAPUNoise` | $E534 | Clears APU noise channel | +| `ClearScreen` | $E53A | Clears screen with blank tile $5F | + +--- + +## 7. Zero-Page Aliases (`locals.inc`) + +| Alias | Address | Role | +|-------|---------|------| +| `Zp00` | $00 | PPUCTRL shadow register | +| `Zp01` | $01 | PPUMASK shadow register | +| `Zp02` | $02 | VBlank flag | +| `Zp03` | $03 | Frame counter / NMI tick | +| `Zp05` | $05 | Score/digit temp | +| `Zp06` | $06 | Pad 1 state byte 1 | +| `Zp07` | $07 | Pad 1 state byte 2 | +| `Zp08` | $08 | Pad 1 state byte 3 | +| `Zp09` | $09 | Pad 1 state byte 4 | +| `Zp0A` | $0A | Pad 2 state byte 1 | +| `Zp0B` | $0B | Pad 2 state byte 2 | +| `Zp0C` | $0C | Pad temp / swap variable | +| `Zp0D` | $0D | Pad mode / draw flag | +| `Zp0E` | $0E | Shift counter / temp | +| `Zp0F` | $0F | Delay counter | +| `Zp10` | $10 | VRAM pointer low byte | +| `Zp11` | $11 | VRAM pointer high byte | +| `Zp12` | $12 | Score digit 1 accumulator | +| `Zp13` | $13 | Score digit 2 accumulator | +| `Zp14` | $14 | Score digit 3 accumulator | +| `Zp15` | $15 | Score digit 4 accumulator | + +Full list in `copilot/locals.inc`. + +--- + +## 8. Data Tables + +| Table | Address | Description | +|-------|---------|-------------| +| `PaletteData` | $E121 | 32-byte palette data loaded into PPU palette RAM | +| `PadBitTableLives` | $E4B4 | 70-byte pad bit lookup table; `DrawScore` reads from offset $0C ($E4C0) | +| Pattern pointers | $F000–$F013 | Pointer pairs loaded by `LoadPatternTable1`–`5` routines | + +--- + +## 9. Build + +```bash +cd "_wip/NES PowerPad Test Card (U)/copilot" +make # → ca65 + ld65 + cmp reconstructed_prg.bin prg.bin → "BYTE-IDENTICAL" +``` + +--- + +## 10. Notes + +- The PRG is approximately 7% code / 93% data. Most of the PRG bank ($C000–$DFFF, $E54F–$FFFF) is $FF-filled test pattern data. +- The NMI handler drives per-frame updates; the main loop (`Reset` at $E058) spins waiting for vblank and frame counter changes. +- `PadBitTableLives` at $E4B4 is a shared lookup table — `DrawLives` reads from base $E4B4, `DrawScore` reads from offset $0C ($E4C0). +- IRQ vector points to $E000 (Reset) and is effectively unused. + +--- + +## 11. Next Steps + +- **Promotion** — move to a top-level `NES PowerPad Test Card (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. +- **Optional deeper Pass 3 work** — extract the pattern pointer data at $F000+ into labeled `.byte` blocks; refine zero-page aliases with more specific roles. diff --git a/NES PowerPad Test Card (U)/copilot/Makefile b/NES PowerPad Test Card (U)/copilot/Makefile new file mode 100644 index 0000000..0d14c9a --- /dev/null +++ b/NES PowerPad Test Card (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/NES PowerPad Test Card (U)/copilot/chr.bin b/NES PowerPad Test Card (U)/copilot/chr.bin similarity index 100% rename from _wip/NES PowerPad Test Card (U)/copilot/chr.bin rename to NES PowerPad Test Card (U)/copilot/chr.bin diff --git a/NES PowerPad Test Card (U)/copilot/chr.s b/NES PowerPad Test Card (U)/copilot/chr.s new file mode 100644 index 0000000..a5c5801 --- /dev/null +++ b/NES PowerPad Test Card (U)/copilot/chr.s @@ -0,0 +1,2 @@ +.segment "CHR" + .incbin "chr.bin" diff --git a/_wip/NES PowerPad Test Card (U)/copilot/header.bin b/NES PowerPad Test Card (U)/copilot/header.bin similarity index 100% rename from _wip/NES PowerPad Test Card (U)/copilot/header.bin rename to NES PowerPad Test Card (U)/copilot/header.bin diff --git a/NES PowerPad Test Card (U)/copilot/header.s b/NES PowerPad Test Card (U)/copilot/header.s new file mode 100644 index 0000000..6091055 --- /dev/null +++ b/NES PowerPad Test Card (U)/copilot/header.s @@ -0,0 +1,2 @@ +.segment "HEADER" + .incbin "header.bin" diff --git a/NES PowerPad Test Card (U)/copilot/linker.cfg b/NES PowerPad Test Card (U)/copilot/linker.cfg new file mode 100644 index 0000000..e6835f6 --- /dev/null +++ b/NES PowerPad Test Card (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/NES PowerPad Test Card (U)/copilot/locals.inc b/NES PowerPad Test Card (U)/copilot/locals.inc new file mode 100644 index 0000000..1ead23c --- /dev/null +++ b/NES PowerPad Test Card (U)/copilot/locals.inc @@ -0,0 +1,24 @@ +; NES PowerPad Test Card (U) zero-page aliases - Pass 2 +; Semantic names for addresses with observed usage patterns. + +Zp00 = $00 ; PPUCTRL shadow register +Zp01 = $01 ; PPUMASK shadow register +Zp02 = $02 ; VBlank flag (set by NMI, cleared by WaitForVBlank) +Zp03 = $03 ; Frame counter / NMI tick counter +Zp05 = $05 ; Score/digit temp +Zp06 = $06 ; Pad 1 state byte 1 (shifted pad data) +Zp07 = $07 ; Pad 1 state byte 2 +Zp08 = $08 ; Pad 1 state byte 3 +Zp09 = $09 ; Pad 1 state byte 4 +Zp0A = $0A ; Pad 2 state byte 1 +Zp0B = $0B ; Pad 2 state byte 2 +Zp0C = $0C ; Pad temp / swap variable +Zp0D = $0D ; Pad mode / draw flag +Zp0E = $0E ; Shift counter / temp +Zp0F = $0F ; Delay counter +Zp10 = $10 ; VRAM pointer low byte (indirect) +Zp11 = $11 ; VRAM pointer high byte (indirect) +Zp12 = $12 ; Score digit 1 accumulator +Zp13 = $13 ; Score digit 2 accumulator +Zp14 = $14 ; Score digit 3 accumulator +Zp15 = $15 ; Score digit 4 accumulator diff --git a/_wip/NES PowerPad Test Card (U)/copilot/prg.bin b/NES PowerPad Test Card (U)/copilot/prg.bin similarity index 100% rename from _wip/NES PowerPad Test Card (U)/copilot/prg.bin rename to NES PowerPad Test Card (U)/copilot/prg.bin diff --git a/NES PowerPad Test Card (U)/copilot/prg.s b/NES PowerPad Test Card (U)/copilot/prg.s new file mode 100644 index 0000000..273621a --- /dev/null +++ b/NES PowerPad Test Card (U)/copilot/prg.s @@ -0,0 +1,2444 @@ +; NES PowerPad Test Card (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" + +; ---- data $C000-$DFFF (8192 bytes) ---- + .byte $20, $9B, $E0, $20, $C9, $E0, $20, $EB, $E0, $20, $07, $E1, $20, $42, $E1, $20 ; CPU:$C000 PRG:0000 20 9B E0 20 C9 E0 20 EB E0 20 07 E1 20 42 E1 20 + .byte $6B, $E1, $20, $9A, $E1, $20, $B8, $E1, $20, $2D, $E2, $20, $F1, $E1, $20, $62 ; CPU:$C010 PRG:0010 6B E1 20 9A E1 20 B8 E1 20 2D E2 20 F1 E1 20 62 + .byte $E3, $A5, $07, $09, $F0, $85, $0E, $E6, $0E, $D0, $F3, $A9, $64, $85, $0F, $20 ; CPU:$C020 PRG:0020 E3 A5 07 09 F0 85 0E E6 0E D0 F3 A9 64 85 0F 20 + .byte $62, $E3, $A5, $06, $D0, $F5, $A5, $07, $29, $F0, $D0, $EF, $C6, $0F, $D0, $EF ; CPU:$C030 PRG:0030 62 E3 A5 06 D0 F5 A5 07 29 F0 D0 EF C6 0F D0 EF + .byte $20, $FB, $E1, $20, $3A, $E5, $20, $87, $E1, $20, $AE, $E1, $20, $A4, $E1, $20 ; CPU:$C040 PRG:0040 20 FB E1 20 3A E5 20 87 E1 20 AE E1 20 A4 E1 20 + .byte $B0, $E2, $20, $C2, $E1, $20, $19, $E2, $20, $FA, $E4, $20, $62, $E3, $A5, $07 ; CPU:$C050 PRG:0050 B0 E2 20 C2 E1 20 19 E2 20 FA E4 20 62 E3 A5 07 + .byte $D0, $06, $20, $FB, $E1, $4C, $00, $E0, $20, $92, $E0, $4C, $58, $E0, $48, $8A ; CPU:$C060 PRG:0060 D0 06 20 FB E1 4C 00 E0 20 92 E0 4C 58 E0 48 8A + .byte $48, $98, $48, $20, $FB, $E1, $E6, $03, $AD, $02, $20, $85, $02, $20, $38, $E3 ; CPU:$C070 PRG:0070 48 98 48 20 FB E1 E6 03 AD 02 20 85 02 20 38 E3 + .byte $20, $98, $E3, $20, $7F, $E4, $20, $2D, $E2, $20, $F1, $E1, $68, $A8, $68, $AA ; CPU:$C080 PRG:0080 20 98 E3 20 7F E4 20 2D E2 20 F1 E1 68 A8 68 AA + .byte $68, $40, $A5, $02, $F0, $FC, $A9, $00, $85, $02, $60, $78, $D8, $A2, $00, $8E ; CPU:$C090 PRG:0090 68 40 A5 02 F0 FC A9 00 85 02 60 78 D8 A2 00 8E + .byte $01, $20, $86, $01, $A2, $10, $8E, $00, $20, $86, $00, $A9, $40, $8D, $17, $40 ; CPU:$C0A0 PRG:00A0 01 20 86 01 A2 10 8E 00 20 86 00 A9 40 8D 17 40 + .byte $AD, $02, $20, $10, $FB, $AD, $02, $20, $10, $FB, $A9, $0F, $8D, $15, $40, $A9 ; CPU:$C0B0 PRG:00B0 AD 02 20 10 FB AD 02 20 10 FB A9 0F 8D 15 40 A9 + .byte $02, $8D, $16, $40, $60, $A2, $80, $9A, $60, $A0, $00, $A2, $00, $A9, $00, $95 ; CPU:$C0C0 PRG:00C0 02 8D 16 40 60 A2 80 9A 60 A0 00 A2 00 A9 00 95 + .byte $00, $E8, $D0, $FB, $C8, $C0, $08, $D0, $F6, $A9, $F4, $A2, $00, $9D, $00, $02 ; CPU:$C0D0 PRG:00D0 00 E8 D0 FB C8 C0 08 D0 F6 A9 F4 A2 00 9D 00 02 + .byte $E8, $D0, $FA, $A9, $10, $85, $00, $20, $36, $E2, $60, $A9, $20, $8D, $06, $20 ; CPU:$C0E0 PRG:00E0 E8 D0 FA A9 10 85 00 20 36 E2 60 A9 20 8D 06 20 + .byte $A9, $00, $8D, $06, $20, $A0, $00, $A2, $00, $A9, $04, $8D, $07, $20, $E8, $D0 ; CPU:$C0F0 PRG:00F0 A9 00 8D 06 20 A0 00 A2 00 A9 04 8D 07 20 E8 D0 + .byte $FA, $C8, $C0, $08, $D0, $F5, $60, $A9, $3F, $8D, $06, $20, $A9, $00, $8D, $06 ; CPU:$C100 PRG:0100 FA C8 C0 08 D0 F5 60 A9 3F 8D 06 20 A9 00 8D 06 + .byte $20, $A2, $00, $BD, $21, $E1, $8D, $07, $20, $E8, $E0, $20, $D0, $F5, $4C, $41 ; CPU:$C110 PRG:0110 20 A2 00 BD 21 E1 8D 07 20 E8 E0 20 D0 F5 4C 41 + .byte $E1, $0F, $16, $12, $10, $0F, $0F, $0F, $10, $0F, $1A, $1A, $10, $0F, $28, $00 ; CPU:$C120 PRG:0120 E1 0F 16 12 10 0F 0F 0F 10 0F 1A 1A 10 0F 28 00 + .byte $10, $0F, $16, $10, $30, $0F, $12, $00, $30, $0F, $19, $00, $30, $0F, $00, $00 ; CPU:$C130 PRG:0130 10 0F 16 10 30 0F 12 00 30 0F 19 00 30 0F 00 00 + .byte $30, $60, $A9, $23, $8D, $06, $20, $A9, $C0, $8D, $06, $20, $A9, $00, $A2, $40 ; CPU:$C140 PRG:0140 30 60 A9 23 8D 06 20 A9 C0 8D 06 20 A9 00 A2 40 + .byte $8D, $07, $20, $CA, $D0, $FA, $A9, $23, $8D, $06, $20, $A9, $F0, $8D, $06, $20 ; CPU:$C150 PRG:0150 8D 07 20 CA D0 FA A9 23 8D 06 20 A9 F0 8D 06 20 + .byte $A2, $08, $A9, $FF, $8D, $07, $20, $CA, $D0, $FA, $60, $A9, $9F, $8D, $00, $40 ; CPU:$C160 PRG:0160 A2 08 A9 FF 8D 07 20 CA D0 FA 60 A9 9F 8D 00 40 + .byte $8D, $04, $40, $A9, $0F, $8D, $01, $40, $8D, $05, $40, $A9, $AA, $8D, $02, $40 ; CPU:$C170 PRG:0170 8D 04 40 A9 0F 8D 01 40 8D 05 40 A9 AA 8D 02 40 + .byte $8D, $06, $40, $8D, $15, $40, $60, $A9, $23, $8D, $06, $20, $A9, $D2, $8D, $06 ; CPU:$C180 PRG:0180 8D 06 40 8D 15 40 60 A9 23 8D 06 20 A9 D2 8D 06 + .byte $20, $A9, $FF, $8D, $07, $20, $8D, $07, $20, $60, $AE, $00, $F0, $AC, $01, $F0 ; CPU:$C190 PRG:0190 20 A9 FF 8D 07 20 8D 07 20 60 AE 00 F0 AC 01 F0 + .byte $20, $CC, $E1, $60, $AE, $02, $F0, $AC, $03, $F0, $20, $CC, $E1, $60, $AE, $04 ; CPU:$C1A0 PRG:01A0 20 CC E1 60 AE 02 F0 AC 03 F0 20 CC E1 60 AE 04 + .byte $F0, $AC, $05, $F0, $20, $CC, $E1, $60, $AE, $0A, $F0, $AC, $0B, $F0, $20, $CC ; CPU:$C1B0 PRG:01B0 F0 AC 05 F0 20 CC E1 60 AE 0A F0 AC 0B F0 20 CC + .byte $E1, $60, $AE, $10, $F0, $AC, $11, $F0, $20, $CC, $E1, $60, $86, $10, $84, $11 ; CPU:$C1C0 PRG:01C0 E1 60 AE 10 F0 AC 11 F0 20 CC E1 60 86 10 84 11 + .byte $A0, $00, $B1, $10, $F0, $1A, $8D, $06, $20, $C8, $B1, $10, $8D, $06, $20, $C8 ; CPU:$C1D0 PRG:01D0 A0 00 B1 10 F0 1A 8D 06 20 C8 B1 10 8D 06 20 C8 + .byte $B1, $10, $AA, $C8, $B1, $10, $8D, $07, $20, $CA, $D0, $F7, $C8, $4C, $D2, $E1 ; CPU:$C1E0 PRG:01E0 B1 10 AA C8 B1 10 8D 07 20 CA D0 F7 C8 4C D2 E1 + .byte $60, $A5, $01, $09, $08, $8D, $01, $20, $85, $01, $60, $A5, $01, $29, $F7, $8D ; CPU:$C1F0 PRG:01F0 60 A5 01 09 08 8D 01 20 85 01 60 A5 01 29 F7 8D + .byte $01, $20, $85, $01, $60, $A5, $01, $09, $10, $8D, $01, $20, $85, $01, $60, $A5 ; CPU:$C200 PRG:0200 01 20 85 01 60 A5 01 09 10 8D 01 20 85 01 60 A5 + .byte $01, $29, $EF, $8D, $01, $20, $85, $01, $60, $A5, $00, $09, $80, $8D, $00, $20 ; CPU:$C210 PRG:0210 01 29 EF 8D 01 20 85 01 60 A5 00 09 80 8D 00 20 + .byte $85, $00, $60, $A5, $00, $29, $7F, $8D, $00, $20, $85, $00, $60, $A9, $00, $8D ; CPU:$C220 PRG:0220 85 00 60 A5 00 29 7F 8D 00 20 85 00 60 A9 00 8D + .byte $05, $20, $8D, $05, $20, $60, $A9, $00, $85, $14, $85, $15, $A9, $50, $85, $12 ; CPU:$C230 PRG:0230 05 20 8D 05 20 60 A9 00 85 14 85 15 A9 50 85 12 + .byte $A9, $05, $85, $13, $60, $A9, $23, $8D, $06, $20, $A9, $28, $8D, $06, $20, $A5 ; CPU:$C240 PRG:0240 A9 05 85 13 60 A9 23 8D 06 20 A9 28 8D 06 20 A5 + .byte $03, $85, $0E, $20, $57, $E2, $60, $A5, $0E, $6A, $6A, $6A, $6A, $29, $0F, $18 ; CPU:$C250 PRG:0250 03 85 0E 20 57 E2 60 A5 0E 6A 6A 6A 6A 29 0F 18 + .byte $69, $30, $8D, $07, $20, $A5, $0E, $29, $0F, $18, $69, $30, $8D, $07, $20, $60 ; CPU:$C260 PRG:0260 69 30 8D 07 20 A5 0E 29 0F 18 69 30 8D 07 20 60 + .byte $20, $FB, $E1, $AE, $08, $F0, $AC, $09, $F0, $20, $CC, $E1, $A9, $23, $8D, $06 ; CPU:$C270 PRG:0270 20 FB E1 AE 08 F0 AC 09 F0 20 CC E1 A9 23 8D 06 + .byte $20, $A9, $E5, $8D, $06, $20, $A9, $55, $8D, $07, $20, $8D, $07, $20, $8D, $07 ; CPU:$C280 PRG:0280 20 A9 E5 8D 06 20 A9 55 8D 07 20 8D 07 20 8D 07 + .byte $20, $A9, $23, $8D, $06, $20, $A9, $D5, $8D, $06, $20, $A9, $00, $8D, $07, $20 ; CPU:$C290 PRG:0290 20 A9 23 8D 06 20 A9 D5 8D 06 20 A9 00 8D 07 20 + .byte $8D, $07, $20, $8D, $07, $20, $20, $F0, $E2, $20, $2D, $E3, $20, $36, $E2, $60 ; CPU:$C2A0 PRG:02A0 8D 07 20 8D 07 20 20 F0 E2 20 2D E3 20 36 E2 60 + .byte $20, $FB, $E1, $AE, $06, $F0, $AC, $07, $F0, $20, $CC, $E1, $A9, $23, $8D, $06 ; CPU:$C2B0 PRG:02B0 20 FB E1 AE 06 F0 AC 07 F0 20 CC E1 A9 23 8D 06 + .byte $20, $A9, $E5, $8D, $06, $20, $A9, $00, $8D, $07, $20, $8D, $07, $20, $8D, $07 ; CPU:$C2C0 PRG:02C0 20 A9 E5 8D 06 20 A9 00 8D 07 20 8D 07 20 8D 07 + .byte $20, $A9, $23, $8D, $06, $20, $A9, $D5, $8D, $06, $20, $A9, $55, $8D, $07, $20 ; CPU:$C2D0 PRG:02D0 20 A9 23 8D 06 20 A9 D5 8D 06 20 A9 55 8D 07 20 + .byte $8D, $07, $20, $8D, $07, $20, $20, $F0, $E2, $20, $2D, $E3, $20, $36, $E2, $60 ; CPU:$C2E0 PRG:02E0 8D 07 20 8D 07 20 20 F0 E2 20 2D E3 20 36 E2 60 + .byte $A9, $23, $8D, $06, $20, $A9, $D9, $8D, $06, $20, $A9, $00, $A2, $04, $8D, $07 ; CPU:$C2F0 PRG:02F0 A9 23 8D 06 20 A9 D9 8D 06 20 A9 00 A2 04 8D 07 + .byte $20, $CA, $D0, $FA, $A9, $23, $8D, $06, $20, $A9, $E1, $8D, $06, $20, $A9, $00 ; CPU:$C300 PRG:0300 20 CA D0 FA A9 23 8D 06 20 A9 E1 8D 06 20 A9 00 + .byte $A2, $04, $8D, $07, $20, $CA, $D0, $FA, $A9, $23, $8D, $06, $20, $A9, $E9, $8D ; CPU:$C310 PRG:0310 A2 04 8D 07 20 CA D0 FA A9 23 8D 06 20 A9 E9 8D + .byte $06, $20, $A9, $00, $A2, $04, $8D, $07, $20, $CA, $D0, $FA, $60, $A9, $00, $85 ; CPU:$C320 PRG:0320 06 20 A9 00 A2 04 8D 07 20 CA D0 FA 60 A9 00 85 + .byte $06, $85, $07, $85, $08, $85, $09, $60, $A5, $03, $18, $2A, $18, $2A, $18, $2A ; CPU:$C330 PRG:0330 06 85 07 85 08 85 09 60 A5 03 18 2A 18 2A 18 2A + .byte $D0, $1F, $E6, $05, $F0, $07, $A5, $05, $18, $69, $54, $85, $05, $A9, $23, $8D ; CPU:$C340 PRG:0340 D0 1F E6 05 F0 07 A5 05 18 69 54 85 05 A9 23 8D + .byte $06, $20, $A9, $C8, $8D, $06, $20, $A2, $08, $A5, $05, $8D, $07, $20, $CA, $D0 ; CPU:$C350 PRG:0350 06 20 A9 C8 8D 06 20 A2 08 A5 05 8D 07 20 CA D0 + .byte $FA, $60, $A5, $06, $85, $08, $A5, $07, $85, $09, $A5, $0A, $85, $0B, $A9, $00 ; CPU:$C360 PRG:0360 FA 60 A5 06 85 08 A5 07 85 09 A5 0A 85 0B A9 00 + .byte $8D, $16, $40, $A9, $01, $8D, $16, $40, $A9, $00, $8D, $16, $40, $A2, $08, $AD ; CPU:$C370 PRG:0370 8D 16 40 A9 01 8D 16 40 A9 00 8D 16 40 A2 08 AD + .byte $17, $40, $85, $0E, $AD, $16, $40, $05, $0E, $6A, $26, $0A, $6A, $6A, $6A, $26 ; CPU:$C380 PRG:0380 17 40 85 0E AD 16 40 05 0E 6A 26 0A 6A 6A 6A 26 + .byte $06, $6A, $26, $07, $CA, $D0, $E8, $60, $A5, $06, $85, $0C, $A0, $00, $A2, $08 ; CPU:$C390 PRG:0390 06 6A 26 07 CA D0 E8 60 A5 06 85 0C A0 00 A2 08 + .byte $66, $08, $B0, $0A, $66, $06, $90, $0D, $20, $E1, $E3, $4C, $B5, $E3, $66, $06 ; CPU:$C3A0 PRG:03A0 66 08 B0 0A 66 06 90 0D 20 E1 E3 4C B5 E3 66 06 + .byte $B0, $03, $20, $07, $E4, $C8, $CA, $D0, $E7, $A5, $0C, $85, $06, $A5, $07, $85 ; CPU:$C3B0 PRG:03B0 B0 03 20 07 E4 C8 CA D0 E7 A5 0C 85 06 A5 07 85 + .byte $0C, $A2, $04, $26, $09, $B0, $0A, $26, $07, $90, $0D, $20, $E1, $E3, $4C, $D8 ; CPU:$C3C0 PRG:03C0 0C A2 04 26 09 B0 0A 26 07 90 0D 20 E1 E3 4C D8 + .byte $E3, $26, $07, $B0, $03, $20, $07, $E4, $C8, $CA, $D0, $E7, $A5, $0C, $85, $07 ; CPU:$C3D0 PRG:03D0 E3 26 07 B0 03 20 07 E4 C8 CA D0 E7 A5 0C 85 07 + .byte $60, $20, $FB, $E1, $A9, $23, $8D, $06, $20, $A5, $0D, $F0, $08, $B9, $C0, $E4 ; CPU:$C3E0 PRG:03E0 60 20 FB E1 A9 23 8D 06 20 A5 0D F0 08 B9 C0 E4 + .byte $F0, $11, $4C, $F8, $E3, $B9, $B4, $E4, $8D, $06, $20, $A9, $55, $8D, $07, $20 ; CPU:$C3F0 PRG:03F0 F0 11 4C F8 E3 B9 B4 E4 8D 06 20 A9 55 8D 07 20 + .byte $20, $2E, $E5, $AD, $02, $20, $60, $20, $FB, $E1, $A9, $23, $8D, $06, $20, $A5 ; CPU:$C400 PRG:0400 20 2E E5 AD 02 20 60 20 FB E1 A9 23 8D 06 20 A5 + .byte $0D, $F0, $0B, $20, $33, $E4, $B9, $C0, $E4, $F0, $14, $4C, $24, $E4, $20, $59 ; CPU:$C410 PRG:0410 0D F0 0B 20 33 E4 B9 C0 E4 F0 14 4C 24 E4 20 59 + .byte $E4, $B9, $B4, $E4, $8D, $06, $20, $A9, $AA, $8D, $07, $20, $20, $34, $E5, $AD ; CPU:$C420 PRG:0420 E4 B9 B4 E4 8D 06 20 A9 AA 8D 07 20 20 34 E5 AD + .byte $02, $20, $60, $84, $0E, $E6, $0E, $A9, $01, $C6, $0E, $F0, $07, $18, $2A, $B0 ; CPU:$C430 PRG:0430 02 20 60 84 0E E6 0E A9 01 C6 0E F0 07 18 2A B0 + .byte $08, $4C, $39, $E4, $05, $12, $85, $12, $60, $A9, $01, $C6, $0E, $F0, $05, $18 ; CPU:$C440 PRG:0440 08 4C 39 E4 05 12 85 12 60 A9 01 C6 0E F0 05 18 + .byte $2A, $4C, $4B, $E4, $05, $13, $85, $13, $60, $84, $0E, $E6, $0E, $A9, $01, $C6 ; CPU:$C450 PRG:0450 2A 4C 4B E4 05 13 85 13 60 84 0E E6 0E A9 01 C6 + .byte $0E, $F0, $07, $18, $2A, $B0, $08, $4C, $5F, $E4, $05, $14, $85, $14, $60, $A9 ; CPU:$C460 PRG:0460 0E F0 07 18 2A B0 08 4C 5F E4 05 14 85 14 60 A9 + .byte $01, $C6, $0E, $F0, $05, $18, $2A, $4C, $71, $E4, $05, $15, $85, $15, $60, $A6 ; CPU:$C470 PRG:0470 01 C6 0E F0 05 18 2A 4C 71 E4 05 15 85 15 60 A6 + .byte $12, $E8, $D0, $0B, $A5, $13, $09, $F0, $AA, $E8, $D0, $03, $20, $A0, $E4, $A6 ; CPU:$C480 PRG:0480 12 E8 D0 0B A5 13 09 F0 AA E8 D0 03 20 A0 E4 A6 + .byte $14, $E8, $D0, $0B, $A5, $15, $09, $F0, $AA, $E8, $D0, $03, $20, $AA, $E4, $60 ; CPU:$C490 PRG:0490 14 E8 D0 0B A5 15 09 F0 AA E8 D0 03 20 AA E4 60 + .byte $AE, $0C, $F0, $AC, $0D, $F0, $20, $CC, $E1, $60, $AE, $0E, $F0, $AC, $0F, $F0 ; CPU:$C4A0 PRG:04A0 AE 0C F0 AC 0D F0 20 CC E1 60 AE 0E F0 AC 0F F0 + .byte $20, $CC, $E1, $60, $E3, $EB, $EA, $E2, $E9, $E1, $D9, $DA, $DC, $DB, $EC, $E4 ; CPU:$C4B0 PRG:04B0 20 CC E1 60 E3 EB EA E2 E9 E1 D9 DA DC DB EC E4 + .byte $E2, $EA, $EB, $E3, $00, $E4, $00, $DB, $00, $DA, $00, $E1, $21, $96, $08, $B0 ; CPU:$C4C0 PRG:04C0 E2 EA EB E3 00 E4 00 DB 00 DA 00 E1 21 96 08 B0 + .byte $B1, $BC, $BD, $D4, $D5, $D4, $D5, $21, $B6, $08, $C0, $C1, $CC, $CD, $E4, $E5 ; CPU:$C4D0 PRG:04D0 B1 BC BD D4 D5 D4 D5 21 B6 08 C0 C1 CC CD E4 E5 + .byte $E4, $E5, $00, $22, $96, $08, $B0, $B1, $BC, $BD, $D4, $D5, $D4, $D5, $22, $B6 ; CPU:$C4E0 PRG:04E0 E4 E5 00 22 96 08 B0 B1 BC BD D4 D5 D4 D5 22 B6 + .byte $08, $C0, $C1, $CC, $CD, $E4, $E5, $E4, $E5, $00, $A5, $0A, $85, $0E, $26, $0B ; CPU:$C4F0 PRG:04F0 08 C0 C1 CC CD E4 E5 E4 E5 00 A5 0A 85 0E 26 0B + .byte $B0, $07, $26, $0A, $90, $03, $4C, $14, $E5, $26, $0B, $B0, $20, $26, $0A, $90 ; CPU:$C500 PRG:0500 B0 07 26 0A 90 03 4C 14 E5 26 0B B0 20 26 0A 90 + .byte $1C, $4C, $22, $E5, $A5, $0D, $D0, $15, $20, $70, $E2, $A9, $01, $85, $0D, $4C ; CPU:$C510 PRG:0510 1C 4C 22 E5 A5 0D D0 15 20 70 E2 A9 01 85 0D 4C + .byte $2D, $E5, $A5, $0D, $F0, $07, $20, $B0, $E2, $A9, $00, $85, $0D, $60, $A9, $02 ; CPU:$C520 PRG:0520 2D E5 A5 0D F0 07 20 B0 E2 A9 00 85 0D 60 A9 02 + .byte $8D, $03, $40, $60, $A9, $00, $8D, $07, $40, $60, $A9, $21, $8D, $06, $20, $A9 ; CPU:$C530 PRG:0530 8D 03 40 60 A9 00 8D 07 40 60 A9 21 8D 06 20 A9 + .byte $20, $8D, $06, $20, $A9, $5F, $A2, $80, $8D, $07, $20, $CA, $D0, $FA, $60, $20 ; CPU:$C540 PRG:0540 20 8D 06 20 A9 5F A2 80 8D 07 20 CA D0 FA 60 20 + .byte $83, $1A, $B0, $B1, $B2, $B3, $B4, $B5, $B6, $B7, $B8, $B9, $04, $BA, $BB, $BC ; CPU:$C550 PRG:0550 83 1A B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 04 BA BB BC + .byte $BD, $BE, $BF, $04, $D0, $D1, $D2, $D3, $D4, $D5, $D6, $D7, $20, $A3, $1A, $C0 ; CPU:$C560 PRG:0560 BD BE BF 04 D0 D1 D2 D3 D4 D5 D6 D7 20 A3 1A C0 + .byte $C1, $C2, $C3, $C4, $C5, $C6, $C7, $C8, $C9, $04, $CA, $CB, $CC, $CD, $CE, $CF ; CPU:$C570 PRG:0570 C1 C2 C3 C4 C5 C6 C7 C8 C9 04 CA CB CC CD CE CF + .byte $04, $E0, $E1, $E2, $E3, $E4, $E5, $E6, $E7, $00, $21, $36, $07, $90, $91, $92 ; CPU:$C580 PRG:0580 04 E0 E1 E2 E3 E4 E5 E6 E7 00 21 36 07 90 91 92 + .byte $93, $04, $BC, $BD, $21, $56, $07, $A0, $A1, $A2, $A3, $A4, $CC, $CD, $22, $36 ; CPU:$C590 PRG:0590 93 04 BC BD 21 56 07 A0 A1 A2 A3 A4 CC CD 22 36 + .byte $07, $90, $91, $92, $93, $04, $DE, $DF, $22, $56, $07, $A0, $A1, $A2, $A3, $04 ; CPU:$C5A0 PRG:05A0 07 90 91 92 93 04 DE DF 22 56 07 A0 A1 A2 A3 04 + .byte $EE, $EF, $00, $21, $24, $10, $08, $09, $09, $09, $09, $09, $16, $16, $16, $16 ; CPU:$C5B0 PRG:05B0 EE EF 00 21 24 10 08 09 09 09 09 09 16 16 16 16 + .byte $09, $09, $09, $09, $09, $0A, $21, $44, $10, $0B, $07, $07, $07, $07, $07, $18 ; CPU:$C5C0 PRG:05C0 09 09 09 09 09 0A 21 44 10 0B 07 07 07 07 07 18 + .byte $19, $1A, $1B, $07, $07, $07, $07, $07, $0C, $21, $64, $10, $0B, $07, $07, $07 ; CPU:$C5D0 PRG:05D0 19 1A 1B 07 07 07 07 07 0C 21 64 10 0B 07 07 07 + .byte $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $0C, $21, $C4, $10, $0B ; CPU:$C5E0 PRG:05E0 07 07 07 07 07 07 07 07 07 07 07 0C 21 C4 10 0B + .byte $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $0C, $21 ; CPU:$C5F0 PRG:05F0 07 07 07 07 07 07 07 07 07 07 07 07 07 07 0C 21 + .byte $E4, $10, $0B, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07 ; CPU:$C600 PRG:0600 E4 10 0B 07 07 07 07 07 07 07 07 07 07 07 07 07 + .byte $07, $0C, $22, $44, $10, $0B, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07 ; CPU:$C610 PRG:0610 07 0C 22 44 10 0B 07 07 07 07 07 07 07 07 07 07 + .byte $07, $07, $07, $07, $0C, $22, $64, $10, $0B, $07, $07, $07, $07, $07, $07, $07 ; CPU:$C620 PRG:0620 07 07 07 07 0C 22 64 10 0B 07 07 07 07 07 07 07 + .byte $07, $07, $07, $07, $07, $07, $07, $0C, $22, $C4, $10, $0D, $0E, $0E, $0E, $0E ; CPU:$C630 PRG:0630 07 07 07 07 07 07 07 0C 22 C4 10 0D 0E 0E 0E 0E + .byte $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0F, $00, $21, $84, $10, $0B ; CPU:$C640 PRG:0640 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0F 00 21 84 10 0B + .byte $10, $11, $07, $07, $10, $11, $07, $07, $00, $01, $07, $07, $00, $01, $0C, $21 ; CPU:$C650 PRG:0650 10 11 07 07 10 11 07 07 00 01 07 07 00 01 0C 21 + .byte $A4, $10, $0B, $12, $13, $07, $07, $12, $13, $07, $07, $02, $03, $07, $07, $02 ; CPU:$C660 PRG:0660 A4 10 0B 12 13 07 07 12 13 07 07 02 03 07 07 02 + .byte $03, $0C, $22, $04, $10, $0B, $10, $11, $07, $07, $10, $11, $07, $07, $00, $01 ; CPU:$C670 PRG:0670 03 0C 22 04 10 0B 10 11 07 07 10 11 07 07 00 01 + .byte $07, $07, $00, $01, $0C, $22, $24, $10, $0B, $12, $13, $07, $07, $12, $13, $07 ; CPU:$C680 PRG:0680 07 07 00 01 0C 22 24 10 0B 12 13 07 07 12 13 07 + .byte $07, $02, $03, $07, $07, $02, $03, $0C, $22, $84, $10, $0B, $10, $11, $07, $07 ; CPU:$C690 PRG:0690 07 02 03 07 07 02 03 0C 22 84 10 0B 10 11 07 07 + .byte $10, $11, $07, $07, $00, $01, $07, $07, $00, $01, $0C, $22, $A4, $10, $0B, $12 ; CPU:$C6A0 PRG:06A0 10 11 07 07 00 01 07 07 00 01 0C 22 A4 10 0B 12 + .byte $13, $07, $07, $12, $13, $07, $07, $02, $03, $07, $07, $02, $03, $0C, $00, $21 ; CPU:$C6B0 PRG:06B0 13 07 07 12 13 07 07 02 03 07 07 02 03 0C 00 21 + .byte $84, $10, $0B, $07, $07, $07, $07, $10, $11, $07, $07, $10, $11, $07, $07, $07 ; CPU:$C6C0 PRG:06C0 84 10 0B 07 07 07 07 10 11 07 07 10 11 07 07 07 + .byte $07, $0C, $21, $A4, $10, $0B, $07, $07, $07, $07, $12, $13, $07, $07, $12, $13 ; CPU:$C6D0 PRG:06D0 07 0C 21 A4 10 0B 07 07 07 07 12 13 07 07 12 13 + .byte $07, $07, $07, $07, $0C, $22, $04, $10, $0B, $10, $11, $07, $07, $00, $01, $07 ; CPU:$C6E0 PRG:06E0 07 07 07 07 0C 22 04 10 0B 10 11 07 07 00 01 07 + .byte $07, $00, $01, $07, $07, $10, $11, $0C, $22, $24, $10, $0B, $12, $13, $07, $07 ; CPU:$C6F0 PRG:06F0 07 00 01 07 07 10 11 0C 22 24 10 0B 12 13 07 07 + .byte $02, $03, $07, $07, $02, $03, $07, $07, $12, $13, $0C, $22, $84, $10, $0B, $07 ; CPU:$C700 PRG:0700 02 03 07 07 02 03 07 07 12 13 0C 22 84 10 0B 07 + .byte $07, $07, $07, $10, $11, $07, $07, $10, $11, $07, $07, $07, $07, $0C, $22, $A4 ; CPU:$C710 PRG:0710 07 07 07 10 11 07 07 10 11 07 07 07 07 0C 22 A4 + .byte $10, $0B, $07, $07, $07, $07, $12, $13, $07, $07, $12, $13, $07, $07, $07, $07 ; CPU:$C720 PRG:0720 10 0B 07 07 07 07 12 13 07 07 12 13 07 07 07 07 + .byte $0C, $00, $21, $21, $1E, $3C, $48, $47, $47, $3E, $3C, $4D, $5F, $49, $48, $5E ; CPU:$C730 PRG:0730 0C 00 21 21 1E 3C 48 47 47 3E 3C 4D 5F 49 48 5E + .byte $3E, $4B, $5F, $49, $3A, $3D, $5F, $5D, $5F, $3C, $48, $47, $4D, $4B, $48, $45 ; CPU:$C740 PRG:0740 3E 4B 5F 49 3A 3D 5F 5D 5F 3C 48 47 4D 4B 48 45 + .byte $45, $3E, $4B, $21, $63, $1B, $60, $42, $3F, $5F, $49, $48, $5E, $3E, $4B, $5F ; CPU:$C750 PRG:0750 45 3E 4B 21 63 1B 60 42 3F 5F 49 48 5E 3E 4B 5F + .byte $49, $3A, $3D, $5F, $42, $4C, $5F, $3C, $48, $47, $47, $3E, $3C, $4D, $3E, $3D ; CPU:$C760 PRG:0760 49 3A 3D 5F 42 4C 5F 3C 48 47 47 3E 3C 4D 3E 3D + .byte $62, $21, $83, $1B, $61, $5F, $5F, $5F, $5F, $5F, $5F, $5F, $42, $3C, $5F, $46 ; CPU:$C770 PRG:0770 62 21 83 1B 61 5F 5F 5F 5F 5F 5F 5F 42 3C 5F 46 + .byte $3A, $51, $5F, $3B, $3E, $5F, $3B, $3A, $3D, $53, $5F, $5F, $5F, $5F, $63, $00 ; CPU:$C780 PRG:0780 3A 51 5F 3B 3E 5F 3B 3A 3D 53 5F 5F 5F 5F 63 00 + .byte $23, $04, $16, $49, $4B, $3E, $4C, $4C, $5F, $3A, $5F, $4D, $48, $5F, $4D, $3E ; CPU:$C790 PRG:0790 23 04 16 49 4B 3E 4C 4C 5F 3A 5F 4D 48 5F 4D 3E + .byte $4C, $4D, $5F, $4C, $42, $3D, $3E, $57, $3A, $23, $44, $16, $49, $4B, $3E, $4C ; CPU:$C7A0 PRG:07A0 4C 4D 5F 4C 42 3D 3E 57 3A 23 44 16 49 4B 3E 4C + .byte $4C, $5F, $3B, $5F, $4D, $48, $5F, $4D, $3E, $4C, $4D, $5F, $4C, $42, $3D, $3E ; CPU:$C7B0 PRG:07B0 4C 5F 3B 5F 4D 48 5F 4D 3E 4C 4D 5F 4C 42 3D 3E + .byte $57, $3B, $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C7C0 PRG:07C0 57 3B 00 FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C7D0 PRG:07D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C7E0 PRG:07E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C7F0 PRG:07F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C800 PRG:0800 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C810 PRG:0810 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C820 PRG:0820 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C830 PRG:0830 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C840 PRG:0840 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C850 PRG:0850 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C860 PRG:0860 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C870 PRG:0870 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C880 PRG:0880 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C890 PRG:0890 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C8A0 PRG:08A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C8B0 PRG:08B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C8C0 PRG:08C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C8D0 PRG:08D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C8E0 PRG:08E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C8F0 PRG:08F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C900 PRG:0900 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C910 PRG:0910 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C920 PRG:0920 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C930 PRG:0930 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C940 PRG:0940 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C950 PRG:0950 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C960 PRG:0960 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C970 PRG:0970 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C980 PRG:0980 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C990 PRG:0990 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C9A0 PRG:09A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C9B0 PRG:09B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C9C0 PRG:09C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C9D0 PRG:09D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C9E0 PRG:09E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C9F0 PRG:09F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CA00 PRG:0A00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CA10 PRG:0A10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CA20 PRG:0A20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CA30 PRG:0A30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CA40 PRG:0A40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CA50 PRG:0A50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CA60 PRG:0A60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CA70 PRG:0A70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CA80 PRG:0A80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CA90 PRG:0A90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CAA0 PRG:0AA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CAB0 PRG:0AB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CAC0 PRG:0AC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CAD0 PRG:0AD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CAE0 PRG:0AE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CAF0 PRG:0AF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CB00 PRG:0B00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CB10 PRG:0B10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CB20 PRG:0B20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CB30 PRG:0B30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CB40 PRG:0B40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CB50 PRG:0B50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CB60 PRG:0B60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CB70 PRG:0B70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CB80 PRG:0B80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CB90 PRG:0B90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CBA0 PRG:0BA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CBB0 PRG:0BB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CBC0 PRG:0BC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CBD0 PRG:0BD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CBE0 PRG:0BE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CBF0 PRG:0BF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CC00 PRG:0C00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CC10 PRG:0C10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CC20 PRG:0C20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CC30 PRG:0C30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CC40 PRG:0C40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CC50 PRG:0C50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CC60 PRG:0C60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CC70 PRG:0C70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CC80 PRG:0C80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CC90 PRG:0C90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CCA0 PRG:0CA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CCB0 PRG:0CB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CCC0 PRG:0CC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CCD0 PRG:0CD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CCE0 PRG:0CE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CCF0 PRG:0CF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CD00 PRG:0D00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CD10 PRG:0D10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CD20 PRG:0D20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CD30 PRG:0D30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CD40 PRG:0D40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CD50 PRG:0D50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CD60 PRG:0D60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CD70 PRG:0D70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CD80 PRG:0D80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CD90 PRG:0D90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CDA0 PRG:0DA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CDB0 PRG:0DB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CDC0 PRG:0DC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CDD0 PRG:0DD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CDE0 PRG:0DE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CDF0 PRG:0DF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CE00 PRG:0E00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CE10 PRG:0E10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CE20 PRG:0E20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CE30 PRG:0E30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CE40 PRG:0E40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CE50 PRG:0E50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CE60 PRG:0E60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CE70 PRG:0E70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CE80 PRG:0E80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CE90 PRG:0E90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CEA0 PRG:0EA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CEB0 PRG:0EB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CEC0 PRG:0EC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CED0 PRG:0ED0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CEE0 PRG:0EE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CEF0 PRG:0EF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CF00 PRG:0F00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CF10 PRG:0F10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CF20 PRG:0F20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CF30 PRG:0F30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CF40 PRG:0F40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CF50 PRG:0F50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CF60 PRG:0F60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CF70 PRG:0F70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CF80 PRG:0F80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CF90 PRG:0F90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CFA0 PRG:0FA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CFB0 PRG:0FB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CFC0 PRG:0FC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CFD0 PRG:0FD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CFE0 PRG:0FE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$CFF0 PRG:0FF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $4F, $E5, $8A, $E5, $B3, $E5, $4C, $E6, $BF, $E6, $32, $E7, $CC, $E4, $E3, $E4 ; CPU:$D000 PRG:1000 4F E5 8A E5 B3 E5 4C E6 BF E6 32 E7 CC E4 E3 E4 + .byte $90, $E7, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D010 PRG:1010 90 E7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D020 PRG:1020 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D030 PRG:1030 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D040 PRG:1040 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D050 PRG:1050 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D060 PRG:1060 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D070 PRG:1070 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D080 PRG:1080 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D090 PRG:1090 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D0A0 PRG:10A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D0B0 PRG:10B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D0C0 PRG:10C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D0D0 PRG:10D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D0E0 PRG:10E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D0F0 PRG:10F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D100 PRG:1100 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D110 PRG:1110 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D120 PRG:1120 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D130 PRG:1130 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D140 PRG:1140 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D150 PRG:1150 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D160 PRG:1160 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D170 PRG:1170 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D180 PRG:1180 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D190 PRG:1190 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D1A0 PRG:11A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D1B0 PRG:11B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D1C0 PRG:11C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D1D0 PRG:11D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D1E0 PRG:11E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D1F0 PRG:11F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D200 PRG:1200 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D210 PRG:1210 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D220 PRG:1220 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D230 PRG:1230 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D240 PRG:1240 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D250 PRG:1250 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D260 PRG:1260 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D270 PRG:1270 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D280 PRG:1280 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D290 PRG:1290 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D2A0 PRG:12A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D2B0 PRG:12B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D2C0 PRG:12C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D2D0 PRG:12D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D2E0 PRG:12E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D2F0 PRG:12F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D300 PRG:1300 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D310 PRG:1310 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D320 PRG:1320 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D330 PRG:1330 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D340 PRG:1340 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D350 PRG:1350 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D360 PRG:1360 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D370 PRG:1370 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D380 PRG:1380 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D390 PRG:1390 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D3A0 PRG:13A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D3B0 PRG:13B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D3C0 PRG:13C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D3D0 PRG:13D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D3E0 PRG:13E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D3F0 PRG:13F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D400 PRG:1400 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D410 PRG:1410 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D420 PRG:1420 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D430 PRG:1430 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D440 PRG:1440 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D450 PRG:1450 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D460 PRG:1460 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D470 PRG:1470 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D480 PRG:1480 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D490 PRG:1490 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D4A0 PRG:14A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D4B0 PRG:14B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D4C0 PRG:14C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D4D0 PRG:14D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D4E0 PRG:14E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D4F0 PRG:14F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D500 PRG:1500 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D510 PRG:1510 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D520 PRG:1520 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D530 PRG:1530 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D540 PRG:1540 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D550 PRG:1550 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D560 PRG:1560 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D570 PRG:1570 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D580 PRG:1580 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D590 PRG:1590 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D5A0 PRG:15A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D5B0 PRG:15B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D5C0 PRG:15C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D5D0 PRG:15D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D5E0 PRG:15E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D5F0 PRG:15F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D600 PRG:1600 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D610 PRG:1610 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D620 PRG:1620 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D630 PRG:1630 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D640 PRG:1640 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D650 PRG:1650 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D660 PRG:1660 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D670 PRG:1670 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D680 PRG:1680 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D690 PRG:1690 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D6A0 PRG:16A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D6B0 PRG:16B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D6C0 PRG:16C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D6D0 PRG:16D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D6E0 PRG:16E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D6F0 PRG:16F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D700 PRG:1700 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D710 PRG:1710 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D720 PRG:1720 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D730 PRG:1730 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D740 PRG:1740 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D750 PRG:1750 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D760 PRG:1760 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D770 PRG:1770 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D780 PRG:1780 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D790 PRG:1790 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7A0 PRG:17A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7B0 PRG:17B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7C0 PRG:17C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7D0 PRG:17D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7E0 PRG:17E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7F0 PRG:17F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D800 PRG:1800 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D810 PRG:1810 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D820 PRG:1820 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D830 PRG:1830 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D840 PRG:1840 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D850 PRG:1850 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D860 PRG:1860 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D870 PRG:1870 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D880 PRG:1880 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D890 PRG:1890 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8A0 PRG:18A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8B0 PRG:18B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8C0 PRG:18C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8D0 PRG:18D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8E0 PRG:18E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8F0 PRG:18F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D900 PRG:1900 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D910 PRG:1910 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D920 PRG:1920 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D930 PRG:1930 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D940 PRG:1940 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D950 PRG:1950 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D960 PRG:1960 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D970 PRG:1970 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D980 PRG:1980 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D990 PRG:1990 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9A0 PRG:19A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9B0 PRG:19B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9C0 PRG:19C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9D0 PRG:19D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9E0 PRG:19E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9F0 PRG:19F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA00 PRG:1A00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA10 PRG:1A10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA20 PRG:1A20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA30 PRG:1A30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA40 PRG:1A40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA50 PRG:1A50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA60 PRG:1A60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA70 PRG:1A70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA80 PRG:1A80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA90 PRG:1A90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAA0 PRG:1AA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAB0 PRG:1AB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAC0 PRG:1AC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAD0 PRG:1AD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAE0 PRG:1AE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAF0 PRG:1AF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB00 PRG:1B00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB10 PRG:1B10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB20 PRG:1B20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB30 PRG:1B30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB40 PRG:1B40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB50 PRG:1B50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB60 PRG:1B60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB70 PRG:1B70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB80 PRG:1B80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB90 PRG:1B90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBA0 PRG:1BA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBB0 PRG:1BB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBC0 PRG:1BC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBD0 PRG:1BD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBE0 PRG:1BE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBF0 PRG:1BF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC00 PRG:1C00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC10 PRG:1C10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC20 PRG:1C20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC30 PRG:1C30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC40 PRG:1C40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC50 PRG:1C50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC60 PRG:1C60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC70 PRG:1C70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC80 PRG:1C80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC90 PRG:1C90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCA0 PRG:1CA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCB0 PRG:1CB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCC0 PRG:1CC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCD0 PRG:1CD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCE0 PRG:1CE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCF0 PRG:1CF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD00 PRG:1D00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD10 PRG:1D10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD20 PRG:1D20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD30 PRG:1D30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD40 PRG:1D40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD50 PRG:1D50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD60 PRG:1D60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD70 PRG:1D70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD80 PRG:1D80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD90 PRG:1D90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDA0 PRG:1DA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDB0 PRG:1DB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDC0 PRG:1DC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDD0 PRG:1DD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDE0 PRG:1DE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDF0 PRG:1DF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE00 PRG:1E00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE10 PRG:1E10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE20 PRG:1E20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE30 PRG:1E30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE40 PRG:1E40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE50 PRG:1E50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE60 PRG:1E60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE70 PRG:1E70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE80 PRG:1E80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE90 PRG:1E90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DEA0 PRG:1EA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DEB0 PRG:1EB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DEC0 PRG:1EC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DED0 PRG:1ED0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DEE0 PRG:1EE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DEF0 PRG:1EF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF00 PRG:1F00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF10 PRG:1F10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF20 PRG:1F20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF30 PRG:1F30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF40 PRG:1F40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF50 PRG:1F50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF60 PRG:1F60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF70 PRG:1F70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF80 PRG:1F80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF90 PRG:1F90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFA0 PRG:1FA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFB0 PRG:1FB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFC0 PRG:1FC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFD0 PRG:1FD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFE0 PRG:1FE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $6E, $E0, $00, $E0, $00, $E0 ; CPU:$DFF0 PRG:1FF0 FF FF FF FF FF FF FF FF FF FF 6E E0 00 E0 00 E0 +; ----------------------------------------------------------------------------- +; Routine: Reset +; Global: Initialize CPU, RAM, PPU, APU 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: + jsr $E09B ; CPU:$E000 PRG:2000 20 9B E0 + jsr $E0C9 ; CPU:$E003 PRG:2003 20 C9 E0 + jsr $E0EB ; CPU:$E006 PRG:2006 20 EB E0 + jsr $E107 ; CPU:$E009 PRG:2009 20 07 E1 + jsr $E142 ; CPU:$E00C PRG:200C 20 42 E1 + jsr $E16B ; CPU:$E00F PRG:200F 20 6B E1 + jsr $E19A ; CPU:$E012 PRG:2012 20 9A E1 + jsr $E1B8 ; CPU:$E015 PRG:2015 20 B8 E1 + jsr $E22D ; CPU:$E018 PRG:2018 20 2D E2 + jsr $E1F1 ; CPU:$E01B PRG:201B 20 F1 E1 +; ----------------------------------------------------------------------------- +; Routine: Label_E01E +; 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_E01E: + jsr $E362 ; CPU:$E01E PRG:201E 20 62 E3 + lda Zp07 ; CPU:$E021 PRG:2021 A5 07 + ora #$F0 ; CPU:$E023 PRG:2023 09 F0 + sta Zp0E ; CPU:$E025 PRG:2025 85 0E + inc Zp0E ; CPU:$E027 PRG:2027 E6 0E + bne Label_E01E ; CPU:$E029 PRG:2029 D0 F3 +; ----------------------------------------------------------------------------- +; Routine: Label_E02B +; 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_E02B: + lda #$64 ; CPU:$E02B PRG:202B A9 64 + sta Zp0F ; CPU:$E02D PRG:202D 85 0F +; ----------------------------------------------------------------------------- +; Routine: Label_E02F +; 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_E02F: + jsr $E362 ; CPU:$E02F PRG:202F 20 62 E3 + lda Zp06 ; CPU:$E032 PRG:2032 A5 06 + bne Label_E02B ; CPU:$E034 PRG:2034 D0 F5 + lda Zp07 ; CPU:$E036 PRG:2036 A5 07 + and #$F0 ; CPU:$E038 PRG:2038 29 F0 + bne Label_E02B ; CPU:$E03A PRG:203A D0 EF + dec Zp0F ; CPU:$E03C PRG:203C C6 0F + bne Label_E02F ; CPU:$E03E PRG:203E D0 EF + jsr $E1FB ; CPU:$E040 PRG:2040 20 FB E1 + jsr $E53A ; CPU:$E043 PRG:2043 20 3A E5 + jsr $E187 ; CPU:$E046 PRG:2046 20 87 E1 + jsr $E1AE ; CPU:$E049 PRG:2049 20 AE E1 + jsr $E1A4 ; CPU:$E04C PRG:204C 20 A4 E1 + jsr $E2B0 ; CPU:$E04F PRG:204F 20 B0 E2 + jsr $E1C2 ; CPU:$E052 PRG:2052 20 C2 E1 + jsr $E219 ; CPU:$E055 PRG:2055 20 19 E2 +; ----------------------------------------------------------------------------- +; Routine: Label_E058 +; 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_E058: + jsr $E4FA ; CPU:$E058 PRG:2058 20 FA E4 + jsr $E362 ; CPU:$E05B PRG:205B 20 62 E3 + lda Zp07 ; CPU:$E05E PRG:205E A5 07 + bne Label_E068 ; CPU:$E060 PRG:2060 D0 06 + jsr $E1FB ; CPU:$E062 PRG:2062 20 FB E1 + jmp $E000 ; CPU:$E065 PRG:2065 4C 00 E0 +; ----------------------------------------------------------------------------- +; Routine: Label_E068 +; 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_E068: + jsr $E092 ; CPU:$E068 PRG:2068 20 92 E0 + jmp $E058 ; CPU:$E06B PRG:206B 4C 58 E0 +; ----------------------------------------------------------------------------- +; Routine: NmiHandler +; Global: Per-frame NMI handler: reads controllers, updates pad state, and redraws screen. +; 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:$E06E PRG:206E 48 + txa ; CPU:$E06F PRG:206F 8A + pha ; CPU:$E070 PRG:2070 48 + tya ; CPU:$E071 PRG:2071 98 + pha ; CPU:$E072 PRG:2072 48 + jsr $E1FB ; CPU:$E073 PRG:2073 20 FB E1 + inc Zp03 ; CPU:$E076 PRG:2076 E6 03 + lda $2002 ; CPU:$E078 PRG:2078 AD 02 20 + sta Zp02 ; CPU:$E07B PRG:207B 85 02 + jsr $E338 ; CPU:$E07D PRG:207D 20 38 E3 + jsr $E398 ; CPU:$E080 PRG:2080 20 98 E3 + jsr $E47F ; CPU:$E083 PRG:2083 20 7F E4 + jsr $E22D ; CPU:$E086 PRG:2086 20 2D E2 + jsr $E1F1 ; CPU:$E089 PRG:2089 20 F1 E1 + pla ; CPU:$E08C PRG:208C 68 + tay ; CPU:$E08D PRG:208D A8 + pla ; CPU:$E08E PRG:208E 68 + tax ; CPU:$E08F PRG:208F AA + pla ; CPU:$E090 PRG:2090 68 + rti ; CPU:$E091 PRG:2091 40 +; ----------------------------------------------------------------------------- +; Routine: WaitForVBlank +; Global: Waits for vblank flag to be set, then clears it and returns. +; 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. +; ----------------------------------------------------------------------------- +WaitForVBlank: + lda Zp02 ; CPU:$E092 PRG:2092 A5 02 + beq WaitForVBlank ; CPU:$E094 PRG:2094 F0 FC + lda #$00 ; CPU:$E096 PRG:2096 A9 00 + sta Zp02 ; CPU:$E098 PRG:2098 85 02 + rts ; CPU:$E09A PRG:209A 60 +; ----------------------------------------------------------------------------- +; Routine: ResetInit +; Global: Cold-start init: disables interrupts, clears PPU/APU, waits for vblank twice. +; 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. +; ----------------------------------------------------------------------------- +ResetInit: + sei ; CPU:$E09B PRG:209B 78 + cld ; CPU:$E09C PRG:209C D8 + ldx #$00 ; CPU:$E09D PRG:209D A2 00 + stx $2001 ; CPU:$E09F PRG:209F 8E 01 20 + stx Zp01 ; CPU:$E0A2 PRG:20A2 86 01 + ldx #$10 ; CPU:$E0A4 PRG:20A4 A2 10 + stx $2000 ; CPU:$E0A6 PRG:20A6 8E 00 20 + stx Zp00 ; CPU:$E0A9 PRG:20A9 86 00 + lda #$40 ; CPU:$E0AB PRG:20AB A9 40 + sta $4017 ; CPU:$E0AD PRG:20AD 8D 17 40 +; ----------------------------------------------------------------------------- +; Routine: Label_E0B0 +; 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_E0B0: + lda $2002 ; CPU:$E0B0 PRG:20B0 AD 02 20 + bpl Label_E0B0 ; CPU:$E0B3 PRG:20B3 10 FB +; ----------------------------------------------------------------------------- +; Routine: Label_E0B5 +; 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_E0B5: + lda $2002 ; CPU:$E0B5 PRG:20B5 AD 02 20 + bpl Label_E0B5 ; CPU:$E0B8 PRG:20B8 10 FB + lda #$0F ; CPU:$E0BA PRG:20BA A9 0F + sta $4015 ; CPU:$E0BC PRG:20BC 8D 15 40 + lda #$02 ; CPU:$E0BF PRG:20BF A9 02 + sta $4016 ; CPU:$E0C1 PRG:20C1 8D 16 40 + rts ; CPU:$E0C4 PRG:20C4 60 +; ---- data $E0C5-$E0C8 (4 bytes) ---- + .byte $A2, $80, $9A, $60 ; CPU:$E0C5 PRG:20C5 A2 80 9A 60 +; ----------------------------------------------------------------------------- +; Routine: ClearRAM +; Global: Clears 8 pages of zero-page RAM via indexed store 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. +; ----------------------------------------------------------------------------- +ClearRAM: + ldy #$00 ; CPU:$E0C9 PRG:20C9 A0 00 + ldx #$00 ; CPU:$E0CB PRG:20CB A2 00 + lda #$00 ; CPU:$E0CD PRG:20CD A9 00 +; ----------------------------------------------------------------------------- +; Routine: Label_E0CF +; 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_E0CF: + sta Zp00,X ; CPU:$E0CF PRG:20CF 95 00 + inx ; CPU:$E0D1 PRG:20D1 E8 + bne Label_E0CF ; CPU:$E0D2 PRG:20D2 D0 FB + iny ; CPU:$E0D4 PRG:20D4 C8 + cpy #$08 ; CPU:$E0D5 PRG:20D5 C0 08 + bne Label_E0CF ; CPU:$E0D7 PRG:20D7 D0 F6 + lda #$F4 ; CPU:$E0D9 PRG:20D9 A9 F4 + ldx #$00 ; CPU:$E0DB PRG:20DB A2 00 +; ----------------------------------------------------------------------------- +; Routine: Label_E0DD +; 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_E0DD: + sta $0200,X ; CPU:$E0DD PRG:20DD 9D 00 02 + inx ; CPU:$E0E0 PRG:20E0 E8 + bne Label_E0DD ; CPU:$E0E1 PRG:20E1 D0 FA + lda #$10 ; CPU:$E0E3 PRG:20E3 A9 10 + sta Zp00 ; CPU:$E0E5 PRG:20E5 85 00 + jsr $E236 ; CPU:$E0E7 PRG:20E7 20 36 E2 + rts ; CPU:$E0EA PRG:20EA 60 +; ----------------------------------------------------------------------------- +; Routine: ClearVRAM +; Global: Clears nametable memory ($2000-$2007) with zeros. +; 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. +; ----------------------------------------------------------------------------- +ClearVRAM: + lda #$20 ; CPU:$E0EB PRG:20EB A9 20 + sta $2006 ; CPU:$E0ED PRG:20ED 8D 06 20 + lda #$00 ; CPU:$E0F0 PRG:20F0 A9 00 + sta $2006 ; CPU:$E0F2 PRG:20F2 8D 06 20 + ldy #$00 ; CPU:$E0F5 PRG:20F5 A0 00 + ldx #$00 ; CPU:$E0F7 PRG:20F7 A2 00 + lda #$04 ; CPU:$E0F9 PRG:20F9 A9 04 +; ----------------------------------------------------------------------------- +; Routine: Label_E0FB +; 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_E0FB: + sta $2007 ; CPU:$E0FB PRG:20FB 8D 07 20 + inx ; CPU:$E0FE PRG:20FE E8 + bne Label_E0FB ; CPU:$E0FF PRG:20FF D0 FA + iny ; CPU:$E101 PRG:2101 C8 + cpy #$08 ; CPU:$E102 PRG:2102 C0 08 + bne Label_E0FB ; CPU:$E104 PRG:2104 D0 F5 + rts ; CPU:$E106 PRG:2106 60 +; ----------------------------------------------------------------------------- +; Routine: LoadPalette +; Global: Loads 32 bytes of palette data into PPU palette RAM. +; 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. +; ----------------------------------------------------------------------------- +LoadPalette: + lda #$3F ; CPU:$E107 PRG:2107 A9 3F + sta $2006 ; CPU:$E109 PRG:2109 8D 06 20 + lda #$00 ; CPU:$E10C PRG:210C A9 00 + sta $2006 ; CPU:$E10E PRG:210E 8D 06 20 + ldx #$00 ; CPU:$E111 PRG:2111 A2 00 +; ----------------------------------------------------------------------------- +; Routine: Label_E113 +; 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_E113: + lda $E121,X ; CPU:$E113 PRG:2113 BD 21 E1 + sta $2007 ; CPU:$E116 PRG:2116 8D 07 20 + inx ; CPU:$E119 PRG:2119 E8 + cpx #$20 ; CPU:$E11A PRG:211A E0 20 + bne Label_E113 ; CPU:$E11C PRG:211C D0 F5 + jmp $E141 ; CPU:$E11E PRG:211E 4C 41 E1 +; ---- data $E121-$E140 (32 bytes) ---- +PaletteData: + .byte $0F, $16, $12, $10, $0F, $0F, $0F, $10, $0F, $1A, $1A, $10, $0F, $28, $00, $10 ; CPU:$E121 PRG:2121 0F 16 12 10 0F 0F 0F 10 0F 1A 1A 10 0F 28 00 10 + .byte $0F, $16, $10, $30, $0F, $12, $00, $30, $0F, $19, $00, $30, $0F, $00, $00, $30 ; CPU:$E131 PRG:2131 0F 16 10 30 0F 12 00 30 0F 19 00 30 0F 00 00 30 +; ----------------------------------------------------------------------------- +; Routine: ClearPaletteDone +; Global: Returns after palette load. +; 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. +; ----------------------------------------------------------------------------- +ClearPaletteDone: + rts ; CPU:$E141 PRG:2141 60 +; ----------------------------------------------------------------------------- +; Routine: ClearVRAM_Fill23 +; Global: Fills VRAM ($2300-$2340) with value $23. +; 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. +; ----------------------------------------------------------------------------- +ClearVRAM_Fill23: + lda #$23 ; CPU:$E142 PRG:2142 A9 23 + sta $2006 ; CPU:$E144 PRG:2144 8D 06 20 + lda #$C0 ; CPU:$E147 PRG:2147 A9 C0 + sta $2006 ; CPU:$E149 PRG:2149 8D 06 20 + lda #$00 ; CPU:$E14C PRG:214C A9 00 + ldx #$40 ; CPU:$E14E PRG:214E A2 40 +; ----------------------------------------------------------------------------- +; Routine: Label_E150 +; 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_E150: + sta $2007 ; CPU:$E150 PRG:2150 8D 07 20 + dex ; CPU:$E153 PRG:2153 CA + bne Label_E150 ; CPU:$E154 PRG:2154 D0 FA + lda #$23 ; CPU:$E156 PRG:2156 A9 23 + sta $2006 ; CPU:$E158 PRG:2158 8D 06 20 + lda #$F0 ; CPU:$E15B PRG:215B A9 F0 + sta $2006 ; CPU:$E15D PRG:215D 8D 06 20 + ldx #$08 ; CPU:$E160 PRG:2160 A2 08 + lda #$FF ; CPU:$E162 PRG:2162 A9 FF +; ----------------------------------------------------------------------------- +; Routine: Label_E164 +; 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_E164: + sta $2007 ; CPU:$E164 PRG:2164 8D 07 20 + dex ; CPU:$E167 PRG:2167 CA + bne Label_E164 ; CPU:$E168 PRG:2168 D0 FA + rts ; CPU:$E16A PRG:216A 60 +; ----------------------------------------------------------------------------- +; Routine: InitAPU +; Global: Initializes APU registers: pulse/triangle channels and enables sound. +; 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. +; ----------------------------------------------------------------------------- +InitAPU: + lda #$9F ; CPU:$E16B PRG:216B A9 9F + sta $4000 ; CPU:$E16D PRG:216D 8D 00 40 + sta $4004 ; CPU:$E170 PRG:2170 8D 04 40 + lda #$0F ; CPU:$E173 PRG:2173 A9 0F + sta $4001 ; CPU:$E175 PRG:2175 8D 01 40 + sta $4005 ; CPU:$E178 PRG:2178 8D 05 40 + lda #$AA ; CPU:$E17B PRG:217B A9 AA + sta $4002 ; CPU:$E17D PRG:217D 8D 02 40 + sta $4006 ; CPU:$E180 PRG:2180 8D 06 40 + sta $4015 ; CPU:$E183 PRG:2183 8D 15 40 + rts ; CPU:$E186 PRG:2186 60 +; ----------------------------------------------------------------------------- +; Routine: ClearVRAM_FillFF +; Global: Fills VRAM ($23D2-$23D4) with value $FF. +; 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. +; ----------------------------------------------------------------------------- +ClearVRAM_FillFF: + lda #$23 ; CPU:$E187 PRG:2187 A9 23 + sta $2006 ; CPU:$E189 PRG:2189 8D 06 20 + lda #$D2 ; CPU:$E18C PRG:218C A9 D2 + sta $2006 ; CPU:$E18E PRG:218E 8D 06 20 + lda #$FF ; CPU:$E191 PRG:2191 A9 FF + sta $2007 ; CPU:$E193 PRG:2193 8D 07 20 + sta $2007 ; CPU:$E196 PRG:2196 8D 07 20 + rts ; CPU:$E199 PRG:2199 60 +; ----------------------------------------------------------------------------- +; Routine: LoadPatternTable1 +; Global: Loads pattern table 1 from $F000 into PPU. +; 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. +; ----------------------------------------------------------------------------- +LoadPatternTable1: + ldx $F000 ; CPU:$E19A PRG:219A AE 00 F0 + ldy $F001 ; CPU:$E19D PRG:219D AC 01 F0 + jsr $E1CC ; CPU:$E1A0 PRG:21A0 20 CC E1 + rts ; CPU:$E1A3 PRG:21A3 60 +; ----------------------------------------------------------------------------- +; Routine: LoadPatternTable2 +; Global: Loads pattern table 2 from $F002 into PPU. +; 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. +; ----------------------------------------------------------------------------- +LoadPatternTable2: + ldx $F002 ; CPU:$E1A4 PRG:21A4 AE 02 F0 + ldy $F003 ; CPU:$E1A7 PRG:21A7 AC 03 F0 + jsr $E1CC ; CPU:$E1AA PRG:21AA 20 CC E1 + rts ; CPU:$E1AD PRG:21AD 60 +; ----------------------------------------------------------------------------- +; Routine: LoadPatternTable3 +; Global: Loads pattern table 3 from $F004 into PPU. +; 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. +; ----------------------------------------------------------------------------- +LoadPatternTable3: + ldx $F004 ; CPU:$E1AE PRG:21AE AE 04 F0 + ldy $F005 ; CPU:$E1B1 PRG:21B1 AC 05 F0 + jsr $E1CC ; CPU:$E1B4 PRG:21B4 20 CC E1 + rts ; CPU:$E1B7 PRG:21B7 60 +; ----------------------------------------------------------------------------- +; Routine: LoadPatternTable4 +; Global: Loads pattern table 4 from $F00A into PPU. +; 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. +; ----------------------------------------------------------------------------- +LoadPatternTable4: + ldx $F00A ; CPU:$E1B8 PRG:21B8 AE 0A F0 + ldy $F00B ; CPU:$E1BB PRG:21BB AC 0B F0 + jsr $E1CC ; CPU:$E1BE PRG:21BE 20 CC E1 + rts ; CPU:$E1C1 PRG:21C1 60 +; ----------------------------------------------------------------------------- +; Routine: LoadPatternTable5 +; Global: Loads pattern table 5 from $F010 into PPU. +; 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. +; ----------------------------------------------------------------------------- +LoadPatternTable5: + ldx $F010 ; CPU:$E1C2 PRG:21C2 AE 10 F0 + ldy $F011 ; CPU:$E1C5 PRG:21C5 AC 11 F0 + jsr $E1CC ; CPU:$E1C8 PRG:21C8 20 CC E1 + rts ; CPU:$E1CB PRG:21CB 60 +; ----------------------------------------------------------------------------- +; Routine: VramWrite +; Global: Writes data from pointer table to PPU VRAM via indirect addressing. +; 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: + stx Zp10 ; CPU:$E1CC PRG:21CC 86 10 + sty Zp11 ; CPU:$E1CE PRG:21CE 84 11 + ldy #$00 ; CPU:$E1D0 PRG:21D0 A0 00 +; ----------------------------------------------------------------------------- +; Routine: Label_E1D2 +; 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_E1D2: + lda (Zp10),Y ; CPU:$E1D2 PRG:21D2 B1 10 + beq VramWriteDone ; CPU:$E1D4 PRG:21D4 F0 1A + sta $2006 ; CPU:$E1D6 PRG:21D6 8D 06 20 + iny ; CPU:$E1D9 PRG:21D9 C8 + lda (Zp10),Y ; CPU:$E1DA PRG:21DA B1 10 + sta $2006 ; CPU:$E1DC PRG:21DC 8D 06 20 + iny ; CPU:$E1DF PRG:21DF C8 + lda (Zp10),Y ; CPU:$E1E0 PRG:21E0 B1 10 + tax ; CPU:$E1E2 PRG:21E2 AA +; ----------------------------------------------------------------------------- +; Routine: Label_E1E3 +; 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_E1E3: + iny ; CPU:$E1E3 PRG:21E3 C8 + lda (Zp10),Y ; CPU:$E1E4 PRG:21E4 B1 10 + sta $2007 ; CPU:$E1E6 PRG:21E6 8D 07 20 + dex ; CPU:$E1E9 PRG:21E9 CA + bne Label_E1E3 ; CPU:$E1EA PRG:21EA D0 F7 + iny ; CPU:$E1EC PRG:21EC C8 + jmp $E1D2 ; CPU:$E1ED PRG:21ED 4C D2 E1 +; ----------------------------------------------------------------------------- +; Routine: VramWriteDone +; Global: Returns from VRAM write routine. +; 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. +; ----------------------------------------------------------------------------- +VramWriteDone: + rts ; CPU:$E1F0 PRG:21F0 60 +; ----------------------------------------------------------------------------- +; Routine: EnableNMI +; Global: Enables NMI by setting bit 3 of PPUCTRL 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. +; ----------------------------------------------------------------------------- +EnableNMI: + lda Zp01 ; CPU:$E1F1 PRG:21F1 A5 01 + ora #$08 ; CPU:$E1F3 PRG:21F3 09 08 + sta $2001 ; CPU:$E1F5 PRG:21F5 8D 01 20 + sta Zp01 ; CPU:$E1F8 PRG:21F8 85 01 + rts ; CPU:$E1FA PRG:21FA 60 +; ----------------------------------------------------------------------------- +; Routine: DisableNMI +; Global: Disables NMI by clearing bit 3 of PPUCTRL 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. +; ----------------------------------------------------------------------------- +DisableNMI: + lda Zp01 ; CPU:$E1FB PRG:21FB A5 01 + and #$F7 ; CPU:$E1FD PRG:21FD 29 F7 + sta $2001 ; CPU:$E1FF PRG:21FF 8D 01 20 + sta Zp01 ; CPU:$E202 PRG:2202 85 01 + rts ; CPU:$E204 PRG:2204 60 +; ---- data $E205-$E218 (20 bytes) ---- + .byte $A5, $01, $09, $10, $8D, $01, $20, $85, $01, $60, $A5, $01, $29, $EF, $8D, $01 ; CPU:$E205 PRG:2205 A5 01 09 10 8D 01 20 85 01 60 A5 01 29 EF 8D 01 + .byte $20, $85, $01, $60 ; CPU:$E215 PRG:2215 20 85 01 60 +; ----------------------------------------------------------------------------- +; Routine: SetPPUCTRL_NMI +; Global: Sets NMI bit ($80) in PPUCTRL shadow 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. +; ----------------------------------------------------------------------------- +SetPPUCTRL_NMI: + lda Zp00 ; CPU:$E219 PRG:2219 A5 00 + ora #$80 ; CPU:$E21B PRG:221B 09 80 + sta $2000 ; CPU:$E21D PRG:221D 8D 00 20 + sta Zp00 ; CPU:$E220 PRG:2220 85 00 + rts ; CPU:$E222 PRG:2222 60 +; ---- data $E223-$E22C (10 bytes) ---- + .byte $A5, $00, $29, $7F, $8D, $00, $20, $85, $00, $60 ; CPU:$E223 PRG:2223 A5 00 29 7F 8D 00 20 85 00 60 +; ----------------------------------------------------------------------------- +; Routine: ResetScroll +; Global: Resets PPU scroll X/Y to zero. +; 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. +; ----------------------------------------------------------------------------- +ResetScroll: + lda #$00 ; CPU:$E22D PRG:222D A9 00 + sta $2005 ; CPU:$E22F PRG:222F 8D 05 20 + sta $2005 ; CPU:$E232 PRG:2232 8D 05 20 + rts ; CPU:$E235 PRG:2235 60 +; ----------------------------------------------------------------------------- +; Routine: InitRoundParams +; Global: Initializes round parameters: scores, lives, level. +; 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. +; ----------------------------------------------------------------------------- +InitRoundParams: + lda #$00 ; CPU:$E236 PRG:2236 A9 00 + sta Zp14 ; CPU:$E238 PRG:2238 85 14 + sta Zp15 ; CPU:$E23A PRG:223A 85 15 + lda #$50 ; CPU:$E23C PRG:223C A9 50 + sta Zp12 ; CPU:$E23E PRG:223E 85 12 + lda #$05 ; CPU:$E240 PRG:2240 A9 05 + sta Zp13 ; CPU:$E242 PRG:2242 85 13 + rts ; CPU:$E244 PRG:2244 60 +; ---- data $E245-$E26F (43 bytes) ---- + .byte $A9, $23, $8D, $06, $20, $A9, $28, $8D, $06, $20, $A5, $03, $85, $0E, $20, $57 ; CPU:$E245 PRG:2245 A9 23 8D 06 20 A9 28 8D 06 20 A5 03 85 0E 20 57 + .byte $E2, $60, $A5, $0E, $6A, $6A, $6A, $6A, $29, $0F, $18, $69, $30, $8D, $07, $20 ; CPU:$E255 PRG:2255 E2 60 A5 0E 6A 6A 6A 6A 29 0F 18 69 30 8D 07 20 + .byte $A5, $0E, $29, $0F, $18, $69, $30, $8D, $07, $20, $60 ; CPU:$E265 PRG:2265 A5 0E 29 0F 18 69 30 8D 07 20 60 +; ----------------------------------------------------------------------------- +; Routine: DrawPlayer1Pad +; Global: Draws player 1 controller pad indicators on screen. +; 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. +; ----------------------------------------------------------------------------- +DrawPlayer1Pad: + jsr $E1FB ; CPU:$E270 PRG:2270 20 FB E1 + ldx $F008 ; CPU:$E273 PRG:2273 AE 08 F0 + ldy $F009 ; CPU:$E276 PRG:2276 AC 09 F0 + jsr $E1CC ; CPU:$E279 PRG:2279 20 CC E1 + lda #$23 ; CPU:$E27C PRG:227C A9 23 + sta $2006 ; CPU:$E27E PRG:227E 8D 06 20 + lda #$E5 ; CPU:$E281 PRG:2281 A9 E5 + sta $2006 ; CPU:$E283 PRG:2283 8D 06 20 + lda #$55 ; CPU:$E286 PRG:2286 A9 55 + sta $2007 ; CPU:$E288 PRG:2288 8D 07 20 + sta $2007 ; CPU:$E28B PRG:228B 8D 07 20 + sta $2007 ; CPU:$E28E PRG:228E 8D 07 20 + lda #$23 ; CPU:$E291 PRG:2291 A9 23 + sta $2006 ; CPU:$E293 PRG:2293 8D 06 20 + lda #$D5 ; CPU:$E296 PRG:2296 A9 D5 + sta $2006 ; CPU:$E298 PRG:2298 8D 06 20 + lda #$00 ; CPU:$E29B PRG:229B A9 00 + sta $2007 ; CPU:$E29D PRG:229D 8D 07 20 + sta $2007 ; CPU:$E2A0 PRG:22A0 8D 07 20 + sta $2007 ; CPU:$E2A3 PRG:22A3 8D 07 20 + jsr $E2F0 ; CPU:$E2A6 PRG:22A6 20 F0 E2 + jsr $E32D ; CPU:$E2A9 PRG:22A9 20 2D E3 + jsr $E236 ; CPU:$E2AC PRG:22AC 20 36 E2 + rts ; CPU:$E2AF PRG:22AF 60 +; ----------------------------------------------------------------------------- +; Routine: DrawPlayer2Pad +; Global: Draws player 2 controller pad indicators on screen. +; 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. +; ----------------------------------------------------------------------------- +DrawPlayer2Pad: + jsr $E1FB ; CPU:$E2B0 PRG:22B0 20 FB E1 + ldx $F006 ; CPU:$E2B3 PRG:22B3 AE 06 F0 + ldy $F007 ; CPU:$E2B6 PRG:22B6 AC 07 F0 + jsr $E1CC ; CPU:$E2B9 PRG:22B9 20 CC E1 + lda #$23 ; CPU:$E2BC PRG:22BC A9 23 + sta $2006 ; CPU:$E2BE PRG:22BE 8D 06 20 + lda #$E5 ; CPU:$E2C1 PRG:22C1 A9 E5 + sta $2006 ; CPU:$E2C3 PRG:22C3 8D 06 20 + lda #$00 ; CPU:$E2C6 PRG:22C6 A9 00 + sta $2007 ; CPU:$E2C8 PRG:22C8 8D 07 20 + sta $2007 ; CPU:$E2CB PRG:22CB 8D 07 20 + sta $2007 ; CPU:$E2CE PRG:22CE 8D 07 20 + lda #$23 ; CPU:$E2D1 PRG:22D1 A9 23 + sta $2006 ; CPU:$E2D3 PRG:22D3 8D 06 20 + lda #$D5 ; CPU:$E2D6 PRG:22D6 A9 D5 + sta $2006 ; CPU:$E2D8 PRG:22D8 8D 06 20 + lda #$55 ; CPU:$E2DB PRG:22DB A9 55 + sta $2007 ; CPU:$E2DD PRG:22DD 8D 07 20 + sta $2007 ; CPU:$E2E0 PRG:22E0 8D 07 20 + sta $2007 ; CPU:$E2E3 PRG:22E3 8D 07 20 + jsr $E2F0 ; CPU:$E2E6 PRG:22E6 20 F0 E2 + jsr $E32D ; CPU:$E2E9 PRG:22E9 20 2D E3 + jsr $E236 ; CPU:$E2EC PRG:22EC 20 36 E2 + rts ; CPU:$E2EF PRG:22EF 60 +; ----------------------------------------------------------------------------- +; Routine: ClearRows +; Global: Clears rows of the screen display with blank tiles. +; 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. +; ----------------------------------------------------------------------------- +ClearRows: + lda #$23 ; CPU:$E2F0 PRG:22F0 A9 23 + sta $2006 ; CPU:$E2F2 PRG:22F2 8D 06 20 + lda #$D9 ; CPU:$E2F5 PRG:22F5 A9 D9 + sta $2006 ; CPU:$E2F7 PRG:22F7 8D 06 20 + lda #$00 ; CPU:$E2FA PRG:22FA A9 00 + ldx #$04 ; CPU:$E2FC PRG:22FC A2 04 +; ----------------------------------------------------------------------------- +; Routine: Label_E2FE +; 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_E2FE: + sta $2007 ; CPU:$E2FE PRG:22FE 8D 07 20 + dex ; CPU:$E301 PRG:2301 CA + bne Label_E2FE ; CPU:$E302 PRG:2302 D0 FA + lda #$23 ; CPU:$E304 PRG:2304 A9 23 + sta $2006 ; CPU:$E306 PRG:2306 8D 06 20 + lda #$E1 ; CPU:$E309 PRG:2309 A9 E1 + sta $2006 ; CPU:$E30B PRG:230B 8D 06 20 + lda #$00 ; CPU:$E30E PRG:230E A9 00 + ldx #$04 ; CPU:$E310 PRG:2310 A2 04 +; ----------------------------------------------------------------------------- +; Routine: Label_E312 +; 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_E312: + sta $2007 ; CPU:$E312 PRG:2312 8D 07 20 + dex ; CPU:$E315 PRG:2315 CA + bne Label_E312 ; CPU:$E316 PRG:2316 D0 FA + lda #$23 ; CPU:$E318 PRG:2318 A9 23 + sta $2006 ; CPU:$E31A PRG:231A 8D 06 20 + lda #$E9 ; CPU:$E31D PRG:231D A9 E9 + sta $2006 ; CPU:$E31F PRG:231F 8D 06 20 + lda #$00 ; CPU:$E322 PRG:2322 A9 00 + ldx #$04 ; CPU:$E324 PRG:2324 A2 04 +; ----------------------------------------------------------------------------- +; Routine: Label_E326 +; 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_E326: + sta $2007 ; CPU:$E326 PRG:2326 8D 07 20 + dex ; CPU:$E329 PRG:2329 CA + bne Label_E326 ; CPU:$E32A PRG:232A D0 FA + rts ; CPU:$E32C PRG:232C 60 +; ----------------------------------------------------------------------------- +; Routine: ClearGameVars +; Global: Clears game variables $06-$09 to zero. +; 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. +; ----------------------------------------------------------------------------- +ClearGameVars: + lda #$00 ; CPU:$E32D PRG:232D A9 00 + sta Zp06 ; CPU:$E32F PRG:232F 85 06 + sta Zp07 ; CPU:$E331 PRG:2331 85 07 + sta Zp08 ; CPU:$E333 PRG:2333 85 08 + sta Zp09 ; CPU:$E335 PRG:2335 85 09 + rts ; CPU:$E337 PRG:2337 60 +; ----------------------------------------------------------------------------- +; Routine: ReadPad +; Global: Reads controller pad data via shift register, rotates into pad variables. +; 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. +; ----------------------------------------------------------------------------- +ReadPad: + lda Zp03 ; CPU:$E338 PRG:2338 A5 03 + clc ; CPU:$E33A PRG:233A 18 + rol ; CPU:$E33B PRG:233B 2A + clc ; CPU:$E33C PRG:233C 18 + rol ; CPU:$E33D PRG:233D 2A + clc ; CPU:$E33E PRG:233E 18 + rol ; CPU:$E33F PRG:233F 2A + bne ReadPadDone ; CPU:$E340 PRG:2340 D0 1F + inc Zp05 ; CPU:$E342 PRG:2342 E6 05 + beq Label_E34D ; CPU:$E344 PRG:2344 F0 07 + lda Zp05 ; CPU:$E346 PRG:2346 A5 05 + clc ; CPU:$E348 PRG:2348 18 + adc #$54 ; CPU:$E349 PRG:2349 69 54 + sta Zp05 ; CPU:$E34B PRG:234B 85 05 +; ----------------------------------------------------------------------------- +; Routine: Label_E34D +; 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_E34D: + lda #$23 ; CPU:$E34D PRG:234D A9 23 + sta $2006 ; CPU:$E34F PRG:234F 8D 06 20 + lda #$C8 ; CPU:$E352 PRG:2352 A9 C8 + sta $2006 ; CPU:$E354 PRG:2354 8D 06 20 + ldx #$08 ; CPU:$E357 PRG:2357 A2 08 + lda Zp05 ; CPU:$E359 PRG:2359 A5 05 +; ----------------------------------------------------------------------------- +; Routine: Label_E35B +; 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_E35B: + sta $2007 ; CPU:$E35B PRG:235B 8D 07 20 + dex ; CPU:$E35E PRG:235E CA + bne Label_E35B ; CPU:$E35F PRG:235F D0 FA +; ----------------------------------------------------------------------------- +; Routine: ReadPadDone +; Global: Returns after reading pad. +; 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. +; ----------------------------------------------------------------------------- +ReadPadDone: + rts ; CPU:$E361 PRG:2361 60 +; ----------------------------------------------------------------------------- +; Routine: ShiftPads +; Global: Shifts pad data bits into pad state variables. +; 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. +; ----------------------------------------------------------------------------- +ShiftPads: + lda Zp06 ; CPU:$E362 PRG:2362 A5 06 + sta Zp08 ; CPU:$E364 PRG:2364 85 08 + lda Zp07 ; CPU:$E366 PRG:2366 A5 07 + sta Zp09 ; CPU:$E368 PRG:2368 85 09 + lda Zp0A ; CPU:$E36A PRG:236A A5 0A + sta Zp0B ; CPU:$E36C PRG:236C 85 0B + lda #$00 ; CPU:$E36E PRG:236E A9 00 + sta $4016 ; CPU:$E370 PRG:2370 8D 16 40 + lda #$01 ; CPU:$E373 PRG:2373 A9 01 + sta $4016 ; CPU:$E375 PRG:2375 8D 16 40 + lda #$00 ; CPU:$E378 PRG:2378 A9 00 + sta $4016 ; CPU:$E37A PRG:237A 8D 16 40 + ldx #$08 ; CPU:$E37D PRG:237D A2 08 +; ----------------------------------------------------------------------------- +; Routine: Label_E37F +; 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_E37F: + lda $4017 ; CPU:$E37F PRG:237F AD 17 40 + sta Zp0E ; CPU:$E382 PRG:2382 85 0E + lda $4016 ; CPU:$E384 PRG:2384 AD 16 40 + ora Zp0E ; CPU:$E387 PRG:2387 05 0E + ror ; CPU:$E389 PRG:2389 6A + rol Zp0A ; CPU:$E38A PRG:238A 26 0A + ror ; CPU:$E38C PRG:238C 6A + ror ; CPU:$E38D PRG:238D 6A + ror ; CPU:$E38E PRG:238E 6A + rol Zp06 ; CPU:$E38F PRG:238F 26 06 + ror ; CPU:$E391 PRG:2391 6A + rol Zp07 ; CPU:$E392 PRG:2392 26 07 + dex ; CPU:$E394 PRG:2394 CA + bne Label_E37F ; CPU:$E395 PRG:2395 D0 E8 + rts ; CPU:$E397 PRG:2397 60 +; ----------------------------------------------------------------------------- +; Routine: ProcessPads +; Global: Processes pad bit data, detects button press/release transitions. +; 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. +; ----------------------------------------------------------------------------- +ProcessPads: + lda Zp06 ; CPU:$E398 PRG:2398 A5 06 + sta Zp0C ; CPU:$E39A PRG:239A 85 0C + ldy #$00 ; CPU:$E39C PRG:239C A0 00 + ldx #$08 ; CPU:$E39E PRG:239E A2 08 +; ----------------------------------------------------------------------------- +; Routine: Label_E3A0 +; 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_E3A0: + ror Zp08 ; CPU:$E3A0 PRG:23A0 66 08 + bcs Label_E3AE ; CPU:$E3A2 PRG:23A2 B0 0A + ror Zp06 ; CPU:$E3A4 PRG:23A4 66 06 + bcc Label_E3B5 ; CPU:$E3A6 PRG:23A6 90 0D + jsr $E3E1 ; CPU:$E3A8 PRG:23A8 20 E1 E3 + jmp $E3B5 ; CPU:$E3AB PRG:23AB 4C B5 E3 +; ----------------------------------------------------------------------------- +; Routine: Label_E3AE +; 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_E3AE: + ror Zp06 ; CPU:$E3AE PRG:23AE 66 06 + bcs Label_E3B5 ; CPU:$E3B0 PRG:23B0 B0 03 + jsr $E407 ; CPU:$E3B2 PRG:23B2 20 07 E4 +; ----------------------------------------------------------------------------- +; Routine: Label_E3B5 +; 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_E3B5: + iny ; CPU:$E3B5 PRG:23B5 C8 + dex ; CPU:$E3B6 PRG:23B6 CA + bne Label_E3A0 ; CPU:$E3B7 PRG:23B7 D0 E7 + lda Zp0C ; CPU:$E3B9 PRG:23B9 A5 0C + sta Zp06 ; CPU:$E3BB PRG:23BB 85 06 + lda Zp07 ; CPU:$E3BD PRG:23BD A5 07 + sta Zp0C ; CPU:$E3BF PRG:23BF 85 0C + ldx #$04 ; CPU:$E3C1 PRG:23C1 A2 04 +; ----------------------------------------------------------------------------- +; Routine: Label_E3C3 +; 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_E3C3: + rol Zp09 ; CPU:$E3C3 PRG:23C3 26 09 + bcs Label_E3D1 ; CPU:$E3C5 PRG:23C5 B0 0A + rol Zp07 ; CPU:$E3C7 PRG:23C7 26 07 + bcc Label_E3D8 ; CPU:$E3C9 PRG:23C9 90 0D + jsr $E3E1 ; CPU:$E3CB PRG:23CB 20 E1 E3 + jmp $E3D8 ; CPU:$E3CE PRG:23CE 4C D8 E3 +; ----------------------------------------------------------------------------- +; Routine: Label_E3D1 +; 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_E3D1: + rol Zp07 ; CPU:$E3D1 PRG:23D1 26 07 + bcs Label_E3D8 ; CPU:$E3D3 PRG:23D3 B0 03 + jsr $E407 ; CPU:$E3D5 PRG:23D5 20 07 E4 +; ----------------------------------------------------------------------------- +; Routine: Label_E3D8 +; 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_E3D8: + iny ; CPU:$E3D8 PRG:23D8 C8 + dex ; CPU:$E3D9 PRG:23D9 CA + bne Label_E3C3 ; CPU:$E3DA PRG:23DA D0 E7 + lda Zp0C ; CPU:$E3DC PRG:23DC A5 0C + sta Zp07 ; CPU:$E3DE PRG:23DE 85 07 + rts ; CPU:$E3E0 PRG:23E0 60 +; ----------------------------------------------------------------------------- +; Routine: DrawScore +; Global: Draws player score digits on screen. +; 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. +; ----------------------------------------------------------------------------- +DrawScore: + jsr $E1FB ; CPU:$E3E1 PRG:23E1 20 FB E1 + lda #$23 ; CPU:$E3E4 PRG:23E4 A9 23 + sta $2006 ; CPU:$E3E6 PRG:23E6 8D 06 20 + lda Zp0D ; CPU:$E3E9 PRG:23E9 A5 0D + beq Label_E3F5 ; CPU:$E3EB PRG:23EB F0 08 + lda $E4C0,Y ; CPU:$E3ED PRG:23ED B9 C0 E4 + beq Label_E403 ; CPU:$E3F0 PRG:23F0 F0 11 + jmp $E3F8 ; CPU:$E3F2 PRG:23F2 4C F8 E3 +; ----------------------------------------------------------------------------- +; Routine: Label_E3F5 +; 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_E3F5: + lda $E4B4,Y ; CPU:$E3F5 PRG:23F5 B9 B4 E4 +; ----------------------------------------------------------------------------- +; Routine: Label_E3F8 +; 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_E3F8: + sta $2006 ; CPU:$E3F8 PRG:23F8 8D 06 20 + lda #$55 ; CPU:$E3FB PRG:23FB A9 55 + sta $2007 ; CPU:$E3FD PRG:23FD 8D 07 20 + jsr $E52E ; CPU:$E400 PRG:2400 20 2E E5 +; ----------------------------------------------------------------------------- +; Routine: Label_E403 +; 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_E403: + lda $2002 ; CPU:$E403 PRG:2403 AD 02 20 + rts ; CPU:$E406 PRG:2406 60 +; ----------------------------------------------------------------------------- +; Routine: DrawLives +; Global: Draws player lives indicators on screen. +; 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. +; ----------------------------------------------------------------------------- +DrawLives: + jsr $E1FB ; CPU:$E407 PRG:2407 20 FB E1 + lda #$23 ; CPU:$E40A PRG:240A A9 23 + sta $2006 ; CPU:$E40C PRG:240C 8D 06 20 + lda Zp0D ; CPU:$E40F PRG:240F A5 0D + beq Label_E41E ; CPU:$E411 PRG:2411 F0 0B + jsr $E433 ; CPU:$E413 PRG:2413 20 33 E4 + lda $E4C0,Y ; CPU:$E416 PRG:2416 B9 C0 E4 + beq Label_E42F ; CPU:$E419 PRG:2419 F0 14 + jmp $E424 ; CPU:$E41B PRG:241B 4C 24 E4 +; ----------------------------------------------------------------------------- +; Routine: Label_E41E +; 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_E41E: + jsr $E459 ; CPU:$E41E PRG:241E 20 59 E4 + lda $E4B4,Y ; CPU:$E421 PRG:2421 B9 B4 E4 +; ----------------------------------------------------------------------------- +; Routine: Label_E424 +; 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_E424: + sta $2006 ; CPU:$E424 PRG:2424 8D 06 20 + lda #$AA ; CPU:$E427 PRG:2427 A9 AA + sta $2007 ; CPU:$E429 PRG:2429 8D 07 20 + jsr $E534 ; CPU:$E42C PRG:242C 20 34 E5 +; ----------------------------------------------------------------------------- +; Routine: Label_E42F +; 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_E42F: + lda $2002 ; CPU:$E42F PRG:242F AD 02 20 + rts ; CPU:$E432 PRG:2432 60 +; ----------------------------------------------------------------------------- +; Routine: ShiftVar1 +; Global: Shifts variable 1 bit and accumulates into score var 1. +; 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. +; ----------------------------------------------------------------------------- +ShiftVar1: + sty Zp0E ; CPU:$E433 PRG:2433 84 0E + inc Zp0E ; CPU:$E435 PRG:2435 E6 0E + lda #$01 ; CPU:$E437 PRG:2437 A9 01 +; ----------------------------------------------------------------------------- +; Routine: Label_E439 +; 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_E439: + dec Zp0E ; CPU:$E439 PRG:2439 C6 0E + beq Label_E444 ; CPU:$E43B PRG:243B F0 07 + clc ; CPU:$E43D PRG:243D 18 + rol ; CPU:$E43E PRG:243E 2A + bcs ShiftVar2 ; CPU:$E43F PRG:243F B0 08 + jmp $E439 ; CPU:$E441 PRG:2441 4C 39 E4 +; ----------------------------------------------------------------------------- +; Routine: Label_E444 +; 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_E444: + ora Zp12 ; CPU:$E444 PRG:2444 05 12 + sta Zp12 ; CPU:$E446 PRG:2446 85 12 + rts ; CPU:$E448 PRG:2448 60 +; ----------------------------------------------------------------------------- +; Routine: ShiftVar2 +; Global: Shifts variable 2 bit and accumulates into score var 2. +; 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. +; ----------------------------------------------------------------------------- +ShiftVar2: + lda #$01 ; CPU:$E449 PRG:2449 A9 01 +; ----------------------------------------------------------------------------- +; Routine: Label_E44B +; 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_E44B: + dec Zp0E ; CPU:$E44B PRG:244B C6 0E + beq Label_E454 ; CPU:$E44D PRG:244D F0 05 + clc ; CPU:$E44F PRG:244F 18 + rol ; CPU:$E450 PRG:2450 2A + jmp $E44B ; CPU:$E451 PRG:2451 4C 4B E4 +; ----------------------------------------------------------------------------- +; Routine: Label_E454 +; 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_E454: + ora Zp13 ; CPU:$E454 PRG:2454 05 13 + sta Zp13 ; CPU:$E456 PRG:2456 85 13 + rts ; CPU:$E458 PRG:2458 60 +; ----------------------------------------------------------------------------- +; Routine: ShiftVar3 +; Global: Shifts variable 3 bit and accumulates into score var 3. +; 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. +; ----------------------------------------------------------------------------- +ShiftVar3: + sty Zp0E ; CPU:$E459 PRG:2459 84 0E + inc Zp0E ; CPU:$E45B PRG:245B E6 0E + lda #$01 ; CPU:$E45D PRG:245D A9 01 +; ----------------------------------------------------------------------------- +; Routine: Label_E45F +; 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_E45F: + dec Zp0E ; CPU:$E45F PRG:245F C6 0E + beq Label_E46A ; CPU:$E461 PRG:2461 F0 07 + clc ; CPU:$E463 PRG:2463 18 + rol ; CPU:$E464 PRG:2464 2A + bcs ShiftVar4 ; CPU:$E465 PRG:2465 B0 08 + jmp $E45F ; CPU:$E467 PRG:2467 4C 5F E4 +; ----------------------------------------------------------------------------- +; Routine: Label_E46A +; 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_E46A: + ora Zp14 ; CPU:$E46A PRG:246A 05 14 + sta Zp14 ; CPU:$E46C PRG:246C 85 14 + rts ; CPU:$E46E PRG:246E 60 +; ----------------------------------------------------------------------------- +; Routine: ShiftVar4 +; Global: Shifts variable 4 bit and accumulates into score var 4. +; 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. +; ----------------------------------------------------------------------------- +ShiftVar4: + lda #$01 ; CPU:$E46F PRG:246F A9 01 +; ----------------------------------------------------------------------------- +; Routine: Label_E471 +; 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_E471: + dec Zp0E ; CPU:$E471 PRG:2471 C6 0E + beq Label_E47A ; CPU:$E473 PRG:2473 F0 05 + clc ; CPU:$E475 PRG:2475 18 + rol ; CPU:$E476 PRG:2476 2A + jmp $E471 ; CPU:$E477 PRG:2477 4C 71 E4 +; ----------------------------------------------------------------------------- +; Routine: Label_E47A +; 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_E47A: + ora Zp15 ; CPU:$E47A PRG:247A 05 15 + sta Zp15 ; CPU:$E47C PRG:247C 85 15 + rts ; CPU:$E47E PRG:247E 60 +; ----------------------------------------------------------------------------- +; Routine: UpdatePads +; Global: Updates pad state: checks for button transitions and updates scores. +; 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. +; ----------------------------------------------------------------------------- +UpdatePads: + ldx Zp12 ; CPU:$E47F PRG:247F A6 12 + inx ; CPU:$E481 PRG:2481 E8 + bne Label_E48F ; CPU:$E482 PRG:2482 D0 0B + lda Zp13 ; CPU:$E484 PRG:2484 A5 13 + ora #$F0 ; CPU:$E486 PRG:2486 09 F0 + tax ; CPU:$E488 PRG:2488 AA + inx ; CPU:$E489 PRG:2489 E8 + bne Label_E48F ; CPU:$E48A PRG:248A D0 03 + jsr $E4A0 ; CPU:$E48C PRG:248C 20 A0 E4 +; ----------------------------------------------------------------------------- +; Routine: Label_E48F +; 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_E48F: + ldx Zp14 ; CPU:$E48F PRG:248F A6 14 + inx ; CPU:$E491 PRG:2491 E8 + bne UpdatePadsDone ; CPU:$E492 PRG:2492 D0 0B + lda Zp15 ; CPU:$E494 PRG:2494 A5 15 + ora #$F0 ; CPU:$E496 PRG:2496 09 F0 + tax ; CPU:$E498 PRG:2498 AA + inx ; CPU:$E499 PRG:2499 E8 + bne UpdatePadsDone ; CPU:$E49A PRG:249A D0 03 + jsr $E4AA ; CPU:$E49C PRG:249C 20 AA E4 +; ----------------------------------------------------------------------------- +; Routine: UpdatePadsDone +; Global: Returns after updating pads. +; 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. +; ----------------------------------------------------------------------------- +UpdatePadsDone: + rts ; CPU:$E49F PRG:249F 60 +; ----------------------------------------------------------------------------- +; Routine: LoadPatternTable6 +; Global: Loads pattern table 6 from $F00C into PPU. +; 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. +; ----------------------------------------------------------------------------- +LoadPatternTable6: + ldx $F00C ; CPU:$E4A0 PRG:24A0 AE 0C F0 + ldy $F00D ; CPU:$E4A3 PRG:24A3 AC 0D F0 + jsr $E1CC ; CPU:$E4A6 PRG:24A6 20 CC E1 + rts ; CPU:$E4A9 PRG:24A9 60 +; ----------------------------------------------------------------------------- +; Routine: LoadPatternTable7 +; Global: Loads pattern table 7 from $F00E into PPU. +; 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. +; ----------------------------------------------------------------------------- +LoadPatternTable7: + ldx $F00E ; CPU:$E4AA PRG:24AA AE 0E F0 + ldy $F00F ; CPU:$E4AD PRG:24AD AC 0F F0 + jsr $E1CC ; CPU:$E4B0 PRG:24B0 20 CC E1 + rts ; CPU:$E4B3 PRG:24B3 60 +; ---- data $E4B4-$E4F9 (70 bytes) ---- +PadBitTableLives: + .byte $E3, $EB, $EA, $E2, $E9, $E1, $D9, $DA, $DC, $DB, $EC, $E4, $E2, $EA, $EB, $E3 ; CPU:$E4B4 PRG:24B4 E3 EB EA E2 E9 E1 D9 DA DC DB EC E4 E2 EA EB E3 + .byte $00, $E4, $00, $DB, $00, $DA, $00, $E1, $21, $96, $08, $B0, $B1, $BC, $BD, $D4 ; CPU:$E4C4 PRG:24C4 00 E4 00 DB 00 DA 00 E1 21 96 08 B0 B1 BC BD D4 + .byte $D5, $D4, $D5, $21, $B6, $08, $C0, $C1, $CC, $CD, $E4, $E5, $E4, $E5, $00, $22 ; CPU:$E4D4 PRG:24D4 D5 D4 D5 21 B6 08 C0 C1 CC CD E4 E5 E4 E5 00 22 + .byte $96, $08, $B0, $B1, $BC, $BD, $D4, $D5, $D4, $D5, $22, $B6, $08, $C0, $C1, $CC ; CPU:$E4E4 PRG:24E4 96 08 B0 B1 BC BD D4 D5 D4 D5 22 B6 08 C0 C1 CC + .byte $CD, $E4, $E5, $E4, $E5, $00 ; CPU:$E4F4 PRG:24F4 CD E4 E5 E4 E5 00 + ; DrawScore reads from PadBitTableLives+$0C ($E4C0) via lda $E4C0,Y +; ----------------------------------------------------------------------------- +; Routine: ProcessPadBits +; Global: Processes pad bit data: checks for transitions, updates scores/lives. +; 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. +; ----------------------------------------------------------------------------- +ProcessPadBits: + lda Zp0A ; CPU:$E4FA PRG:24FA A5 0A + sta Zp0E ; CPU:$E4FC PRG:24FC 85 0E + rol Zp0B ; CPU:$E4FE PRG:24FE 26 0B + bcs Label_E509 ; CPU:$E500 PRG:2500 B0 07 + rol Zp0A ; CPU:$E502 PRG:2502 26 0A + bcc Label_E509 ; CPU:$E504 PRG:2504 90 03 + jmp $E514 ; CPU:$E506 PRG:2506 4C 14 E5 +; ----------------------------------------------------------------------------- +; Routine: Label_E509 +; 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_E509: + rol Zp0B ; CPU:$E509 PRG:2509 26 0B + bcs ProcessPadBitsDone ; CPU:$E50B PRG:250B B0 20 + rol Zp0A ; CPU:$E50D PRG:250D 26 0A + bcc ProcessPadBitsDone ; CPU:$E50F PRG:250F 90 1C + jmp $E522 ; CPU:$E511 PRG:2511 4C 22 E5 +; ----------------------------------------------------------------------------- +; Routine: Label_E514 +; 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_E514: + lda Zp0D ; CPU:$E514 PRG:2514 A5 0D + bne ProcessPadBitsDone ; CPU:$E516 PRG:2516 D0 15 + jsr $E270 ; CPU:$E518 PRG:2518 20 70 E2 + lda #$01 ; CPU:$E51B PRG:251B A9 01 + sta Zp0D ; CPU:$E51D PRG:251D 85 0D + jmp $E52D ; CPU:$E51F PRG:251F 4C 2D E5 +; ----------------------------------------------------------------------------- +; Routine: Label_E522 +; 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_E522: + lda Zp0D ; CPU:$E522 PRG:2522 A5 0D + beq ProcessPadBitsDone ; CPU:$E524 PRG:2524 F0 07 + jsr $E2B0 ; CPU:$E526 PRG:2526 20 B0 E2 + lda #$00 ; CPU:$E529 PRG:2529 A9 00 + sta Zp0D ; CPU:$E52B PRG:252B 85 0D +; ----------------------------------------------------------------------------- +; Routine: ProcessPadBitsDone +; Global: Returns after processing pad bits. +; 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. +; ----------------------------------------------------------------------------- +ProcessPadBitsDone: + rts ; CPU:$E52D PRG:252D 60 +; ----------------------------------------------------------------------------- +; Routine: SetAPUNoise +; Global: Sets APU noise channel register $4003 to $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. +; ----------------------------------------------------------------------------- +SetAPUNoise: + lda #$02 ; CPU:$E52E PRG:252E A9 02 + sta $4003 ; CPU:$E530 PRG:2530 8D 03 40 + rts ; CPU:$E533 PRG:2533 60 +; ----------------------------------------------------------------------------- +; Routine: ClearAPUNoise +; Global: Clears APU noise channel register $4007 to $00. +; 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. +; ----------------------------------------------------------------------------- +ClearAPUNoise: + lda #$00 ; CPU:$E534 PRG:2534 A9 00 + sta $4007 ; CPU:$E536 PRG:2536 8D 07 40 + rts ; CPU:$E539 PRG:2539 60 +; ----------------------------------------------------------------------------- +; Routine: ClearScreen +; Global: Clears screen ($2020-$21FF) with blank tile $5F. +; 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. +; ----------------------------------------------------------------------------- +ClearScreen: + lda #$21 ; CPU:$E53A PRG:253A A9 21 + sta $2006 ; CPU:$E53C PRG:253C 8D 06 20 + lda #$20 ; CPU:$E53F PRG:253F A9 20 + sta $2006 ; CPU:$E541 PRG:2541 8D 06 20 + lda #$5F ; CPU:$E544 PRG:2544 A9 5F + ldx #$80 ; CPU:$E546 PRG:2546 A2 80 +; ----------------------------------------------------------------------------- +; Routine: Label_E548 +; 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_E548: + sta $2007 ; CPU:$E548 PRG:2548 8D 07 20 + dex ; CPU:$E54B PRG:254B CA + bne Label_E548 ; CPU:$E54C PRG:254C D0 FA + rts ; CPU:$E54E PRG:254E 60 +; ---- data $E54F-$FFFF (6833 bytes) ---- + .byte $20, $83, $1A, $B0, $B1, $B2, $B3, $B4, $B5, $B6, $B7, $B8, $B9, $04, $BA, $BB ; CPU:$E54F PRG:254F 20 83 1A B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 04 BA BB + .byte $BC, $BD, $BE, $BF, $04, $D0, $D1, $D2, $D3, $D4, $D5, $D6, $D7, $20, $A3, $1A ; CPU:$E55F PRG:255F BC BD BE BF 04 D0 D1 D2 D3 D4 D5 D6 D7 20 A3 1A + .byte $C0, $C1, $C2, $C3, $C4, $C5, $C6, $C7, $C8, $C9, $04, $CA, $CB, $CC, $CD, $CE ; CPU:$E56F PRG:256F C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 04 CA CB CC CD CE + .byte $CF, $04, $E0, $E1, $E2, $E3, $E4, $E5, $E6, $E7, $00, $21, $36, $07, $90, $91 ; CPU:$E57F PRG:257F CF 04 E0 E1 E2 E3 E4 E5 E6 E7 00 21 36 07 90 91 + .byte $92, $93, $04, $BC, $BD, $21, $56, $07, $A0, $A1, $A2, $A3, $A4, $CC, $CD, $22 ; CPU:$E58F PRG:258F 92 93 04 BC BD 21 56 07 A0 A1 A2 A3 A4 CC CD 22 + .byte $36, $07, $90, $91, $92, $93, $04, $DE, $DF, $22, $56, $07, $A0, $A1, $A2, $A3 ; CPU:$E59F PRG:259F 36 07 90 91 92 93 04 DE DF 22 56 07 A0 A1 A2 A3 + .byte $04, $EE, $EF, $00, $21, $24, $10, $08, $09, $09, $09, $09, $09, $16, $16, $16 ; CPU:$E5AF PRG:25AF 04 EE EF 00 21 24 10 08 09 09 09 09 09 16 16 16 + .byte $16, $09, $09, $09, $09, $09, $0A, $21, $44, $10, $0B, $07, $07, $07, $07, $07 ; CPU:$E5BF PRG:25BF 16 09 09 09 09 09 0A 21 44 10 0B 07 07 07 07 07 + .byte $18, $19, $1A, $1B, $07, $07, $07, $07, $07, $0C, $21, $64, $10, $0B, $07, $07 ; CPU:$E5CF PRG:25CF 18 19 1A 1B 07 07 07 07 07 0C 21 64 10 0B 07 07 + .byte $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $0C, $21, $C4, $10 ; CPU:$E5DF PRG:25DF 07 07 07 07 07 07 07 07 07 07 07 07 0C 21 C4 10 + .byte $0B, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $0C ; CPU:$E5EF PRG:25EF 0B 07 07 07 07 07 07 07 07 07 07 07 07 07 07 0C + .byte $21, $E4, $10, $0B, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07, $07 ; CPU:$E5FF PRG:25FF 21 E4 10 0B 07 07 07 07 07 07 07 07 07 07 07 07 + .byte $07, $07, $0C, $22, $44, $10, $0B, $07, $07, $07, $07, $07, $07, $07, $07, $07 ; CPU:$E60F PRG:260F 07 07 0C 22 44 10 0B 07 07 07 07 07 07 07 07 07 + .byte $07, $07, $07, $07, $07, $0C, $22, $64, $10, $0B, $07, $07, $07, $07, $07, $07 ; CPU:$E61F PRG:261F 07 07 07 07 07 0C 22 64 10 0B 07 07 07 07 07 07 + .byte $07, $07, $07, $07, $07, $07, $07, $07, $0C, $22, $C4, $10, $0D, $0E, $0E, $0E ; CPU:$E62F PRG:262F 07 07 07 07 07 07 07 07 0C 22 C4 10 0D 0E 0E 0E + .byte $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0F, $00, $21, $84, $10 ; CPU:$E63F PRG:263F 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0F 00 21 84 10 + .byte $0B, $10, $11, $07, $07, $10, $11, $07, $07, $00, $01, $07, $07, $00, $01, $0C ; CPU:$E64F PRG:264F 0B 10 11 07 07 10 11 07 07 00 01 07 07 00 01 0C + .byte $21, $A4, $10, $0B, $12, $13, $07, $07, $12, $13, $07, $07, $02, $03, $07, $07 ; CPU:$E65F PRG:265F 21 A4 10 0B 12 13 07 07 12 13 07 07 02 03 07 07 + .byte $02, $03, $0C, $22, $04, $10, $0B, $10, $11, $07, $07, $10, $11, $07, $07, $00 ; CPU:$E66F PRG:266F 02 03 0C 22 04 10 0B 10 11 07 07 10 11 07 07 00 + .byte $01, $07, $07, $00, $01, $0C, $22, $24, $10, $0B, $12, $13, $07, $07, $12, $13 ; CPU:$E67F PRG:267F 01 07 07 00 01 0C 22 24 10 0B 12 13 07 07 12 13 + .byte $07, $07, $02, $03, $07, $07, $02, $03, $0C, $22, $84, $10, $0B, $10, $11, $07 ; CPU:$E68F PRG:268F 07 07 02 03 07 07 02 03 0C 22 84 10 0B 10 11 07 + .byte $07, $10, $11, $07, $07, $00, $01, $07, $07, $00, $01, $0C, $22, $A4, $10, $0B ; CPU:$E69F PRG:269F 07 10 11 07 07 00 01 07 07 00 01 0C 22 A4 10 0B + .byte $12, $13, $07, $07, $12, $13, $07, $07, $02, $03, $07, $07, $02, $03, $0C, $00 ; CPU:$E6AF PRG:26AF 12 13 07 07 12 13 07 07 02 03 07 07 02 03 0C 00 + .byte $21, $84, $10, $0B, $07, $07, $07, $07, $10, $11, $07, $07, $10, $11, $07, $07 ; CPU:$E6BF PRG:26BF 21 84 10 0B 07 07 07 07 10 11 07 07 10 11 07 07 + .byte $07, $07, $0C, $21, $A4, $10, $0B, $07, $07, $07, $07, $12, $13, $07, $07, $12 ; CPU:$E6CF PRG:26CF 07 07 0C 21 A4 10 0B 07 07 07 07 12 13 07 07 12 + .byte $13, $07, $07, $07, $07, $0C, $22, $04, $10, $0B, $10, $11, $07, $07, $00, $01 ; CPU:$E6DF PRG:26DF 13 07 07 07 07 0C 22 04 10 0B 10 11 07 07 00 01 + .byte $07, $07, $00, $01, $07, $07, $10, $11, $0C, $22, $24, $10, $0B, $12, $13, $07 ; CPU:$E6EF PRG:26EF 07 07 00 01 07 07 10 11 0C 22 24 10 0B 12 13 07 + .byte $07, $02, $03, $07, $07, $02, $03, $07, $07, $12, $13, $0C, $22, $84, $10, $0B ; CPU:$E6FF PRG:26FF 07 02 03 07 07 02 03 07 07 12 13 0C 22 84 10 0B + .byte $07, $07, $07, $07, $10, $11, $07, $07, $10, $11, $07, $07, $07, $07, $0C, $22 ; CPU:$E70F PRG:270F 07 07 07 07 10 11 07 07 10 11 07 07 07 07 0C 22 + .byte $A4, $10, $0B, $07, $07, $07, $07, $12, $13, $07, $07, $12, $13, $07, $07, $07 ; CPU:$E71F PRG:271F A4 10 0B 07 07 07 07 12 13 07 07 12 13 07 07 07 + .byte $07, $0C, $00, $21, $21, $1E, $3C, $48, $47, $47, $3E, $3C, $4D, $5F, $49, $48 ; CPU:$E72F PRG:272F 07 0C 00 21 21 1E 3C 48 47 47 3E 3C 4D 5F 49 48 + .byte $5E, $3E, $4B, $5F, $49, $3A, $3D, $5F, $5D, $5F, $3C, $48, $47, $4D, $4B, $48 ; CPU:$E73F PRG:273F 5E 3E 4B 5F 49 3A 3D 5F 5D 5F 3C 48 47 4D 4B 48 + .byte $45, $45, $3E, $4B, $21, $63, $1B, $60, $42, $3F, $5F, $49, $48, $5E, $3E, $4B ; CPU:$E74F PRG:274F 45 45 3E 4B 21 63 1B 60 42 3F 5F 49 48 5E 3E 4B + .byte $5F, $49, $3A, $3D, $5F, $42, $4C, $5F, $3C, $48, $47, $47, $3E, $3C, $4D, $3E ; CPU:$E75F PRG:275F 5F 49 3A 3D 5F 42 4C 5F 3C 48 47 47 3E 3C 4D 3E + .byte $3D, $62, $21, $83, $1B, $61, $5F, $5F, $5F, $5F, $5F, $5F, $5F, $42, $3C, $5F ; CPU:$E76F PRG:276F 3D 62 21 83 1B 61 5F 5F 5F 5F 5F 5F 5F 42 3C 5F + .byte $46, $3A, $51, $5F, $3B, $3E, $5F, $3B, $3A, $3D, $53, $5F, $5F, $5F, $5F, $63 ; CPU:$E77F PRG:277F 46 3A 51 5F 3B 3E 5F 3B 3A 3D 53 5F 5F 5F 5F 63 + .byte $00, $23, $04, $16, $49, $4B, $3E, $4C, $4C, $5F, $3A, $5F, $4D, $48, $5F, $4D ; CPU:$E78F PRG:278F 00 23 04 16 49 4B 3E 4C 4C 5F 3A 5F 4D 48 5F 4D + .byte $3E, $4C, $4D, $5F, $4C, $42, $3D, $3E, $57, $3A, $23, $44, $16, $49, $4B, $3E ; CPU:$E79F PRG:279F 3E 4C 4D 5F 4C 42 3D 3E 57 3A 23 44 16 49 4B 3E + .byte $4C, $4C, $5F, $3B, $5F, $4D, $48, $5F, $4D, $3E, $4C, $4D, $5F, $4C, $42, $3D ; CPU:$E7AF PRG:27AF 4C 4C 5F 3B 5F 4D 48 5F 4D 3E 4C 4D 5F 4C 42 3D + .byte $3E, $57, $3B, $00, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7BF PRG:27BF 3E 57 3B 00 FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7CF PRG:27CF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7DF PRG:27DF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7EF PRG:27EF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7FF PRG:27FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E80F PRG:280F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E81F PRG:281F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E82F PRG:282F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E83F PRG:283F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E84F PRG:284F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E85F PRG:285F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E86F PRG:286F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E87F PRG:287F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E88F PRG:288F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E89F PRG:289F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8AF PRG:28AF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8BF PRG:28BF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8CF PRG:28CF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8DF PRG:28DF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8EF PRG:28EF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8FF PRG:28FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E90F PRG:290F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E91F PRG:291F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E92F PRG:292F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E93F PRG:293F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E94F PRG:294F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E95F PRG:295F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E96F PRG:296F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E97F PRG:297F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E98F PRG:298F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E99F PRG:299F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9AF PRG:29AF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9BF PRG:29BF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9CF PRG:29CF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9DF PRG:29DF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9EF PRG:29EF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9FF PRG:29FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA0F PRG:2A0F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA1F PRG:2A1F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA2F PRG:2A2F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA3F PRG:2A3F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA4F PRG:2A4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA5F PRG:2A5F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA6F PRG:2A6F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA7F PRG:2A7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA8F PRG:2A8F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA9F PRG:2A9F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAAF PRG:2AAF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EABF PRG:2ABF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EACF PRG:2ACF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EADF PRG:2ADF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAEF PRG:2AEF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAFF PRG:2AFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB0F PRG:2B0F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB1F PRG:2B1F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB2F PRG:2B2F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB3F PRG:2B3F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB4F PRG:2B4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB5F PRG:2B5F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB6F PRG:2B6F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB7F PRG:2B7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB8F PRG:2B8F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB9F PRG:2B9F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBAF PRG:2BAF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBBF PRG:2BBF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBCF PRG:2BCF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBDF PRG:2BDF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBEF PRG:2BEF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBFF PRG:2BFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC0F PRG:2C0F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC1F PRG:2C1F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC2F PRG:2C2F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC3F PRG:2C3F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC4F PRG:2C4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC5F PRG:2C5F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC6F PRG:2C6F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC7F PRG:2C7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC8F PRG:2C8F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC9F PRG:2C9F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECAF PRG:2CAF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECBF PRG:2CBF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECCF PRG:2CCF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECDF PRG:2CDF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECEF PRG:2CEF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECFF PRG:2CFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED0F PRG:2D0F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED1F PRG:2D1F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED2F PRG:2D2F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED3F PRG:2D3F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED4F PRG:2D4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED5F PRG:2D5F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED6F PRG:2D6F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED7F PRG:2D7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED8F PRG:2D8F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED9F PRG:2D9F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDAF PRG:2DAF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDBF PRG:2DBF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDCF PRG:2DCF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDDF PRG:2DDF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDEF PRG:2DEF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDFF PRG:2DFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE0F PRG:2E0F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE1F PRG:2E1F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE2F PRG:2E2F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE3F PRG:2E3F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE4F PRG:2E4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE5F PRG:2E5F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE6F PRG:2E6F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE7F PRG:2E7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE8F PRG:2E8F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE9F PRG:2E9F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEAF PRG:2EAF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEBF PRG:2EBF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EECF PRG:2ECF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEDF PRG:2EDF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEEF PRG:2EEF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEFF PRG:2EFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF0F PRG:2F0F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF1F PRG:2F1F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF2F PRG:2F2F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF3F PRG:2F3F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF4F PRG:2F4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF5F PRG:2F5F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF6F PRG:2F6F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF7F PRG:2F7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF8F PRG:2F8F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF9F PRG:2F9F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFAF PRG:2FAF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFBF PRG:2FBF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFCF PRG:2FCF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFDF PRG:2FDF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFEF PRG:2FEF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $4F, $E5, $8A, $E5, $B3, $E5, $4C, $E6, $BF, $E6, $32, $E7, $CC, $E4, $E3 ; CPU:$EFFF PRG:2FFF FF 4F E5 8A E5 B3 E5 4C E6 BF E6 32 E7 CC E4 E3 + .byte $E4, $90, $E7, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F00F PRG:300F E4 90 E7 FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F01F PRG:301F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F02F PRG:302F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F03F PRG:303F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F04F PRG:304F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F05F PRG:305F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F06F PRG:306F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F07F PRG:307F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F08F PRG:308F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F09F PRG:309F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0AF PRG:30AF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0BF PRG:30BF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0CF PRG:30CF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0DF PRG:30DF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0EF PRG:30EF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0FF PRG:30FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F10F PRG:310F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F11F PRG:311F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F12F PRG:312F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F13F PRG:313F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F14F PRG:314F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F15F PRG:315F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F16F PRG:316F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F17F PRG:317F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F18F PRG:318F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F19F PRG:319F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1AF PRG:31AF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1BF PRG:31BF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1CF PRG:31CF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1DF PRG:31DF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1EF PRG:31EF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1FF PRG:31FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F20F PRG:320F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F21F PRG:321F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F22F PRG:322F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F23F PRG:323F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F24F PRG:324F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F25F PRG:325F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F26F PRG:326F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F27F PRG:327F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F28F PRG:328F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F29F PRG:329F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2AF PRG:32AF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2BF PRG:32BF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2CF PRG:32CF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2DF PRG:32DF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2EF PRG:32EF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2FF PRG:32FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F30F PRG:330F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F31F PRG:331F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F32F PRG:332F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F33F PRG:333F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F34F PRG:334F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F35F PRG:335F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F36F PRG:336F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F37F PRG:337F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F38F PRG:338F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F39F PRG:339F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3AF PRG:33AF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3BF PRG:33BF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3CF PRG:33CF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3DF PRG:33DF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3EF PRG:33EF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3FF PRG:33FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F40F PRG:340F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F41F PRG:341F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F42F PRG:342F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F43F PRG:343F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F44F PRG:344F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F45F PRG:345F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F46F PRG:346F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F47F PRG:347F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F48F PRG:348F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F49F PRG:349F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4AF PRG:34AF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4BF PRG:34BF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4CF PRG:34CF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4DF PRG:34DF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4EF PRG:34EF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4FF PRG:34FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F50F PRG:350F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F51F PRG:351F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F52F PRG:352F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F53F PRG:353F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F54F PRG:354F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F55F PRG:355F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F56F PRG:356F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F57F PRG:357F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F58F PRG:358F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F59F PRG:359F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5AF PRG:35AF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5BF PRG:35BF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5CF PRG:35CF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5DF PRG:35DF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5EF PRG:35EF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5FF PRG:35FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F60F PRG:360F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F61F PRG:361F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F62F PRG:362F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F63F PRG:363F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F64F PRG:364F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F65F PRG:365F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F66F PRG:366F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F67F PRG:367F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F68F PRG:368F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F69F PRG:369F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6AF PRG:36AF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6BF PRG:36BF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6CF PRG:36CF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6DF PRG:36DF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6EF PRG:36EF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6FF PRG:36FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F70F PRG:370F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F71F PRG:371F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F72F PRG:372F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F73F PRG:373F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F74F PRG:374F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F75F PRG:375F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F76F PRG:376F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F77F PRG:377F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F78F PRG:378F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F79F PRG:379F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7AF PRG:37AF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7BF PRG:37BF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7CF PRG:37CF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7DF PRG:37DF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7EF PRG:37EF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7FF PRG:37FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F80F PRG:380F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F81F PRG:381F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F82F PRG:382F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F83F PRG:383F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F84F PRG:384F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F85F PRG:385F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F86F PRG:386F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F87F PRG:387F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F88F PRG:388F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F89F PRG:389F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8AF PRG:38AF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8BF PRG:38BF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8CF PRG:38CF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8DF PRG:38DF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8EF PRG:38EF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8FF PRG:38FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F90F PRG:390F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F91F PRG:391F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F92F PRG:392F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F93F PRG:393F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F94F PRG:394F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F95F PRG:395F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F96F PRG:396F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F97F PRG:397F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F98F PRG:398F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F99F PRG:399F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9AF PRG:39AF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9BF PRG:39BF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9CF PRG:39CF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9DF PRG:39DF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9EF PRG:39EF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9FF PRG:39FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA0F PRG:3A0F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA1F PRG:3A1F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA2F PRG:3A2F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA3F PRG:3A3F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA4F PRG:3A4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA5F PRG:3A5F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA6F PRG:3A6F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA7F PRG:3A7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA8F PRG:3A8F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA9F PRG:3A9F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FAAF PRG:3AAF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FABF PRG:3ABF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FACF PRG:3ACF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FADF PRG:3ADF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FAEF PRG:3AEF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FAFF PRG:3AFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB0F PRG:3B0F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB1F PRG:3B1F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB2F PRG:3B2F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB3F PRG:3B3F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB4F PRG:3B4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB5F PRG:3B5F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB6F PRG:3B6F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB7F PRG:3B7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB8F PRG:3B8F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB9F PRG:3B9F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBAF PRG:3BAF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBBF PRG:3BBF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBCF PRG:3BCF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBDF PRG:3BDF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBEF PRG:3BEF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBFF PRG:3BFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC0F PRG:3C0F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC1F PRG:3C1F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC2F PRG:3C2F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC3F PRG:3C3F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC4F PRG:3C4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC5F PRG:3C5F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC6F PRG:3C6F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC7F PRG:3C7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC8F PRG:3C8F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC9F PRG:3C9F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCAF PRG:3CAF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCBF PRG:3CBF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCCF PRG:3CCF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCDF PRG:3CDF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCEF PRG:3CEF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCFF PRG:3CFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD0F PRG:3D0F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD1F PRG:3D1F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD2F PRG:3D2F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD3F PRG:3D3F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD4F PRG:3D4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD5F PRG:3D5F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD6F PRG:3D6F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD7F PRG:3D7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD8F PRG:3D8F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD9F PRG:3D9F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDAF PRG:3DAF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDBF PRG:3DBF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDCF PRG:3DCF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDDF PRG:3DDF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDEF PRG:3DEF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDFF PRG:3DFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE0F PRG:3E0F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE1F PRG:3E1F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE2F PRG:3E2F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE3F PRG:3E3F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE4F PRG:3E4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE5F PRG:3E5F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE6F PRG:3E6F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE7F PRG:3E7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE8F PRG:3E8F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE9F PRG:3E9F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEAF PRG:3EAF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEBF PRG:3EBF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FECF PRG:3ECF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEDF PRG:3EDF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEEF PRG:3EEF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEFF PRG:3EFF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF0F PRG:3F0F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF1F PRG:3F1F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF2F PRG:3F2F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF3F PRG:3F3F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF4F PRG:3F4F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF5F PRG:3F5F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF6F PRG:3F6F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF7F PRG:3F7F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF8F PRG:3F8F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF9F PRG:3F9F FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFAF PRG:3FAF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFBF PRG:3FBF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFCF PRG:3FCF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFDF PRG:3FDF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF + .byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $6E, $E0, $00, $E0, $00 ; CPU:$FFEF PRG:3FEF FF FF FF FF FF FF FF FF FF FF FF 6E E0 00 E0 00 + .byte $E0 ; CPU:$FFFF PRG:3FFF E0 diff --git a/NES PowerPad Test Card (U)/copilot/reconstructed.lbl b/NES PowerPad Test Card (U)/copilot/reconstructed.lbl new file mode 100644 index 0000000..fc86dd5 --- /dev/null +++ b/NES PowerPad Test Card (U)/copilot/reconstructed.lbl @@ -0,0 +1,94 @@ +al 00E548 .Label_E548 +al 00E53A .ClearScreen +al 00E534 .ClearAPUNoise +al 00E52E .SetAPUNoise +al 00E522 .Label_E522 +al 00E514 .Label_E514 +al 00E52D .ProcessPadBitsDone +al 00E509 .Label_E509 +al 00E4FA .ProcessPadBits +al 00E4B4 .PadBitTableLives +al 00E4AA .LoadPatternTable7 +al 00E4A0 .LoadPatternTable6 +al 00E49F .UpdatePadsDone +al 00E48F .Label_E48F +al 00E47F .UpdatePads +al 00E47A .Label_E47A +al 00E471 .Label_E471 +al 00E46F .ShiftVar4 +al 00E46A .Label_E46A +al 00E45F .Label_E45F +al 00E459 .ShiftVar3 +al 00E454 .Label_E454 +al 00E44B .Label_E44B +al 00E449 .ShiftVar2 +al 00E444 .Label_E444 +al 00E439 .Label_E439 +al 00E433 .ShiftVar1 +al 00E424 .Label_E424 +al 00E42F .Label_E42F +al 00E41E .Label_E41E +al 00E407 .DrawLives +al 00E3F8 .Label_E3F8 +al 00E403 .Label_E403 +al 00E3F5 .Label_E3F5 +al 00E3E1 .DrawScore +al 00E3D8 .Label_E3D8 +al 00E3D1 .Label_E3D1 +al 00E3C3 .Label_E3C3 +al 00E3B5 .Label_E3B5 +al 00E3AE .Label_E3AE +al 00E3A0 .Label_E3A0 +al 00E398 .ProcessPads +al 00E37F .Label_E37F +al 00E362 .ShiftPads +al 00E35B .Label_E35B +al 00E34D .Label_E34D +al 00E361 .ReadPadDone +al 00E338 .ReadPad +al 00E32D .ClearGameVars +al 00E326 .Label_E326 +al 00E312 .Label_E312 +al 00E2FE .Label_E2FE +al 00E2F0 .ClearRows +al 00E2B0 .DrawPlayer2Pad +al 00E270 .DrawPlayer1Pad +al 00E236 .InitRoundParams +al 00E22D .ResetScroll +al 00E219 .SetPPUCTRL_NMI +al 00E1FB .DisableNMI +al 00E1F1 .EnableNMI +al 00E1E3 .Label_E1E3 +al 00E1F0 .VramWriteDone +al 00E1D2 .Label_E1D2 +al 00E1CC .VramWrite +al 00E1C2 .LoadPatternTable5 +al 00E1B8 .LoadPatternTable4 +al 00E1AE .LoadPatternTable3 +al 00E1A4 .LoadPatternTable2 +al 00E19A .LoadPatternTable1 +al 00E187 .ClearVRAM_FillFF +al 00E16B .InitAPU +al 00E164 .Label_E164 +al 00E150 .Label_E150 +al 00E142 .ClearVRAM_Fill23 +al 00E141 .ClearPaletteDone +al 00E121 .PaletteData +al 00E113 .Label_E113 +al 00E107 .LoadPalette +al 00E0FB .Label_E0FB +al 00E0EB .ClearVRAM +al 00E0DD .Label_E0DD +al 00E0CF .Label_E0CF +al 00E0C9 .ClearRAM +al 00E0B5 .Label_E0B5 +al 00E0B0 .Label_E0B0 +al 00E09B .ResetInit +al 00E092 .WaitForVBlank +al 00E06E .NmiHandler +al 00E068 .Label_E068 +al 00E058 .Label_E058 +al 00E02F .Label_E02F +al 00E02B .Label_E02B +al 00E01E .Label_E01E +al 00E000 .Reset diff --git a/_wip/NES PowerPad Test Card (U)/copilot/reconstructed.map b/NES PowerPad Test Card (U)/copilot/reconstructed.map similarity index 61% rename from _wip/NES PowerPad Test Card (U)/copilot/reconstructed.map rename to NES PowerPad Test Card (U)/copilot/reconstructed.map index aaf7f17..1ad1cc6 100644 --- a/_wip/NES PowerPad Test Card (U)/copilot/reconstructed.map +++ b/NES PowerPad Test Card (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/NES PowerPad Test Card (U)/NES PowerPad Test Cart (U) [!].nes b/NES PowerPad Test Card (U)/copilot/reconstructed.nes similarity index 100% rename from _wip/NES PowerPad Test Card (U)/NES PowerPad Test Cart (U) [!].nes rename to NES PowerPad Test Card (U)/copilot/reconstructed.nes diff --git a/_wip/NES PowerPad Test Card (U)/copilot/reconstructed_prg.bin b/NES PowerPad Test Card (U)/copilot/reconstructed_prg.bin similarity index 100% rename from _wip/NES PowerPad Test Card (U)/copilot/reconstructed_prg.bin rename to NES PowerPad Test Card (U)/copilot/reconstructed_prg.bin diff --git a/NES PowerPad Test Card (U)/copilot/rom.nes b/NES PowerPad Test Card (U)/copilot/rom.nes new file mode 120000 index 0000000..ba0d050 --- /dev/null +++ b/NES PowerPad Test Card (U)/copilot/rom.nes @@ -0,0 +1 @@ +../rom.nes \ No newline at end of file diff --git a/_wip/NES PowerPad Test Card (U)/copilot/symbols.inc b/NES PowerPad Test Card (U)/copilot/symbols.inc similarity index 100% rename from _wip/NES PowerPad Test Card (U)/copilot/symbols.inc rename to NES PowerPad Test Card (U)/copilot/symbols.inc diff --git a/NES PowerPad Test Card (U)/rom.nes b/NES PowerPad Test Card (U)/rom.nes new file mode 100644 index 0000000000000000000000000000000000000000..a3a01fb9ff994e29dcc6e313211adfde459de8b6 GIT binary patch literal 24592 zcmeHPeQZ!6D%L3zZH30%x|*Ya!dkkrmDTN-momdV28_~*`742z3EtRRtYSGk_dUO7 zCmHS9Kc>>%lla|xzR&sH>yOJbS$Eex-5QMs6e7>&$(wm{Ay2ph87Pp43gnprd8I&Z zE0TW{$bF?G*CNI()0W&nQyb$}Dlq2WPjXAe+@*{)cZpmrkmXb4M+LI4K%Os19iuZ^)s@NM@q&=lw3tRTB(A~P(ksfWg;!=vFV$zz zvULPV9E2n+jma|v&p_~3!1d{fcc#7)x1|j6h4t!h#(YU#+(Pax3Q5a@NK38u2i%xD zX;EeZF8)4~INm}FmQk9bO@Cc(8n3eOBo%@xBw~@=R-%hY{f*){H^;wW+T`B|+VGdv zZ%N@3bPK4fRrn9GcW23H+r~H-H^p0oq|SZ|{mJ!A8$>Q?us`s%xIqp+iB1Vq(jW&H zlE%0x$;Dfet?@Q&smq_z&?yy{ zLHW))KUNm@nZ@yTd7oRvajP^dU3jnfZsDyn@4Wr@a`C+jB`Cw&a0Uv_pPDB2zk2Az z$rC4?FPqY@XOEVr%2VKKh+R!$Tn|fc+XUC!x>FbIn8GQ+>7t-(D%qavBwLCpO}ssL z8*(CtFKf8=?E=2s=%3FZTtd`qYu!~huQf&-)39LarB|p(TCZk zpJ(M-GT&-`EZ6*4Qc7Blo4MUj$HE{a;4m6UQ()Y|OAlyhRylyhQ%)9LU8 zRVn`u0^ZuKJ0bi4HAV{^;!@Kf6=VLc*2+1_y z34M9_S3@hjp%u$l-a}>g!(x5c-Gkm>Ftj|hHV|6t4XzCZ2UdFTUA}l#U9n=eVg<}F zVhAt<7y=9dh5$o=A@E5M7@B%~>cy$x^lQ`0&SlG`^3HRg#GBbN1Q-Gg0fqoWfFZyT zUv zFa#I^3;~7!L*P0_K)(O4G*A`unJ0Gf>VGEmSvej3GXaVoVC&X&UaU5FjYh{=eahbv zP{xK{k;tPWpF09@Jv}}j#!*JuLdgt}uT-klsxqSKEJD>RLS;`62cV2|qoHx7k_S-7 zPuaK9$LuaCr(~R~xt3hEn>jE#noJ&;QM_h0+*0qxzTeg0caI_MR(Zvb zjh_sGzF;Pk+1RH#+57BBQI(HmES_+_rt(p<-DAu|RDO|XbGBwSt9&(GH8$%#Lb{r1 zvae;#cDLKD+J_I9!#j2~;zcro&^?jQ&nOY{J@)(T%s=Q}7olXyXRKAkMezFyn zucgz~bh=T$%%@eoS4bbr40}}`y)j)QUzEbpgone3?KS1kWKWBgcaEw4SPfDmU*=-1 zcB&~}X8MEL*<+3P*e_C}e{3#;1*`F>{%rP#Dv$bO&G{mkbfg(?xn8?!Pop=-N9JOr zk8kLai(G8fGdw)(!G=|R&9bO(OVj#Gil+6WyxZM~2h_L8f0j;;8fkP3VB!fOyh+yJ z73U_Dsl3s$$PR*_^5N}^FneSFpdRZ>t9o}}ll#mQ4ZJd^PMxZ4-mL29PB6XT#}!lL zIQ0uyk;0qwdZSjS(n6bJ-{aJ_3@hqne*V{w^nSrK}C zu~;M=h90-DIv5B*MKW+e#Y_!sfX+J zhWt=N!VA>2T6&@SkH|m$G5R9ttUjqeo!NcoDy%OpRTv#8*rwQcz^Xr$C zsFu19gaMaYB4d3Fha<6=uLlBw;A+9$gY9{1wQ2=yh>g))fk!ZWG!lk2!9f4OsxX|z z_M%<~tY2o^HsEq#dU?M{&HH0g=M({{dA!WckDtyX)Ze^oGB~_U^2h40U7yn45QUf4 zkAzDAm$lliI15q!))w|)s9`u>LN6V+<9QULmXi0c#e`~5P0AF+NujE*V5 zCp4{ZwZ6VpV0j1Z&yL&8tmyv^(9lR5+eM~W|^ zk1J3GME|lDH<29vBjZcu)77Kvhn-8r*GKfH2+;a0CX*GgHi`gXaa(vaLT9Nybe8Hv zXSxMw4CxsrJ-M)c>B)`tRih3punO5>o2{s9aw+5g=S4Zkvh%-;#DDwm9tv*rcg?lV z`PY)m5!m^EK9c_n2|NF@^FKTP;~RdR@cosY{}nLU`1wb`haVr=`JbKt+4)~Of3fpF To*wA|n4SOG`Tz6(?g#${36190 literal 0 HcmV?d00001 diff --git a/OVERVIEW.md b/OVERVIEW.md index 3b90ea1..4e44b70 100644 --- a/OVERVIEW.md +++ b/OVERVIEW.md @@ -168,7 +168,7 @@ This document provides a consolidated overview of all NES disassembly projects i ## Skeleton Projects (under `_wip/`) -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. +20 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 | |---------|--------------------------|------|--------| @@ -184,7 +184,6 @@ This document provides a consolidated overview of all NES disassembly projects i | `MUSCLE (U)` | $86CB / $8000 / $8764 | H | BYTE-IDENTICAL | | `Mario Bros (JU)` | $C07D / $C000 / $C000 | H | BYTE-IDENTICAL | | `Millipede (U)` | $C7F1 / $C735 / $FFF0 | H | BYTE-IDENTICAL | -| `NES PowerPad Test Card (U)` | $E06E / $E000 / $E000 | H | BYTE-IDENTICAL | | `Pac-Man (Tengen) (U)` | $C0FA / $C033 / $C16A | V | BYTE-IDENTICAL | | `Pac-Man (U)` | $C0FA / $FF00 / $C16A | V | BYTE-IDENTICAL | | `Pinball (JU)` | $C1ED / $C000 / $C1ED | H | BYTE-IDENTICAL | @@ -199,7 +198,7 @@ Notable vector/header observations for Pass 1 work: - **Pac-Man (U)** RESET at `$FF00` (vector-page tail), while the Tengen variant RESETs at `$C033` — different builds confirmed (PRG bytes differ). - **MUSCLE (U)** vectors sit in the `$8000-EFFF` window — inconsistent with the `prg.s` skeleton's expected `$C000-$FFFF` mapping; verify the header/image match before Pass 1. - **Lunar Pool (U)** NMI `$FF65` / IRQ `$FF64` are adjacent in the vector page; RESET `$E80C`. -- **NES PowerPad Test Card (U)** RESET/IRQ both at `$E000`, far from the usual `$C000`-page entries. +- **NES PowerPad Test Card (U)** — *at Pass 2/3*: minimal code (~7.2%), data-heavy test cartridge. RESET at $E000 (non-$C000 entry). NMI handler reads controllers via shift register, processes pad transitions, draws score/lives. See `NES PowerPad Test Card (U)/OVERVIEW.md`. - **Ice Climber (JE) vs (U)**: byte-identical PRG *and* header — only the CHR differs (~regional title graphic). - **Popeye (JU) PRG 0 vs PRG 1**: different PRG binaries (and mirroring); same vectors. - **Raid on Bungeling Bay (U) vs [a2]**: `[a2]` differs in mirroring only per header, but PRGs differ — separate builds. @@ -278,7 +277,8 @@ All 14 projects in this repository rebuild **byte-identical** to their original | 12 | CIRCUS | BYTE-IDENTICAL (Pass 2/3) | | 13 | Wild Gunman (U) | BYTE-IDENTICAL (Pass 2/3) | | 14 | Joypad Test Cartridge (U) | BYTE-IDENTICAL (Pass 2/3) | +| 15 | NES PowerPad Test Card (U) | BYTE-IDENTICAL (Pass 2/3) | -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. +All 15 projects in this repository rebuild **byte-identical** to their original ROMs: -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 +The 20 `_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/NES PowerPad Test Card (U)/OVERVIEW.md b/_wip/NES PowerPad Test Card (U)/OVERVIEW.md deleted file mode 100644 index bfbfcf7..0000000 --- a/_wip/NES PowerPad Test Card (U)/OVERVIEW.md +++ /dev/null @@ -1,53 +0,0 @@ -# NES PowerPad Test Card (U) — Skeleton Project - -ROM: `_wip/NES PowerPad Test Card (U)/NES PowerPad Test Cart (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 | `4392b68e3bfde3177ebbd717f48e4c12010ce00b70396b552e76ca3746a0f2da` | -| PRG SHA-256 | `e9b8009cb1b218594bfb478111912ee6e2c8db574f8ff8f03a1aaddc064b110c` | - -## Interrupt Vectors (taken from PRG $3FFA–$3FFF) - -| Vector | Target | Note | -|--------|--------|------| -| NMI | `$E06E` | per-frame heartbeat | -| RESET | `$E000` | non-$C000 entry at $E000 — trace from here in Pass 1 | -| IRQ | `$E000` | redirects to RESET — unused placeholder | - -## `copilot/` Contents - -| File | Purpose | -|------|---------| -| `NES PowerPad Test Cart (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/NES PowerPad Test Card (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 ($E000) and NMI ($E06E), 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/NES PowerPad Test Card (U)/copilot/Makefile b/_wip/NES PowerPad Test Card (U)/copilot/Makefile deleted file mode 100644 index 3f9ba6f..0000000 --- a/_wip/NES PowerPad Test Card (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/NES PowerPad Test Card (U)/copilot/linker.cfg b/_wip/NES PowerPad Test Card (U)/copilot/linker.cfg deleted file mode 100644 index d9d421d..0000000 --- a/_wip/NES PowerPad Test Card (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/NES PowerPad Test Card (U)/copilot/locals.inc b/_wip/NES PowerPad Test Card (U)/copilot/locals.inc deleted file mode 100644 index 3460482..0000000 --- a/_wip/NES PowerPad Test Card (U)/copilot/locals.inc +++ /dev/null @@ -1,2 +0,0 @@ -; NES PowerPad Test Card (U) zero-page aliases (declared during Pass 2). -; These intentionally conservative names will be refined in Passes 2 and 3. diff --git a/_wip/NES PowerPad Test Card (U)/copilot/prg.s b/_wip/NES PowerPad Test Card (U)/copilot/prg.s deleted file mode 100644 index 101900b..0000000 --- a/_wip/NES PowerPad Test Card (U)/copilot/prg.s +++ /dev/null @@ -1,12 +0,0 @@ -; NES PowerPad Test Card (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/NES PowerPad Test Card (U)/copilot/reconstructed.lbl b/_wip/NES PowerPad Test Card (U)/copilot/reconstructed.lbl deleted file mode 100644 index e69de29..0000000