Files
disasm/MAPPER8/Mermaids of Atlantis (U)/prg.s
T
tmerritt 691b2bc23c Xevious (U): Pass 1 disassembly
The first _wip project to get a real disassembly.  4,165 instructions /
8,444 code bytes (25.8%), 24,324 data bytes, 0 unclassified -- every byte
of the 32 KB PRG is now classified as code or data.

The split needed three stages, all recorded in prg.s's header:

  * nesdis.py --undocumented --auto-seed at base $8000 gave 3,272
    instructions / 6,555 bytes.  The undocumented opcodes matter here: the
    trace stops dead at the first one it cannot decode.
  * Four hand-seeded entries ($C08B, $DC1E, $E0D5, $E134).  Each is a
    branch target from decoded code that sat inside an untraced data run,
    so the tracer never reached it.
  * A merged four-session Mesen Code Data Logger capture (kept as
    xevious_mesen.cdl) promoted 1,902 bytes from data to code and
    demoted 22 the trace had called code.

Two tool bugs fell out and are fixed here:

  * nesdis.py emitted the undocumented single-byte NOPs ($1A/$3A/$5A/
    $7A/$DA/$FA) as `nop`, which ca65 assembles as the *official* $EA --
    the rebuild stopped being byte-identical at $DF82.  The check now
    keys on the opcode byte, not just the addressing mode.  All three
    `make regen` pipelines (MUSCLE, Pyramid, Urban Champion) are
    unaffected and still reproduce prg.s byte for byte.

  * cdl_reclass.py left the original data-block header in place when the
    CDL split that block, so the file ended up with two region headers
    describing overlapping spans (20 of them here).  The header is now
    dropped with the block it describes; the promoted projects that use
    the tool are byte-for-byte unchanged.

The project README has the power-on flow analysis.  The most interesting
find is at $FC45: the reset path compares RAM $0100-$0107 against the
ASCII string "Kei Cros", and the copyright text at $FF1E reads
"MAIN: KEI CROSS.  SOUND: UHOHOY OHNOGI."  The OAM is at $0700, not
$0200 -- the NMI handler does LDA #$07 / STA $4014.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Add explicit `make wip` / `make wipclean` targets for the _wip tier

The root Makefile's all / clean / <MAPPER> targets deliberately name only
the promoted mapper folders, so nothing in them reaches into _wip/.  Give
the pre-promotion tier its own opt-in targets instead of the manual
`for d in _wip/*/*/; do make -C "$d"; done` loop:

  make wip          # build + verify every _wip/<MAPPER>/<Project>/
  make wipclean     # clean the build artifacts in that tier

Both the Makefile and the four documents that describe the tier (README,
TODO, WIP, AGENTS) are updated together, so the tree stays consistent.

The same commit records Xevious (U) reaching Pass 2 in those documents:
all 487 labels named, every branch and call symbolic, zero Label_XXXX and
zero raw $XXXX operands left.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Update the _wip/ tier documentation; fix the make wip target and the mirroring bug

The WIP tier's four documents (WIP.md, README.md, TODO.md, AGENTS.md) had
drifted away from the tree.  Every number in them was re-derived from the
ROMs and the folder layout rather than carried forward.

Counts and structure
  - The tier holds 854 projects across 29 mapper folders, not "856 across
    30".  Xevious (U) and Zanac (U) were promoted on 2026-10-20 and their
    _wip/ folders were left behind as residue -- "git mv" moves only the
    tracked files, so the old folder survived with its build artifacts and a
    stale README.  Both are removed now; the promotion procedure documents
    the step so it does not recur.
  - _wip/MAPPER8/ holds a copy of the already-promoted Mermaids of
    Atlantis (U) and is excluded from every count and table.
  - Pass 0 skeletons: 852 (was 855).  Xevious (U) left the tier, so the
    two projects with a real disassembly are Golf (JU) and Volleyball (U).
  - PRG sizes 2 / 150 / 42 / 522 / 127 / 10 / 1; 226 projects with no CHR;
    38 keep the CPU-address linker layout; 37 are mapper 0.
  - Every inventory row was re-checked against its ROM: PRG/CHR size,
    mirroring, all three vectors, and the battery / four-screen / footer
    notes.  854 of 854 rows now match.

Fixes
  - The root Makefile used $(WIP) but never defined it, so "make wip" and
    "make wipclean" expanded to "for m in /*/" -- they walked the
    filesystem root instead of the tier.  "WIP := _wip" is now defined, and
    "make wip" builds and verifies the whole tier: 855 of 855 passed, 0
    failures.
  - make_skeleton.py masked header byte 6 with 0x03, so the battery bit
    (bit 1) leaked into the mirroring value and 56 battery-backed ROMs'
    READMEs claimed "Four-screen" while their own "Four-screen VRAM" row
    said "no".  The mask is now 0x01 and the 56 READMEs are corrected.
  - Golf (JU)'s README still described the pre-flatten copilot/ folder and
    the old PRG-only compare; it now describes the whole-ROM build.
  - Pyramid (U)'s audit comments are canonical again, so Golf (JU) is the
    only project in the tree still on the pre-canonical spelling.

New in WIP.md
  - Byte 7's lower nybble is non-zero on 58 of the ROMs -- 55 carry the
    literal "DiskDude!" watermark, two "DisNi0330", one "byKH+KEN".  Only
    the upper nybble carries mapper bits, so the noise is harmless.
  - The twelve ROMs that set the four-screen bit, split by whether their
    board actually supports four-screen VRAM.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Promote Volleyball (U) from _wip/NROM/ to NROM/

Volleyball (U) reached Pass 3 before promotion, so this is a promotion of a
finished disassembly rather than a Pass 0 skeleton.

The disassembly
  - 11,395 instructions / 23,926 code bytes (73.0 % of the PRG image),
    8,842 data bytes, 0 unclassified.
  - The split needed the game-state dispatch table at $85E1 declared to the
    tracer (--table 85E1:11) -- without it only 66 % of the image traced --
    plus a Mesen Code Data Logger capture taken while a random-input bot
    played the attract demo, which promoted 1,757 bytes from data to code.
  - Pass 2 named all 1,989 labels: 730 read out of the code by hand, 1,221
    internal branch targets derived mechanically.  Zero Label_XXXX, zero raw
    $XXXX call or branch operands, zero SubC residue.
  - Pass 3 named the zero page, the $0500 ball structure and all 37 data
    blocks.  apply_symbols.py --report: 0 pending substitutions, 0
    multi-alias residue.  align_audit_comments.py: no column drift.
  - cdl_check.py cross-checks the finished prg.s against the capture: 0
    CDL-code bytes not covered by an instruction, 0 CDL-data bytes that
    start one.
  - 29 neutral ZpXX zero-page slots remain, each with its reason recorded
    in locals.inc, as the promotion rules allow.

The promotion
  - git mv "_wip/NROM/Volleyball (U)" "NROM/Volleyball (U)".  Mapper 0, so
    it lands in NROM/.  The whole-ROM build was already in place, so there
    was no build surgery; the project builds byte-identically at its new
    home and the old folder is gone (git mv moves the untracked build
    artifacts too, so no residue was left behind).
  - Root README.md: new inventory row 39 and a per-project detail section,
    plus the WIP-tier counts.  The detail sections for Xevious (U) and
    Zanac (U) were numbered one too high against the inventory rows and
    are now aligned; a leftover editing note in the same place is gone.
  - WIP.md: the Volleyball row leaves the inventory, and the tier is now
    853 projects across 29 mapper folders (36 in _wip/NROM/), 852 of them
    Pass 0 skeletons.  Golf (JU) is the only project left in the tier with
    a real disassembly.
  - TODO.md and AGENTS.md: the same counts, and the promoted tier is now
    40 projects (39 under NROM/).

Verified: make wip builds and verifies the whole tier (854 of 854 passed,
0 failures) and make builds the promoted tier (39 of 39 passed).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Rename NROM/Pyramid (U) to NROM/Pyramid (U) (Sachen)

The promoted inventory row had read "Pyramid (U) (Sachen)" since the
project was promoted on 2026-10-20, but the folder was named "Pyramid (U)" --
so the row pointed at a folder that did not exist.  The folder now matches
the row, and the project's own README title, its ROM file name
("Pyramid (U) (Sachen).nes") and the parenthetical convention the rest of
the promoted tier already uses (Popeye (JU) (PRG 0/1), Raid on Bungeling
Bay (U) [a2], Pac-Man (Tengen) (U)).

What changed inside the project
  - The Makefile's regen target passes --project "Pyramid (U) (Sachen)", so
    the tracer writes the matching header line.  prg.s and locals.inc were
    updated to that header line and nothing else -- the disassembly is
    byte-identical to before.
  - make regen still reproduces prg.s and locals.inc byte for byte.
  - The project's README's build-verification line now names the new folder.

References updated: the root README.md (inventory prose, the row-33 detail
section, the build-status table, and the notable-observations bullet),
TODO.md (the promoted-projects table and the Pyramid notes) and AGENTS.md
(the recently-promoted list and the unlicensed-titles quirk).

Verified: make builds the promoted tier (39 of 39 passed) and the project
rebuilds byte-identically at its new path.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Rebuild Mermaids of Atlantis (U): bank-aware Pass 1, Pass 2/3 names

The promoted project did not build: a Pass 2 rename had been applied
half-way, leaving eight undefined symbols and two jumps that pointed at
the wrong routine, while the root README already claimed the project was
byte identical.  The _wip copy still built, because it held the un-renamed
Pass 1 source.

The disassembly is now derived from the ROM itself, with the Mesen Code
Data Logger as the oracle for the code/data split:

* _tools/banked_dis.py traces every MMC3 bank separately, each with the CPU
  window it is visible at, seeded from a CDL capture so the code a static
  trace cannot reach is disassembled too.  The CDL is the authority: a
  decode the CPU never fetched is dropped, and so is the fall-through
  behind a call whose target never returns (the game's dispatchers have
  their jump table right behind the call).
* One segment per bank (PRG0..PRG7) with its own .org, so the assembler
  knows the CPU address of every label while the linker still writes the
  bytes to the bank's file offset.  A flat segment cannot do both: a call
  would encode the file offset instead of the CPU address.
* Pass 2 names every label - 494 routines, no Label_XXXX and no raw
  $XXXX branch or jump operand left.  Pass 3 applies 13 semantic zero-page
  aliases and writes the routine headers.
* 8,075 bytes of code (12.3% of the 64 KB PRG), up from 200 bytes.

The banking turned out to be unusual and is documented: the fixed bank is
the fourth 8 KB bank (file $6000-$7FFF), not the last one, and the image
carries the reset stub and the vector table twice.  The live NMI vector
is $808F - the frame handler - while the copy at the end of the image
names $8189, which is a BRK in the first half.  The game's text table
lives at CPU $F1D6, which is the fixed window, and that is what settles
the question.

Also: the leftover _wip/MAPPER8 folder is removed, as it is for every
other promotion.

The project builds byte identical:

    Byte-identical ROM verified.

Add CHANGELOG.md: the pass history of every project

A project goes through four milestones - Pass 1 (the code/data split),
Pass 2 (the labels replaced by names), Pass 3 (the semantic naming) and
Promotion (the move into the top-level mapper folder) - and the history
of those milestones was scattered over the commit log, the project
READMEs and the root README.

CHANGELOG.md gathers it: one section per project with a row for each
milestone, the date, and a sentence saying what the milestone produced.
The numbers are the ones the project README and the root README already
carry - instruction count, code coverage, named labels, semantic
zero-page aliases, named data tables - so a reader can see at a glance
which projects are done and which are not.  Golf (JU), the only project
still in _wip/ with a real disassembly, is listed with its open
milestones, and the other 852 _wip/ projects are covered as a tier.

The requirement is now part of the workflow contract: PROMPTS.md gains a
"Pass 3: Changelog entry" section and a ninth checklist item, and
AGENTS.md points at the file.  A milestone and its changelog row go in
the same commit, so the changelog and the source never disagree.

Balloon Fight (JU): repair the audit trail and complete the routine headers

The per-instruction audit trail was stale by two bytes from
ResetInitializationData ($C085) onward.  5,944 of the 6,007 comments named
the wrong CPU address and PRG offset, because the three-byte .byte "HAL"
signature at $C082-$C084 had been counted as one byte when the trail was
first generated - the routine headers and the linker labels were right all
along, so the source and its own headers disagreed with each other.  The
trail was rebuilt from the ca65 -l listing with
_tools/repair_audit_comments.py, and every rewritten comment was re-checked
against prg.bin.  The comments were also moved into the canonical column-35
field: they had sat two spaces after the mnemonic, with no column discipline
at all, unlike every other promoted project.

All 63 routine headers now carry a ; Clobbers: block, so the headers carry
the full template AGENTS.md describes.  The blocks are derived, not written by
hand.  The new _tools/derive_clobbers.py takes the opcode from the audit
comment's byte list, so the addressing mode is exact and a data directive is
never mistaken for an instruction; it resolves the operand through
locals.inc and symbols.inc to name what is written; it follows the real
control flow, so a jsr to another named entry is a call (the callee's
clobbers count) while a branch or a fall-through is not; and it models
register preservation, so NmiHandler reports *no register* - it saves and
restores A, X and Y around the frame - and FlushPpuCommandPreserved reports
only A, because X and Y come back unchanged.

Two tools changed.  derive_clobbers.py is new.  align_audit_comments.py had
an off-by-one: it tested the indented code length against 31 instead of
against 35, so code texts of 28-31 characters were never padded into the
column.

The change is comments only.  The code text of all 8,538 lines is unchanged,
make still prints "Byte-identical ROM verified.", the 6,007 audit comments
still re-check against prg.bin, all 63 routine headers agree with the
instructions they describe, and every label agrees with reconstructed.lbl.
ReflectObjectYVelocity and UpdateSpecialObjectSystem moved out of locals.inc
and became labels in prg.s at their real addresses.

CHANGELOG.md becomes the repository's running log: a Pending list of the
changes to be put in the next commit, a History of the commits already made,
and the per-project milestone index at the end.  The next commit's message is
written from the Pending entries, so the two cannot drift apart.  PROMPTS.md
and AGENTS.md describe the new shape.  WIP.md drops the _wip/MAPPER8/ note:
the folder held a copy of Mermaids of Atlantis (U) that had already been
promoted.

World Class Track Meet (U): Pass 1, the code/data split

Pass 1 is done.  The split is 8,400 instructions / 18,028 code bytes (55.0 %)
of the 32 KB PRG, with 884 routine entries, 55 data blocks and 102 zero-page
aliases.  The PRG is CNROM (mapper 3) and maps whole at $8000-$FFFF, so the
linker moved the PRG segment from a .nes file offset to $8000 and the build
still compares byte identical.

Four dispatch tables had to be seeded by hand.  The event table at $F796 (5
entries) is read at $F780 and jumped to through `jmp ($001F)`.  The three
push-pointer tables - $BFC4 (16 entries), $BFE4 (2) and $E5F2 (7) - push a
handler address and `rts` into it, and the 6502's `rts` adds one to the
address it pops, so each table stores the entry address minus one; the seeds
are the table values plus one.  The tracer runs with --undocumented: the code
uses undocumented NMOS opcodes as ordinary code (ANC $37 at $BFF8, and the
RRA/RLA/SLO and NOP forms elsewhere).  Seeding the tables takes the coverage
from 27.8 % to 55.0 %.

$C0BE-$C0C5 is forced back to data: the IRQ vector $C0C0 points into the
middle of the `jmp $C047` at $C0BE, and the game never executes CLI, so the
vector is dead.  `make pass1` regenerates prg.s and locals.inc from prg.bin
and reproduces the committed prg.s byte for byte.

The project README records the split, the four dispatch tables, the dead IRQ
vector, the wrong CHR size field in the header, and what is still data.  The
milestone index in CHANGELOG.md gains the project; WIP.md, README.md and
AGENTS.md follow the tier counts and the layout.

nesdis.py gains a --mapping-note option, so the header's "PRG mapped at" line
can describe a board that is not NROM - CNROM's whole 32 KB at $8000-$FFFF is
not "mirrored to the upper half".

Replaces runs of $00 and $FF with .res <run>, <byte>

Golf (JU) and World Class Track Meet (U): Pass 2/3 complete, promoted from _wip/

- World Class Track Meet (U) - Pass 2 complete: all 884 Label_<addr>
  definitions replaced (651 semantic routine names + 233 Sub_<addr>), all 731
  raw $XXXX jsr/jmp call operands resolved to symbolic labels, all branch
  targets given role-based names; routinemap.tsv added; make stays
  byte-identical.
- World Class Track Meet (U) - Pass 3 complete: 24 semantic zero-page
  aliases applied via apply_symbols.py (0 residue), 78 neutral ZpXX slots
  documented with reasons in locals.inc, all hardware-register operands use
  symbols.inc names, project README rewritten with Pass 2/Pass 3 sections and
  data-table inventory; promoted out of _wip/CNROM/.
- World Class Track Meet (U) - project README documents the five event-table
  entries at $F796 and marks the olympics mode as not yet proven.
- Golf (JU) - audit comments converted from pre-canonical (; C000: A9 00)
  to the canonical ; CPU:$C000 PRG:0000  A9 00 form at column 35; 4,156
  comments re-aligned, comment/whitespace only, whole-ROM build stays
  byte-identical.
- Golf (JU) - 339 internal branch-target Label_ labels given role-based names
  via _tools/derive_branch_names.py; 0 raw $XXXX branch/jump operands remain.
- Golf (JU) - 275 zero-page operands substituted with locals.inc aliases via
  apply_symbols.py; 0 residue; promoted out of _wip/NROM/.
- Xevious (U) - runs of $FF padding replaced with .res <count>, $FF in prg.s;
  whole-ROM build stays byte-identical.
- Both projects promoted via git mv; leftover _wip/ folders removed; root
  README.md inventory rows added; WIP.md rows removed.

World Class Track Meet (U): apply zero-page symbol substitutions

Run apply_symbols.py to substitute ZpXX zero-page operands with
semantic locals.inc aliases (SlotState, GameMode, etc.) at proven
sites; 0 residue, whole-ROM build stays byte-identical.

Xevious (U): re-split Pass 1 from the Mesen CDL and decode the data tables

- Xevious (U) - Pass 1 re-split from the Mesen CDL (xevious_mesen.cdl) with
  _tools/cdl_reclass.py: 1,158 bytes data->code, 48 code->data, 42 labels
  emitted and 3 branch targets labelled; code 11,321->12,455 bytes
  (34.5%->38.0%), instructions 5,513->6,002. The 45 recovered entry points
  are named Sub_XXXX, so no Label_XXXX remains; six CDL-silent raw call
  operands are documented as residue.
- Xevious (U) - the 4,448-byte block at $A74B-$B8AA is split into six proven
  tables: VramWritePtrTable (15 pointers), VramWriteData, DataStreamPtrTable
  (16), ObjTilePtrTable (99), ObjTileData and DataStreamData. The $D833
  pointer table is corrected to base $D833 (4 entries; the old ObjCodePtrTable
  at $D834 was one byte late). $F957-$FAF5 is split into ObjSpeedTable,
  ObjSpeedTable2, SpriteLayoutPtrTable (19) and SpriteLayoutData;
  $FEE6-$FF1C into PaletteData and OamAttrTable. $F5D8 is decoded as
  TextTileData (font tile indices: PLAYER, GAME OVER, READY, SOLVALOU, LEFT,
  PAUSE); $F53C becomes AttrAddrTable, $F89E HandlerPtrTable and $EF3B
  SpriteLayoutData2. Project README rewritten with the corrected stats, a
  32-entry table inventory and the Pass 1 residue.
- _tools/cdl_reclass.py - preserve the data label(s) between a data-block
  header and its first .byte row when the block stays data; the $DF78 split
  dropped Data_DF78 and the rebuild failed with an undefined symbol.
- _tools/resolve_raw_branches.py - handle negative relative offsets
  (beq *-$0B); the pattern only matched *+$NN and *$NN.

Docs: refresh the tier counts to 41 promoted / 851 _wip, add the WCTM row

- Docs - tier counts refreshed to the post-promotion state across AGENTS.md,
  root README.md, WIP.md, TODO.md and CHANGELOG.md: 41 promoted projects
  (38 under NROM/, plus CNROM/World Class Track Meet (U), UNROM/Zanac (U) and
  MAPPER8/Mermaids of Atlantis (U)) and 851 _wip/ projects, every one of them
  a Pass 0 skeleton. The stale "39/40 promoted", "853 _wip", "Golf (JU) is
  still in _wip/" and "Golf is the last pre-canonical project" statements are
  corrected.
- Root README.md - the promoted inventory gained the missing World Class Track
  Meet (U) row (row 41, mapper 3, 32 KB PRG / 32 KB CHR), and the "All 38 are
  mapper 0 / 16 KB PRG" sentence is replaced with the actual split (36 of the
  41 rows are mapper 0 / 16 KB; Xevious and Volleyball are 32 KB, World Class
  Track Meet is mapper 3, Zanac mapper 2 and Mermaids mapper 8).
2026-10-21 11:36:32 -04:00

12207 lines
1.0 MiB
Plaintext

; Mermaids of Atlantis (U) NES disassembly - Pass 1
; Byte-oriented ca65 source generated from the supplied PRG image.
; Recursively reachable instructions are emitted explicitly with address/byte comments.
; Unreached bytes remain explicit .byte blocks; no ROM byte is deleted or reformatted.
; Pass 2 replaces address-derived labels, RAM aliases, and table names while
; preserving byte identity.
;
; The PRG image is bank switched, so every bank is traced separately and is
; given the CPU window it is visible at. Labels carry a bank prefix when two
; banks share a window.
;
; Pass 1 trace provenance:
; Code/data split taken from a Mesen Code Data Logger capture; the
; instruction boundaries and control flow come from the recursive tracer,
; seeded at every entry the CDL observed.
;
; ---- bank at file $0000-$1FFF, CPU $8000-$9FFF ----
; 68 CDL code runs, 2468 bytes of code, 1184 instructions
; 5 CDL code runs not reached by the tracer (left as data): $008F, $011C, $0606, $0A5F, $17C8
; indirect dispatch through zero page (not followed statically):
; jmp ($0011) at $8185
;
; ---- bank at file $2000-$3FFF, CPU $A000-$BFFF ----
; 21 CDL code runs, 921 bytes of code, 456 instructions
;
; ---- bank at file $4000-$5FFF, CPU $C000-$DFFF ----
; 80 CDL code runs, 3364 bytes of code, 1643 instructions
; 4 CDL code runs not reached by the tracer (left as data): $42BF, $440A, $4531, $4FFD
;
; ---- bank at file $6000-$7FFF, CPU $E000-$FFFF ----
; 8 CDL code runs, 119 bytes of code, 57 instructions
;
; ---- bank at file $8000-$9FFF, CPU $8000-$9FFF, label prefix 'Bank4' ----
; 9 CDL code runs, 212 bytes of code, 102 instructions
;
; ---- bank at file $A000-$BFFF, CPU $A000-$BFFF, label prefix 'Bank5' ----
; 13 CDL code runs, 985 bytes of code, 469 instructions
;
; ---- bank at file $C000-$DFFF, CPU $C000-$DFFF, label prefix 'Bank6' ----
; 0 CDL code runs, 0 bytes of code, 0 instructions
;
; ---- bank at file $E000-$FFFF, CPU $E000-$FFFF, label prefix 'Bank7' ----
; 1 CDL code runs, 6 bytes of code, 3 instructions
.setcpu "6502"
.include "symbols.inc"
.include "locals.inc"
.segment "PRG0"
.org $8000
; ---- data $8000-$8003 (4 bytes) ----
.byte $EA, $EA, $86, $2C ; CPU:$8000 PRG:0000 EA EA 86 2C
; -----------------------------------------------------------------------------
; Routine: BankedCall
; Global: Switches the PRG bank and dispatches to the handler the caller named.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
BankedCall:
sta HandlerIndex ; CPU:$8004 PRG:0004 85 2D
lda PrgBankNumber ; CPU:$8006 PRG:0006 A5 2C
ora #$08 ; CPU:$8008 PRG:0008 09 08
jsr SelectPrgBankByIndex ; CPU:$800A PRG:000A 20 1B 80
jsr Sub_8025 ; CPU:$800D PRG:000D 20 25 80
lda PrgBankNumber ; CPU:$8010 PRG:0010 A5 2C
ora #$08 ; CPU:$8012 PRG:0012 09 08
jmp SelectPrgBankByIndex ; CPU:$8014 PRG:0014 4C 1B 80
; ---- data $8017-$801A (4 bytes) ----
.byte $85, $2C, $09, $00 ; CPU:$8017 PRG:0017 85 2C 09 00
; -----------------------------------------------------------------------------
; Routine: SelectPrgBankByIndex
; Global: Switches the PRG bank to the one in X.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SelectPrgBankByIndex:
tax ; CPU:$801B PRG:001B AA
jsr SwitchPrgBank ; CPU:$801C PRG:001C 20 70 FF
lda $8026,x ; CPU:$801F PRG:001F BD 26 80
sta $8026,x ; CPU:$8022 PRG:0022 9D 26 80
; -----------------------------------------------------------------------------
; Routine: Sub_8025
; Global: Branch target inside Sub: taken when 8025.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_8025:
rts ; CPU:$8025 PRG:0025 60
; ---- data $8026-$8035 (16 bytes) ----
; referenced by `lda $8026,x` at $801F (operand $8026 falls inside this region)
; referenced by `sta $8026,x` at $8022 (operand $8026 falls inside this region)
.byte $00, $01, $02, $03, $04, $05, $06, $07, $10, $11, $12, $13, $14, $15, $16, $17 ; CPU:$8026 PRG:0026 00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17
; -----------------------------------------------------------------------------
; Routine: InitializeGame
; Global: Resets the CPU, the PPU and the work RAM, then idles for the NMI.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
InitializeGame:
sei ; CPU:$8036 PRG:0036 78
cld ; CPU:$8037 PRG:0037 D8
; -----------------------------------------------------------------------------
; Routine: WaitForVBlank
; Global: Spins until the PPU signals the start of vertical blank.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
WaitForVBlank:
lda PPUSTATUS ; CPU:$8038 PRG:0038 AD 02 20
bpl WaitForVBlank ; CPU:$803B PRG:003B 10 FB
lda #$00 ; CPU:$803D PRG:003D A9 00
sta PPUCTRL ; CPU:$803F PRG:003F 8D 00 20
sta PPUMASK ; CPU:$8042 PRG:0042 8D 01 20
ldx #$FF ; CPU:$8045 PRG:0045 A2 FF
txs ; CPU:$8047 PRG:0047 9A
lda #$00 ; CPU:$8048 PRG:0048 A9 00
jsr SelectPrgBankByIndex ; CPU:$804A PRG:004A 20 1B 80
lda #$00 ; CPU:$804D PRG:004D A9 00
sta Zp00 ; CPU:$804F PRG:004F 85 00
sta Zp01 ; CPU:$8051 PRG:0051 85 01
ldy #$02 ; CPU:$8053 PRG:0053 A0 02
ldx #$06 ; CPU:$8055 PRG:0055 A2 06
; -----------------------------------------------------------------------------
; Routine: ClearRamLoop
; Global: Clears the work RAM one 224 byte page at a time.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ClearRamLoop:
sta (Zp00),y ; CPU:$8057 PRG:0057 91 00
iny ; CPU:$8059 PRG:0059 C8
cpx #$00 ; CPU:$805A PRG:005A E0 00
bne ClearRamPageDone ; CPU:$805C PRG:005C D0 04
cpy #$E0 ; CPU:$805E PRG:005E C0 E0
bcs InitGameVariables ; CPU:$8060 PRG:0060 B0 09
; -----------------------------------------------------------------------------
; Routine: ClearRamPageDone
; Global: Moves on to the next page of the RAM clear.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ClearRamPageDone:
cpy #$00 ; CPU:$8062 PRG:0062 C0 00
bne ClearRamLoop ; CPU:$8064 PRG:0064 D0 F1
inc Zp01 ; CPU:$8066 PRG:0066 E6 01
dex ; CPU:$8068 PRG:0068 CA
bpl ClearRamLoop ; CPU:$8069 PRG:0069 10 EC
; -----------------------------------------------------------------------------
; Routine: InitGameVariables
; Global: Sets the sound, scroll and sprite registers up.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
InitGameVariables:
sta Zp00 ; CPU:$806B PRG:006B 85 00
sta Zp01 ; CPU:$806D PRG:006D 85 01
lda #$00 ; CPU:$806F PRG:006F A9 00
sta APUSTATUS ; CPU:$8071 PRG:0071 8D 15 40
lda #$1E ; CPU:$8074 PRG:0074 A9 1E
sta Zp02 ; CPU:$8076 PRG:0076 85 02
lda #$88 ; CPU:$8078 PRG:0078 A9 88
sta PPUCTRL ; CPU:$807A PRG:007A 8D 00 20
sta Zp01 ; CPU:$807D PRG:007D 85 01
lda #$01 ; CPU:$807F PRG:007F A9 01
sta GameMode ; CPU:$8081 PRG:0081 85 6A
; -----------------------------------------------------------------------------
; Routine: IdleWaitLoop
; Global: The loop the game sits in between two NMI handlers.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
IdleWaitLoop:
inc IdleCounter ; CPU:$8083 PRG:0083 E6 2F
jmp IdleWaitLoop ; CPU:$8085 PRG:0085 4C 83 80
; ---- data $8088-$808E (7 bytes) ----
.byte $08, $09, $0A, $0B, $0C, $0D, $0E ; CPU:$8088 PRG:0088 08 09 0A 0B 0C 0D 0E
; -----------------------------------------------------------------------------
; Routine: NmiHandler
; Global: The frame handler: redraws the screen, reads the pad and runs the game.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
NmiHandler:
lda $03B8 ; CPU:$808F PRG:008F AD B8 03
beq NmiHandler_Loop ; CPU:$8092 PRG:0092 F0 03
jsr StartVramWrite ; CPU:$8094 PRG:0094 20 9D 84
; -----------------------------------------------------------------------------
; Routine: NmiHandler_Loop
; Global: Branch target inside NmiHandler: taken when the loop repeats.
; Local: Part of NmiHandler.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
NmiHandler_Loop:
lda $0300 ; CPU:$8097 PRG:0097 AD 00 03
beq UploadOam ; CPU:$809A PRG:009A F0 0A
ldy #$00 ; CPU:$809C PRG:009C A0 00
ldx #$00 ; CPU:$809E PRG:009E A2 00
jsr UpdateNametable_Loop4 ; CPU:$80A0 PRG:00A0 20 70 82
jmp UploadOam_Loop2 ; CPU:$80A3 PRG:00A3 4C C4 80
; -----------------------------------------------------------------------------
; Routine: UploadOam
; Global: Copies the sprite shadow into the OAM through the DMA register.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UploadOam:
lda #$00 ; CPU:$80A6 PRG:00A6 A9 00
sta OAMADDR ; CPU:$80A8 PRG:00A8 8D 03 20
lda #$02 ; CPU:$80AB PRG:00AB A9 02
sta OAMDMA ; CPU:$80AD PRG:00AD 8D 14 40
lda $0338 ; CPU:$80B0 PRG:00B0 AD 38 03
beq UploadOam_Loop ; CPU:$80B3 PRG:00B3 F0 07
ldx #$00 ; CPU:$80B5 PRG:00B5 A2 00
ldy #$00 ; CPU:$80B7 PRG:00B7 A0 00
jsr Sub_82C8 ; CPU:$80B9 PRG:00B9 20 C8 82
; -----------------------------------------------------------------------------
; Routine: UploadOam_Loop
; Global: Branch target inside UploadOam: taken when the loop repeats.
; Local: Part of UploadOam.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UploadOam_Loop:
lda $01B0 ; CPU:$80BC PRG:00BC AD B0 01
beq UploadOam_Loop2 ; CPU:$80BF PRG:00BF F0 03
jsr UpdateNametable ; CPU:$80C1 PRG:00C1 20 B1 81
; -----------------------------------------------------------------------------
; Routine: UploadOam_Loop2
; Global: Branch target inside UploadOam: taken when Loop2.
; Local: Part of UploadOam.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UploadOam_Loop2:
lda #$08 ; CPU:$80C4 PRG:00C4 A9 08
jsr BankedCall ; CPU:$80C6 PRG:00C6 20 04 80
; ---- data $80C9-$811B (83 bytes) ----
.byte $A5, $01, $29, $7F, $8D, $00, $20, $A5, $03, $8D, $05, $20, $A5, $04, $8D, $05 ; CPU:$80C9 PRG:00C9 A5 01 29 7F 8D 00 20 A5 03 8D 05 20 A5 04 8D 05
.byte $20, $A5, $02, $8D, $01, $20, $20, $3F, $81, $AD, $E5, $05, $F0, $0E, $A5, $31 ; CPU:$80D9 PRG:00D9 20 A5 02 8D 01 20 20 3F 81 AD E5 05 F0 0E A5 31
.byte $29, $3F, $D0, $08, $AD, $E6, $05, $F0, $03, $CE, $E6, $05, $A9, $00, $8D, $00 ; CPU:$80E9 PRG:00E9 29 3F D0 08 AD E6 05 F0 03 CE E6 05 A9 00 8D 00
.byte $03, $85, $36, $A5, $6A, $F0, $06, $20, $DD, $85, $4C, $1F, $81, $20, $88, $81 ; CPU:$80F9 PRG:00F9 03 85 36 A5 6A F0 06 20 DD 85 4C 1F 81 20 88 81
.byte $AD, $E5, $05, $F0, $0E, $A9, $00, $85, $26, $85, $27, $85, $2B, $A5, $2A, $29 ; CPU:$8109 PRG:0109 AD E5 05 F0 0E A9 00 85 26 85 27 85 2B A5 2A 29
.byte $10, $85, $2A ; CPU:$8119 PRG:0119 10 85 2A
; -----------------------------------------------------------------------------
; Routine: RunGameLogic
; Global: Runs the game logic for the current mode.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
RunGameLogic:
jsr UpdateGameState ; CPU:$811C PRG:011C 20 86 97
jsr UpdateActorSprites ; CPU:$811F PRG:011F 20 C3 83
jsr UpdateSprites ; CPU:$8122 PRG:0122 20 E9 82
lda #$02 ; CPU:$8125 PRG:0125 A9 02
jsr BankedCall ; CPU:$8127 PRG:0127 20 04 80
; ---- data $812A-$813E (21 bytes) ----
.byte $AD, $02, $20, $AD, $DE, $03, $D0, $02, $A5, $01, $8D, $00, $20, $A9, $00, $8D ; CPU:$812A PRG:012A AD 02 20 AD DE 03 D0 02 A5 01 8D 00 20 A9 00 8D
.byte $DE, $03, $E6, $31, $40 ; CPU:$813A PRG:013A DE 03 E6 31 40
; -----------------------------------------------------------------------------
; Routine: ReadControllers
; Global: Strobes the controller ports and reads both of them.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ReadControllers:
lda #$01 ; CPU:$813F PRG:013F A9 01
sta JOY1 ; CPU:$8141 PRG:0141 8D 16 40
lsr a ; CPU:$8144 PRG:0144 4A
tax ; CPU:$8145 PRG:0145 AA
sta JOY1 ; CPU:$8146 PRG:0146 8D 16 40
jsr ReadControllerBits ; CPU:$8149 PRG:0149 20 4D 81
inx ; CPU:$814C PRG:014C E8
; -----------------------------------------------------------------------------
; Routine: ReadControllerBits
; Global: Shifts one controller byte into the button bit mask.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ReadControllerBits:
lda #$00 ; CPU:$814D PRG:014D A9 00
sta ControllerBits ; CPU:$814F PRG:014F 85 05
ldy #$08 ; CPU:$8151 PRG:0151 A0 08
; -----------------------------------------------------------------------------
; Routine: ReadControllerBits_OnNonzero
; Global: Branch target inside ReadControllerBits: taken when the tested value is not zero.
; Local: Part of ReadControllerBits.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ReadControllerBits_OnNonzero:
pha ; CPU:$8153 PRG:0153 48
lda JOY1,x ; CPU:$8154 PRG:0154 BD 16 40
sta ControllerByte ; CPU:$8157 PRG:0157 85 07
lsr a ; CPU:$8159 PRG:0159 4A
lsr a ; CPU:$815A PRG:015A 4A
rol ControllerBits ; CPU:$815B PRG:015B 26 05
lsr ControllerByte ; CPU:$815D PRG:015D 46 07
pla ; CPU:$815F PRG:015F 68
rol a ; CPU:$8160 PRG:0160 2A
dey ; CPU:$8161 PRG:0161 88
bne ReadControllerBits_OnNonzero ; CPU:$8162 PRG:0162 D0 EF
ora ControllerBits ; CPU:$8164 PRG:0164 05 05
sta ButtonState1,x ; CPU:$8166 PRG:0166 95 26
eor PrevButton1,x ; CPU:$8168 PRG:0168 55 28
and ButtonState1,x ; CPU:$816A PRG:016A 35 26
sta NewButton1,x ; CPU:$816C PRG:016C 95 2A
lda ButtonState1,x ; CPU:$816E PRG:016E B5 26
sta PrevButton1,x ; CPU:$8170 PRG:0170 95 28
rts ; CPU:$8172 PRG:0172 60
; -----------------------------------------------------------------------------
; Routine: DispatchByJumpTable
; Global: Jumps to the handler whose address follows the call.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DispatchByJumpTable:
asl a ; CPU:$8173 PRG:0173 0A
tay ; CPU:$8174 PRG:0174 A8
pla ; CPU:$8175 PRG:0175 68
sta Zp13 ; CPU:$8176 PRG:0176 85 13
pla ; CPU:$8178 PRG:0178 68
sta Zp14 ; CPU:$8179 PRG:0179 85 14
iny ; CPU:$817B PRG:017B C8
lda (Zp13),y ; CPU:$817C PRG:017C B1 13
sta Zp11 ; CPU:$817E PRG:017E 85 11
iny ; CPU:$8180 PRG:0180 C8
lda (Zp13),y ; CPU:$8181 PRG:0181 B1 13
sta Zp12 ; CPU:$8183 PRG:0183 85 12
jmp ($0011) ; CPU:$8185 PRG:0185 6C 11 00
; -----------------------------------------------------------------------------
; Routine: ClearOamShadow
; Global: Fills the sprite shadow at $0200 with the "empty" value $F8.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ClearOamShadow:
ldy #$00 ; CPU:$8188 PRG:0188 A0 00
lda #$F8 ; CPU:$818A PRG:018A A9 F8
; -----------------------------------------------------------------------------
; Routine: ClearOamShadow_OnNonzero
; Global: Branch target inside ClearOamShadow: taken when the tested value is not zero.
; Local: Part of ClearOamShadow.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ClearOamShadow_OnNonzero:
sta $0200,y ; CPU:$818C PRG:018C 99 00 02
iny ; CPU:$818F PRG:018F C8
iny ; CPU:$8190 PRG:0190 C8
iny ; CPU:$8191 PRG:0191 C8
iny ; CPU:$8192 PRG:0192 C8
bne ClearOamShadow_OnNonzero ; CPU:$8193 PRG:0193 D0 F7
rts ; CPU:$8195 PRG:0195 60
; ---- data $8196-$81B0 (27 bytes) ----
.byte $0A, $0A, $18, $69, $20, $A2, $00, $8D, $06, $20, $8E, $06, $20, $A0, $03, $A9 ; CPU:$8196 PRG:0196 0A 0A 18 69 20 A2 00 8D 06 20 8E 06 20 A0 03 A9
.byte $FF, $8D, $07, $20, $CA, $D0, $FA, $88, $10, $F7, $60 ; CPU:$81A6 PRG:01A6 FF 8D 07 20 CA D0 FA 88 10 F7 60
; -----------------------------------------------------------------------------
; Routine: UpdateNametable
; Global: Rewrites the nametable entries that changed.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateNametable:
ldx #$00 ; CPU:$81B1 PRG:01B1 A2 00
lda $01B0,x ; CPU:$81B3 PRG:01B3 BD B0 01
beq UpdateNametable_Loop3 ; CPU:$81B6 PRG:01B6 F0 5C
; -----------------------------------------------------------------------------
; Routine: UpdateNametable_OnNonzero
; Global: Branch target inside UpdateNametable: taken when the tested value is not zero.
; Local: Part of UpdateNametable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateNametable_OnNonzero:
sta Zp12 ; CPU:$81B8 PRG:01B8 85 12
lda $01B1,x ; CPU:$81BA PRG:01BA BD B1 01
sta Zp11 ; CPU:$81BD PRG:01BD 85 11
lda $01B2,x ; CPU:$81BF PRG:01BF BD B2 01
sta Zp20 ; CPU:$81C2 PRG:01C2 85 20
sta Zp21 ; CPU:$81C4 PRG:01C4 85 21
lda $01B3,x ; CPU:$81C6 PRG:01C6 BD B3 01
sta Zp22 ; CPU:$81C9 PRG:01C9 85 22
lda $01B4,x ; CPU:$81CB PRG:01CB BD B4 01
sta ControllerBits ; CPU:$81CE PRG:01CE 85 05
lda $01B5,x ; CPU:$81D0 PRG:01D0 BD B5 01
sta Zp06 ; CPU:$81D3 PRG:01D3 85 06
ldy #$00 ; CPU:$81D5 PRG:01D5 A0 00
; -----------------------------------------------------------------------------
; Routine: UpdateNametable_OnCarryClear
; Global: Branch target inside UpdateNametable: taken when the addition or subtraction did not carry.
; Local: Part of UpdateNametable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateNametable_OnCarryClear:
lda PPUSTATUS ; CPU:$81D7 PRG:01D7 AD 02 20
lda Zp12 ; CPU:$81DA PRG:01DA A5 12
sta PPUADDR ; CPU:$81DC PRG:01DC 8D 06 20
lda Zp11 ; CPU:$81DF PRG:01DF A5 11
sta PPUADDR ; CPU:$81E1 PRG:01E1 8D 06 20
; -----------------------------------------------------------------------------
; Routine: UpdateNametable_OnNonzero2
; Global: Branch target inside UpdateNametable: taken when OnNonzero2.
; Local: Part of UpdateNametable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateNametable_OnNonzero2:
lda (ControllerBits),y ; CPU:$81E4 PRG:01E4 B1 05
sta PPUDATA ; CPU:$81E6 PRG:01E6 8D 07 20
iny ; CPU:$81E9 PRG:01E9 C8
dec Zp20 ; CPU:$81EA PRG:01EA C6 20
bne UpdateNametable_OnNonzero2 ; CPU:$81EC PRG:01EC D0 F6
dec Zp22 ; CPU:$81EE PRG:01EE C6 22
beq UpdateNametable_Loop ; CPU:$81F0 PRG:01F0 F0 12
lda Zp21 ; CPU:$81F2 PRG:01F2 A5 21
sta Zp20 ; CPU:$81F4 PRG:01F4 85 20
lda Zp11 ; CPU:$81F6 PRG:01F6 A5 11
clc ; CPU:$81F8 PRG:01F8 18
adc #$20 ; CPU:$81F9 PRG:01F9 69 20
sta Zp11 ; CPU:$81FB PRG:01FB 85 11
bcc UpdateNametable_OnCarryClear ; CPU:$81FD PRG:01FD 90 D8
inc Zp12 ; CPU:$81FF PRG:01FF E6 12
jmp UpdateNametable_OnCarryClear ; CPU:$8201 PRG:0201 4C D7 81
; -----------------------------------------------------------------------------
; Routine: UpdateNametable_Loop
; Global: Branch target inside UpdateNametable: taken when the loop repeats.
; Local: Part of UpdateNametable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateNametable_Loop:
cpx #$06 ; CPU:$8204 PRG:0204 E0 06
bcs UpdateNametable_Loop2 ; CPU:$8206 PRG:0206 B0 07
ldx #$06 ; CPU:$8208 PRG:0208 A2 06
lda $01B0,x ; CPU:$820A PRG:020A BD B0 01
bne UpdateNametable_OnNonzero ; CPU:$820D PRG:020D D0 A9
; -----------------------------------------------------------------------------
; Routine: UpdateNametable_Loop2
; Global: Branch target inside UpdateNametable: taken when Loop2.
; Local: Part of UpdateNametable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateNametable_Loop2:
lda #$00 ; CPU:$820F PRG:020F A9 00
sta $01B0 ; CPU:$8211 PRG:0211 8D B0 01
; -----------------------------------------------------------------------------
; Routine: UpdateNametable_Loop3
; Global: Branch target inside UpdateNametable: taken when Loop3.
; Local: Part of UpdateNametable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateNametable_Loop3:
rts ; CPU:$8214 PRG:0214 60
; -----------------------------------------------------------------------------
; Routine: UpdateNametable_OnNonzero3
; Global: Branch target inside UpdateNametable: taken when OnNonzero3.
; Local: Part of UpdateNametable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateNametable_OnNonzero3:
sta Zp11 ; CPU:$8215 PRG:0215 85 11
lda $0301,x ; CPU:$8217 PRG:0217 BD 01 03
sta Zp12 ; CPU:$821A PRG:021A 85 12
lda $0302,x ; CPU:$821C PRG:021C BD 02 03
sta Zp13 ; CPU:$821F PRG:021F 85 13
lda $0303,x ; CPU:$8221 PRG:0221 BD 03 03
sta Zp14 ; CPU:$8224 PRG:0224 85 14
inx ; CPU:$8226 PRG:0226 E8
inx ; CPU:$8227 PRG:0227 E8
inx ; CPU:$8228 PRG:0228 E8
inx ; CPU:$8229 PRG:0229 E8
lda Zp12 ; CPU:$822A PRG:022A A5 12
cmp #$24 ; CPU:$822C PRG:022C C9 24
beq UpdateNametable_Loop4 ; CPU:$822E PRG:022E F0 40
ldy #$02 ; CPU:$8230 PRG:0230 A0 02
lda PPUSTATUS ; CPU:$8232 PRG:0232 AD 02 20
lda Zp12 ; CPU:$8235 PRG:0235 A5 12
sta PPUADDR ; CPU:$8237 PRG:0237 8D 06 20
lda Zp11 ; CPU:$823A PRG:023A A5 11
sta PPUADDR ; CPU:$823C PRG:023C 8D 06 20
lda (Zp13),y ; CPU:$823F PRG:023F B1 13
sta PPUDATA ; CPU:$8241 PRG:0241 8D 07 20
iny ; CPU:$8244 PRG:0244 C8
lda (Zp13),y ; CPU:$8245 PRG:0245 B1 13
sta PPUDATA ; CPU:$8247 PRG:0247 8D 07 20
iny ; CPU:$824A PRG:024A C8
lda #$20 ; CPU:$824B PRG:024B A9 20
clc ; CPU:$824D PRG:024D 18
adc Zp11 ; CPU:$824E PRG:024E 65 11
sta Zp11 ; CPU:$8250 PRG:0250 85 11
lda Zp12 ; CPU:$8252 PRG:0252 A5 12
adc #$00 ; CPU:$8254 PRG:0254 69 00
sta Zp12 ; CPU:$8256 PRG:0256 85 12
lda PPUSTATUS ; CPU:$8258 PRG:0258 AD 02 20
lda Zp12 ; CPU:$825B PRG:025B A5 12
sta PPUADDR ; CPU:$825D PRG:025D 8D 06 20
lda Zp11 ; CPU:$8260 PRG:0260 A5 11
sta PPUADDR ; CPU:$8262 PRG:0262 8D 06 20
lda (Zp13),y ; CPU:$8265 PRG:0265 B1 13
sta PPUDATA ; CPU:$8267 PRG:0267 8D 07 20
iny ; CPU:$826A PRG:026A C8
lda (Zp13),y ; CPU:$826B PRG:026B B1 13
sta PPUDATA ; CPU:$826D PRG:026D 8D 07 20
; -----------------------------------------------------------------------------
; Routine: UpdateNametable_Loop4
; Global: Branch target inside UpdateNametable: taken when Loop4.
; Local: Part of UpdateNametable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateNametable_Loop4:
lda $0300,x ; CPU:$8270 PRG:0270 BD 00 03
bne UpdateNametable_OnNonzero3 ; CPU:$8273 PRG:0273 D0 A0
rts ; CPU:$8275 PRG:0275 60
; -----------------------------------------------------------------------------
; Routine: UpdateNametable_OnNonzero4
; Global: Branch target inside UpdateNametable: taken when OnNonzero4.
; Local: Part of UpdateNametable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateNametable_OnNonzero4:
sta Zp11 ; CPU:$8276 PRG:0276 85 11
lda $0339,x ; CPU:$8278 PRG:0278 BD 39 03
sta Zp12 ; CPU:$827B PRG:027B 85 12
lda $033A,x ; CPU:$827D PRG:027D BD 3A 03
sta Zp13 ; CPU:$8280 PRG:0280 85 13
lda $033B,x ; CPU:$8282 PRG:0282 BD 3B 03
sta Zp14 ; CPU:$8285 PRG:0285 85 14
txa ; CPU:$8287 PRG:0287 8A
clc ; CPU:$8288 PRG:0288 18
adc #$04 ; CPU:$8289 PRG:0289 69 04
sta Zp22 ; CPU:$828B PRG:028B 85 22
ldy #$00 ; CPU:$828D PRG:028D A0 00
lda (Zp13),y ; CPU:$828F PRG:028F B1 13
sta Zp21 ; CPU:$8291 PRG:0291 85 21
sta Zp1F ; CPU:$8293 PRG:0293 85 1F
iny ; CPU:$8295 PRG:0295 C8
lda (Zp13),y ; CPU:$8296 PRG:0296 B1 13
sta Zp25 ; CPU:$8298 PRG:0298 85 25
; -----------------------------------------------------------------------------
; Routine: UpdateNametable_OnNonzero5
; Global: Branch target inside UpdateNametable: taken when OnNonzero5.
; Local: Part of UpdateNametable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateNametable_OnNonzero5:
ldx PPUSTATUS ; CPU:$829A PRG:029A AE 02 20
lda Zp12 ; CPU:$829D PRG:029D A5 12
sta PPUADDR ; CPU:$829F PRG:029F 8D 06 20
lda Zp11 ; CPU:$82A2 PRG:02A2 A5 11
sta PPUADDR ; CPU:$82A4 PRG:02A4 8D 06 20
; -----------------------------------------------------------------------------
; Routine: UpdateNametable_OnNonzero6
; Global: Branch target inside UpdateNametable: taken when OnNonzero6.
; Local: Part of UpdateNametable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateNametable_OnNonzero6:
iny ; CPU:$82A7 PRG:02A7 C8
lda (Zp13),y ; CPU:$82A8 PRG:02A8 B1 13
sta PPUDATA ; CPU:$82AA PRG:02AA 8D 07 20
dec Zp1F ; CPU:$82AD PRG:02AD C6 1F
bne UpdateNametable_OnNonzero6 ; CPU:$82AF PRG:02AF D0 F6
lda #$20 ; CPU:$82B1 PRG:02B1 A9 20
clc ; CPU:$82B3 PRG:02B3 18
adc Zp11 ; CPU:$82B4 PRG:02B4 65 11
sta Zp11 ; CPU:$82B6 PRG:02B6 85 11
lda Zp12 ; CPU:$82B8 PRG:02B8 A5 12
adc #$00 ; CPU:$82BA PRG:02BA 69 00
sta Zp12 ; CPU:$82BC PRG:02BC 85 12
lda Zp21 ; CPU:$82BE PRG:02BE A5 21
sta Zp1F ; CPU:$82C0 PRG:02C0 85 1F
dec Zp25 ; CPU:$82C2 PRG:02C2 C6 25
bne UpdateNametable_OnNonzero5 ; CPU:$82C4 PRG:02C4 D0 D4
ldx Zp22 ; CPU:$82C6 PRG:02C6 A6 22
; -----------------------------------------------------------------------------
; Routine: Sub_82C8
; Global: Branch target inside Sub: taken when 82C8.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_82C8:
lda $0338,x ; CPU:$82C8 PRG:02C8 BD 38 03
bne UpdateNametable_OnNonzero4 ; CPU:$82CB PRG:02CB D0 A9
lda #$00 ; CPU:$82CD PRG:02CD A9 00
sta Zp37 ; CPU:$82CF PRG:02CF 85 37
sta $0338 ; CPU:$82D1 PRG:02D1 8D 38 03
rts ; CPU:$82D4 PRG:02D4 60
; ---- data $82D5-$82E8 (20 bytes) ----
.byte $A9, $00, $A2, $08, $46, $13, $90, $03, $18, $65, $15, $4A, $66, $17, $CA, $D0 ; CPU:$82D5 PRG:02D5 A9 00 A2 08 46 13 90 03 18 65 15 4A 66 17 CA D0
.byte $F3, $85, $18, $60 ; CPU:$82E5 PRG:02E5 F3 85 18 60
; -----------------------------------------------------------------------------
; Routine: UpdateSprites
; Global: Walks the sixteen sprite slots and redraws the active ones.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSprites:
ldx #$00 ; CPU:$82E9 PRG:02E9 A2 00
stx Zp1F ; CPU:$82EB PRG:02EB 86 1F
lda FrameCounter ; CPU:$82ED PRG:02ED A5 31
and #$01 ; CPU:$82EF PRG:02EF 29 01
bne UpdateSprites_Loop ; CPU:$82F1 PRG:02F1 D0 04
lda #$63 ; CPU:$82F3 PRG:02F3 A9 63
bne UpdateSprites_Loop2 ; CPU:$82F5 PRG:02F5 D0 02
; -----------------------------------------------------------------------------
; Routine: UpdateSprites_Loop
; Global: Branch target inside UpdateSprites: taken when the loop repeats.
; Local: Part of UpdateSprites.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSprites_Loop:
lda #$01 ; CPU:$82F7 PRG:02F7 A9 01
; -----------------------------------------------------------------------------
; Routine: UpdateSprites_Loop2
; Global: Branch target inside UpdateSprites: taken when Loop2.
; Local: Part of UpdateSprites.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSprites_Loop2:
sta Zp1E ; CPU:$82F9 PRG:02F9 85 1E
; -----------------------------------------------------------------------------
; Routine: UpdateSprites_OnCarryClear
; Global: Branch target inside UpdateSprites: taken when the addition or subtraction did not carry.
; Local: Part of UpdateSprites.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSprites_OnCarryClear:
lda $0358,x ; CPU:$82FB PRG:02FB BD 58 03
beq UpdateSprites_Loop3 ; CPU:$82FE PRG:02FE F0 03
jsr Sub_830C ; CPU:$8300 PRG:0300 20 0C 83
; -----------------------------------------------------------------------------
; Routine: UpdateSprites_Loop3
; Global: Branch target inside UpdateSprites: taken when Loop3.
; Local: Part of UpdateSprites.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSprites_Loop3:
inc Zp1F ; CPU:$8303 PRG:0303 E6 1F
ldx Zp1F ; CPU:$8305 PRG:0305 A6 1F
cpx #$10 ; CPU:$8307 PRG:0307 E0 10
bcc UpdateSprites_OnCarryClear ; CPU:$8309 PRG:0309 90 F0
rts ; CPU:$830B PRG:030B 60
; -----------------------------------------------------------------------------
; Routine: Sub_830C
; Global: Branch target inside Sub: taken when 830C.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_830C:
lda $03A8,x ; CPU:$830C PRG:030C BD A8 03
sta Zp30 ; CPU:$830F PRG:030F 85 30
lda Zp1F ; CPU:$8311 PRG:0311 A5 1F
tay ; CPU:$8313 PRG:0313 A8
asl a ; CPU:$8314 PRG:0314 0A
tax ; CPU:$8315 PRG:0315 AA
lda $0368,x ; CPU:$8316 PRG:0316 BD 68 03
sta Zp11 ; CPU:$8319 PRG:0319 85 11
lda $0369,x ; CPU:$831B PRG:031B BD 69 03
sta Zp12 ; CPU:$831E PRG:031E 85 12
lda $0388,y ; CPU:$8320 PRG:0320 B9 88 03
sta ControllerBits ; CPU:$8323 PRG:0323 85 05
sta Zp09 ; CPU:$8325 PRG:0325 85 09
lda $0398,y ; CPU:$8327 PRG:0327 B9 98 03
sta ControllerByte ; CPU:$832A PRG:032A 85 07
ldy #$00 ; CPU:$832C PRG:032C A0 00
lda (Zp11),y ; CPU:$832E PRG:032E B1 11
sta Zp13 ; CPU:$8330 PRG:0330 85 13
iny ; CPU:$8332 PRG:0332 C8
lda (Zp11),y ; CPU:$8333 PRG:0333 B1 11
sta Zp14 ; CPU:$8335 PRG:0335 85 14
ldy #$00 ; CPU:$8337 PRG:0337 A0 00
lda (Zp13),y ; CPU:$8339 PRG:0339 B1 13
sta Zp1B ; CPU:$833B PRG:033B 85 1B
sta Zp1C ; CPU:$833D PRG:033D 85 1C
iny ; CPU:$833F PRG:033F C8
lda (Zp13),y ; CPU:$8340 PRG:0340 B1 13
sta Zp1D ; CPU:$8342 PRG:0342 85 1D
iny ; CPU:$8344 PRG:0344 C8
sty Zp20 ; CPU:$8345 PRG:0345 84 20
sty Zp22 ; CPU:$8347 PRG:0347 84 22
; -----------------------------------------------------------------------------
; Routine: UpdateSprites_OnNonzero
; Global: Branch target inside UpdateSprites: taken when the tested value is not zero.
; Local: Part of UpdateSprites.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSprites_OnNonzero:
lda Zp1E ; CPU:$8349 PRG:0349 A5 1E
asl a ; CPU:$834B PRG:034B 0A
asl a ; CPU:$834C PRG:034C 0A
tax ; CPU:$834D PRG:034D AA
lda ControllerByte ; CPU:$834E PRG:034E A5 07
sta $0200,x ; CPU:$8350 PRG:0350 9D 00 02
lda Zp09 ; CPU:$8353 PRG:0353 A5 09
sta $0203,x ; CPU:$8355 PRG:0355 9D 03 02
lda Zp30 ; CPU:$8358 PRG:0358 A5 30
sta $0202,x ; CPU:$835A PRG:035A 9D 02 02
lda Zp30 ; CPU:$835D PRG:035D A5 30
and #$40 ; CPU:$835F PRG:035F 29 40
beq UpdateSprites_Loop5 ; CPU:$8361 PRG:0361 F0 18
lda Zp20 ; CPU:$8363 PRG:0363 A5 20
clc ; CPU:$8365 PRG:0365 18
adc Zp1C ; CPU:$8366 PRG:0366 65 1C
tay ; CPU:$8368 PRG:0368 A8
dey ; CPU:$8369 PRG:0369 88
lda (Zp13),y ; CPU:$836A PRG:036A B1 13
sta $0201,x ; CPU:$836C PRG:036C 9D 01 02
cmp #$FF ; CPU:$836F PRG:036F C9 FF
bne UpdateSprites_Loop4 ; CPU:$8371 PRG:0371 D0 05
lda #$F8 ; CPU:$8373 PRG:0373 A9 F8
sta $0200,x ; CPU:$8375 PRG:0375 9D 00 02
; -----------------------------------------------------------------------------
; Routine: UpdateSprites_Loop4
; Global: Branch target inside UpdateSprites: taken when Loop4.
; Local: Part of UpdateSprites.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSprites_Loop4:
jmp Sub_838D ; CPU:$8378 PRG:0378 4C 8D 83
; -----------------------------------------------------------------------------
; Routine: UpdateSprites_Loop5
; Global: Branch target inside UpdateSprites: taken when Loop5.
; Local: Part of UpdateSprites.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSprites_Loop5:
ldy Zp22 ; CPU:$837B PRG:037B A4 22
lda (Zp13),y ; CPU:$837D PRG:037D B1 13
sta $0201,x ; CPU:$837F PRG:037F 9D 01 02
cmp #$FF ; CPU:$8382 PRG:0382 C9 FF
bne UpdateSprites_Loop6 ; CPU:$8384 PRG:0384 D0 05
lda #$F8 ; CPU:$8386 PRG:0386 A9 F8
sta $0200,x ; CPU:$8388 PRG:0388 9D 00 02
; -----------------------------------------------------------------------------
; Routine: UpdateSprites_Loop6
; Global: Branch target inside UpdateSprites: taken when Loop6.
; Local: Part of UpdateSprites.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSprites_Loop6:
inc Zp22 ; CPU:$838B PRG:038B E6 22
; -----------------------------------------------------------------------------
; Routine: Sub_838D
; Global: Branch target inside Sub: taken when 838D.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_838D:
lda Zp09 ; CPU:$838D PRG:038D A5 09
clc ; CPU:$838F PRG:038F 18
adc #$08 ; CPU:$8390 PRG:0390 69 08
sta Zp09 ; CPU:$8392 PRG:0392 85 09
lda FrameCounter ; CPU:$8394 PRG:0394 A5 31
and #$01 ; CPU:$8396 PRG:0396 29 01
bne UpdateSprites_Loop7 ; CPU:$8398 PRG:0398 D0 05
dec Zp1E ; CPU:$839A PRG:039A C6 1E
jmp Sub_83A1 ; CPU:$839C PRG:039C 4C A1 83
; -----------------------------------------------------------------------------
; Routine: UpdateSprites_Loop7
; Global: Branch target inside UpdateSprites: taken when Loop7.
; Local: Part of UpdateSprites.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSprites_Loop7:
inc Zp1E ; CPU:$839F PRG:039F E6 1E
; -----------------------------------------------------------------------------
; Routine: Sub_83A1
; Global: Branch target inside Sub: taken when 83A1.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_83A1:
dec Zp1C ; CPU:$83A1 PRG:03A1 C6 1C
bne UpdateSprites_OnNonzero ; CPU:$83A3 PRG:03A3 D0 A4
dec Zp1D ; CPU:$83A5 PRG:03A5 C6 1D
beq UpdateSprites_Loop8 ; CPU:$83A7 PRG:03A7 F0 19
lda Zp1B ; CPU:$83A9 PRG:03A9 A5 1B
sta Zp1C ; CPU:$83AB PRG:03AB 85 1C
clc ; CPU:$83AD PRG:03AD 18
adc Zp20 ; CPU:$83AE PRG:03AE 65 20
sta Zp20 ; CPU:$83B0 PRG:03B0 85 20
sta Zp22 ; CPU:$83B2 PRG:03B2 85 22
lda ControllerByte ; CPU:$83B4 PRG:03B4 A5 07
clc ; CPU:$83B6 PRG:03B6 18
adc #$08 ; CPU:$83B7 PRG:03B7 69 08
sta ControllerByte ; CPU:$83B9 PRG:03B9 85 07
lda ControllerBits ; CPU:$83BB PRG:03BB A5 05
sta Zp09 ; CPU:$83BD PRG:03BD 85 09
jmp UpdateSprites_OnNonzero ; CPU:$83BF PRG:03BF 4C 49 83
; -----------------------------------------------------------------------------
; Routine: UpdateSprites_Loop8
; Global: Branch target inside UpdateSprites: taken when Loop8.
; Local: Part of UpdateSprites.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSprites_Loop8:
rts ; CPU:$83C2 PRG:03C2 60
; -----------------------------------------------------------------------------
; Routine: UpdateActorSprites
; Global: Walks the actor slots and redraws their sprites.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateActorSprites:
ldx #$00 ; CPU:$83C3 PRG:03C3 A2 00
stx Zp1B ; CPU:$83C5 PRG:03C5 86 1B
; -----------------------------------------------------------------------------
; Routine: UpdateActorSprites_OnCarryClear
; Global: Branch target inside UpdateActorSprites: taken when the addition or subtraction did not carry.
; Local: Part of UpdateActorSprites.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateActorSprites_OnCarryClear:
lda $0358,x ; CPU:$83C7 PRG:03C7 BD 58 03
beq UpdateActorSprites_Loop ; CPU:$83CA PRG:03CA F0 03
jsr Sub_840C ; CPU:$83CC PRG:03CC 20 0C 84
; -----------------------------------------------------------------------------
; Routine: UpdateActorSprites_Loop
; Global: Branch target inside UpdateActorSprites: taken when the loop repeats.
; Local: Part of UpdateActorSprites.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateActorSprites_Loop:
inc Zp1B ; CPU:$83CF PRG:03CF E6 1B
ldx Zp1B ; CPU:$83D1 PRG:03D1 A6 1B
cpx #$10 ; CPU:$83D3 PRG:03D3 E0 10
bcc UpdateActorSprites_OnCarryClear ; CPU:$83D5 PRG:03D5 90 F0
rts ; CPU:$83D7 PRG:03D7 60
; ---- data $83D8-$840A (51 bytes) ----
.byte $A5, $31, $29, $3F, $D0, $2D, $BD, $68, $03, $85, $11, $BD, $69, $03, $85, $12 ; CPU:$83D8 PRG:03D8 A5 31 29 3F D0 2D BD 68 03 85 11 BD 69 03 85 12
.byte $A0, $02, $B1, $11, $C9, $FF, $D0, $09, $C8, $B1, $11, $C8, $C9, $FF, $D0, $01 ; CPU:$83E8 PRG:03E8 A0 02 B1 11 C9 FF D0 09 C8 B1 11 C8 C9 FF D0 01
.byte $60, $A5, $1B, $0A, $AA, $BD, $68, $03, $18, $69, $02, $9D, $68, $03, $90, $03 ; CPU:$83F8 PRG:03F8 60 A5 1B 0A AA BD 68 03 18 69 02 9D 68 03 90 03
.byte $FE, $69, $03 ; CPU:$8408 PRG:0408 FE 69 03
; -----------------------------------------------------------------------------
; Routine: UpdateActorSprites_OnNonzero
; Global: Branch target inside UpdateActorSprites: taken when the tested value is not zero.
; Local: Part of UpdateActorSprites.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateActorSprites_OnNonzero:
rts ; CPU:$840B PRG:040B 60
; -----------------------------------------------------------------------------
; Routine: Sub_840C
; Global: Branch target inside Sub: taken when 840C.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_840C:
lda FrameCounter ; CPU:$840C PRG:040C A5 31
and #$0F ; CPU:$840E PRG:040E 29 0F
bne UpdateActorSprites_OnNonzero ; CPU:$8410 PRG:0410 D0 F9
lda Zp1B ; CPU:$8412 PRG:0412 A5 1B
asl a ; CPU:$8414 PRG:0414 0A
tax ; CPU:$8415 PRG:0415 AA
lda $0368,x ; CPU:$8416 PRG:0416 BD 68 03
clc ; CPU:$8419 PRG:0419 18
adc #$02 ; CPU:$841A PRG:041A 69 02
sta $0368,x ; CPU:$841C PRG:041C 9D 68 03
bcc UpdateActorSprites_Loop2 ; CPU:$841F PRG:041F 90 03
inc $0369,x ; CPU:$8421 PRG:0421 FE 69 03
; -----------------------------------------------------------------------------
; Routine: UpdateActorSprites_Loop2
; Global: Branch target inside UpdateActorSprites: taken when Loop2.
; Local: Part of UpdateActorSprites.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateActorSprites_Loop2:
lda $0368,x ; CPU:$8424 PRG:0424 BD 68 03
sta Zp11 ; CPU:$8427 PRG:0427 85 11
lda $0369,x ; CPU:$8429 PRG:0429 BD 69 03
sta Zp12 ; CPU:$842C PRG:042C 85 12
ldy #$00 ; CPU:$842E PRG:042E A0 00
lda (Zp11),y ; CPU:$8430 PRG:0430 B1 11
cmp #$FF ; CPU:$8432 PRG:0432 C9 FF
bne UpdateActorSprites_Loop3 ; CPU:$8434 PRG:0434 D0 1B
iny ; CPU:$8436 PRG:0436 C8
lda (Zp11),y ; CPU:$8437 PRG:0437 B1 11
iny ; CPU:$8439 PRG:0439 C8
cmp #$FF ; CPU:$843A PRG:043A C9 FF
bne UpdateActorSprites_Loop3 ; CPU:$843C PRG:043C D0 13
ldy Zp1B ; CPU:$843E PRG:043E A4 1B
lda $0358,y ; CPU:$8440 PRG:0440 B9 58 03
asl a ; CPU:$8443 PRG:0443 0A
tay ; CPU:$8444 PRG:0444 A8
lda $F216,y ; CPU:$8445 PRG:0445 B9 16 F2
sta $0368,x ; CPU:$8448 PRG:0448 9D 68 03
lda $F217,y ; CPU:$844B PRG:044B B9 17 F2
sta $0369,x ; CPU:$844E PRG:044E 9D 69 03
; -----------------------------------------------------------------------------
; Routine: UpdateActorSprites_Loop3
; Global: Branch target inside UpdateActorSprites: taken when Loop3.
; Local: Part of UpdateActorSprites.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateActorSprites_Loop3:
rts ; CPU:$8451 PRG:0451 60
; ---- data $8452-$848B (58 bytes) ----
.byte $A2, $00, $BD, $58, $03, $F0, $06, $E8, $E0, $10, $90, $F6, $60, $A4, $11, $B9 ; CPU:$8452 PRG:0452 A2 00 BD 58 03 F0 06 E8 E0 10 90 F6 60 A4 11 B9
.byte $06, $F2, $9D, $A8, $03, $A5, $11, $9D, $58, $03, $86, $1B, $0A, $A8, $B9, $36 ; CPU:$8462 PRG:0462 06 F2 9D A8 03 A5 11 9D 58 03 86 1B 0A A8 B9 36
.byte $F2, $9D, $88, $03, $B9, $37, $F2, $9D, $98, $03, $8A, $0A, $AA, $B9, $16, $F2 ; CPU:$8472 PRG:0472 F2 9D 88 03 B9 37 F2 9D 98 03 8A 0A AA B9 16 F2
.byte $9D, $68, $03, $B9, $17, $F2, $9D, $69, $03, $60 ; CPU:$8482 PRG:0482 9D 68 03 B9 17 F2 9D 69 03 60
; -----------------------------------------------------------------------------
; Routine: Sub_848C
; Global: Branch target inside Sub: taken when 848C.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_848C:
lda #$40 ; CPU:$848C PRG:048C A9 40
sta Zp1F ; CPU:$848E PRG:048E 85 1F
ldy #$00 ; CPU:$8490 PRG:0490 A0 00
; -----------------------------------------------------------------------------
; Routine: UpdateActorSprites_OnNonzero2
; Global: Branch target inside UpdateActorSprites: taken when OnNonzero2.
; Local: Part of UpdateActorSprites.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateActorSprites_OnNonzero2:
lda (Zp11),y ; CPU:$8492 PRG:0492 B1 11
sta $04E2,y ; CPU:$8494 PRG:0494 99 E2 04
iny ; CPU:$8497 PRG:0497 C8
dec Zp1F ; CPU:$8498 PRG:0498 C6 1F
bne UpdateActorSprites_OnNonzero2 ; CPU:$849A PRG:049A D0 F6
rts ; CPU:$849C PRG:049C 60
; -----------------------------------------------------------------------------
; Routine: StartVramWrite
; Global: Sets the PPU address for the next VRAM write.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
StartVramWrite:
ldy PPUSTATUS ; CPU:$849D PRG:049D AC 02 20
ldy #$23 ; CPU:$84A0 PRG:04A0 A0 23
ldx #$00 ; CPU:$84A2 PRG:04A2 A2 00
; -----------------------------------------------------------------------------
; Routine: WriteVramTiles
; Global: Writes the tile data to VRAM.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
WriteVramTiles:
sty PPUADDR ; CPU:$84A4 PRG:04A4 8C 06 20
sta PPUADDR ; CPU:$84A7 PRG:04A7 8D 06 20
inx ; CPU:$84AA PRG:04AA E8
lda $03B8,x ; CPU:$84AB PRG:04AB BD B8 03
sta PPUDATA ; CPU:$84AE PRG:04AE 8D 07 20
inx ; CPU:$84B1 PRG:04B1 E8
lda $03B8,x ; CPU:$84B2 PRG:04B2 BD B8 03
bne WriteVramTiles ; CPU:$84B5 PRG:04B5 D0 ED
lda #$00 ; CPU:$84B7 PRG:04B7 A9 00
sta $03B8 ; CPU:$84B9 PRG:04B9 8D B8 03
sta Zp38 ; CPU:$84BC PRG:04BC 85 38
rts ; CPU:$84BE PRG:04BE 60
; -----------------------------------------------------------------------------
; Routine: Sub_84BF
; Global: Branch target inside Sub: taken when 84BF.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_84BF:
sta Zp20 ; CPU:$84BF PRG:04BF 85 20
asl a ; CPU:$84C1 PRG:04C1 0A
tax ; CPU:$84C2 PRG:04C2 AA
lda $F72B,x ; CPU:$84C3 PRG:04C3 BD 2B F7
sta Zp19 ; CPU:$84C6 PRG:04C6 85 19
lda $F72C,x ; CPU:$84C8 PRG:04C8 BD 2C F7
sta Zp1A ; CPU:$84CB PRG:04CB 85 1A
lda Zp6F ; CPU:$84CD PRG:04CD A5 6F
bne WriteVramTiles_Loop ; CPU:$84CF PRG:04CF D0 01
rts ; CPU:$84D1 PRG:04D1 60
; -----------------------------------------------------------------------------
; Routine: WriteVramTiles_Loop
; Global: Branch target inside WriteVramTiles: taken when the loop repeats.
; Local: Part of WriteVramTiles.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
WriteVramTiles_Loop:
lda Zp34 ; CPU:$84D2 PRG:04D2 A5 34
bne WriteVramTiles_Loop2 ; CPU:$84D4 PRG:04D4 D0 05
dec Zp19 ; CPU:$84D6 PRG:04D6 C6 19
dec Zp19 ; CPU:$84D8 PRG:04D8 C6 19
rts ; CPU:$84DA PRG:04DA 60
; -----------------------------------------------------------------------------
; Routine: WriteVramTiles_Loop2
; Global: Branch target inside WriteVramTiles: taken when Loop2.
; Local: Part of WriteVramTiles.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
WriteVramTiles_Loop2:
lda Zp19 ; CPU:$84DB PRG:04DB A5 19
clc ; CPU:$84DD PRG:04DD 18
adc #$0E ; CPU:$84DE PRG:04DE 69 0E
sta Zp19 ; CPU:$84E0 PRG:04E0 85 19
rts ; CPU:$84E2 PRG:04E2 60
; -----------------------------------------------------------------------------
; Routine: Sub_84E3
; Global: Branch target inside Sub: taken when 84E3.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_84E3:
lda Zp19 ; CPU:$84E3 PRG:04E3 A5 19
asl a ; CPU:$84E5 PRG:04E5 0A
lda Zp1A ; CPU:$84E6 PRG:04E6 A5 1A
rol a ; CPU:$84E8 PRG:04E8 2A
rol a ; CPU:$84E9 PRG:04E9 2A
rol a ; CPU:$84EA PRG:04EA 2A
rol a ; CPU:$84EB PRG:04EB 2A
and #$38 ; CPU:$84EC PRG:04EC 29 38
sta Zp20 ; CPU:$84EE PRG:04EE 85 20
lda Zp19 ; CPU:$84F0 PRG:04F0 A5 19
ror a ; CPU:$84F2 PRG:04F2 6A
ror a ; CPU:$84F3 PRG:04F3 6A
and #$07 ; CPU:$84F4 PRG:04F4 29 07
ora Zp20 ; CPU:$84F6 PRG:04F6 05 20
tay ; CPU:$84F8 PRG:04F8 A8
clc ; CPU:$84F9 PRG:04F9 18
adc #$C0 ; CPU:$84FA PRG:04FA 69 C0
ldx Zp38 ; CPU:$84FC PRG:04FC A6 38
sta $03B8,x ; CPU:$84FE PRG:04FE 9D B8 03
inc Zp38 ; CPU:$8501 PRG:0501 E6 38
lda Zp19 ; CPU:$8503 PRG:0503 A5 19
and #$42 ; CPU:$8505 PRG:0505 29 42
ror a ; CPU:$8507 PRG:0507 6A
ror a ; CPU:$8508 PRG:0508 6A
ror a ; CPU:$8509 PRG:0509 6A
ror a ; CPU:$850A PRG:050A 6A
ror a ; CPU:$850B PRG:050B 6A
sta Zp20 ; CPU:$850C PRG:050C 85 20
lda Zp19 ; CPU:$850E PRG:050E A5 19
ror a ; CPU:$8510 PRG:0510 6A
and #$01 ; CPU:$8511 PRG:0511 29 01
ora Zp20 ; CPU:$8513 PRG:0513 05 20
and #$03 ; CPU:$8515 PRG:0515 29 03
tax ; CPU:$8517 PRG:0517 AA
lda Zp1B ; CPU:$8518 PRG:0518 A5 1B
cmp #$03 ; CPU:$851A PRG:051A C9 03
bcc WriteVramTiles_Loop3 ; CPU:$851C PRG:051C 90 16
lda $04E2,y ; CPU:$851E PRG:051E B9 E2 04
ora $854E,x ; CPU:$8521 PRG:0521 1D 4E 85
sta $04E2,y ; CPU:$8524 PRG:0524 99 E2 04
ldx Zp38 ; CPU:$8527 PRG:0527 A6 38
sta $03B8,x ; CPU:$8529 PRG:0529 9D B8 03
lda #$00 ; CPU:$852C PRG:052C A9 00
sta $03B9,x ; CPU:$852E PRG:052E 9D B9 03
inc Zp38 ; CPU:$8531 PRG:0531 E6 38
rts ; CPU:$8533 PRG:0533 60
; -----------------------------------------------------------------------------
; Routine: WriteVramTiles_Loop3
; Global: Branch target inside WriteVramTiles: taken when Loop3.
; Local: Part of WriteVramTiles.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
WriteVramTiles_Loop3:
lda $04E2,y ; CPU:$8534 PRG:0534 B9 E2 04
and $854A,x ; CPU:$8537 PRG:0537 3D 4A 85
sta $04E2,y ; CPU:$853A PRG:053A 99 E2 04
ldx Zp38 ; CPU:$853D PRG:053D A6 38
sta $03B8,x ; CPU:$853F PRG:053F 9D B8 03
lda #$00 ; CPU:$8542 PRG:0542 A9 00
sta $03B9,x ; CPU:$8544 PRG:0544 9D B9 03
inc Zp38 ; CPU:$8547 PRG:0547 E6 38
rts ; CPU:$8549 PRG:0549 60
; ---- data $854A-$8551 (8 bytes) ----
; referenced by `ora $854E,x` at $8521 (operand $854E falls inside this region)
; referenced by `and $854A,x` at $8537 (operand $854A falls inside this region)
.byte $FC, $F3, $CF, $3F, $03, $0C, $30, $C0 ; CPU:$854A PRG:054A FC F3 CF 3F 03 0C 30 C0
; -----------------------------------------------------------------------------
; Routine: Sub_8552
; Global: Branch target inside Sub: taken when 8552.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_8552:
lda FrameCounter ; CPU:$8552 PRG:0552 A5 31
adc IdleCounter ; CPU:$8554 PRG:0554 65 2F
adc Zp3D ; CPU:$8556 PRG:0556 65 3D
and #$3F ; CPU:$8558 PRG:0558 29 3F
sta Zp3D ; CPU:$855A PRG:055A 85 3D
rts ; CPU:$855C PRG:055C 60
; -----------------------------------------------------------------------------
; Routine: Sub_855D
; Global: Branch target inside Sub: taken when 855D.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_855D:
lda Zp11 ; CPU:$855D PRG:055D A5 11
tay ; CPU:$855F PRG:055F A8
ldx Zp12 ; CPU:$8560 PRG:0560 A6 12
sta $0358,x ; CPU:$8562 PRG:0562 9D 58 03
lda $F206,y ; CPU:$8565 PRG:0565 B9 06 F2
sta $03A8,x ; CPU:$8568 PRG:0568 9D A8 03
tya ; CPU:$856B PRG:056B 98
asl a ; CPU:$856C PRG:056C 0A
tay ; CPU:$856D PRG:056D A8
lda $F236,y ; CPU:$856E PRG:056E B9 36 F2
sta $0388,x ; CPU:$8571 PRG:0571 9D 88 03
lda $F237,y ; CPU:$8574 PRG:0574 B9 37 F2
sta $0398,x ; CPU:$8577 PRG:0577 9D 98 03
txa ; CPU:$857A PRG:057A 8A
asl a ; CPU:$857B PRG:057B 0A
tax ; CPU:$857C PRG:057C AA
lda $F216,y ; CPU:$857D PRG:057D B9 16 F2
sta $0368,x ; CPU:$8580 PRG:0580 9D 68 03
lda $F217,y ; CPU:$8583 PRG:0583 B9 17 F2
sta $0369,x ; CPU:$8586 PRG:0586 9D 69 03
rts ; CPU:$8589 PRG:0589 60
; -----------------------------------------------------------------------------
; Routine: Sub_858A
; Global: Branch target inside Sub: taken when 858A.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_858A:
ldx Zp36 ; CPU:$858A PRG:058A A6 36
lda Zp19 ; CPU:$858C PRG:058C A5 19
sta $0300,x ; CPU:$858E PRG:058E 9D 00 03
inx ; CPU:$8591 PRG:0591 E8
lda Zp1A ; CPU:$8592 PRG:0592 A5 1A
sta $0300,x ; CPU:$8594 PRG:0594 9D 00 03
inx ; CPU:$8597 PRG:0597 E8
lda Zp17 ; CPU:$8598 PRG:0598 A5 17
sta $0300,x ; CPU:$859A PRG:059A 9D 00 03
inx ; CPU:$859D PRG:059D E8
lda Zp18 ; CPU:$859E PRG:059E A5 18
sta $0300,x ; CPU:$85A0 PRG:05A0 9D 00 03
inx ; CPU:$85A3 PRG:05A3 E8
stx Zp36 ; CPU:$85A4 PRG:05A4 86 36
rts ; CPU:$85A6 PRG:05A6 60
; -----------------------------------------------------------------------------
; Routine: Sub_85A7
; Global: Branch target inside Sub: taken when 85A7.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_85A7:
ldx Zp37 ; CPU:$85A7 PRG:05A7 A6 37
lda Zp19 ; CPU:$85A9 PRG:05A9 A5 19
sta $0338,x ; CPU:$85AB PRG:05AB 9D 38 03
inx ; CPU:$85AE PRG:05AE E8
lda Zp1A ; CPU:$85AF PRG:05AF A5 1A
sta $0338,x ; CPU:$85B1 PRG:05B1 9D 38 03
inx ; CPU:$85B4 PRG:05B4 E8
lda Zp17 ; CPU:$85B5 PRG:05B5 A5 17
sta $0338,x ; CPU:$85B7 PRG:05B7 9D 38 03
inx ; CPU:$85BA PRG:05BA E8
lda Zp18 ; CPU:$85BB PRG:05BB A5 18
sta $0338,x ; CPU:$85BD PRG:05BD 9D 38 03
inx ; CPU:$85C0 PRG:05C0 E8
stx Zp37 ; CPU:$85C1 PRG:05C1 86 37
rts ; CPU:$85C3 PRG:05C3 60
; -----------------------------------------------------------------------------
; Routine: Sub_85C4
; Global: Branch target inside Sub: taken when 85C4.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_85C4:
lda PPUSTATUS ; CPU:$85C4 PRG:05C4 AD 02 20
lda #$3F ; CPU:$85C7 PRG:05C7 A9 3F
sta PPUADDR ; CPU:$85C9 PRG:05C9 8D 06 20
lda #$00 ; CPU:$85CC PRG:05CC A9 00
sta PPUADDR ; CPU:$85CE PRG:05CE 8D 06 20
tay ; CPU:$85D1 PRG:05D1 A8
; -----------------------------------------------------------------------------
; Routine: WriteVramTiles_OnCarryClear
; Global: Branch target inside WriteVramTiles: taken when the addition or subtraction did not carry.
; Local: Part of WriteVramTiles.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
WriteVramTiles_OnCarryClear:
lda (Zp11),y ; CPU:$85D2 PRG:05D2 B1 11
sta PPUDATA ; CPU:$85D4 PRG:05D4 8D 07 20
iny ; CPU:$85D7 PRG:05D7 C8
cpy #$20 ; CPU:$85D8 PRG:05D8 C0 20
bcc WriteVramTiles_OnCarryClear; CPU:$85DA PRG:05DA 90 F6
rts ; CPU:$85DC PRG:05DC 60
; -----------------------------------------------------------------------------
; Routine: TickAnimationCounter
; Global: Advances the animation counter once per frame.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickAnimationCounter:
inc Zp75 ; CPU:$85DD PRG:05DD E6 75
lda GameMode ; CPU:$85DF PRG:05DF A5 6A
bne TickAnimationCounter_Loop ; CPU:$85E1 PRG:05E1 D0 01
rts ; CPU:$85E3 PRG:05E3 60
; -----------------------------------------------------------------------------
; Routine: TickAnimationCounter_Loop
; Global: Branch target inside TickAnimationCounter: taken when the loop repeats.
; Local: Part of TickAnimationCounter.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickAnimationCounter_Loop:
jsr UpdateSprites ; CPU:$85E4 PRG:05E4 20 E9 82
lda GameMode ; CPU:$85E7 PRG:05E7 A5 6A
jsr DispatchByJumpTable ; CPU:$85E9 PRG:05E9 20 73 81
; ---- data $85EC-$8605 (26 bytes) ----
.byte $E3, $85, $06, $86, $5F, $8A, $2A, $C6, $A7, $C2, $D8, $C6, $AF, $8B, $55, $8F ; CPU:$85EC PRG:05EC E3 85 06 86 5F 8A 2A C6 A7 C2 D8 C6 AF 8B 55 8F
.byte $42, $98, $B9, $94, $21, $96, $2E, $96, $1B, $97 ; CPU:$85FC PRG:05FC 42 98 B9 94 21 96 2E 96 1B 97
; -----------------------------------------------------------------------------
; Routine: ApplyGraphicsMode
; Global: Switches the PPU to the graphics mode the level asks for.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ApplyGraphicsMode:
lda Zp6C ; CPU:$8606 PRG:0606 A5 6C
bne ApplyGraphicsMode_OnNonzero; CPU:$8608 PRG:0608 D0 6C
lda #$00 ; CPU:$860A PRG:060A A9 00
sta $05E7 ; CPU:$860C PRG:060C 8D E7 05
sta $05E8 ; CPU:$860F PRG:060F 8D E8 05
sta $05E9 ; CPU:$8612 PRG:0612 8D E9 05
lda #$02 ; CPU:$8615 PRG:0615 A9 02
jsr ClearOamShadow ; CPU:$8617 PRG:0617 20 88 81
inc Zp6C ; CPU:$861A PRG:061A E6 6C
lda #$00 ; CPU:$861C PRG:061C A9 00
sta Zp75 ; CPU:$861E PRG:061E 85 75
sta Zp76 ; CPU:$8620 PRG:0620 85 76
sta Zp2E ; CPU:$8622 PRG:0622 85 2E
lda #$00 ; CPU:$8624 PRG:0624 A9 00
jsr BankedCall ; CPU:$8626 PRG:0626 20 04 80
; ---- data $8629-$8662 (58 bytes) ----
.byte $A9, $00, $8D, $01, $02, $A9, $C0, $8D, $03, $02, $A9, $45, $8D, $00, $02, $A9 ; CPU:$8629 PRG:0629 A9 00 8D 01 02 A9 C0 8D 03 02 A9 45 8D 00 02 A9
.byte $E0, $8D, $02, $02, $A9, $0F, $8D, $E6, $05, $8D, $E5, $05, $A5, $00, $D0, $07 ; CPU:$8639 PRG:0639 E0 8D 02 02 A9 0F 8D E6 05 8D E5 05 A5 00 D0 07
.byte $20, $34, $8E, $A9, $01, $85, $00, $A2, $00, $20, $84, $90, $A9, $20, $85, $78 ; CPU:$8649 PRG:0649 20 34 8E A9 01 85 00 A2 00 20 84 90 A9 20 85 78
.byte $A5, $01, $29, $88, $09, $88, $85, $01, $A9, $03 ; CPU:$8659 PRG:0659 A5 01 29 88 09 88 85 01 A9 03
; -----------------------------------------------------------------------------
; Routine: Sub_8663
; Global: Branch target inside Sub: taken when 8663.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_8663:
sta a:$00DE ; CPU:$8663 PRG:0663 8D DE 00
lda #$01 ; CPU:$8666 PRG:0666 A9 01
sta a:$00DD ; CPU:$8668 PRG:0668 8D DD 00
lda #$05 ; CPU:$866B PRG:066B A9 05
jsr BankedCall ; CPU:$866D PRG:066D 20 04 80
; ---- data $8670-$8675 (6 bytes) ----
.byte $A9, $00, $8D, $DD, $00, $60 ; CPU:$8670 PRG:0670 A9 00 8D DD 00 60
; -----------------------------------------------------------------------------
; Routine: ApplyGraphicsMode_OnNonzero
; Global: Branch target inside ApplyGraphicsMode: taken when the tested value is not zero.
; Local: Part of ApplyGraphicsMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ApplyGraphicsMode_OnNonzero:
lda PPUSTATUS ; CPU:$8676 PRG:0676 AD 02 20
and #$40 ; CPU:$8679 PRG:0679 29 40
bne ApplyGraphicsMode_OnNonzero; CPU:$867B PRG:067B D0 F9
; -----------------------------------------------------------------------------
; Routine: ApplyGraphicsMode_OnZero
; Global: Branch target inside ApplyGraphicsMode: taken when the tested value is zero.
; Local: Part of ApplyGraphicsMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ApplyGraphicsMode_OnZero:
lda PPUSTATUS ; CPU:$867D PRG:067D AD 02 20
and #$40 ; CPU:$8680 PRG:0680 29 40
beq ApplyGraphicsMode_OnZero ; CPU:$8682 PRG:0682 F0 F9
ldy #$18 ; CPU:$8684 PRG:0684 A0 18
; -----------------------------------------------------------------------------
; Routine: ApplyGraphicsMode_OnNonzero2
; Global: Branch target inside ApplyGraphicsMode: taken when OnNonzero2.
; Local: Part of ApplyGraphicsMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ApplyGraphicsMode_OnNonzero2:
dey ; CPU:$8686 PRG:0686 88
bne ApplyGraphicsMode_OnNonzero2 ; CPU:$8687 PRG:0687 D0 FD
lda PPUSTATUS ; CPU:$8689 PRG:0689 AD 02 20
lda #$98 ; CPU:$868C PRG:068C A9 98
sta $03DE ; CPU:$868E PRG:068E 8D DE 03
sta PPUCTRL ; CPU:$8691 PRG:0691 8D 00 20
lda $05E6 ; CPU:$8694 PRG:0694 AD E6 05
bne ApplyGraphicsMode_Loop ; CPU:$8697 PRG:0697 D0 38
lda #$00 ; CPU:$8699 PRG:0699 A9 00
sta Zp6C ; CPU:$869B PRG:069B 85 6C
lda #$03 ; CPU:$869D PRG:069D A9 03
sta GameMode ; CPU:$869F PRG:069F 85 6A
lda #$02 ; CPU:$86A1 PRG:06A1 A9 02
sta Zp5B ; CPU:$86A3 PRG:06A3 85 5B
sta Zp5D ; CPU:$86A5 PRG:06A5 85 5D
sta Zp5A ; CPU:$86A7 PRG:06A7 85 5A
sta Zp5C ; CPU:$86A9 PRG:06A9 85 5C
lda #$5A ; CPU:$86AB PRG:06AB A9 5A
sta $05E6 ; CPU:$86AD PRG:06AD 8D E6 05
lda #$00 ; CPU:$86B0 PRG:06B0 A9 00
sta $05E2 ; CPU:$86B2 PRG:06B2 8D E2 05
sta $05E1 ; CPU:$86B5 PRG:06B5 8D E1 05
sta $05E4 ; CPU:$86B8 PRG:06B8 8D E4 05
sta $05E3 ; CPU:$86BB PRG:06BB 8D E3 05
lda #$00 ; CPU:$86BE PRG:06BE A9 00
sta Zp95 ; CPU:$86C0 PRG:06C0 85 95
lda $06EF ; CPU:$86C2 PRG:06C2 AD EF 06
and #$01 ; CPU:$86C5 PRG:06C5 29 01
sta Zp6F ; CPU:$86C7 PRG:06C7 85 6F
eor #$01 ; CPU:$86C9 PRG:06C9 49 01
sta Zp96 ; CPU:$86CB PRG:06CB 85 96
inc $06EF ; CPU:$86CD PRG:06CD EE EF 06
rts ; CPU:$86D0 PRG:06D0 60
; -----------------------------------------------------------------------------
; Routine: ApplyGraphicsMode_Loop
; Global: Branch target inside ApplyGraphicsMode: taken when the loop repeats.
; Local: Part of ApplyGraphicsMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ApplyGraphicsMode_Loop:
jsr AnimatePalette ; CPU:$86D1 PRG:06D1 20 FC 89
lda $05E9 ; CPU:$86D4 PRG:06D4 AD E9 05
bne ApplyGraphicsMode_Loop4 ; CPU:$86D7 PRG:06D7 D0 53
lda $05E8 ; CPU:$86D9 PRG:06D9 AD E8 05
bne ApplyGraphicsMode_Loop2 ; CPU:$86DC PRG:06DC D0 12
lda NewButton1 ; CPU:$86DE PRG:06DE A5 2A
cmp #$20 ; CPU:$86E0 PRG:06E0 C9 20
bne ApplyGraphicsMode_Loop4 ; CPU:$86E2 PRG:06E2 D0 48
lda #$01 ; CPU:$86E4 PRG:06E4 A9 01
sta $05E8 ; CPU:$86E6 PRG:06E6 8D E8 05
lda #$00 ; CPU:$86E9 PRG:06E9 A9 00
sta NewButton1 ; CPU:$86EB PRG:06EB 85 2A
sta $05E7 ; CPU:$86ED PRG:06ED 8D E7 05
; -----------------------------------------------------------------------------
; Routine: ApplyGraphicsMode_Loop2
; Global: Branch target inside ApplyGraphicsMode: taken when Loop2.
; Local: Part of ApplyGraphicsMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ApplyGraphicsMode_Loop2:
lda $05E8 ; CPU:$86F0 PRG:06F0 AD E8 05
beq ApplyGraphicsMode_Loop4 ; CPU:$86F3 PRG:06F3 F0 37
ldx $05E7 ; CPU:$86F5 PRG:06F5 AE E7 05
lda NewButton1 ; CPU:$86F8 PRG:06F8 A5 2A
beq ApplyGraphicsMode_Loop4 ; CPU:$86FA PRG:06FA F0 30
cmp $876E,x ; CPU:$86FC PRG:06FC DD 6E 87
beq ApplyGraphicsMode_Loop3 ; CPU:$86FF PRG:06FF F0 08
lda #$01 ; CPU:$8701 PRG:0701 A9 01
sta $05E9 ; CPU:$8703 PRG:0703 8D E9 05
jmp ApplyGraphicsMode_Loop4 ; CPU:$8706 PRG:0706 4C 2C 87
; -----------------------------------------------------------------------------
; Routine: ApplyGraphicsMode_Loop3
; Global: Branch target inside ApplyGraphicsMode: taken when Loop3.
; Local: Part of ApplyGraphicsMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ApplyGraphicsMode_Loop3:
inc $05E7 ; CPU:$8709 PRG:0709 EE E7 05
lda $05E7 ; CPU:$870C PRG:070C AD E7 05
cmp #$0C ; CPU:$870F PRG:070F C9 0C
bcc ApplyGraphicsMode_Loop4 ; CPU:$8711 PRG:0711 90 19
lda #$01 ; CPU:$8713 PRG:0713 A9 01
sta Zp99 ; CPU:$8715 PRG:0715 85 99
lda #$00 ; CPU:$8717 PRG:0717 A9 00
sta Zp91 ; CPU:$8719 PRG:0719 85 91
sta Zp97 ; CPU:$871B PRG:071B 85 97
sta Zp6C ; CPU:$871D PRG:071D 85 6C
sta $05E5 ; CPU:$871F PRG:071F 8D E5 05
lda #$08 ; CPU:$8722 PRG:0722 A9 08
sta GameMode ; CPU:$8724 PRG:0724 85 6A
lda #$04 ; CPU:$8726 PRG:0726 A9 04
jsr Sub_8663 ; CPU:$8728 PRG:0728 20 63 86
rts ; CPU:$872B PRG:072B 60
; -----------------------------------------------------------------------------
; Routine: ApplyGraphicsMode_Loop4
; Global: Branch target inside ApplyGraphicsMode: taken when Loop4.
; Local: Part of ApplyGraphicsMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ApplyGraphicsMode_Loop4:
lda NewButton1 ; CPU:$872C PRG:072C A5 2A
and #$10 ; CPU:$872E PRG:072E 29 10
beq ApplyGraphicsMode_Loop5 ; CPU:$8730 PRG:0730 F0 1C
inc GameMode ; CPU:$8732 PRG:0732 E6 6A
lda #$00 ; CPU:$8734 PRG:0734 A9 00
sta Zp6C ; CPU:$8736 PRG:0736 85 6C
sta $01B0 ; CPU:$8738 PRG:0738 8D B0 01
ldy #$00 ; CPU:$873B PRG:073B A0 00
sty $05E5 ; CPU:$873D PRG:073D 8C E5 05
sty $05E6 ; CPU:$8740 PRG:0740 8C E6 05
lda #$F8 ; CPU:$8743 PRG:0743 A9 F8
; -----------------------------------------------------------------------------
; Routine: ApplyGraphicsMode_OnNonzero3
; Global: Branch target inside ApplyGraphicsMode: taken when OnNonzero3.
; Local: Part of ApplyGraphicsMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ApplyGraphicsMode_OnNonzero3:
sta $0200,y ; CPU:$8745 PRG:0745 99 00 02
iny ; CPU:$8748 PRG:0748 C8
iny ; CPU:$8749 PRG:0749 C8
iny ; CPU:$874A PRG:074A C8
iny ; CPU:$874B PRG:074B C8
bne ApplyGraphicsMode_OnNonzero3 ; CPU:$874C PRG:074C D0 F7
; -----------------------------------------------------------------------------
; Routine: ApplyGraphicsMode_Loop5
; Global: Branch target inside ApplyGraphicsMode: taken when Loop5.
; Local: Part of ApplyGraphicsMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ApplyGraphicsMode_Loop5:
rts ; CPU:$874E PRG:074E 60
; ---- data $874F-$89FB (685 bytes) ----
; referenced by `cmp $876E,x` at $86FC (operand $876E falls inside this region)
; referenced by `lda $89F4,x` at $8A20 (operand $89F4 falls inside this region)
; referenced by `lda $89F5,x` at $8A26 (operand $89F5 falls inside this region)
.byte $01, $A5, $2A, $29, $10, $F0, $17, $A9, $00, $85, $6C, $85, $6A, $8D, $B0, $01 ; CPU:$874F PRG:074F 01 A5 2A 29 10 F0 17 A9 00 85 6C 85 6A 8D B0 01
.byte $8D, $00, $20, $8D, $01, $20, $A5, $01, $29, $88, $09, $88, $85, $01, $60, $08 ; CPU:$875F PRG:075F 8D 00 20 8D 01 20 A5 01 29 88 09 88 85 01 60 08
.byte $08, $04, $04, $02, $02, $01, $01, $80, $80, $40, $40, $A2, $00, $A0, $00, $BD ; CPU:$876F PRG:076F 08 04 04 02 02 01 01 80 80 40 40 A2 00 A0 00 BD
.byte $EC, $87, $99, $00, $02, $99, $F8, $02, $C8, $E8, $E0, $08, $90, $F1, $A9, $21 ; CPU:$877F PRG:077F EC 87 99 00 02 99 F8 02 C8 E8 E0 08 90 F1 A9 21
.byte $8D, $FA, $02, $A9, $22, $8D, $FE, $02, $A0, $00, $A5, $77, $C9, $40, $B0, $02 ; CPU:$878F PRG:078F 8D FA 02 A9 22 8D FE 02 A0 00 A5 77 C9 40 B0 02
.byte $A0, $F8, $0A, $AA, $BD, $F4, $87, $18, $69, $7A, $99, $03, $02, $BD, $F5, $87 ; CPU:$879F PRG:079F A0 F8 0A AA BD F4 87 18 69 7A 99 03 02 BD F5 87
.byte $18, $69, $60, $99, $00, $02, $E6, $77, $A5, $77, $C9, $80, $90, $04, $A9, $00 ; CPU:$87AF PRG:07AF 18 69 60 99 00 02 E6 77 A5 77 C9 80 90 04 A9 00
.byte $85, $77, $A0, $FC, $A5, $78, $C9, $40, $B0, $02, $A0, $04, $0A, $AA, $BD, $F4 ; CPU:$87BF PRG:07BF 85 77 A0 FC A5 78 C9 40 B0 02 A0 04 0A AA BD F4
.byte $88, $18, $69, $7A, $99, $03, $02, $BD, $F5, $88, $18, $69, $60, $99, $00, $02 ; CPU:$87CF PRG:07CF 88 18 69 7A 99 03 02 BD F5 88 18 69 60 99 00 02
.byte $C6, $78, $A5, $78, $C9, $81, $90, $04, $A9, $7F, $85, $78, $60, $F8, $BF, $01 ; CPU:$87DF PRG:07DF C6 78 A5 78 C9 81 90 04 A9 7F 85 78 60 F8 BF 01
.byte $00, $F8, $BF, $02, $00, $45, $29, $44, $2A, $43, $2B, $42, $2B, $41, $2C, $3F ; CPU:$87EF PRG:07EF 00 F8 BF 02 00 45 29 44 2A 43 2B 42 2B 41 2C 3F
.byte $2D, $3E, $2D, $3C, $2E, $3A, $2E, $38, $2E, $36, $2E, $33, $2E, $31, $2E, $2E ; CPU:$87FF PRG:07FF 2D 3E 2D 3C 2E 3A 2E 38 2E 36 2E 33 2E 31 2E 2E
.byte $2E, $2C, $2D, $29, $2D, $26, $2C, $23, $2C, $20, $2B, $1D, $2A, $1A, $29, $17 ; CPU:$880F PRG:080F 2E 2C 2D 29 2D 26 2C 23 2C 20 2B 1D 2A 1A 29 17
.byte $28, $13, $27, $10, $25, $0C, $24, $09, $22, $06, $21, $02, $1F, $FF, $1E, $FB ; CPU:$881F PRG:081F 28 13 27 10 25 0C 24 09 22 06 21 02 1F FF 1E FB
.byte $1C, $F8, $1A, $F4, $18, $F1, $16, $EE, $14, $EA, $12, $E7, $10, $E4, $0E, $E1 ; CPU:$882F PRG:082F 1C F8 1A F4 18 F1 16 EE 14 EA 12 E7 10 E4 0E E1
.byte $0C, $DE, $09, $DB, $07, $D8, $05, $D5, $03, $D2, $00, $D0, $FE, $CD, $FC, $CB ; CPU:$883F PRG:083F 0C DE 09 DB 07 D8 05 D5 03 D2 00 D0 FE CD FC CB
.byte $FA, $C9, $F7, $C7, $F5, $C5, $F3, $C3, $F1, $C1, $EF, $C0, $ED, $BE, $EB, $BD ; CPU:$884F PRG:084F FA C9 F7 C7 F5 C5 F3 C3 F1 C1 EF C0 ED BE EB BD
.byte $E9, $BC, $E7, $BB, $E5, $BB, $E3, $BA, $E1, $BA, $E0, $B9, $DE, $B9, $DD, $BA ; CPU:$885F PRG:085F E9 BC E7 BB E5 BB E3 BA E1 BA E0 B9 DE B9 DD BA
.byte $DB, $BA, $DA, $BA, $D9, $BB, $D7, $BC, $D6, $BD, $D5, $BE, $D5, $BF, $D4, $C1 ; CPU:$886F PRG:086F DB BA DA BA D9 BB D7 BC D6 BD D5 BE D5 BF D4 C1
.byte $D3, $C2, $D3, $C4, $D2, $C6, $D2, $C8, $D2, $CA, $D2, $CD, $D2, $CF, $D2, $D2 ; CPU:$887F PRG:087F D3 C2 D3 C4 D2 C6 D2 C8 D2 CA D2 CD D2 CF D2 D2
.byte $D2, $D4, $D3, $D7, $D3, $DA, $D4, $DD, $D4, $E0, $D5, $E3, $D6, $E6, $D7, $E9 ; CPU:$888F PRG:088F D2 D4 D3 D7 D3 DA D4 DD D4 E0 D5 E3 D6 E6 D7 E9
.byte $D8, $ED, $D9, $F0, $DB, $F4, $DC, $F7, $DE, $FA, $DF, $FE, $E1, $01, $E2, $05 ; CPU:$889F PRG:089F D8 ED D9 F0 DB F4 DC F7 DE FA DF FE E1 01 E2 05
.byte $E4, $08, $E6, $0C, $E8, $0F, $EA, $12, $EC, $16, $EE, $19, $F0, $1C, $F2, $1F ; CPU:$88AF PRG:08AF E4 08 E6 0C E8 0F EA 12 EC 16 EE 19 F0 1C F2 1F
.byte $F4, $22, $F7, $25, $F9, $28, $FB, $2B, $FD, $2E, $00, $30, $02, $33, $04, $35 ; CPU:$88BF PRG:08BF F4 22 F7 25 F9 28 FB 2B FD 2E 00 30 02 33 04 35
.byte $06, $37, $09, $39, $0B, $3B, $0D, $3D, $0F, $3F, $11, $40, $13, $42, $15, $43 ; CPU:$88CF PRG:08CF 06 37 09 39 0B 3B 0D 3D 0F 3F 11 40 13 42 15 43
.byte $17, $44, $19, $45, $1B, $45, $1D, $46, $1F, $46, $20, $47, $22, $47, $23, $46 ; CPU:$88DF PRG:08DF 17 44 19 45 1B 45 1D 46 1F 46 20 47 22 47 23 46
.byte $25, $46, $26, $46, $27, $BA, $27, $BA, $26, $BA, $25, $B9, $23, $B9, $22, $BA ; CPU:$88EF PRG:08EF 25 46 26 46 27 BA 27 BA 26 BA 25 B9 23 B9 22 BA
.byte $20, $BA, $1F, $BB, $1D, $BB, $1B, $BC, $19, $BD, $17, $BE, $15, $C0, $13, $C1 ; CPU:$88FF PRG:08FF 20 BA 1F BB 1D BB 1B BC 19 BD 17 BE 15 C0 13 C1
.byte $11, $C3, $0F, $C5, $0D, $C7, $0B, $C9, $09, $CB, $06, $CD, $04, $D0, $02, $D2 ; CPU:$890F PRG:090F 11 C3 0F C5 0D C7 0B C9 09 CB 06 CD 04 D0 02 D2
.byte $00, $D5, $FD, $D8, $FB, $DB, $F9, $DE, $F7, $E1, $F4, $E4, $F2, $E7, $F0, $EA ; CPU:$891F PRG:091F 00 D5 FD D8 FB DB F9 DE F7 E1 F4 E4 F2 E7 F0 EA
.byte $EE, $EE, $EC, $F1, $EA, $F4, $E8, $F8, $E6, $FB, $E4, $FF, $E2, $02, $E1, $06 ; CPU:$892F PRG:092F EE EE EC F1 EA F4 E8 F8 E6 FB E4 FF E2 02 E1 06
.byte $DF, $09, $DE, $0C, $DC, $10, $DB, $13, $D9, $17, $D8, $1A, $D7, $1D, $D6, $20 ; CPU:$893F PRG:093F DF 09 DE 0C DC 10 DB 13 D9 17 D8 1A D7 1D D6 20
.byte $D5, $23, $D4, $26, $D4, $29, $D3, $2C, $D3, $2E, $D2, $31, $D2, $33, $D2, $36 ; CPU:$894F PRG:094F D5 23 D4 26 D4 29 D3 2C D3 2E D2 31 D2 33 D2 36
.byte $D2, $38, $D2, $3A, $D2, $3C, $D2, $3E, $D3, $3F, $D3, $41, $D4, $42, $D5, $43 ; CPU:$895F PRG:095F D2 38 D2 3A D2 3C D2 3E D3 3F D3 41 D4 42 D5 43
.byte $D5, $44, $D6, $45, $D7, $46, $D9, $46, $DA, $46, $DB, $47, $DD, $47, $DE, $46 ; CPU:$896F PRG:096F D5 44 D6 45 D7 46 D9 46 DA 46 DB 47 DD 47 DE 46
.byte $E0, $46, $E1, $45, $E3, $45, $E5, $44, $E7, $43, $E9, $42, $EB, $40, $ED, $3F ; CPU:$897F PRG:097F E0 46 E1 45 E3 45 E5 44 E7 43 E9 42 EB 40 ED 3F
.byte $EF, $3D, $F1, $3B, $F3, $39, $F5, $37, $F7, $35, $FA, $33, $FC, $30, $FE, $2E ; CPU:$898F PRG:098F EF 3D F1 3B F3 39 F5 37 F7 35 FA 33 FC 30 FE 2E
.byte $00, $2B, $03, $28, $05, $25, $07, $22, $09, $1F, $0C, $1C, $0E, $19, $10, $16 ; CPU:$899F PRG:099F 00 2B 03 28 05 25 07 22 09 1F 0C 1C 0E 19 10 16
.byte $12, $12, $14, $0F, $16, $0C, $18, $08, $1A, $05, $1C, $01, $1E, $FE, $1F, $FA ; CPU:$89AF PRG:09AF 12 12 14 0F 16 0C 18 08 1A 05 1C 01 1E FE 1F FA
.byte $21, $F7, $22, $F4, $24, $F0, $25, $ED, $27, $E9, $28, $E6, $29, $E3, $2A, $E0 ; CPU:$89BF PRG:09BF 21 F7 22 F4 24 F0 25 ED 27 E9 28 E6 29 E3 2A E0
.byte $2B, $DD, $2C, $DA, $2C, $D7, $2D, $D4, $2D, $D2, $2E, $CF, $2E, $CD, $2E, $CA ; CPU:$89CF PRG:09CF 2B DD 2C DA 2C D7 2D D4 2D D2 2E CF 2E CD 2E CA
.byte $2E, $C8, $2E, $C6, $2E, $C4, $2E, $C2, $2D, $C1, $2D, $BF, $2C, $BE, $2B, $BD ; CPU:$89DF PRG:09DF 2E C8 2E C6 2E C4 2E C2 2D C1 2D BF 2C BE 2B BD
.byte $2B, $BC, $2A, $BB, $29, $0F, $A7, $2F, $A7, $4F, $A7, $6F, $A7 ; CPU:$89EF PRG:09EF 2B BC 2A BB 29 0F A7 2F A7 4F A7 6F A7
; -----------------------------------------------------------------------------
; Routine: AnimatePalette
; Global: Cycles the palette entries of the animated tiles.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
AnimatePalette:
lda Zp75 ; CPU:$89FC PRG:09FC A5 75
and #$07 ; CPU:$89FE PRG:09FE 29 07
bne AnimatePalette_Loop ; CPU:$8A00 PRG:0A00 D0 33
lda Zp76 ; CPU:$8A02 PRG:0A02 A5 76
cmp #$04 ; CPU:$8A04 PRG:0A04 C9 04
bcs AnimatePalette_Loop ; CPU:$8A06 PRG:0A06 B0 2D
lda #$3F ; CPU:$8A08 PRG:0A08 A9 3F
sta $01B0 ; CPU:$8A0A PRG:0A0A 8D B0 01
lda #$00 ; CPU:$8A0D PRG:0A0D A9 00
sta $01B1 ; CPU:$8A0F PRG:0A0F 8D B1 01
lda #$10 ; CPU:$8A12 PRG:0A12 A9 10
sta $01B2 ; CPU:$8A14 PRG:0A14 8D B2 01
lda #$01 ; CPU:$8A17 PRG:0A17 A9 01
sta $01B3 ; CPU:$8A19 PRG:0A19 8D B3 01
lda Zp76 ; CPU:$8A1C PRG:0A1C A5 76
asl a ; CPU:$8A1E PRG:0A1E 0A
tax ; CPU:$8A1F PRG:0A1F AA
lda $89F4,x ; CPU:$8A20 PRG:0A20 BD F4 89
sta $01B4 ; CPU:$8A23 PRG:0A23 8D B4 01
lda $89F5,x ; CPU:$8A26 PRG:0A26 BD F5 89
sta $01B5 ; CPU:$8A29 PRG:0A29 8D B5 01
lda #$00 ; CPU:$8A2C PRG:0A2C A9 00
sta $01B6 ; CPU:$8A2E PRG:0A2E 8D B6 01
sta Zp75 ; CPU:$8A31 PRG:0A31 85 75
inc Zp76 ; CPU:$8A33 PRG:0A33 E6 76
; -----------------------------------------------------------------------------
; Routine: AnimatePalette_Loop
; Global: Branch target inside AnimatePalette: taken when the loop repeats.
; Local: Part of AnimatePalette.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
AnimatePalette_Loop:
rts ; CPU:$8A35 PRG:0A35 60
; ---- data $8A36-$8A5E (41 bytes) ----
.byte $A5, $75, $C9, $20, $90, $15, $A5, $76, $C9, $05, $B0, $0F, $E6, $76, $A2, $00 ; CPU:$8A36 PRG:0A36 A5 75 C9 20 90 15 A5 76 C9 05 B0 0F E6 76 A2 00
.byte $BD, $52, $8A, $9D, $B0, $01, $E8, $E0, $0D, $90, $F5, $60, $23, $4A, $0F, $01 ; CPU:$8A46 PRG:0A46 BD 52 8A 9D B0 01 E8 E0 0D 90 F5 60 23 4A 0F 01
.byte $A0, $94, $23, $26, $03, $03, $AF, $94, $00 ; CPU:$8A56 PRG:0A56 A0 94 23 26 03 03 AF 94 00
; -----------------------------------------------------------------------------
; Routine: InitLevelState
; Global: Sets up the state of a new level.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
InitLevelState:
lda Zp6C ; CPU:$8A5F PRG:0A5F A5 6C
beq InitLevelState_Loop ; CPU:$8A61 PRG:0A61 F0 03
jmp Sub_8AE1 ; CPU:$8A63 PRG:0A63 4C E1 8A
; -----------------------------------------------------------------------------
; Routine: InitLevelState_Loop
; Global: Branch target inside InitLevelState: taken when the loop repeats.
; Local: Part of InitLevelState.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
InitLevelState_Loop:
sta Zp95 ; CPU:$8A66 PRG:0A66 85 95
sta Zp96 ; CPU:$8A68 PRG:0A68 85 96
sta $05E5 ; CPU:$8A6A PRG:0A6A 8D E5 05
sta $05E6 ; CPU:$8A6D PRG:0A6D 8D E6 05
sta Zp91 ; CPU:$8A70 PRG:0A70 85 91
tax ; CPU:$8A72 PRG:0A72 AA
ldy #$14 ; CPU:$8A73 PRG:0A73 A0 14
; -----------------------------------------------------------------------------
; Routine: InitLevelState_OnNonzero
; Global: Branch target inside InitLevelState: taken when the tested value is not zero.
; Local: Part of InitLevelState.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
InitLevelState_OnNonzero:
sta $05AC,x ; CPU:$8A75 PRG:0A75 9D AC 05
inx ; CPU:$8A78 PRG:0A78 E8
dey ; CPU:$8A79 PRG:0A79 88
bne InitLevelState_OnNonzero ; CPU:$8A7A PRG:0A7A D0 F9
jsr ClearSpriteSlots ; CPU:$8A7C PRG:0A7C 20 28 92
jsr ClearOamShadow ; CPU:$8A7F PRG:0A7F 20 88 81
jsr Sub_C061 ; CPU:$8A82 PRG:0A82 20 61 C0
jsr ClearBubbleSlots ; CPU:$8A85 PRG:0A85 20 C7 AE
inc Zp6C ; CPU:$8A88 PRG:0A88 E6 6C
lda #$02 ; CPU:$8A8A PRG:0A8A A9 02
jsr ClearOamShadow ; CPU:$8A8C PRG:0A8C 20 88 81
ldx #$00 ; CPU:$8A8F PRG:0A8F A2 00
lda #$03 ; CPU:$8A91 PRG:0A91 A9 03
; -----------------------------------------------------------------------------
; Routine: InitLevelState_OnNonzero2
; Global: Branch target inside InitLevelState: taken when OnNonzero2.
; Local: Part of InitLevelState.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
InitLevelState_OnNonzero2:
sta $0202,x ; CPU:$8A93 PRG:0A93 9D 02 02
inx ; CPU:$8A96 PRG:0A96 E8
inx ; CPU:$8A97 PRG:0A97 E8
inx ; CPU:$8A98 PRG:0A98 E8
inx ; CPU:$8A99 PRG:0A99 E8
bne InitLevelState_OnNonzero2 ; CPU:$8A9A PRG:0A9A D0 F7
ldx #$00 ; CPU:$8A9C PRG:0A9C A2 00
jsr Sub_9084 ; CPU:$8A9E PRG:0A9E 20 84 90
lda #$01 ; CPU:$8AA1 PRG:0AA1 A9 01
sta Zp2E ; CPU:$8AA3 PRG:0AA3 85 2E
lda #$00 ; CPU:$8AA5 PRG:0AA5 A9 00
jsr BankedCall ; CPU:$8AA7 PRG:0AA7 20 04 80
; ---- data $8AAA-$8AE0 (55 bytes) ----
.byte $A9, $00, $AA, $9D, $00, $06, $E8, $D0, $FA, $A2, $00, $BD, $22, $93, $9D, $00 ; CPU:$8AAA PRG:0AAA A9 00 AA 9D 00 06 E8 D0 FA A2 00 BD 22 93 9D 00
.byte $02, $E8, $E0, $14, $90, $F5, $A9, $00, $85, $03, $A9, $EF, $85, $04, $A5, $01 ; CPU:$8ABA PRG:0ABA 02 E8 E0 14 90 F5 A9 00 85 03 A9 EF 85 04 A5 01
.byte $29, $E7, $09, $01, $85, $01, $A9, $03, $85, $9A, $A9, $00, $85, $5A, $A2, $00 ; CPU:$8ACA PRG:0ACA 29 E7 09 01 85 01 A9 03 85 9A A9 00 85 5A A2 00
.byte $86, $5B, $A9, $05, $4C, $63, $86 ; CPU:$8ADA PRG:0ADA 86 5B A9 05 4C 63 86
; -----------------------------------------------------------------------------
; Routine: Sub_8AE1
; Global: Branch target inside Sub: taken when 8AE1.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_8AE1:
jsr ReadPlayerInput ; CPU:$8AE1 PRG:0AE1 20 A9 90
jsr Sub_90FC ; CPU:$8AE4 PRG:0AE4 20 FC 90
jsr BuildOamBuffer ; CPU:$8AE7 PRG:0AE7 20 AC 91
lda NewButton1 ; CPU:$8AEA PRG:0AEA A5 2A
and #$10 ; CPU:$8AEC PRG:0AEC 29 10
beq InitLevelState_Loop2 ; CPU:$8AEE PRG:0AEE F0 1E
inc GameMode ; CPU:$8AF0 PRG:0AF0 E6 6A
lda #$00 ; CPU:$8AF2 PRG:0AF2 A9 00
sta Zp6C ; CPU:$8AF4 PRG:0AF4 85 6C
lda Zp70 ; CPU:$8AF6 PRG:0AF6 A5 70
sta Zp5A ; CPU:$8AF8 PRG:0AF8 85 5A
sta Zp5C ; CPU:$8AFA PRG:0AFA 85 5C
lda Zp72 ; CPU:$8AFC PRG:0AFC A5 72
sta Zp5B ; CPU:$8AFE PRG:0AFE 85 5B
sta Zp5D ; CPU:$8B00 PRG:0B00 85 5D
jsr Sub_C6B7 ; CPU:$8B02 PRG:0B02 20 B7 C6
jsr ClearActorSlots ; CPU:$8B05 PRG:0B05 20 4F BB
jsr Sub_9703 ; CPU:$8B08 PRG:0B08 20 03 97
jsr Sub_970F ; CPU:$8B0B PRG:0B0B 20 0F 97
; -----------------------------------------------------------------------------
; Routine: InitLevelState_Loop2
; Global: Branch target inside InitLevelState: taken when Loop2.
; Local: Part of InitLevelState.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
InitLevelState_Loop2:
rts ; CPU:$8B0E PRG:0B0E 60
; ---- data $8B0F-$8E33 (805 bytes) ----
.byte $81, $99, $81, $99, $81, $99, $81, $99, $81, $99, $81, $99, $A5, $6C, $D0, $3D ; CPU:$8B0F PRG:0B0F 81 99 81 99 81 99 81 99 81 99 81 99 A5 6C D0 3D
.byte $85, $75, $85, $92, $E6, $6C, $20, $88, $81, $A5, $91, $18, $69, $04, $85, $2E ; CPU:$8B1F PRG:0B1F 85 75 85 92 E6 6C 20 88 81 A5 91 18 69 04 85 2E
.byte $A9, $00, $20, $04, $80, $A5, $91, $4A, $18, $69, $02, $AA, $20, $84, $90, $20 ; CPU:$8B2F PRG:0B2F A9 00 20 04 80 A5 91 4A 18 69 02 AA 20 84 90 20
.byte $28, $92, $A6, $91, $A5, $01, $29, $E6, $1D, $0F, $8B, $85, $01, $A9, $00, $85 ; CPU:$8B3F PRG:0B3F 28 92 A6 91 A5 01 29 E6 1D 0F 8B 85 01 A9 00 85
.byte $03, $85, $04, $A5, $99, $D0, $05, $A9, $04, $20, $63, $86, $60, $A9, $01, $20 ; CPU:$8B4F PRG:0B4F 03 85 04 A5 99 D0 05 A9 04 20 63 86 60 A9 01 20
.byte $04, $80, $A5, $99, $D0, $2F, $A5, $2A, $29, $C0, $D0, $06, $A5, $2B, $29, $C0 ; CPU:$8B5F PRG:0B5F 04 80 A5 99 D0 2F A5 2A 29 C0 D0 06 A5 2B 29 C0
.byte $F0, $22, $A9, $00, $85, $6C, $8D, $B0, $01, $A9, $04, $85, $6A, $E6, $91, $A5 ; CPU:$8B6F PRG:0B6F F0 22 A9 00 85 6C 8D B0 01 A9 04 85 6A E6 91 A5
.byte $91, $C9, $0C, $D0, $07, $E6, $99, $A9, $06, $85, $6A, $60, $A5, $01, $29, $88 ; CPU:$8B7F PRG:0B7F 91 C9 0C D0 07 E6 99 A9 06 85 6A 60 A5 01 29 88
.byte $09, $88, $85, $01, $60, $E6, $97, $D0, $16, $A9, $00, $85, $6C, $E6, $91, $A5 ; CPU:$8B8F PRG:0B8F 09 88 85 01 60 E6 97 D0 16 A9 00 85 6C E6 91 A5
.byte $91, $C9, $0C, $90, $0A, $A9, $07, $85, $6A, $A9, $00, $85, $6C, $85, $99, $60 ; CPU:$8B9F PRG:0B9F 91 C9 0C 90 0A A9 07 85 6A A9 00 85 6C 85 99 60
.byte $A5, $6C, $D0, $67, $A5, $99, $D0, $09, $E6, $97, $A5, $97, $C9, $70, $B0, $01 ; CPU:$8BAF PRG:0BAF A5 6C D0 67 A5 99 D0 09 E6 97 A5 97 C9 70 B0 01
.byte $60, $A9, $00, $85, $97, $E6, $6C, $20, $88, $81, $20, $28, $92, $A2, $00, $20 ; CPU:$8BBF PRG:0BBF 60 A9 00 85 97 E6 6C 20 88 81 20 28 92 A2 00 20
.byte $84, $90, $A9, $02, $85, $2E, $A9, $00, $20, $04, $80, $A5, $01, $29, $E6, $09 ; CPU:$8BCF PRG:0BCF 84 90 A9 02 85 2E A9 00 20 04 80 A5 01 29 E6 09
.byte $01, $85, $01, $A9, $00, $85, $03, $85, $04, $20, $4C, $8C, $A9, $00, $AA, $85 ; CPU:$8BDF PRG:0BDF 01 85 01 A9 00 85 03 85 04 20 4C 8C A9 00 AA 85
.byte $79, $85, $7A, $85, $8C, $85, $8D, $85, $8E, $85, $8F, $85, $87, $BD, $2F, $8E ; CPU:$8BEF PRG:0BEF 79 85 7A 85 8C 85 8D 85 8E 85 8F 85 87 BD 2F 8E
.byte $95, $7D, $95, $83, $E8, $E0, $04, $90, $F4, $A5, $7F, $85, $88, $85, $89, $A5 ; CPU:$8BFF PRG:0BFF 95 7D 95 83 E8 E0 04 90 F4 A5 7F 85 88 85 89 A5
.byte $80, $85, $8A, $85, $8B, $A9, $03, $20, $63, $86, $60, $20, $42, $8E, $A5, $2A ; CPU:$8C0F PRG:0C0F 80 85 8A 85 8B A9 03 20 63 86 60 20 42 8E A5 2A
.byte $29, $10, $F0, $19, $A9, $02, $85, $6A, $A9, $00, $85, $6C, $A5, $99, $F0, $0D ; CPU:$8C1F PRG:0C1F 29 10 F0 19 A9 02 85 6A A9 00 85 6C A5 99 F0 0D
.byte $A9, $08, $85, $6A, $A9, $00, $85, $91, $A9, $04, $20, $63, $86, $60, $A0, $00 ; CPU:$8C2F PRG:0C2F A9 08 85 6A A9 00 85 91 A9 04 20 63 86 60 A0 00
.byte $BD, $AC, $05, $99, $90, $01, $E8, $C8, $C0, $0A, $90, $F4, $60, $A2, $0A, $86 ; CPU:$8C3F PRG:0C3F BD AC 05 99 90 01 E8 C8 C0 0A 90 F4 60 A2 0A 86
.byte $90, $20, $3D, $8C, $20, $7F, $8C, $A2, $00, $86, $90, $20, $3D, $8C, $20, $7F ; CPU:$8C4F PRG:0C4F 90 20 3D 8C 20 7F 8C A2 00 86 90 20 3D 8C 20 7F
.byte $8C, $A5, $1D, $C5, $1C, $90, $18, $E6, $1D, $A5, $82, $18, $69, $40, $85, $82 ; CPU:$8C5F PRG:0C5F 8C A5 1D C5 1C 90 18 E6 1D A5 82 18 69 40 85 82
.byte $A5, $81, $69, $00, $85, $81, $A9, $0D, $18, $6D, $E0, $05, $8D, $E0, $05, $60 ; CPU:$8C6F PRG:0C6F A5 81 69 00 85 81 A9 0D 18 6D E0 05 8D E0 05 60
.byte $A0, $00, $84, $11, $A2, $00, $BD, $94, $01, $F0, $18, $B9, $07, $01, $30, $0D ; CPU:$8C7F PRG:0C7F A0 00 84 11 A2 00 BD 94 01 F0 18 B9 07 01 30 0D
.byte $BD, $94, $01, $18, $69, $30, $D9, $07, $01, $F0, $11, $90, $15, $20, $84, $8D ; CPU:$8C8F PRG:0C8F BD 94 01 18 69 30 D9 07 01 F0 11 90 15 20 84 8D
.byte $4C, $D4, $8C, $B9, $07, $01, $30, $04, $C9, $31, $B0, $06, $E8, $C8, $E0, $06 ; CPU:$8C9F PRG:0C9F 4C D4 8C B9 07 01 30 04 C9 31 B0 06 E8 C8 E0 06
.byte $90, $D4, $E6, $11, $A5, $11, $C9, $0A, $B0, $10, $A5, $11, $85, $13, $A9, $0D ; CPU:$8CAF PRG:0CAF 90 D4 E6 11 A5 11 C9 0A B0 10 A5 11 85 13 A9 0D
.byte $85, $15, $20, $D5, $82, $A4, $17, $4C, $83, $8C, $A6, $90, $F0, $05, $85, $1D ; CPU:$8CBF PRG:0CBF 85 15 20 D5 82 A4 17 4C 83 8C A6 90 F0 05 85 1D
.byte $4C, $D4, $8C, $85, $1C, $A0, $00, $84, $25, $A2, $00, $86, $24, $8A, $0A, $AA ; CPU:$8CCF PRG:0CCF 4C D4 8C 85 1C A0 00 84 25 A2 00 86 24 8A 0A AA
.byte $BD, $78, $8D, $85, $07, $BD, $79, $8D, $85, $08, $A5, $25, $85, $13, $A9, $40 ; CPU:$8CDF PRG:0CDF BD 78 8D 85 07 BD 79 8D 85 08 A5 25 85 13 A9 40
.byte $85, $15, $20, $D5, $82, $A5, $07, $18, $65, $17, $8D, $B1, $01, $A5, $08, $65 ; CPU:$8CEF PRG:0CEF 85 15 20 D5 82 A5 07 18 65 17 8D B1 01 A5 08 65
.byte $18, $8D, $B0, $01, $A5, $90, $F0, $08, $A4, $25, $C4, $1D, $D0, $20, $F0, $06 ; CPU:$8CFF PRG:0CFF 18 8D B0 01 A5 90 F0 08 A4 25 C4 1D D0 20 F0 06
.byte $A4, $25, $C4, $1C, $D0, $18, $A6, $24, $D0, $14, $A5, $90, $D0, $04, $A2, $00 ; CPU:$8D0F PRG:0D0F A4 25 C4 1C D0 18 A6 24 D0 14 A5 90 D0 04 A2 00
.byte $F0, $02, $A2, $06, $AD, $B0, $01, $95, $7B, $AD, $B1, $01, $95, $7C, $A6, $24 ; CPU:$8D1F PRG:0D1F F0 02 A2 06 AD B0 01 95 7B AD B1 01 95 7C A6 24
.byte $BD, $7E, $8D, $85, $1B, $BD, $81, $8D, $8D, $B2, $01, $A9, $01, $8D, $B3, $01 ; CPU:$8D2F PRG:0D2F BD 7E 8D 85 1B BD 81 8D 8D B2 01 A9 01 8D B3 01
.byte $A5, $25, $85, $13, $A9, $0D, $85, $15, $20, $D5, $82, $A9, $00, $18, $65, $17 ; CPU:$8D3F PRG:0D3F A5 25 85 13 A9 0D 85 15 20 D5 82 A9 00 18 65 17
.byte $65, $1B, $8D, $B4, $01, $A9, $01, $8D, $B5, $01, $A9, $00, $8D, $B6, $01, $20 ; CPU:$8D4F PRG:0D4F 65 1B 8D B4 01 A9 01 8D B5 01 A9 00 8D B6 01 20
.byte $B1, $81, $E6, $24, $A6, $24, $E0, $03, $B0, $03, $4C, $DC, $8C, $E6, $25, $A5 ; CPU:$8D5F PRG:0D5F B1 81 E6 24 A6 24 E0 03 B0 03 4C DC 8C E6 25 A5
.byte $25, $C9, $0A, $B0, $03, $4C, $D8, $8C, $60, $27, $25, $2E, $25, $35, $25, $00 ; CPU:$8D6F PRG:0D6F 25 C9 0A B0 03 4C D8 8C 60 27 25 2E 25 35 25 00
.byte $03, $07, $03, $04, $06, $A6, $90, $F0, $07, $A5, $11, $85, $1D, $4C, $93, $8D ; CPU:$8D7F PRG:0D7F 03 07 03 04 06 A6 90 F0 07 A5 11 85 1D 4C 93 8D
.byte $A5, $11, $85, $1C, $85, $1E, $85, $13, $A9, $0D, $85, $15, $20, $D5, $82, $A5 ; CPU:$8D8F PRG:0D8F A5 11 85 1C 85 1E 85 13 A9 0D 85 15 20 D5 82 A5
.byte $17, $85, $22, $A6, $22, $E0, $75, $B0, $27, $A2, $08, $86, $11, $A5, $11, $85 ; CPU:$8D9F PRG:0D9F 17 85 22 A6 22 E0 75 B0 27 A2 08 86 11 A5 11 85
.byte $13, $A9, $0D, $85, $15, $20, $D5, $82, $A6, $17, $E4, $22, $90, $12, $A0, $00 ; CPU:$8DAF PRG:0DAF 13 A9 0D 85 15 20 D5 82 A6 17 E4 22 90 12 A0 00
.byte $BD, $00, $01, $9D, $0D, $01, $E8, $C8, $C0, $0D, $90, $F4, $C6, $11, $10, $DD ; CPU:$8DBF PRG:0DBF BD 00 01 9D 0D 01 E8 C8 C0 0D 90 F4 C6 11 10 DD
.byte $A2, $00, $A5, $90, $F0, $01, $E8, $A5, $22, $9D, $DF, $05, $AA, $A9, $FF, $9D ; CPU:$8DCF PRG:0DCF A2 00 A5 90 F0 01 E8 A5 22 9D DF 05 AA A9 FF 9D
.byte $00, $01, $E8, $9D, $00, $01, $E8, $9D, $00, $01, $E8, $A0, $00, $84, $1E, $B9 ; CPU:$8DDF PRG:0DDF 00 01 E8 9D 00 01 E8 9D 00 01 E8 A0 00 84 1E B9
.byte $90, $01, $D0, $08, $A5, $1E, $D0, $04, $A9, $FF, $D0, $08, $E6, $1E, $B9, $90 ; CPU:$8DEF PRG:0DEF 90 01 D0 08 A5 1E D0 04 A9 FF D0 08 E6 1E B9 90
.byte $01, $18, $69, $30, $9D, $00, $01, $E8, $C8, $C0, $04, $90, $E2, $A0, $00, $84 ; CPU:$8DFF PRG:0DFF 01 18 69 30 9D 00 01 E8 C8 C0 04 90 E2 A0 00 84
.byte $1E, $B9, $94, $01, $D0, $08, $A5, $1E, $D0, $04, $A9, $FF, $D0, $08, $E6, $1E ; CPU:$8E0F PRG:0E0F 1E B9 94 01 D0 08 A5 1E D0 04 A9 FF D0 08 E6 1E
.byte $B9, $94, $01, $18, $69, $30, $9D, $00, $01, $E8, $C8, $C0, $06, $90, $E2, $60 ; CPU:$8E1F PRG:0E1F B9 94 01 18 69 30 9D 00 01 E8 C8 C0 06 90 E2 60
.byte $01, $01, $85, $94, $FF ; CPU:$8E2F PRG:0E2F 01 01 85 94 FF
; -----------------------------------------------------------------------------
; Routine: CopyStackPage
; Global: Copies the stack page so the game can use it as scratch RAM.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CopyStackPage:
ldx #$00 ; CPU:$8E34 PRG:0E34 A2 00
; -----------------------------------------------------------------------------
; Routine: CopyStackPage_OnCarryClear
; Global: Branch target inside CopyStackPage: taken when the addition or subtraction did not carry.
; Local: Part of CopyStackPage.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CopyStackPage_OnCarryClear:
lda $9403,x ; CPU:$8E36 PRG:0E36 BD 03 94
sta $0100,x ; CPU:$8E39 PRG:0E39 9D 00 01
inx ; CPU:$8E3C PRG:0E3C E8
cpx #$82 ; CPU:$8E3D PRG:0E3D E0 82
bcc CopyStackPage_OnCarryClear ; CPU:$8E3F PRG:0E3F 90 F5
rts ; CPU:$8E41 PRG:0E41 60
; ---- data $8E42-$9083 (578 bytes) ----
.byte $A5, $6F, $F0, $09, $A0, $06, $85, $90, $A2, $01, $20, $55, $8E, $A2, $00, $A0 ; CPU:$8E42 PRG:0E42 A5 6F F0 09 A0 06 85 90 A2 01 20 55 8E A2 00 A0
.byte $00, $85, $90, $B5, $1C, $C9, $0A, $B0, $E6, $B5, $79, $C9, $03, $B0, $E0, $B5 ; CPU:$8E52 PRG:0E52 00 85 90 B5 1C C9 0A B0 E6 B5 79 C9 03 B0 E0 B5
.byte $8E, $F0, $0D, $B9, $7C, $00, $18, $69, $01, $99, $7C, $00, $A9, $00, $95, $8E ; CPU:$8E62 PRG:0E62 8E F0 0D B9 7C 00 18 69 01 99 7C 00 A9 00 95 8E
.byte $A5, $75, $29, $07, $D0, $1D, $A5, $75, $29, $08, $F0, $0D, $A9, $33, $99, $7F ; CPU:$8E72 PRG:0E72 A5 75 29 07 D0 1D A5 75 29 08 F0 0D A9 33 99 7F
.byte $00, $A9, $8E, $99, $80, $00, $4C, $95, $8E, $B5, $88, $99, $7F, $00, $B5, $8A ; CPU:$8E82 PRG:0E82 00 A9 8E 99 80 00 4C 95 8E B5 88 99 7F 00 B5 8A
.byte $99, $80, $00, $B5, $2A, $29, $80, $F0, $3B, $F6, $79, $F6, $8E, $B5, $88, $99 ; CPU:$8E92 PRG:0E92 99 80 00 B5 2A 29 80 F0 3B F6 79 F6 8E B5 88 99
.byte $7F, $00, $B5, $8A, $99, $80, $00, $A9, $85, $95, $88, $A9, $94, $95, $8A, $98 ; CPU:$8EA2 PRG:0EA2 7F 00 B5 8A 99 80 00 A9 85 95 88 A9 94 95 8A 98
.byte $48, $BD, $DF, $05, $18, $75, $79, $A8, $88, $B5, $8C, $18, $69, $41, $C9, $5B ; CPU:$8EB2 PRG:0EB2 48 BD DF 05 18 75 79 A8 88 B5 8C 18 69 41 C9 5B
.byte $D0, $02, $A9, $40, $99, $00, $01, $68, $A8, $A9, $00, $95, $8C, $A9, $05, $85 ; CPU:$8EC2 PRG:0EC2 D0 02 A9 40 99 00 01 68 A8 A9 00 95 8C A9 05 85
.byte $75, $4C, $2E, $8F, $B5, $2A, $29, $01, $F0, $1D, $F6, $88, $D0, $02, $F6, $8A ; CPU:$8ED2 PRG:0ED2 75 4C 2E 8F B5 2A 29 01 F0 1D F6 88 D0 02 F6 8A
.byte $F6, $8C, $B5, $8C, $C9, $1B, $90, $38, $A9, $85, $95, $88, $A9, $94, $95, $8A ; CPU:$8EE2 PRG:0EE2 F6 8C B5 8C C9 1B 90 38 A9 85 95 88 A9 94 95 8A
.byte $A9, $00, $95, $8C, $4C, $22, $8F, $B5, $2A, $29, $02, $F0, $23, $B5, $88, $38 ; CPU:$8EF2 PRG:0EF2 A9 00 95 8C 4C 22 8F B5 2A 29 02 F0 23 B5 88 38
.byte $E9, $01, $95, $88, $B0, $02, $D6, $8A, $D6, $8C, $10, $14, $A9, $1A, $95, $8C ; CPU:$8F02 PRG:0F02 E9 01 95 88 B0 02 D6 8A D6 8C 10 14 A9 1A 95 8C
.byte $A9, $85, $18, $69, $1A, $95, $88, $A9, $94, $69, $00, $95, $8A, $4C, $22, $8F ; CPU:$8F12 PRG:0F12 A9 85 18 69 1A 95 88 A9 94 69 00 95 8A 4C 22 8F
.byte $B5, $79, $C9, $03, $90, $06, $A9, $00, $8D, $B0, $01, $60, $A2, $00, $A5, $1C ; CPU:$8F22 PRG:0F22 B5 79 C9 03 90 06 A9 00 8D B0 01 60 A2 00 A5 1C
.byte $C9, $0A, $B0, $0B, $B5, $7B, $9D, $B0, $01, $E8, $E0, $0C, $90, $F6, $60, $A0 ; CPU:$8F32 PRG:0F32 C9 0A B0 0B B5 7B 9D B0 01 E8 E0 0C 90 F6 60 A0
.byte $06, $B9, $7B, $00, $9D, $B0, $01, $C8, $E8, $E0, $06, $90, $F4, $A9, $00, $9D ; CPU:$8F42 PRG:0F42 06 B9 7B 00 9D B0 01 C8 E8 E0 06 90 F4 A9 00 9D
.byte $B0, $01, $60, $A5, $6C, $D0, $36, $E6, $6C, $A9, $02, $20, $88, $81, $20, $28 ; CPU:$8F52 PRG:0F52 B0 01 60 A5 6C D0 36 E6 6C A9 02 20 88 81 20 28
.byte $92, $A2, $00, $20, $84, $90, $A9, $03, $85, $2E, $A9, $00, $20, $04, $80, $A9 ; CPU:$8F62 PRG:0F62 92 A2 00 20 84 90 A9 03 85 2E A9 00 20 04 80 A9
.byte $12, $85, $2E, $A9, $00, $20, $04, $80, $A5, $01, $29, $E4, $09, $00, $85, $01 ; CPU:$8F72 PRG:0F72 12 85 2E A9 00 20 04 80 A5 01 29 E4 09 00 85 01
.byte $A9, $00, $85, $76, $8D, $DB, $03, $A9, $05, $20, $63, $86, $60, $A5, $6C, $C9 ; CPU:$8F82 PRG:0F82 A9 00 85 76 8D DB 03 A9 05 20 63 86 60 A5 6C C9
.byte $01, $D0, $12, $A5, $31, $29, $07, $D0, $0B, $20, $09, $90, $A5, $76, $C9, $05 ; CPU:$8F92 PRG:0F92 01 D0 12 A5 31 29 07 D0 0B 20 09 90 A5 76 C9 05
.byte $90, $02, $E6, $6C, $60, $A5, $6C, $C9, $02, $D0, $18, $A5, $31, $29, $3F, $D0 ; CPU:$8FA2 PRG:0FA2 90 02 E6 6C 60 A5 6C C9 02 D0 18 A5 31 29 3F D0
.byte $11, $E6, $76, $A5, $76, $C9, $0A, $90, $09, $E6, $6C, $A9, $03, $8D, $DB, $03 ; CPU:$8FB2 PRG:0FB2 11 E6 76 A5 76 C9 0A 90 09 E6 6C A9 03 8D DB 03
.byte $85, $76, $60, $C9, $03, $D0, $20, $A5, $31, $29, $07, $D0, $19, $20, $09, $90 ; CPU:$8FC2 PRG:0FC2 85 76 60 C9 03 D0 20 A5 31 29 07 D0 19 20 09 90
.byte $A5, $76, $10, $12, $E6, $6C, $A9, $00, $8D, $DB, $03, $85, $76, $A5, $01, $09 ; CPU:$8FD2 PRG:0FD2 A5 76 10 12 E6 6C A9 00 8D DB 03 85 76 A5 01 09
.byte $01, $85, $01, $8D, $DE, $03, $60, $C9, $04, $D0, $12, $A5, $31, $29, $07, $D0 ; CPU:$8FE2 PRG:0FE2 01 85 01 8D DE 03 60 C9 04 D0 12 A5 31 29 07 D0
.byte $0B, $20, $09, $90, $A5, $76, $C9, $05, $90, $02, $E6, $6C, $60, $A5, $2A, $29 ; CPU:$8FF2 PRG:0FF2 0B 20 09 90 A5 76 C9 05 90 02 E6 6C 60 A5 2A 29
.byte $10, $F0, $03, $4C, $36, $80, $60, $A2, $00, $BD, $36, $90, $9D, $B0, $01, $E8 ; CPU:$9002 PRG:1002 10 F0 03 4C 36 80 60 A2 00 BD 36 90 9D B0 01 E8
.byte $E0, $04, $90, $F5, $A5, $76, $0A, $A8, $B9, $3A, $90, $9D, $B0, $01, $B9, $3B ; CPU:$9012 PRG:1012 E0 04 90 F5 A5 76 0A A8 B9 3A 90 9D B0 01 B9 3B
.byte $90, $9D, $B1, $01, $A9, $00, $9D, $B2, $01, $AD, $DB, $03, $D0, $03, $E6, $76 ; CPU:$9022 PRG:1022 90 9D B1 01 A9 00 9D B2 01 AD DB 03 D0 03 E6 76
.byte $60, $C6, $76, $60, $3F, $00, $10, $01, $0F, $A7, $44, $90, $54, $90, $64, $90 ; CPU:$9032 PRG:1032 60 C6 76 60 3F 00 10 01 0F A7 44 90 54 90 64 90
.byte $74, $90, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00, $00, $00, $FF, $00 ; CPU:$9042 PRG:1042 74 90 FF 00 00 00 FF 00 00 00 FF 00 00 00 FF 00
.byte $00, $00, $FF, $10, $10, $10, $FF, $10, $10, $10, $FF, $10, $10, $10, $FF, $10 ; CPU:$9052 PRG:1052 00 00 FF 10 10 10 FF 10 10 10 FF 10 10 10 FF 10
.byte $10, $10, $FF, $20, $20, $20, $FF, $20, $20, $20, $FF, $20, $20, $20, $FF, $20 ; CPU:$9062 PRG:1062 10 10 FF 20 20 20 FF 20 20 20 FF 20 20 20 FF 20
.byte $20, $20, $FF, $30, $30, $30, $FF, $30, $30, $30, $FF, $30, $30, $30, $FF, $30 ; CPU:$9072 PRG:1072 20 20 FF 30 30 30 FF 30 30 30 FF 30 30 30 FF 30
.byte $30, $30 ; CPU:$9082 PRG:1082 30 30
; -----------------------------------------------------------------------------
; Routine: Sub_9084
; Global: Branch target inside Sub: taken when 9084.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_9084:
jsr SwitchPrgBankKeepA ; CPU:$9084 PRG:1084 20 80 FF
lda $9090,x ; CPU:$9087 PRG:1087 BD 90 90
sta $9090,x ; CPU:$908A PRG:108A 9D 90 90
sta PrgBankNumber ; CPU:$908D PRG:108D 85 2C
rts ; CPU:$908F PRG:108F 60
; ---- data $9090-$90A8 (25 bytes) ----
; referenced by `lda $9090,x` at $9087 (operand $9090 falls inside this region)
; referenced by `sta $9090,x` at $908A (operand $9090 falls inside this region)
.byte $00, $01, $02, $03, $04, $05, $06, $07, $A2, $00, $BD, $36, $93, $C9, $FF, $F0 ; CPU:$9090 PRG:1090 00 01 02 03 04 05 06 07 A2 00 BD 36 93 C9 FF F0
.byte $07, $9D, $08, $02, $E8, $4C, $9A, $90, $60 ; CPU:$90A0 PRG:10A0 07 9D 08 02 E8 4C 9A 90 60
; -----------------------------------------------------------------------------
; Routine: ReadPlayerInput
; Global: Turns the raw button bits into the player's movement.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ReadPlayerInput:
lda NewButton1 ; CPU:$90A9 PRG:10A9 A5 2A
and #$84 ; CPU:$90AB PRG:10AB 29 84
beq ReadPlayerInput_Loop ; CPU:$90AD PRG:10AD F0 0C
inc Zp74 ; CPU:$90AF PRG:10AF E6 74
lda Zp74 ; CPU:$90B1 PRG:10B1 A5 74
cmp #$05 ; CPU:$90B3 PRG:10B3 C9 05
bcc ReadPlayerInput_Loop ; CPU:$90B5 PRG:10B5 90 04
lda #$00 ; CPU:$90B7 PRG:10B7 A9 00
sta Zp74 ; CPU:$90B9 PRG:10B9 85 74
; -----------------------------------------------------------------------------
; Routine: ReadPlayerInput_Loop
; Global: Branch target inside ReadPlayerInput: taken when the loop repeats.
; Local: Part of ReadPlayerInput.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ReadPlayerInput_Loop:
lda NewButton1 ; CPU:$90BB PRG:10BB A5 2A
and #$48 ; CPU:$90BD PRG:10BD 29 48
beq ReadPlayerInput_Loop2 ; CPU:$90BF PRG:10BF F0 08
dec Zp74 ; CPU:$90C1 PRG:10C1 C6 74
bpl ReadPlayerInput_Loop2 ; CPU:$90C3 PRG:10C3 10 04
lda #$04 ; CPU:$90C5 PRG:10C5 A9 04
sta Zp74 ; CPU:$90C7 PRG:10C7 85 74
; -----------------------------------------------------------------------------
; Routine: ReadPlayerInput_Loop2
; Global: Branch target inside ReadPlayerInput: taken when Loop2.
; Local: Part of ReadPlayerInput.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ReadPlayerInput_Loop2:
lda Zp71 ; CPU:$90C9 PRG:10C9 A5 71
cmp #$02 ; CPU:$90CB PRG:10CB C9 02
bne ReadPlayerInput_Loop3 ; CPU:$90CD PRG:10CD D0 0A
lda #$00 ; CPU:$90CF PRG:10CF A9 00
sta Zp72 ; CPU:$90D1 PRG:10D1 85 72
ldx Zp74 ; CPU:$90D3 PRG:10D3 A6 74
cpx #$03 ; CPU:$90D5 PRG:10D5 E0 03
beq ReadPlayerInput_Loop5 ; CPU:$90D7 PRG:10D7 F0 1D
; -----------------------------------------------------------------------------
; Routine: ReadPlayerInput_Loop3
; Global: Branch target inside ReadPlayerInput: taken when Loop3.
; Local: Part of ReadPlayerInput.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ReadPlayerInput_Loop3:
ldx Zp74 ; CPU:$90D9 PRG:10D9 A6 74
lda NewButton1 ; CPU:$90DB PRG:10DB A5 2A
and #$01 ; CPU:$90DD PRG:10DD 29 01
beq ReadPlayerInput_Loop4 ; CPU:$90DF PRG:10DF F0 09
lda Zp6F,x ; CPU:$90E1 PRG:10E1 B5 6F
cmp $90F7,x ; CPU:$90E3 PRG:10E3 DD F7 90
bcs ReadPlayerInput_Loop4 ; CPU:$90E6 PRG:10E6 B0 02
inc Zp6F,x ; CPU:$90E8 PRG:10E8 F6 6F
; -----------------------------------------------------------------------------
; Routine: ReadPlayerInput_Loop4
; Global: Branch target inside ReadPlayerInput: taken when Loop4.
; Local: Part of ReadPlayerInput.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ReadPlayerInput_Loop4:
lda NewButton1 ; CPU:$90EA PRG:10EA A5 2A
and #$02 ; CPU:$90EC PRG:10EC 29 02
beq ReadPlayerInput_Loop5 ; CPU:$90EE PRG:10EE F0 06
lda Zp6F,x ; CPU:$90F0 PRG:10F0 B5 6F
beq ReadPlayerInput_Loop5 ; CPU:$90F2 PRG:10F2 F0 02
dec Zp6F,x ; CPU:$90F4 PRG:10F4 D6 6F
; -----------------------------------------------------------------------------
; Routine: ReadPlayerInput_Loop5
; Global: Branch target inside ReadPlayerInput: taken when Loop5.
; Local: Part of ReadPlayerInput.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ReadPlayerInput_Loop5:
rts ; CPU:$90F6 PRG:10F6 60
; ---- data $90F7-$90FB (5 bytes) ----
; referenced by `cmp $90F7,x` at $90E3 (operand $90F7 falls inside this region)
.byte $01, $03, $02, $04, $02 ; CPU:$90F7 PRG:10F7 01 03 02 04 02
; -----------------------------------------------------------------------------
; Routine: Sub_90FC
; Global: Branch target inside Sub: taken when 90FC.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_90FC:
ldy #$00 ; CPU:$90FC PRG:10FC A0 00
lda Zp6F ; CPU:$90FE PRG:10FE A5 6F
asl a ; CPU:$9100 PRG:1100 0A
tax ; CPU:$9101 PRG:1101 AA
lda $923A,x ; CPU:$9102 PRG:1102 BD 3A 92
sta Zp11 ; CPU:$9105 PRG:1105 85 11
lda $923B,x ; CPU:$9107 PRG:1107 BD 3B 92
sta Zp12 ; CPU:$910A PRG:110A 85 12
lda $929A,x ; CPU:$910C PRG:110C BD 9A 92
sta $04E2,y ; CPU:$910F PRG:110F 99 E2 04
iny ; CPU:$9112 PRG:1112 C8
lda $929B,x ; CPU:$9113 PRG:1113 BD 9B 92
sta $04E2,y ; CPU:$9116 PRG:1116 99 E2 04
iny ; CPU:$9119 PRG:1119 C8
lda Zp70 ; CPU:$911A PRG:111A A5 70
asl a ; CPU:$911C PRG:111C 0A
tax ; CPU:$911D PRG:111D AA
lda $923E,x ; CPU:$911E PRG:111E BD 3E 92
sta Zp13 ; CPU:$9121 PRG:1121 85 13
lda $923F,x ; CPU:$9123 PRG:1123 BD 3F 92
sta Zp14 ; CPU:$9126 PRG:1126 85 14
lda $929E,x ; CPU:$9128 PRG:1128 BD 9E 92
sta $04E2,y ; CPU:$912B PRG:112B 99 E2 04
iny ; CPU:$912E PRG:112E C8
lda $929F,x ; CPU:$912F PRG:112F BD 9F 92
sta $04E2,y ; CPU:$9132 PRG:1132 99 E2 04
iny ; CPU:$9135 PRG:1135 C8
lda Zp71 ; CPU:$9136 PRG:1136 A5 71
asl a ; CPU:$9138 PRG:1138 0A
tax ; CPU:$9139 PRG:1139 AA
lda $9246,x ; CPU:$913A PRG:113A BD 46 92
sta Zp15 ; CPU:$913D PRG:113D 85 15
lda $9247,x ; CPU:$913F PRG:113F BD 47 92
sta Zp16 ; CPU:$9142 PRG:1142 85 16
lda $92A6,x ; CPU:$9144 PRG:1144 BD A6 92
sta $04E2,y ; CPU:$9147 PRG:1147 99 E2 04
iny ; CPU:$914A PRG:114A C8
lda $92A7,x ; CPU:$914B PRG:114B BD A7 92
sta $04E2,y ; CPU:$914E PRG:114E 99 E2 04
iny ; CPU:$9151 PRG:1151 C8
ldx #$00 ; CPU:$9152 PRG:1152 A2 00
lda $924C,x ; CPU:$9154 PRG:1154 BD 4C 92
sta Zp17 ; CPU:$9157 PRG:1157 85 17
lda $924D,x ; CPU:$9159 PRG:1159 BD 4D 92
sta Zp18 ; CPU:$915C PRG:115C 85 18
lda Zp17 ; CPU:$915E PRG:115E A5 17
clc ; CPU:$9160 PRG:1160 18
adc Zp72 ; CPU:$9161 PRG:1161 65 72
sta Zp17 ; CPU:$9163 PRG:1163 85 17
lda Zp18 ; CPU:$9165 PRG:1165 A5 18
adc #$00 ; CPU:$9167 PRG:1167 69 00
sta Zp18 ; CPU:$9169 PRG:1169 85 18
lda Zp72 ; CPU:$916B PRG:116B A5 72
asl a ; CPU:$916D PRG:116D 0A
sta Zp21 ; CPU:$916E PRG:116E 85 21
lda $92B2,x ; CPU:$9170 PRG:1170 BD B2 92
sta $04E2,y ; CPU:$9173 PRG:1173 99 E2 04
lda $92B3,x ; CPU:$9176 PRG:1176 BD B3 92
sta $04E3,y ; CPU:$9179 PRG:1179 99 E3 04
lda $04E2,y ; CPU:$917C PRG:117C B9 E2 04
clc ; CPU:$917F PRG:117F 18
adc Zp21 ; CPU:$9180 PRG:1180 65 21
sta $04E2,y ; CPU:$9182 PRG:1182 99 E2 04
lda $04E3,y ; CPU:$9185 PRG:1185 B9 E3 04
adc #$00 ; CPU:$9188 PRG:1188 69 00
sta $04E3,y ; CPU:$918A PRG:118A 99 E3 04
iny ; CPU:$918D PRG:118D C8
iny ; CPU:$918E PRG:118E C8
lda Zp73 ; CPU:$918F PRG:118F A5 73
asl a ; CPU:$9191 PRG:1191 0A
tax ; CPU:$9192 PRG:1192 AA
lda $924E,x ; CPU:$9193 PRG:1193 BD 4E 92
sta Zp19 ; CPU:$9196 PRG:1196 85 19
lda $924F,x ; CPU:$9198 PRG:1198 BD 4F 92
sta Zp1A ; CPU:$919B PRG:119B 85 1A
lda $92AC,x ; CPU:$919D PRG:119D BD AC 92
sta $04E2,y ; CPU:$91A0 PRG:11A0 99 E2 04
iny ; CPU:$91A3 PRG:11A3 C8
lda $92AD,x ; CPU:$91A4 PRG:11A4 BD AD 92
sta $04E2,y ; CPU:$91A7 PRG:11A7 99 E2 04
iny ; CPU:$91AA PRG:11AA C8
rts ; CPU:$91AB PRG:11AB 60
; -----------------------------------------------------------------------------
; Routine: BuildOamBuffer
; Global: Fills the sprite shadow from the actor and bubble tables.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
BuildOamBuffer:
lda #$00 ; CPU:$91AC PRG:11AC A9 00
sta Zp21 ; CPU:$91AE PRG:11AE 85 21
lda #$14 ; CPU:$91B0 PRG:11B0 A9 14
sta Zp1B ; CPU:$91B2 PRG:11B2 85 1B
; -----------------------------------------------------------------------------
; Routine: BuildOamBuffer_OnCarryClear
; Global: Branch target inside BuildOamBuffer: taken when the addition or subtraction did not carry.
; Local: Part of BuildOamBuffer.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
BuildOamBuffer_OnCarryClear:
ldx Zp21 ; CPU:$91B4 PRG:11B4 A6 21
lda $9234,x ; CPU:$91B6 PRG:11B6 BD 34 92
sta Zp20 ; CPU:$91B9 PRG:11B9 85 20
sta Zp23 ; CPU:$91BB PRG:11BB 85 23
txa ; CPU:$91BD PRG:11BD 8A
asl a ; CPU:$91BE PRG:11BE 0A
tax ; CPU:$91BF PRG:11BF AA
lda Zp11,x ; CPU:$91C0 PRG:11C0 B5 11
sta ControllerBits ; CPU:$91C2 PRG:11C2 85 05
lda Zp12,x ; CPU:$91C4 PRG:11C4 B5 12
sta Zp06 ; CPU:$91C6 PRG:11C6 85 06
lda $04E2,x ; CPU:$91C8 PRG:11C8 BD E2 04
sta ControllerByte ; CPU:$91CB PRG:11CB 85 07
lda $04E3,x ; CPU:$91CD PRG:11CD BD E3 04
sta Zp08 ; CPU:$91D0 PRG:11D0 85 08
lda Zp1B ; CPU:$91D2 PRG:11D2 A5 1B
pha ; CPU:$91D4 PRG:11D4 48
ldy #$00 ; CPU:$91D5 PRG:11D5 A0 00
; -----------------------------------------------------------------------------
; Routine: BuildOamBuffer_OnNonzero
; Global: Branch target inside BuildOamBuffer: taken when the tested value is not zero.
; Local: Part of BuildOamBuffer.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
BuildOamBuffer_OnNonzero:
ldx Zp1B ; CPU:$91D7 PRG:11D7 A6 1B
lda (ControllerBits),y ; CPU:$91D9 PRG:11D9 B1 05
sta $0201,x ; CPU:$91DB PRG:11DB 9D 01 02
inc Zp1B ; CPU:$91DE PRG:11DE E6 1B
inc Zp1B ; CPU:$91E0 PRG:11E0 E6 1B
inc Zp1B ; CPU:$91E2 PRG:11E2 E6 1B
inc Zp1B ; CPU:$91E4 PRG:11E4 E6 1B
iny ; CPU:$91E6 PRG:11E6 C8
dec Zp20 ; CPU:$91E7 PRG:11E7 C6 20
bne BuildOamBuffer_OnNonzero ; CPU:$91E9 PRG:11E9 D0 EC
pla ; CPU:$91EB PRG:11EB 68
sta Zp1B ; CPU:$91EC PRG:11EC 85 1B
ldy #$00 ; CPU:$91EE PRG:11EE A0 00
; -----------------------------------------------------------------------------
; Routine: BuildOamBuffer_OnNonzero2
; Global: Branch target inside BuildOamBuffer: taken when OnNonzero2.
; Local: Part of BuildOamBuffer.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
BuildOamBuffer_OnNonzero2:
ldx Zp1B ; CPU:$91F0 PRG:11F0 A6 1B
lda (ControllerByte),y ; CPU:$91F2 PRG:11F2 B1 07
sta $0200,x ; CPU:$91F4 PRG:11F4 9D 00 02
iny ; CPU:$91F7 PRG:11F7 C8
lda (ControllerByte),y ; CPU:$91F8 PRG:11F8 B1 07
sta $0203,x ; CPU:$91FA PRG:11FA 9D 03 02
lda Zp74 ; CPU:$91FD PRG:11FD A5 74
cmp Zp21 ; CPU:$91FF PRG:11FF C5 21
bne BuildOamBuffer_Loop ; CPU:$9201 PRG:1201 D0 0A
lda Zp75 ; CPU:$9203 PRG:1203 A5 75
and #$04 ; CPU:$9205 PRG:1205 29 04
bne BuildOamBuffer_Loop ; CPU:$9207 PRG:1207 D0 04
lda #$00 ; CPU:$9209 PRG:1209 A9 00
beq BuildOamBuffer_Loop2 ; CPU:$920B PRG:120B F0 02
; -----------------------------------------------------------------------------
; Routine: BuildOamBuffer_Loop
; Global: Branch target inside BuildOamBuffer: taken when the loop repeats.
; Local: Part of BuildOamBuffer.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
BuildOamBuffer_Loop:
lda #$03 ; CPU:$920D PRG:120D A9 03
; -----------------------------------------------------------------------------
; Routine: BuildOamBuffer_Loop2
; Global: Branch target inside BuildOamBuffer: taken when Loop2.
; Local: Part of BuildOamBuffer.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
BuildOamBuffer_Loop2:
sta $0202,x ; CPU:$920F PRG:120F 9D 02 02
inc Zp1B ; CPU:$9212 PRG:1212 E6 1B
inc Zp1B ; CPU:$9214 PRG:1214 E6 1B
inc Zp1B ; CPU:$9216 PRG:1216 E6 1B
inc Zp1B ; CPU:$9218 PRG:1218 E6 1B
iny ; CPU:$921A PRG:121A C8
dec Zp23 ; CPU:$921B PRG:121B C6 23
bne BuildOamBuffer_OnNonzero2 ; CPU:$921D PRG:121D D0 D1
inc Zp21 ; CPU:$921F PRG:121F E6 21
ldx Zp21 ; CPU:$9221 PRG:1221 A6 21
cpx #$05 ; CPU:$9223 PRG:1223 E0 05
bcc BuildOamBuffer_OnCarryClear; CPU:$9225 PRG:1225 90 8D
rts ; CPU:$9227 PRG:1227 60
; -----------------------------------------------------------------------------
; Routine: ClearSpriteSlots
; Global: Empties the sixteen sprite slots.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ClearSpriteSlots:
ldx #$00 ; CPU:$9228 PRG:1228 A2 00
txa ; CPU:$922A PRG:122A 8A
; -----------------------------------------------------------------------------
; Routine: ClearSpriteSlots_OnNonzero
; Global: Branch target inside ClearSpriteSlots: taken when the tested value is not zero.
; Local: Part of ClearSpriteSlots.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ClearSpriteSlots_OnNonzero:
sta $0358,x ; CPU:$922B PRG:122B 9D 58 03
inx ; CPU:$922E PRG:122E E8
cpx #$10 ; CPU:$922F PRG:122F E0 10
bne ClearSpriteSlots_OnNonzero ; CPU:$9231 PRG:1231 D0 F8
rts ; CPU:$9233 PRG:1233 60
; ---- data $9234-$9620 (1005 bytes) ----
; referenced by `lda $9403,x` at $8E36 (operand $9403 falls inside this region)
; referenced by `lda $923A,x` at $9102 (operand $923A falls inside this region)
; referenced by `lda $923B,x` at $9107 (operand $923B falls inside this region)
; referenced by `lda $929A,x` at $910C (operand $929A falls inside this region)
; referenced by `lda $929B,x` at $9113 (operand $929B falls inside this region)
; referenced by `lda $923E,x` at $911E (operand $923E falls inside this region)
; ... and 16 further references from decoded code
.byte $08, $01, $07, $01, $05, $05, $54, $92, $5C, $92, $64, $92, $65, $92, $66, $92 ; CPU:$9234 PRG:1234 08 01 07 01 05 05 54 92 5C 92 64 92 65 92 66 92
.byte $67, $92, $68, $92, $6F, $92, $76, $92, $7D, $92, $86, $92, $8B, $92, $90, $92 ; CPU:$9244 PRG:1244 67 92 68 92 6F 92 76 92 7D 92 86 92 8B 92 90 92
.byte $31, $50, $4C, $41, $59, $45, $52, $FF, $32, $50, $4C, $41, $59, $45, $52, $53 ; CPU:$9254 PRG:1254 31 50 4C 41 59 45 52 FF 32 50 4C 41 59 45 52 53
.byte $31, $32, $33, $34, $45, $41, $53, $59, $FF, $FF, $FF, $48, $41, $52, $44, $FF ; CPU:$9264 PRG:1264 31 32 33 34 45 41 53 59 FF FF FF 48 41 52 44 FF
.byte $FF, $FF, $53, $54, $41, $43, $4B, $45, $44, $31, $32, $33, $34, $35, $36, $37 ; CPU:$9274 PRG:1274 FF FF 53 54 41 43 4B 45 44 31 32 33 34 35 36 37
.byte $38, $39, $54, $55, $4E, $45, $31, $54, $55, $4E, $45, $32, $54, $55, $4E, $45 ; CPU:$9284 PRG:1284 38 39 54 55 4E 45 31 54 55 4E 45 32 54 55 4E 45
.byte $33, $53, $54, $41, $52, $54, $B4, $92, $C4, $92, $D4, $92, $D6, $92, $D8, $92 ; CPU:$9294 PRG:1294 33 53 54 41 52 54 B4 92 C4 92 D4 92 D6 92 D8 92
.byte $DA, $92, $DC, $92, $E4, $92, $EC, $92, $04, $93, $0E, $93, $18, $93, $FA, $92 ; CPU:$92A4 PRG:12A4 DA 92 DC 92 E4 92 EC 92 04 93 0E 93 18 93 FA 92
.byte $38, $30, $38, $40, $38, $48, $38, $50, $38, $58, $38, $60, $38, $68, $38, $70 ; CPU:$92B4 PRG:12B4 38 30 38 40 38 48 38 50 38 58 38 60 38 68 38 70
.byte $38, $88, $38, $98, $38, $A0, $38, $A8, $38, $B0, $38, $B8, $38, $C0, $38, $C8 ; CPU:$92C4 PRG:12C4 38 88 38 98 38 A0 38 A8 38 B0 38 B8 38 C0 38 C8
.byte $58, $70, $58, $80, $58, $90, $58, $A0, $78, $30, $78, $38, $78, $40, $78, $48 ; CPU:$92D4 PRG:12D4 58 70 58 80 58 90 58 A0 78 30 78 38 78 40 78 48
.byte $78, $68, $78, $70, $78, $78, $78, $80, $78, $98, $78, $A0, $78, $A8, $78, $B0 ; CPU:$92E4 PRG:12E4 78 68 78 70 78 78 78 80 78 98 78 A0 78 A8 78 B0
.byte $78, $B8, $78, $C0, $78, $C8, $98, $70, $98, $80, $98, $90, $98, $A0, $98, $B0 ; CPU:$92F4 PRG:12F4 78 B8 78 C0 78 C8 98 70 98 80 98 90 98 A0 98 B0
.byte $B8, $30, $B8, $38, $B8, $40, $B8, $48, $B8, $50, $B8, $70, $B8, $78, $B8, $80 ; CPU:$9304 PRG:1304 B8 30 B8 38 B8 40 B8 48 B8 50 B8 70 B8 78 B8 80
.byte $B8, $88, $B8, $90, $B8, $B0, $B8, $B8, $B8, $C0, $B8, $C8, $B8, $D0, $D8, $53 ; CPU:$9314 PRG:1314 B8 88 B8 90 B8 B0 B8 B8 B8 C0 B8 C8 B8 D0 D8 53
.byte $03, $6C, $D8, $54, $03, $74, $D8, $41, $03, $7C, $D8, $52, $03, $84, $D8, $54 ; CPU:$9324 PRG:1324 03 6C D8 54 03 74 D8 41 03 7C D8 52 03 84 D8 54
.byte $03, $8C, $46, $8D, $23, $40, $4E, $BE, $23, $40, $56, $B3, $23, $40, $5E, $B4 ; CPU:$9334 PRG:1334 03 8C 46 8D 23 40 4E BE 23 40 56 B3 23 40 5E B4
.byte $03, $40, $66, $B5, $03, $40, $6E, $90, $03, $40, $76, $91, $03, $40, $7E, $94 ; CPU:$9344 PRG:1344 03 40 66 B5 03 40 6E 90 03 40 76 91 03 40 7E 94
.byte $03, $40, $36, $8C, $23, $48, $3E, $95, $23, $48, $46, $96, $23, $48, $4E, $92 ; CPU:$9354 PRG:1354 03 40 36 8C 23 48 3E 95 23 48 46 96 23 48 4E 92
.byte $03, $48, $56, $93, $03, $48, $5E, $97, $03, $48, $66, $99, $03, $48, $6E, $9A ; CPU:$9364 PRG:1364 03 48 56 93 03 48 5E 97 03 48 66 99 03 48 6E 9A
.byte $03, $48, $76, $9C, $03, $48, $7E, $9D, $03, $48, $86, $98, $03, $48, $2E, $8B ; CPU:$9374 PRG:1374 03 48 76 9C 03 48 7E 9D 03 48 86 98 03 48 2E 8B
.byte $23, $50, $36, $9B, $23, $50, $3E, $9E, $23, $50, $46, $9F, $03, $50, $76, $A0 ; CPU:$9384 PRG:1384 23 50 36 9B 23 50 3E 9E 23 50 46 9F 03 50 76 A0
.byte $03, $50, $7E, $A1, $03, $50, $86, $A2, $03, $50, $8E, $A3, $03, $50, $F8, $8E ; CPU:$9394 PRG:1394 03 50 7E A1 03 50 86 A2 03 50 8E A3 03 50 F8 8E
.byte $03, $58, $2E, $A4, $23, $58, $7E, $A5, $03, $58, $86, $A6, $03, $58, $8E, $A8 ; CPU:$93A4 PRG:13A4 03 58 2E A4 23 58 7E A5 03 58 86 A6 03 58 8E A8
.byte $03, $58, $96, $A9, $03, $58, $8E, $AA, $03, $60, $97, $AB, $03, $60, $9E, $AC ; CPU:$93B4 PRG:13B4 03 58 96 A9 03 58 8E AA 03 60 97 AB 03 60 9E AC
.byte $03, $60, $96, $AE, $03, $68, $9E, $AD, $03, $68, $9E, $AF, $03, $70, $4E, $B0 ; CPU:$93C4 PRG:13C4 03 60 96 AE 03 68 9E AD 03 68 9E AF 03 70 4E B0
.byte $03, $AA, $56, $B1, $03, $AA, $5E, $A7, $03, $AA, $66, $B2, $03, $AA, $6E, $B6 ; CPU:$93D4 PRG:13D4 03 AA 56 B1 03 AA 5E A7 03 AA 66 B2 03 AA 6E B6
.byte $03, $AA, $76, $B7, $03, $AA, $7E, $B8, $03, $AA, $56, $BD, $03, $B2, $5E, $B9 ; CPU:$93E4 PRG:13E4 03 AA 76 B7 03 AA 7E B8 03 AA 56 BD 03 B2 5E B9
.byte $03, $B2, $66, $BA, $03, $B2, $6E, $BB, $03, $B2, $76, $BC, $03, $B2, $FF, $54 ; CPU:$93F4 PRG:13F4 03 B2 66 BA 03 B2 6E BB 03 B2 76 BC 03 B2 FF 54
.byte $4F, $4D, $31, $30, $30, $30, $FF, $32, $30, $30, $30, $30, $4A, $4F, $45, $FF ; CPU:$9404 PRG:1404 4F 4D 31 30 30 30 FF 32 30 30 30 30 4A 4F 45 FF
.byte $35, $30, $30, $FF, $31, $30, $30, $30, $30, $54, $52, $49, $FF, $34, $35, $30 ; CPU:$9414 PRG:1414 35 30 30 FF 31 30 30 30 30 54 52 49 FF 34 35 30
.byte $FF, $FF, $39, $30, $30, $30, $48, $40, $59, $FF, $34, $30, $30, $FF, $FF, $38 ; CPU:$9424 PRG:1424 FF FF 39 30 30 30 48 40 59 FF 34 30 30 FF FF 38
.byte $30, $30, $30, $4A, $55, $4E, $FF, $33, $35, $30, $FF, $FF, $37, $30, $30, $30 ; CPU:$9434 PRG:1434 30 30 30 4A 55 4E FF 33 35 30 FF FF 37 30 30 30
.byte $4A, $41, $43, $FF, $33, $30, $30, $FF, $FF, $36, $30, $30, $30, $44, $40, $48 ; CPU:$9444 PRG:1444 4A 41 43 FF 33 30 30 FF FF 36 30 30 30 44 40 48
.byte $FF, $32, $35, $30, $FF, $FF, $35, $30, $30, $30, $4A, $49, $4E, $FF, $32, $30 ; CPU:$9454 PRG:1454 FF 32 35 30 FF FF 35 30 30 30 4A 49 4E FF 32 30
.byte $30, $FF, $FF, $34, $30, $30, $30, $42, $4F, $42, $FF, $31, $35, $30, $FF, $FF ; CPU:$9464 PRG:1464 30 FF FF 34 30 30 30 42 4F 42 FF 31 35 30 FF FF
.byte $33, $30, $30, $30, $4B, $41, $54, $FF, $31, $30, $30, $FF, $FF, $32, $30, $30 ; CPU:$9474 PRG:1474 33 30 30 30 4B 41 54 FF 31 30 30 FF FF 32 30 30
.byte $30, $41, $42, $43, $44, $45, $46, $47, $48, $49, $4A, $4B, $4C, $4D, $4E, $4F ; CPU:$9484 PRG:1484 30 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F
.byte $50, $51, $52, $53, $54, $55, $56, $57, $58, $59, $5A, $40, $EF, $FF, $F1, $F2 ; CPU:$9494 PRG:1494 50 51 52 53 54 55 56 57 58 59 5A 40 EF FF F1 F2
.byte $F2, $F1, $FF, $D7, $DF, $DC, $FF, $E8, $E2, $D7, $DE, $E0, $E1, $E3, $DB, $E7 ; CPU:$94A4 PRG:14A4 F2 F1 FF D7 DF DC FF E8 E2 D7 DE E0 E1 E3 DB E7
.byte $E5, $EA, $DD, $E6, $00, $A5, $6C, $20, $73, $81, $CA, $94, $0E, $95, $1D, $95 ; CPU:$94B4 PRG:14B4 E5 EA DD E6 00 A5 6C 20 73 81 CA 94 0E 95 1D 95
.byte $2C, $95, $64, $95, $81, $95, $E6, $97, $A5, $97, $C9, $80, $90, $3B, $A9, $03 ; CPU:$94C4 PRG:14C4 2C 95 64 95 81 95 E6 97 A5 97 C9 80 90 3B A9 03
.byte $20, $04, $80, $A9, $01, $8D, $DD, $00, $A9, $07, $8D, $DE, $00, $A9, $05, $20 ; CPU:$94D4 PRG:14D4 20 04 80 A9 01 8D DD 00 A9 07 8D DE 00 A9 05 20
.byte $04, $80, $A9, $00, $8D, $DD, $00, $85, $97, $A5, $95, $D0, $03, $20, $4E, $C0 ; CPU:$94E4 PRG:14E4 04 80 A9 00 8D DD 00 85 97 A5 95 D0 03 20 4E C0
.byte $A5, $96, $D0, $03, $20, $B4, $AE, $20, $88, $81, $20, $28, $92, $E6, $6C, $A5 ; CPU:$94F4 PRG:14F4 A5 96 D0 03 20 B4 AE 20 88 81 20 28 92 E6 6C A5
.byte $71, $C9, $01, $D0, $04, $A9, $04, $85, $6C, $60, $A5, $95, $F0, $03, $E6, $6C ; CPU:$9504 PRG:1504 71 C9 01 D0 04 A9 04 85 6C 60 A5 95 F0 03 E6 6C
.byte $60, $A9, $00, $85, $34, $20, $57, $C0, $60, $A5, $96, $F0, $03, $E6, $6C, $60 ; CPU:$9514 PRG:1514 60 A9 00 85 34 20 57 C0 60 A5 96 F0 03 E6 6C 60
.byte $A9, $01, $85, $34, $20, $BD, $AE, $60, $A2, $00, $A0, $00, $A5, $98, $F0, $02 ; CPU:$9524 PRG:1524 A9 01 85 34 20 BD AE 60 A2 00 A0 00 A5 98 F0 02
.byte $A2, $08, $BD, $54, $95, $99, $38, $03, $E8, $C8, $C0, $08, $90, $F4, $A9, $00 ; CPU:$9534 PRG:1534 A2 08 BD 54 95 99 38 03 E8 C8 C0 08 90 F4 A9 00
.byte $99, $38, $03, $A5, $6F, $D0, $06, $EE, $38, $03, $EE, $38, $03, $E6, $6C, $60 ; CPU:$9544 PRG:1544 99 38 03 A5 6F D0 06 EE 38 03 EE 38 03 E6 6C 60
.byte $87, $21, $0B, $F8, $D9, $23, $1B, $F8, $97, $21, $0B, $F8, $DD, $23, $1B, $F8 ; CPU:$9554 PRG:1554 87 21 0B F8 D9 23 1B F8 97 21 0B F8 DD 23 1B F8
.byte $E6, $97, $A5, $97, $C9, $F0, $90, $14, $A9, $00, $85, $97, $E6, $6C, $A5, $95 ; CPU:$9564 PRG:1564 E6 97 A5 97 C9 F0 90 14 A9 00 85 97 E6 6C A5 95
.byte $D0, $03, $20, $61, $C0, $A5, $96, $D0, $03, $20, $C7, $AE, $60, $E6, $5B, $E6 ; CPU:$9574 PRG:1574 D0 03 20 61 C0 A5 96 D0 03 20 C7 AE 60 E6 5B E6
.byte $5D, $A5, $5B, $A4, $98, $F0, $02, $A5, $5D, $4A, $B0, $0F, $A9, $04, $85, $6A ; CPU:$9584 PRG:1584 5D A5 5B A4 98 F0 02 A5 5D 4A B0 0F A9 04 85 6A
.byte $A9, $00, $85, $6C, $20, $D2, $95, $20, $EE, $95, $60, $85, $20, $A5, $98, $D0 ; CPU:$9594 PRG:1594 A9 00 85 6C 20 D2 95 20 EE 95 60 85 20 A5 98 D0
.byte $06, $20, $0B, $96, $4C, $AE, $95, $20, $16, $96, $C5, $91, $90, $11, $85, $91 ; CPU:$95A4 PRG:15A4 06 20 0B 96 4C AE 95 20 16 96 C5 91 90 11 85 91
.byte $20, $D2, $95, $20, $EE, $95, $A9, $00, $85, $6C, $A9, $08, $85, $6A, $60, $20 ; CPU:$95B4 PRG:15B4 20 D2 95 20 EE 95 A9 00 85 6C A9 08 85 6A 60 20
.byte $D2, $95, $20, $EE, $95, $A9, $04, $85, $6A, $A9, $00, $85, $6C, $60, $A6, $5B ; CPU:$95C4 PRG:15C4 D2 95 20 EE 95 A9 04 85 6A A9 00 85 6C 60 A6 5B
.byte $E0, $05, $90, $10, $E6, $5A, $A5, $5A, $C9, $04, $90, $04, $A9, $00, $85, $5A ; CPU:$95D4 PRG:15D4 E0 05 90 10 E6 5A A5 5A C9 04 90 04 A9 00 85 5A
.byte $A2, $00, $86, $5B, $BD, $75, $F8, $85, $35, $60, $A6, $5D, $E0, $05, $90, $10 ; CPU:$95E4 PRG:15E4 A2 00 86 5B BD 75 F8 85 35 60 A6 5D E0 05 90 10
.byte $E6, $5C, $A5, $5C, $C9, $04, $90, $04, $A9, $00, $85, $5C, $A2, $00, $86, $5D ; CPU:$95F4 PRG:15F4 E6 5C A5 5C C9 04 90 04 A9 00 85 5C A2 00 86 5D
.byte $BD, $75, $F8, $8D, $CB, $00, $60, $A5, $5A, $0A, $18, $65, $5A, $65, $20, $29 ; CPU:$9604 PRG:1604 BD 75 F8 8D CB 00 60 A5 5A 0A 18 65 5A 65 20 29
.byte $0F, $60, $A5, $5C, $0A, $18, $65, $5C, $65, $20, $29, $0F, $60 ; CPU:$9614 PRG:1614 0F 60 A5 5C 0A 18 65 5C 65 20 29 0F 60
; -----------------------------------------------------------------------------
; Routine: TickLevelTimer
; Global: Counts the level timer and resets it when it runs out.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickLevelTimer:
inc Zp6C ; CPU:$9621 PRG:1621 E6 6C
cmp #$80 ; CPU:$9623 PRG:1623 C9 80
bcc TickLevelTimer_Loop ; CPU:$9625 PRG:1625 90 06
lda #$00 ; CPU:$9627 PRG:1627 A9 00
sta Zp6C ; CPU:$9629 PRG:1629 85 6C
sta GameMode ; CPU:$962B PRG:162B 85 6A
; -----------------------------------------------------------------------------
; Routine: TickLevelTimer_Loop
; Global: Branch target inside TickLevelTimer: taken when the loop repeats.
; Local: Part of TickLevelTimer.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickLevelTimer_Loop:
rts ; CPU:$962D PRG:162D 60
; -----------------------------------------------------------------------------
; Routine: LoadSpriteTable
; Global: Copies a sprite table out of the fixed bank.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
LoadSpriteTable:
lda Zp6C ; CPU:$962E PRG:162E A5 6C
bne SetGraphicsMode ; CPU:$9630 PRG:1630 D0 4A
ldx #$00 ; CPU:$9632 PRG:1632 A2 00
; -----------------------------------------------------------------------------
; Routine: LoadSpriteTable_OnCarryClear
; Global: Branch target inside LoadSpriteTable: taken when the addition or subtraction did not carry.
; Local: Part of LoadSpriteTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
LoadSpriteTable_OnCarryClear:
lda $F847,x ; CPU:$9634 PRG:1634 BD 47 F8
sta $0338,x ; CPU:$9637 PRG:1637 9D 38 03
inx ; CPU:$963A PRG:163A E8
cpx #$08 ; CPU:$963B PRG:163B E0 08
bcc LoadSpriteTable_OnCarryClear ; CPU:$963D PRG:163D 90 F5
lda #$00 ; CPU:$963F PRG:163F A9 00
sta $0338,x ; CPU:$9641 PRG:1641 9D 38 03
lda Zp6F ; CPU:$9644 PRG:1644 A5 6F
beq LoadSpriteTable_Loop ; CPU:$9646 PRG:1646 F0 06
dec $0338 ; CPU:$9648 PRG:1648 CE 38 03
dec $0338 ; CPU:$964B PRG:164B CE 38 03
; -----------------------------------------------------------------------------
; Routine: LoadSpriteTable_Loop
; Global: Branch target inside LoadSpriteTable: taken when the loop repeats.
; Local: Part of LoadSpriteTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
LoadSpriteTable_Loop:
ldx #$00 ; CPU:$964E PRG:164E A2 00
; -----------------------------------------------------------------------------
; Routine: LoadSpriteTable_OnNonzero
; Global: Branch target inside LoadSpriteTable: taken when the tested value is not zero.
; Local: Part of LoadSpriteTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
LoadSpriteTable_OnNonzero:
lda $9674,x ; CPU:$9650 PRG:1650 BD 74 96
sta $0204,x ; CPU:$9653 PRG:1653 9D 04 02
inx ; CPU:$9656 PRG:1656 E8
cpx #$08 ; CPU:$9657 PRG:1657 E0 08
bne LoadSpriteTable_OnNonzero ; CPU:$9659 PRG:1659 D0 F5
lda Zp9A ; CPU:$965B PRG:165B A5 9A
clc ; CPU:$965D PRG:165D 18
adc #$30 ; CPU:$965E PRG:165E 69 30
sta $0205 ; CPU:$9660 PRG:1660 8D 05 02
lda Zp6F ; CPU:$9663 PRG:1663 A5 6F
beq LoadSpriteTable_Loop2 ; CPU:$9665 PRG:1665 F0 0A
lda #$5C ; CPU:$9667 PRG:1667 A9 5C
sta $0207 ; CPU:$9669 PRG:1669 8D 07 02
lda #$18 ; CPU:$966C PRG:166C A9 18
sta $020B ; CPU:$966E PRG:166E 8D 0B 02
; -----------------------------------------------------------------------------
; Routine: LoadSpriteTable_Loop2
; Global: Branch target inside LoadSpriteTable: taken when Loop2.
; Local: Part of LoadSpriteTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
LoadSpriteTable_Loop2:
inc Zp6C ; CPU:$9671 PRG:1671 E6 6C
rts ; CPU:$9673 PRG:1673 60
; ---- data $9674-$967B (8 bytes) ----
; referenced by `lda $9674,x` at $9650 (operand $9674 falls inside this region)
.byte $90, $30, $21, $78, $80, $AE, $23, $34 ; CPU:$9674 PRG:1674 90 30 21 78 80 AE 23 34
; -----------------------------------------------------------------------------
; Routine: SetGraphicsMode
; Global: Switches the PPU between the background and the overlay.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetGraphicsMode:
lda NewButton1 ; CPU:$967C PRG:167C A5 2A
and #$08 ; CPU:$967E PRG:167E 29 08
beq SetGraphicsMode_Loop ; CPU:$9680 PRG:1680 F0 05
lda #$80 ; CPU:$9682 PRG:1682 A9 80
sta $0208 ; CPU:$9684 PRG:1684 8D 08 02
; -----------------------------------------------------------------------------
; Routine: SetGraphicsMode_Loop
; Global: Branch target inside SetGraphicsMode: taken when the loop repeats.
; Local: Part of SetGraphicsMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetGraphicsMode_Loop:
lda NewButton1 ; CPU:$9687 PRG:1687 A5 2A
and #$04 ; CPU:$9689 PRG:1689 29 04
beq SetGraphicsMode_Loop2 ; CPU:$968B PRG:168B F0 05
lda #$88 ; CPU:$968D PRG:168D A9 88
sta $0208 ; CPU:$968F PRG:168F 8D 08 02
; -----------------------------------------------------------------------------
; Routine: SetGraphicsMode_Loop2
; Global: Branch target inside SetGraphicsMode: taken when Loop2.
; Local: Part of SetGraphicsMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetGraphicsMode_Loop2:
ldx #$AE ; CPU:$9692 PRG:1692 A2 AE
lda FrameCounter ; CPU:$9694 PRG:1694 A5 31
and #$10 ; CPU:$9696 PRG:1696 29 10
bne SetGraphicsMode_Loop3 ; CPU:$9698 PRG:1698 D0 02
ldx #$FF ; CPU:$969A PRG:169A A2 FF
; -----------------------------------------------------------------------------
; Routine: SetGraphicsMode_Loop3
; Global: Branch target inside SetGraphicsMode: taken when Loop3.
; Local: Part of SetGraphicsMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetGraphicsMode_Loop3:
stx $0209 ; CPU:$969C PRG:169C 8E 09 02
lda NewButton1 ; CPU:$969F PRG:169F A5 2A
and #$80 ; CPU:$96A1 PRG:16A1 29 80
bne SetGraphicsMode_Loop4 ; CPU:$96A3 PRG:16A3 D0 01
rts ; CPU:$96A5 PRG:16A5 60
; -----------------------------------------------------------------------------
; Routine: SetGraphicsMode_Loop4
; Global: Branch target inside SetGraphicsMode: taken when Loop4.
; Local: Part of SetGraphicsMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetGraphicsMode_Loop4:
dec Zp9A ; CPU:$96A6 PRG:16A6 C6 9A
dec $0205 ; CPU:$96A8 PRG:16A8 CE 05 02
ldx #$00 ; CPU:$96AB PRG:16AB A2 00
; -----------------------------------------------------------------------------
; Routine: SetGraphicsMode_OnCarryClear
; Global: Branch target inside SetGraphicsMode: taken when the addition or subtraction did not carry.
; Local: Part of SetGraphicsMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetGraphicsMode_OnCarryClear:
lda $F869,x ; CPU:$96AD PRG:16AD BD 69 F8
sta $0338,x ; CPU:$96B0 PRG:16B0 9D 38 03
inx ; CPU:$96B3 PRG:16B3 E8
cpx #$0C ; CPU:$96B4 PRG:16B4 E0 0C
bcc SetGraphicsMode_OnCarryClear ; CPU:$96B6 PRG:16B6 90 F5
lda Zp6F ; CPU:$96B8 PRG:16B8 A5 6F
beq SetGraphicsMode_Loop5 ; CPU:$96BA PRG:16BA F0 0C
dec $0338 ; CPU:$96BC PRG:16BC CE 38 03
dec $0338 ; CPU:$96BF PRG:16BF CE 38 03
dec $033C ; CPU:$96C2 PRG:16C2 CE 3C 03
dec $033C ; CPU:$96C5 PRG:16C5 CE 3C 03
; -----------------------------------------------------------------------------
; Routine: SetGraphicsMode_Loop5
; Global: Branch target inside SetGraphicsMode: taken when Loop5.
; Local: Part of SetGraphicsMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetGraphicsMode_Loop5:
lda $0208 ; CPU:$96C8 PRG:16C8 AD 08 02
cmp #$88 ; CPU:$96CB PRG:16CB C9 88
beq SetGraphicsMode_Loop6 ; CPU:$96CD PRG:16CD F0 0A
lda #$06 ; CPU:$96CF PRG:16CF A9 06
sta GameMode ; CPU:$96D1 PRG:16D1 85 6A
lda #$00 ; CPU:$96D3 PRG:16D3 A9 00
sta Zp6C ; CPU:$96D5 PRG:16D5 85 6C
beq SetGraphicsMode_Loop7 ; CPU:$96D7 PRG:16D7 F0 06
; -----------------------------------------------------------------------------
; Routine: SetGraphicsMode_Loop6
; Global: Branch target inside SetGraphicsMode: taken when Loop6.
; Local: Part of SetGraphicsMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetGraphicsMode_Loop6:
jsr Sub_96E3 ; CPU:$96D9 PRG:16D9 20 E3 96
; ---- data $96DC-$96DE (3 bytes) ----
.byte $20, $F3, $96 ; CPU:$96DC PRG:16DC 20 F3 96
; -----------------------------------------------------------------------------
; Routine: SetGraphicsMode_Loop7
; Global: Branch target inside SetGraphicsMode: taken when Loop7.
; Local: Part of SetGraphicsMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetGraphicsMode_Loop7:
jsr ClearOamShadow ; CPU:$96DF PRG:16DF 20 88 81
rts ; CPU:$96E2 PRG:16E2 60
; -----------------------------------------------------------------------------
; Routine: Sub_96E3
; Global: Branch target inside Sub: taken when 96E3.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_96E3:
jsr Sub_9703 ; CPU:$96E3 PRG:16E3 20 03 97
lda #$00 ; CPU:$96E6 PRG:16E6 A9 00
sta Zp95 ; CPU:$96E8 PRG:16E8 85 95
sta Zp6C ; CPU:$96EA PRG:16EA 85 6C
lda #$03 ; CPU:$96EC PRG:16EC A9 03
sta GameMode ; CPU:$96EE PRG:16EE 85 6A
jmp Sub_C061 ; CPU:$96F0 PRG:16F0 4C 61 C0
; ---- data $96F3-$9702 (16 bytes) ----
.byte $20, $0F, $97, $A9, $00, $85, $96, $85, $6C, $A9, $03, $85, $6A, $4C, $C7, $AE ; CPU:$96F3 PRG:16F3 20 0F 97 A9 00 85 96 85 6C A9 03 85 6A 4C C7 AE
; -----------------------------------------------------------------------------
; Routine: Sub_9703
; Global: Branch target inside Sub: taken when 9703.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_9703:
lda #$00 ; CPU:$9703 PRG:1703 A9 00
tax ; CPU:$9705 PRG:1705 AA
; -----------------------------------------------------------------------------
; Routine: SetGraphicsMode_OnCarryClear2
; Global: Branch target inside SetGraphicsMode: taken when OnCarryClear2.
; Local: Part of SetGraphicsMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetGraphicsMode_OnCarryClear2:
sta $05AC,x ; CPU:$9706 PRG:1706 9D AC 05
inx ; CPU:$9709 PRG:1709 E8
cpx #$0A ; CPU:$970A PRG:170A E0 0A
bcc SetGraphicsMode_OnCarryClear2 ; CPU:$970C PRG:170C 90 F8
rts ; CPU:$970E PRG:170E 60
; -----------------------------------------------------------------------------
; Routine: Sub_970F
; Global: Branch target inside Sub: taken when 970F.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_970F:
lda #$00 ; CPU:$970F PRG:170F A9 00
tax ; CPU:$9711 PRG:1711 AA
; -----------------------------------------------------------------------------
; Routine: SetGraphicsMode_OnCarryClear3
; Global: Branch target inside SetGraphicsMode: taken when OnCarryClear3.
; Local: Part of SetGraphicsMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetGraphicsMode_OnCarryClear3:
sta $05B6,x ; CPU:$9712 PRG:1712 9D B6 05
inx ; CPU:$9715 PRG:1715 E8
cpx #$0A ; CPU:$9716 PRG:1716 E0 0A
bcc SetGraphicsMode_OnCarryClear3 ; CPU:$9718 PRG:1718 90 F8
rts ; CPU:$971A PRG:171A 60
; ---- data $971B-$9785 (107 bytes) ----
.byte $A5, $26, $C9, $C0, $D0, $28, $A9, $00, $85, $95, $85, $6A, $A9, $05, $85, $61 ; CPU:$971B PRG:171B A5 26 C9 C0 D0 28 A9 00 85 95 85 6A A9 05 85 61
.byte $A9, $08, $85, $60, $A9, $03, $20, $04, $80, $A9, $01, $8D, $DD, $00, $A5, $73 ; CPU:$972B PRG:172B A9 08 85 60 A9 03 20 04 80 A9 01 8D DD 00 A5 73
.byte $8D, $DE, $00, $A9, $05, $20, $04, $80, $A9, $00, $8D, $DD, $00, $60, $A5, $27 ; CPU:$973B PRG:173B 8D DE 00 A9 05 20 04 80 A9 00 8D DD 00 60 A5 27
.byte $C9, $C0, $D0, $22, $A9, $00, $85, $96, $85, $6A, $A9, $03, $20, $04, $80, $A9 ; CPU:$974B PRG:174B C9 C0 D0 22 A9 00 85 96 85 6A A9 03 20 04 80 A9
.byte $01, $8D, $DD, $00, $A5, $73, $8D, $DE, $00, $A9, $05, $20, $04, $80, $A9, $00 ; CPU:$975B PRG:175B 01 8D DD 00 A5 73 8D DE 00 A9 05 20 04 80 A9 00
.byte $8D, $DD, $00, $4C, $AA, $AA, $A5, $31, $29, $3F, $D0, $0C, $C6, $6E, $D0, $08 ; CPU:$976B PRG:176B 8D DD 00 4C AA AA A5 31 29 3F D0 0C C6 6E D0 08
.byte $A9, $00, $85, $6C, $A9, $06, $85, $6A, $60, $10, $11 ; CPU:$977B PRG:177B A9 00 85 6C A9 06 85 6A 60 10 11
; -----------------------------------------------------------------------------
; Routine: UpdateGameState
; Global: Runs the mode machine: title, demo, play and game over.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateGameState:
lda $05E5 ; CPU:$9786 PRG:1786 AD E5 05
beq UpdateGameState_Loop2 ; CPU:$9789 PRG:1789 F0 23
lda NewButton1 ; CPU:$978B PRG:178B A5 2A
and #$10 ; CPU:$978D PRG:178D 29 10
beq UpdateGameState_Loop ; CPU:$978F PRG:178F F0 15
lda PPUSTATUS ; CPU:$9791 PRG:1791 AD 02 20
lda Zp02 ; CPU:$9794 PRG:1794 A5 02
and #$E7 ; CPU:$9796 PRG:1796 29 E7
sta PPUMASK ; CPU:$9798 PRG:1798 8D 01 20
lda #$00 ; CPU:$979B PRG:179B A9 00
sta Zp6C ; CPU:$979D PRG:179D 85 6C
sta Zp6F ; CPU:$979F PRG:179F 85 6F
lda #$02 ; CPU:$97A1 PRG:17A1 A9 02
sta GameMode ; CPU:$97A3 PRG:17A3 85 6A
rts ; CPU:$97A5 PRG:17A5 60
; -----------------------------------------------------------------------------
; Routine: UpdateGameState_Loop
; Global: Branch target inside UpdateGameState: taken when the loop repeats.
; Local: Part of UpdateGameState.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateGameState_Loop:
lda $05E6 ; CPU:$97A6 PRG:17A6 AD E6 05
bne UpdateGameState_Loop2 ; CPU:$97A9 PRG:17A9 D0 03
jmp InitializeGame ; CPU:$97AB PRG:17AB 4C 36 80
; -----------------------------------------------------------------------------
; Routine: UpdateGameState_Loop2
; Global: Branch target inside UpdateGameState: taken when Loop2.
; Local: Part of UpdateGameState.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateGameState_Loop2:
lda NewButton1 ; CPU:$97AE PRG:17AE A5 2A
and #$10 ; CPU:$97B0 PRG:17B0 29 10
bne UpdateGameState_Loop3 ; CPU:$97B2 PRG:17B2 D0 06
lda NewButton2 ; CPU:$97B4 PRG:17B4 A5 2B
and #$10 ; CPU:$97B6 PRG:17B6 29 10
beq UpdateGameState_Loop4 ; CPU:$97B8 PRG:17B8 F0 09
; -----------------------------------------------------------------------------
; Routine: UpdateGameState_Loop3
; Global: Branch target inside UpdateGameState: taken when Loop3.
; Local: Part of UpdateGameState.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateGameState_Loop3:
lda Zp3E ; CPU:$97BA PRG:17BA A5 3E
eor #$01 ; CPU:$97BC PRG:17BC 49 01
sta Zp3E ; CPU:$97BE PRG:17BE 85 3E
jsr SetTablePointer ; CPU:$97C0 PRG:17C0 20 1B 98
; -----------------------------------------------------------------------------
; Routine: UpdateGameState_Loop4
; Global: Branch target inside UpdateGameState: taken when Loop4.
; Local: Part of UpdateGameState.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateGameState_Loop4:
lda Zp3E ; CPU:$97C3 PRG:17C3 A5 3E
beq UpdateGameState_Loop5 ; CPU:$97C5 PRG:17C5 F0 01
rts ; CPU:$97C7 PRG:17C7 60
; -----------------------------------------------------------------------------
; Routine: UpdateGameState_Loop5
; Global: Branch target inside UpdateGameState: taken when Loop5.
; Local: Part of UpdateGameState.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateGameState_Loop5:
lda Zp6F ; CPU:$97C8 PRG:17C8 A5 6F
bne ResetLevelTimers_Loop ; CPU:$97CA PRG:17CA D0 27
lda Zp95 ; CPU:$97CC PRG:17CC A5 95
bne UpdateGameState_Loop7 ; CPU:$97CE PRG:17CE D0 0F
lda #$00 ; CPU:$97D0 PRG:17D0 A9 00
sta Zp34 ; CPU:$97D2 PRG:17D2 85 34
jsr Sub_CBC4 ; CPU:$97D4 PRG:17D4 20 C4 CB
lda Zp37 ; CPU:$97D7 PRG:17D7 A5 37
bne UpdateGameState_Loop6 ; CPU:$97D9 PRG:17D9 D0 03
jsr SoundTimerTick ; CPU:$97DB PRG:17DB 20 68 BB
; -----------------------------------------------------------------------------
; Routine: UpdateGameState_Loop6
; Global: Branch target inside UpdateGameState: taken when Loop6.
; Local: Part of UpdateGameState.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateGameState_Loop6:
rts ; CPU:$97DE PRG:17DE 60
; -----------------------------------------------------------------------------
; Routine: UpdateGameState_Loop7
; Global: Branch target inside UpdateGameState: taken when Loop7.
; Local: Part of UpdateGameState.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateGameState_Loop7:
lda #$03 ; CPU:$97DF PRG:17DF A9 03
jsr BankedCall ; CPU:$97E1 PRG:17E1 20 04 80
; ---- data $97E4-$97EB (8 bytes) ----
.byte $A2, $0B, $A5, $9A, $D0, $02, $A2, $06 ; CPU:$97E4 PRG:17E4 A2 0B A5 9A D0 02 A2 06
; -----------------------------------------------------------------------------
; Routine: ResetLevelTimers
; Global: Clears the level timers when a new level starts.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetLevelTimers:
stx GameMode ; CPU:$97EC PRG:17EC 86 6A
lda #$00 ; CPU:$97EE PRG:17EE A9 00
sta Zp6C ; CPU:$97F0 PRG:17F0 85 6C
rts ; CPU:$97F2 PRG:17F2 60
; -----------------------------------------------------------------------------
; Routine: ResetLevelTimers_Loop
; Global: Branch target inside ResetLevelTimers: taken when the loop repeats.
; Local: Part of ResetLevelTimers.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetLevelTimers_Loop:
lda #$00 ; CPU:$97F3 PRG:17F3 A9 00
sta Zp34 ; CPU:$97F5 PRG:17F5 85 34
jsr Sub_CBC4 ; CPU:$97F7 PRG:17F7 20 C4 CB
lda #$01 ; CPU:$97FA PRG:17FA A9 01
sta Zp34 ; CPU:$97FC PRG:17FC 85 34
jsr Sub_A78F ; CPU:$97FE PRG:17FE 20 8F A7
lda Zp95 ; CPU:$9801 PRG:1801 A5 95
beq ResetLevelTimers_Loop2 ; CPU:$9803 PRG:1803 F0 15
cmp Zp96 ; CPU:$9805 PRG:1805 C5 96
bne ResetLevelTimers_Loop2 ; CPU:$9807 PRG:1807 D0 11
lda #$03 ; CPU:$9809 PRG:1809 A9 03
jsr BankedCall ; CPU:$980B PRG:180B 20 04 80
; ---- data $980E-$9819 (12 bytes) ----
.byte $A9, $0C, $85, $6A, $A9, $00, $85, $6C, $A9, $05, $85, $6E ; CPU:$980E PRG:180E A9 0C 85 6A A9 00 85 6C A9 05 85 6E
; -----------------------------------------------------------------------------
; Routine: ResetLevelTimers_Loop2
; Global: Branch target inside ResetLevelTimers: taken when Loop2.
; Local: Part of ResetLevelTimers.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetLevelTimers_Loop2:
rts ; CPU:$981A PRG:181A 60
; -----------------------------------------------------------------------------
; Routine: SetTablePointer
; Global: Points the data pointer at a table in RAM.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetTablePointer:
lda #$0C ; CPU:$981B PRG:181B A9 0C
sta Zp11 ; CPU:$981D PRG:181D 85 11
lda #$0A ; CPU:$981F PRG:181F A9 0A
sta Zp12 ; CPU:$9821 PRG:1821 85 12
lda Zp3E ; CPU:$9823 PRG:1823 A5 3E
bne SetTablePointer_Loop ; CPU:$9825 PRG:1825 D0 02
sta Zp11 ; CPU:$9827 PRG:1827 85 11
; -----------------------------------------------------------------------------
; Routine: SetTablePointer_Loop
; Global: Branch target inside SetTablePointer: taken when the loop repeats.
; Local: Part of SetTablePointer.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetTablePointer_Loop:
jsr Sub_855D ; CPU:$9829 PRG:1829 20 5D 85
lda #$F8 ; CPU:$982C PRG:182C A9 F8
ldx #$02 ; CPU:$982E PRG:182E A2 02
; -----------------------------------------------------------------------------
; Routine: SetTablePointer_OnCarryClear
; Global: Branch target inside SetTablePointer: taken when the addition or subtraction did not carry.
; Local: Part of SetTablePointer.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetTablePointer_OnCarryClear:
sta $0398,x ; CPU:$9830 PRG:1830 9D 98 03
inx ; CPU:$9833 PRG:1833 E8
cpx #$0A ; CPU:$9834 PRG:1834 E0 0A
bcc SetTablePointer_OnCarryClear ; CPU:$9836 PRG:1836 90 F8
lda Zp6F ; CPU:$9838 PRG:1838 A5 6F
beq SetTablePointer_Loop2 ; CPU:$983A PRG:183A F0 05
lda #$28 ; CPU:$983C PRG:183C A9 28
sta $0392 ; CPU:$983E PRG:183E 8D 92 03
; -----------------------------------------------------------------------------
; Routine: SetTablePointer_Loop2
; Global: Branch target inside SetTablePointer: taken when Loop2.
; Local: Part of SetTablePointer.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetTablePointer_Loop2:
rts ; CPU:$9841 PRG:1841 60
; ---- data $9842-$9FFF (1982 bytes) ----
.byte $A5, $91, $4A, $18, $69, $02, $AA, $20, $84, $90, $A9, $99, $8D, $DE, $03, $A5 ; CPU:$9842 PRG:1842 A5 91 4A 18 69 02 AA 20 84 90 A9 99 8D DE 03 A5
.byte $6C, $F0, $03, $4C, $EC, $98, $E6, $6C, $20, $88, $81, $A5, $91, $18, $69, $04 ; CPU:$9852 PRG:1852 6C F0 03 4C EC 98 E6 6C 20 88 81 A5 91 18 69 04
.byte $85, $2E, $A9, $00, $20, $04, $80, $20, $28, $92, $A5, $91, $D0, $21, $A9, $0D ; CPU:$9862 PRG:1862 85 2E A9 00 20 04 80 20 28 92 A5 91 D0 21 A9 0D
.byte $85, $11, $A9, $00, $85, $12, $20, $5D, $85, $A9, $0E, $85, $11, $A9, $01, $85 ; CPU:$9872 PRG:1872 85 11 A9 00 85 12 20 5D 85 A9 0E 85 11 A9 01 85
.byte $12, $20, $5D, $85, $A9, $0F, $85, $11, $A9, $02, $85, $12, $20, $5D, $85, $A2 ; CPU:$9882 PRG:1882 12 20 5D 85 A9 0F 85 11 A9 02 85 12 20 5D 85 A2
.byte $81, $A5, $91, $6A, $90, $02, $A2, $91, $86, $01, $A9, $00, $8D, $01, $02, $A9 ; CPU:$9892 PRG:1892 81 A5 91 6A 90 02 A2 91 86 01 A9 00 8D 01 02 A9
.byte $80, $8D, $03, $02, $A9, $A6, $8D, $00, $02, $A9, $E3, $8D, $02, $02, $A9, $00 ; CPU:$98A2 PRG:18A2 80 8D 03 02 A9 A6 8D 00 02 A9 E3 8D 02 02 A9 00
.byte $8D, $DB, $03, $8D, $DC, $03, $8D, $DD, $03, $A5, $91, $0A, $AA, $BD, $55, $9A ; CPU:$98B2 PRG:18B2 8D DB 03 8D DC 03 8D DD 03 A5 91 0A AA BD 55 9A
.byte $85, $9B, $BD, $56, $9A, $85, $9C, $A9, $26, $8D, $D9, $03, $A9, $C4, $8D, $DA ; CPU:$98C2 PRG:18C2 85 9B BD 56 9A 85 9C A9 26 8D D9 03 A9 C4 8D DA
.byte $03, $A9, $00, $85, $03, $85, $04, $A5, $99, $D0, $0E, $A2, $04, $A5, $91, $C9 ; CPU:$98D2 PRG:18D2 03 A9 00 85 03 85 04 A5 99 D0 0E A2 04 A5 91 C9
.byte $0B, $D0, $02, $A2, $08, $8A, $20, $63, $86, $60, $A5, $6C, $C9, $01, $D0, $14 ; CPU:$98E2 PRG:18E2 0B D0 02 A2 08 8A 20 63 86 60 A5 6C C9 01 D0 14
.byte $20, $2B, $9A, $AD, $DD, $03, $C9, $04, $B0, $06, $20, $62, $99, $4C, $05, $99 ; CPU:$98F2 PRG:18F2 20 2B 9A AD DD 03 C9 04 B0 06 20 62 99 4C 05 99
.byte $20, $F9, $99, $60, $A5, $99, $D0, $3B, $A5, $2A, $29, $C0, $D0, $06, $A5, $2B ; CPU:$9902 PRG:1902 20 F9 99 60 A5 99 D0 3B A5 2A 29 C0 D0 06 A5 2B
.byte $29, $C0, $F0, $2C, $A9, $00, $85, $6C, $8D, $B0, $01, $A9, $04, $85, $6A, $A5 ; CPU:$9912 PRG:1912 29 C0 F0 2C A9 00 85 6C 8D B0 01 A9 04 85 6A A5
.byte $91, $D0, $06, $20, $88, $81, $20, $28, $92, $E6, $91, $A5, $91, $C9, $0C, $D0 ; CPU:$9922 PRG:1922 91 D0 06 20 88 81 20 28 92 E6 91 A5 91 C9 0C D0
.byte $07, $E6, $99, $A9, $06, $85, $6A, $60, $A5, $01, $29, $88, $09, $88, $85, $01 ; CPU:$9932 PRG:1932 07 E6 99 A9 06 85 6A 60 A5 01 29 88 09 88 85 01
.byte $4C, $2B, $9A, $E6, $97, $D0, $16, $A9, $00, $85, $6C, $E6, $91, $A5, $91, $C9 ; CPU:$9942 PRG:1942 4C 2B 9A E6 97 D0 16 A9 00 85 6C E6 91 A5 91 C9
.byte $0C, $90, $0A, $A9, $07, $85, $6A, $A9, $00, $85, $6C, $85, $99, $4C, $2B, $9A ; CPU:$9952 PRG:1952 0C 90 0A A9 07 85 6A A9 00 85 6C 85 99 4C 2B 9A
.byte $A5, $31, $29, $03, $F0, $01, $60, $A2, $00, $BD, $4A, $9A, $9D, $3A, $03, $E8 ; CPU:$9962 PRG:1962 A5 31 29 03 F0 01 60 A2 00 BD 4A 9A 9D 3A 03 E8
.byte $E0, $03, $90, $F5, $A9, $02, $8D, $DF, $03, $A9, $01, $8D, $E0, $03, $AD, $DA ; CPU:$9972 PRG:1972 E0 03 90 F5 A9 02 8D DF 03 A9 01 8D E0 03 AD DA
.byte $03, $8D, $38, $03, $AD, $D9, $03, $8D, $39, $03, $EE, $DA, $03, $AC, $DC, $03 ; CPU:$9982 PRG:1982 03 8D 38 03 AD D9 03 8D 39 03 EE DA 03 AC DC 03
.byte $C0, $FF, $D0, $0F, $98, $18, $65, $9B, $85, $9B, $90, $02, $E6, $9C, $A0, $00 ; CPU:$9992 PRG:1992 C0 FF D0 0F 98 18 65 9B 85 9B 90 02 E6 9C A0 00
.byte $8C, $DC, $03, $EE, $DC, $03, $B1, $9B, $C9, $FF, $F0, $0C, $18, $69, $83, $8D ; CPU:$99A2 PRG:19A2 8C DC 03 EE DC 03 B1 9B C9 FF F0 0C 18 69 83 8D
.byte $E1, $03, $A9, $E0, $8D, $E2, $03, $60, $8D, $E1, $03, $8D, $E2, $03, $A9, $01 ; CPU:$99B2 PRG:19B2 E1 03 A9 E0 8D E2 03 60 8D E1 03 8D E2 03 A9 01
.byte $8D, $DF, $03, $8D, $E0, $03, $EE, $DB, $03, $A6, $91, $AD, $DB, $03, $DD, $6D ; CPU:$99C2 PRG:19C2 8D DF 03 8D E0 03 EE DB 03 A6 91 AD DB 03 DD 6D
.byte $9A, $90, $03, $E6, $6C, $60, $EE, $DD, $03, $AD, $DD, $03, $0A, $AA, $BD, $4D ; CPU:$99D2 PRG:19D2 9A 90 03 E6 6C 60 EE DD 03 AD DD 03 0A AA BD 4D
.byte $9A, $8D, $D9, $03, $BD, $4E, $9A, $8D, $DA, $03, $AD, $DD, $03, $C9, $04, $90 ; CPU:$99E2 PRG:19E2 9A 8D D9 03 BD 4E 9A 8D DA 03 AD DD 03 C9 04 90
.byte $05, $A9, $B4, $8D, $E3, $03, $60, $CE, $E3, $03, $D0, $2C, $AD, $02, $20, $A5 ; CPU:$99F2 PRG:19F2 05 A9 B4 8D E3 03 60 CE E3 03 D0 2C AD 02 20 A5
.byte $02, $29, $E7, $8D, $01, $20, $AD, $02, $20, $A9, $26, $8D, $06, $20, $8D, $D9 ; CPU:$9A02 PRG:1A02 02 29 E7 8D 01 20 AD 02 20 A9 26 8D 06 20 8D D9
.byte $03, $A9, $C4, $8D, $06, $20, $8D, $DA, $03, $A2, $F0, $A9, $FF, $8D, $07, $20 ; CPU:$9A12 PRG:1A12 03 A9 C4 8D 06 20 8D DA 03 A2 F0 A9 FF 8D 07 20
.byte $CA, $D0, $FA, $A9, $00, $8D, $DD, $03, $60, $AD, $02, $20, $29, $40, $D0, $F9 ; CPU:$9A22 PRG:1A22 CA D0 FA A9 00 8D DD 03 60 AD 02 20 29 40 D0 F9
.byte $AD, $02, $20, $29, $40, $F0, $F9, $A2, $06, $20, $84, $90, $AD, $02, $20, $A9 ; CPU:$9A32 PRG:1A32 AD 02 20 29 40 F0 F9 A2 06 20 84 90 AD 02 20 A9
.byte $99, $8D, $DE, $03, $8D, $00, $20, $60, $DF, $03, $00, $26, $C4, $27, $04, $27 ; CPU:$9A42 PRG:1A42 99 8D DE 03 8D 00 20 60 DF 03 00 26 C4 27 04 27
.byte $44, $27, $84, $79, $9A, $44, $9B, $42, $9C, $8D, $9D, $A4, $9E, $BB, $9F, $1E ; CPU:$9A52 PRG:1A52 44 27 84 79 9A 44 9B 42 9C 8D 9D A4 9E BB 9F 1E
.byte $A1, $1C, $A2, $FF, $A2, $CA, $A3, $61, $A4, $44, $A5, $0B, $0E, $13, $0F, $0F ; CPU:$9A62 PRG:1A62 A1 1C A2 FF A2 CA A3 61 A4 44 A5 0B 0E 13 0F 0F
.byte $13, $0E, $0B, $0B, $07, $0B, $1B, $20, $20, $4F, $4E, $43, $45, $20, $55, $50 ; CPU:$9A72 PRG:1A72 13 0E 0B 0B 07 0B 1B 20 20 4F 4E 43 45 20 55 50
.byte $4F, $4E, $20, $41, $20, $54, $49, $4D, $45, $20, $49, $4E, $20, $20, $20, $FF ; CPU:$9A82 PRG:1A82 4F 4E 20 41 20 54 49 4D 45 20 49 4E 20 20 20 FF
.byte $20, $41, $20, $48, $49, $44, $44, $45, $4E, $20, $4C, $49, $51, $55, $49, $44 ; CPU:$9A92 PRG:1A92 20 41 20 48 49 44 44 45 4E 20 4C 49 51 55 49 44
.byte $20, $57, $4F, $52, $4C, $44, $20, $20, $FF, $20, $20, $44, $45, $45, $50, $20 ; CPU:$9AA2 PRG:1AA2 20 57 4F 52 4C 44 20 20 FF 20 20 44 45 45 50 20
.byte $42, $45, $4E, $45, $41, $54, $48, $20, $54, $48, $45, $20, $53, $45, $41, $20 ; CPU:$9AB2 PRG:1AB2 42 45 4E 45 41 54 48 20 54 48 45 20 53 45 41 20
.byte $20, $FF, $FF, $FF, $20, $20, $54, $48, $45, $52, $45, $20, $57, $41, $53, $20 ; CPU:$9AC2 PRG:1AC2 20 FF FF FF 20 20 54 48 45 52 45 20 57 41 53 20
.byte $54, $48, $45, $20, $4D, $41, $47, $49, $43, $20, $20, $20, $FF, $20, $20, $20 ; CPU:$9AD2 PRG:1AD2 54 48 45 20 4D 41 47 49 43 20 20 20 FF 20 20 20
.byte $43, $49, $54, $59, $20, $4F, $46, $20, $41, $54, $4C, $41, $4E, $54, $49, $53 ; CPU:$9AE2 PRG:1AE2 43 49 54 59 20 4F 46 20 41 54 4C 41 4E 54 49 53
.byte $2C, $20, $20, $20, $20, $FF, $FF, $20, $20, $57, $48, $45, $52, $45, $20, $54 ; CPU:$9AF2 PRG:1AF2 2C 20 20 20 20 FF FF 20 20 57 48 45 52 45 20 54
.byte $48, $45, $20, $4C, $45, $47, $45, $4E, $44, $41, $52, $59, $20, $20, $20, $FF ; CPU:$9B02 PRG:1B02 48 45 20 4C 45 47 45 4E 44 41 52 59 20 20 20 FF
.byte $20, $48, $41, $4C, $46, $20, $46, $49, $53, $48, $2C, $20, $48, $41, $4C, $46 ; CPU:$9B12 PRG:1B12 20 48 41 4C 46 20 46 49 53 48 2C 20 48 41 4C 46
.byte $20, $48, $55, $4D, $41, $4E, $2C, $20, $FF, $20, $20, $20, $20, $4D, $45, $52 ; CPU:$9B22 PRG:1B22 20 48 55 4D 41 4E 2C 20 FF 20 20 20 20 4D 45 52
.byte $50, $45, $4F, $50, $4C, $45, $20, $4C, $49, $56, $45, $44, $2E, $20, $20, $20 ; CPU:$9B32 PRG:1B32 50 45 4F 50 4C 45 20 4C 49 56 45 44 2E 20 20 20
.byte $20, $FF, $20, $4E, $41, $4D, $4F, $52, $41, $20, $57, $41, $53, $20, $41, $20 ; CPU:$9B42 PRG:1B42 20 FF 20 4E 41 4D 4F 52 41 20 57 41 53 20 41 20
.byte $42, $45, $41, $55, $54, $49, $46, $55, $4C, $20, $FF, $20, $4D, $45, $52, $4D ; CPU:$9B52 PRG:1B52 42 45 41 55 54 49 46 55 4C 20 FF 20 4D 45 52 4D
.byte $41, $49, $44, $20, $57, $48, $4F, $20, $4C, $49, $56, $45, $44, $20, $44, $45 ; CPU:$9B62 PRG:1B62 41 49 44 20 57 48 4F 20 4C 49 56 45 44 20 44 45
.byte $45, $50, $20, $FF, $20, $20, $20, $55, $4E, $44, $45, $52, $20, $54, $48, $45 ; CPU:$9B72 PRG:1B72 45 50 20 FF 20 20 20 55 4E 44 45 52 20 54 48 45
.byte $20, $44, $41, $52, $4B, $20, $53, $45, $41, $20, $20, $20, $FF, $FF, $20, $20 ; CPU:$9B82 PRG:1B82 20 44 41 52 4B 20 53 45 41 20 20 20 FF FF 20 20
.byte $57, $48, $45, $52, $45, $20, $54, $48, $45, $20, $53, $55, $4E, $20, $4C, $4F ; CPU:$9B92 PRG:1B92 57 48 45 52 45 20 54 48 45 20 53 55 4E 20 4C 4F
.byte $4F, $4B, $45, $44, $20, $20, $FF, $20, $20, $20, $20, $20, $20, $4C, $49, $4B ; CPU:$9BA2 PRG:1BA2 4F 4B 45 44 20 20 FF 20 20 20 20 20 20 4C 49 4B
.byte $45, $20, $41, $20, $4D, $55, $52, $4B, $59, $20, $20, $20, $20, $20, $20, $FF ; CPU:$9BB2 PRG:1BB2 45 20 41 20 4D 55 52 4B 59 20 20 20 20 20 20 FF
.byte $20, $20, $47, $52, $45, $45, $4E, $20, $42, $41, $4C, $4C, $2E, $20, $54, $48 ; CPU:$9BC2 PRG:1BC2 20 20 47 52 45 45 4E 20 42 41 4C 4C 2E 20 54 48
.byte $45, $20, $4C, $41, $4E, $44, $20, $20, $FF, $FF, $20, $20, $57, $41, $53, $20 ; CPU:$9BD2 PRG:1BD2 45 20 4C 41 4E 44 20 20 FF FF 20 20 57 41 53 20
.byte $49, $4C, $4C, $55, $4D, $49, $4E, $41, $54, $45, $44, $20, $44, $41, $59, $20 ; CPU:$9BE2 PRG:1BE2 49 4C 4C 55 4D 49 4E 41 54 45 44 20 44 41 59 20
.byte $20, $20, $FF, $20, $41, $4E, $44, $20, $4E, $49, $47, $48, $54, $20, $42, $59 ; CPU:$9BF2 PRG:1BF2 20 20 FF 20 41 4E 44 20 4E 49 47 48 54 20 42 59
.byte $20, $55, $4E, $44, $45, $52, $53, $45, $41, $20, $20, $FF, $20, $20, $20, $20 ; CPU:$9C02 PRG:1C02 20 55 4E 44 45 52 53 45 41 20 20 FF 20 20 20 20
.byte $20, $20, $20, $20, $56, $4F, $4C, $43, $41, $4E, $4F, $53, $20, $20, $20, $20 ; CPU:$9C12 PRG:1C12 20 20 20 20 56 4F 4C 43 41 4E 4F 53 20 20 20 20
.byte $20, $20, $20, $20, $FF, $FF, $FF, $20, $20, $20, $20, $41, $4E, $44, $20, $47 ; CPU:$9C22 PRG:1C22 20 20 20 20 FF FF FF 20 20 20 20 41 4E 44 20 47
.byte $4C, $4F, $57, $20, $57, $4F, $52, $4D, $53, $2E, $20, $20, $20, $20, $20, $FF ; CPU:$9C32 PRG:1C32 4C 4F 57 20 57 4F 52 4D 53 2E 20 20 20 20 20 FF
.byte $20, $20, $20, $4E, $41, $4D, $4F, $52, $41, $20, $4C, $49, $56, $45, $44, $20 ; CPU:$9C42 PRG:1C42 20 20 20 4E 41 4D 4F 52 41 20 4C 49 56 45 44 20
.byte $49, $4E, $20, $41, $20, $20, $20, $20, $FF, $20, $47, $4C, $4F, $57, $49, $4E ; CPU:$9C52 PRG:1C52 49 4E 20 41 20 20 20 20 FF 20 47 4C 4F 57 49 4E
.byte $47, $20, $42, $4C, $55, $45, $20, $53, $45, $41, $53, $48, $45, $4C, $4C, $20 ; CPU:$9C62 PRG:1C62 47 20 42 4C 55 45 20 53 45 41 53 48 45 4C 4C 20
.byte $20, $FF, $20, $57, $49, $54, $48, $20, $48, $45, $52, $20, $4D, $4F, $4D, $2C ; CPU:$9C72 PRG:1C72 20 FF 20 57 49 54 48 20 48 45 52 20 4D 4F 4D 2C
.byte $20, $44, $41, $44, $20, $41, $4E, $44, $20, $20, $FF, $FF, $20, $4C, $49, $54 ; CPU:$9C82 PRG:1C82 20 44 41 44 20 41 4E 44 20 20 FF FF 20 4C 49 54
.byte $54, $4C, $45, $20, $42, $52, $4F, $54, $48, $45, $52, $20, $4D, $49, $4B, $45 ; CPU:$9C92 PRG:1C92 54 4C 45 20 42 52 4F 54 48 45 52 20 4D 49 4B 45
.byte $59, $2E, $20, $20, $FF, $20, $20, $20, $53, $48, $45, $20, $57, $4F, $55, $4C ; CPU:$9CA2 PRG:1CA2 59 2E 20 20 FF 20 20 20 53 48 45 20 57 4F 55 4C
.byte $44, $20, $52, $49, $44, $45, $20, $48, $45, $52, $20, $20, $20, $FF, $20, $4C ; CPU:$9CB2 PRG:1CB2 44 20 52 49 44 45 20 48 45 52 20 20 20 FF 20 4C
.byte $49, $51, $55, $49, $43, $59, $43, $4C, $45, $20, $54, $4F, $20, $53, $43, $48 ; CPU:$9CC2 PRG:1CC2 49 51 55 49 43 59 43 4C 45 20 54 4F 20 53 43 48
.byte $4F, $4F, $4C, $2C, $20, $20, $FF, $FF, $20, $20, $50, $4C, $41, $59, $20, $43 ; CPU:$9CD2 PRG:1CD2 4F 4F 4C 2C 20 20 FF FF 20 20 50 4C 41 59 20 43
.byte $41, $54, $43, $48, $20, $57, $49, $54, $48, $20, $48, $45, $52, $20, $20, $20 ; CPU:$9CE2 PRG:1CE2 41 54 43 48 20 57 49 54 48 20 48 45 52 20 20 20
.byte $FF, $20, $20, $50, $45, $54, $20, $53, $51, $55, $49, $44, $20, $57, $41, $4C ; CPU:$9CF2 PRG:1CF2 FF 20 20 50 45 54 20 53 51 55 49 44 20 57 41 4C
.byte $44, $4F, $20, $41, $4E, $44, $20, $20, $20, $FF, $44, $4F, $20, $41, $20, $4C ; CPU:$9D02 PRG:1D02 44 4F 20 41 4E 44 20 20 20 FF 44 4F 20 41 20 4C
.byte $4F, $54, $20, $4F, $46, $20, $54, $48, $49, $4E, $47, $53, $20, $54, $48, $41 ; CPU:$9D12 PRG:1D12 4F 54 20 4F 46 20 54 48 49 4E 47 53 20 54 48 41
.byte $54, $20, $FF, $FF, $FF, $20, $20, $20, $53, $55, $52, $46, $41, $43, $45, $20 ; CPU:$9D22 PRG:1D22 54 20 FF FF FF 20 20 20 53 55 52 46 41 43 45 20
.byte $50, $45, $4F, $50, $4C, $45, $20, $44, $4F, $2E, $20, $20, $20, $FF, $20, $20 ; CPU:$9D32 PRG:1D32 50 45 4F 50 4C 45 20 44 4F 2E 20 20 20 FF 20 20
.byte $20, $49, $4E, $20, $46, $41, $43, $54, $20, $4D, $45, $52, $50, $45, $4F, $50 ; CPU:$9D42 PRG:1D42 20 49 4E 20 46 41 43 54 20 4D 45 52 50 45 4F 50
.byte $4C, $45, $20, $20, $20, $20, $FF, $FF, $FF, $20, $20, $20, $41, $52, $45, $20 ; CPU:$9D52 PRG:1D52 4C 45 20 20 20 20 FF FF FF 20 20 20 41 52 45 20
.byte $41, $20, $4C, $4F, $54, $20, $4C, $49, $4B, $45, $20, $59, $4F, $55, $20, $20 ; CPU:$9D62 PRG:1D62 41 20 4C 4F 54 20 4C 49 4B 45 20 59 4F 55 20 20
.byte $20, $FF, $20, $20, $20, $20, $20, $20, $20, $20, $41, $4E, $44, $20, $4D, $45 ; CPU:$9D72 PRG:1D72 20 FF 20 20 20 20 20 20 20 20 41 4E 44 20 4D 45
.byte $2E, $20, $20, $20, $20, $20, $20, $20, $20, $20, $FF, $4D, $45, $52, $50, $45 ; CPU:$9D82 PRG:1D82 2E 20 20 20 20 20 20 20 20 20 FF 4D 45 52 50 45
.byte $4F, $50, $4C, $45, $20, $4C, $4F, $56, $45, $44, $20, $54, $4F, $20, $50, $4C ; CPU:$9D92 PRG:1D92 4F 50 4C 45 20 4C 4F 56 45 44 20 54 4F 20 50 4C
.byte $41, $59, $20, $FF, $20, $20, $20, $20, $47, $41, $4D, $45, $53, $2E, $20, $54 ; CPU:$9DA2 PRG:1DA2 41 59 20 FF 20 20 20 20 47 41 4D 45 53 2E 20 54
.byte $48, $45, $59, $20, $48, $41, $44, $20, $20, $20, $20, $20, $FF, $20, $54, $48 ; CPU:$9DB2 PRG:1DB2 48 45 59 20 48 41 44 20 20 20 20 20 FF 20 54 48
.byte $45, $20, $42, $45, $53, $54, $20, $47, $41, $4D, $45, $53, $20, $49, $4E, $20 ; CPU:$9DC2 PRG:1DC2 45 20 42 45 53 54 20 47 41 4D 45 53 20 49 4E 20
.byte $54, $48, $45, $20, $20, $FF, $FF, $FF, $20, $57, $4F, $52, $4C, $44, $2C, $20 ; CPU:$9DD2 PRG:1DD2 54 48 45 20 20 FF FF FF 20 57 4F 52 4C 44 2C 20
.byte $42, $45, $43, $41, $55, $53, $45, $20, $54, $48, $45, $59, $20, $48, $41, $44 ; CPU:$9DE2 PRG:1DE2 42 45 43 41 55 53 45 20 54 48 45 59 20 48 41 44
.byte $FF, $20, $20, $54, $48, $45, $20, $42, $45, $53, $54, $20, $47, $41, $4D, $45 ; CPU:$9DF2 PRG:1DF2 FF 20 20 54 48 45 20 42 45 53 54 20 47 41 4D 45
.byte $4D, $41, $4B, $45, $52, $53, $2E, $20, $20, $FF, $FF, $20, $20, $54, $48, $45 ; CPU:$9E02 PRG:1E02 4D 41 4B 45 52 53 2E 20 20 FF FF 20 20 54 48 45
.byte $20, $4D, $45, $52, $50, $45, $4F, $50, $4C, $45, $20, $57, $4F, $55, $4C, $44 ; CPU:$9E12 PRG:1E12 20 4D 45 52 50 45 4F 50 4C 45 20 57 4F 55 4C 44
.byte $20, $20, $20, $FF, $43, $4F, $4C, $4C, $45, $43, $54, $20, $50, $45, $41, $52 ; CPU:$9E22 PRG:1E22 20 20 20 FF 43 4F 4C 4C 45 43 54 20 50 45 41 52
.byte $4C, $53, $20, $41, $4E, $44, $20, $54, $52, $41, $44, $45, $FF, $57, $49, $54 ; CPU:$9E32 PRG:1E32 4C 53 20 41 4E 44 20 54 52 41 44 45 FF 57 49 54
.byte $48, $20, $54, $48, $45, $20, $47, $41, $4D, $45, $4D, $41, $4B, $45, $52, $53 ; CPU:$9E42 PRG:1E42 48 20 54 48 45 20 47 41 4D 45 4D 41 4B 45 52 53
.byte $20, $46, $4F, $52, $20, $FF, $FF, $20, $20, $4E, $45, $57, $20, $47, $41, $4D ; CPU:$9E52 PRG:1E52 20 46 4F 52 20 FF FF 20 20 4E 45 57 20 47 41 4D
.byte $45, $53, $20, $45, $56, $45, $52, $59, $44, $41, $59, $2E, $20, $20, $20, $FF ; CPU:$9E62 PRG:1E62 45 53 20 45 56 45 52 59 44 41 59 2E 20 20 20 FF
.byte $20, $20, $4C, $49, $56, $49, $4E, $47, $20, $55, $4E, $44, $45, $52, $20, $54 ; CPU:$9E72 PRG:1E72 20 20 4C 49 56 49 4E 47 20 55 4E 44 45 52 20 54
.byte $48, $45, $20, $53, $45, $41, $20, $20, $FF, $20, $20, $20, $57, $41, $53, $20 ; CPU:$9E82 PRG:1E82 48 45 20 53 45 41 20 20 FF 20 20 20 57 41 53 20
.byte $41, $20, $4C, $4F, $54, $20, $4F, $46, $20, $46, $55, $4E, $2E, $20, $20, $20 ; CPU:$9E92 PRG:1E92 41 20 4C 4F 54 20 4F 46 20 46 55 4E 2E 20 20 20
.byte $20, $FF, $20, $20, $42, $55, $54, $20, $41, $4C, $41, $53, $2C, $20, $54, $48 ; CPU:$9EA2 PRG:1EA2 20 FF 20 20 42 55 54 20 41 4C 41 53 2C 20 54 48
.byte $45, $52, $45, $20, $4C, $49, $56, $45, $44, $20, $FF, $20, $20, $20, $41, $4E ; CPU:$9EB2 PRG:1EB2 45 52 45 20 4C 49 56 45 44 20 FF 20 20 20 41 4E
.byte $20, $45, $56, $49, $4C, $20, $4D, $41, $4E, $20, $43, $41, $4C, $4C, $45, $44 ; CPU:$9EC2 PRG:1EC2 20 45 56 49 4C 20 4D 41 4E 20 43 41 4C 4C 45 44
.byte $20, $20, $20, $FF, $20, $20, $20, $20, $45, $4D, $50, $45, $52, $4F, $52, $20 ; CPU:$9ED2 PRG:1ED2 20 20 20 FF 20 20 20 20 45 4D 50 45 52 4F 52 20
.byte $4F, $2D, $44, $49, $4E, $54, $4F, $4E, $2E, $20, $20, $20, $FF, $FF, $48, $45 ; CPU:$9EE2 PRG:1EE2 4F 2D 44 49 4E 54 4F 4E 2E 20 20 20 FF FF 48 45
.byte $20, $57, $41, $53, $20, $41, $20, $53, $55, $52, $46, $41, $43, $45, $20, $44 ; CPU:$9EF2 PRG:1EF2 20 57 41 53 20 41 20 53 55 52 46 41 43 45 20 44
.byte $57, $45, $4C, $4C, $45, $52, $FF, $20, $57, $48, $4F, $20, $4D, $41, $44, $45 ; CPU:$9F02 PRG:1F02 57 45 4C 4C 45 52 FF 20 57 48 4F 20 4D 41 44 45
.byte $20, $48, $49, $53, $20, $52, $49, $43, $48, $45, $53, $20, $42, $59, $20, $FF ; CPU:$9F12 PRG:1F12 20 48 49 53 20 52 49 43 48 45 53 20 42 59 20 FF
.byte $20, $53, $45, $4C, $4C, $49, $4E, $47, $20, $53, $41, $4C, $54, $20, $57, $41 ; CPU:$9F22 PRG:1F22 20 53 45 4C 4C 49 4E 47 20 53 41 4C 54 20 57 41
.byte $54, $45, $52, $20, $41, $4E, $44, $20, $FF, $FF, $20, $20, $20, $53, $45, $41 ; CPU:$9F32 PRG:1F32 54 45 52 20 41 4E 44 20 FF FF 20 20 20 53 45 41
.byte $20, $53, $48, $45, $4C, $4C, $53, $2E, $20, $41, $46, $54, $45, $52, $20, $20 ; CPU:$9F42 PRG:1F42 20 53 48 45 4C 4C 53 2E 20 41 46 54 45 52 20 20
.byte $20, $20, $FF, $20, $20, $20, $59, $45, $41, $52, $53, $20, $4F, $46, $20, $50 ; CPU:$9F52 PRG:1F52 20 20 FF 20 20 20 59 45 41 52 53 20 4F 46 20 50
.byte $4C, $41, $4E, $4E, $49, $4E, $47, $20, $20, $20, $20, $FF, $20, $20, $20, $20 ; CPU:$9F62 PRG:1F62 4C 41 4E 4E 49 4E 47 20 20 20 20 FF 20 20 20 20
.byte $48, $45, $20, $48, $41, $44, $20, $43, $4F, $4D, $45, $20, $55, $50, $20, $20 ; CPU:$9F72 PRG:1F72 48 45 20 48 41 44 20 43 4F 4D 45 20 55 50 20 20
.byte $20, $20, $20, $20, $FF, $FF, $FF, $20, $20, $20, $57, $49, $54, $48, $20, $54 ; CPU:$9F82 PRG:1F82 20 20 20 20 FF FF FF 20 20 20 57 49 54 48 20 54
.byte $48, $45, $20, $55, $4C, $54, $49, $4D, $41, $54, $45, $20, $20, $20, $20, $FF ; CPU:$9F92 PRG:1F92 48 45 20 55 4C 54 49 4D 41 54 45 20 20 20 20 FF
.byte $20, $20, $20, $20, $20, $20, $20, $20, $53, $43, $48, $45, $4D, $45, $2E, $20 ; CPU:$9FA2 PRG:1FA2 20 20 20 20 20 20 20 20 53 43 48 45 4D 45 2E 20
.byte $20, $20, $20, $20, $20, $20, $20, $20, $FF, $20, $20, $45, $4D, $50, $45, $52 ; CPU:$9FB2 PRG:1FB2 20 20 20 20 20 20 20 20 FF 20 20 45 4D 50 45 52
.byte $4F, $52, $20, $4F, $2D, $44, $49, $4E, $54, $4F, $4E, $20, $48, $41, $44, $20 ; CPU:$9FC2 PRG:1FC2 4F 52 20 4F 2D 44 49 4E 54 4F 4E 20 48 41 44 20
.byte $20, $FF, $20, $20, $43, $4F, $4D, $42, $49, $4E, $45, $44, $20, $53, $43, $49 ; CPU:$9FD2 PRG:1FD2 20 FF 20 20 43 4F 4D 42 49 4E 45 44 20 53 43 49
.byte $45, $4E, $43, $45, $20, $41, $4E, $44, $20, $20, $FF, $20, $20, $4D, $41, $47 ; CPU:$9FE2 PRG:1FE2 45 4E 43 45 20 41 4E 44 20 20 FF 20 20 4D 41 47
.byte $49, $43, $20, $54, $4F, $20, $43, $52, $45, $41, $54, $45, $20, $54 ; CPU:$9FF2 PRG:1FF2 49 43 20 54 4F 20 43 52 45 41 54 45 20 54
.segment "PRG1"
.org $A000
; ---- data $A000-$AEC6 (3783 bytes) ----
.byte $48, $45, $20, $20, $20, $FF, $FF, $20, $20, $44, $55, $52, $41, $42, $55, $42 ; CPU:$A000 PRG:2000 48 45 20 20 20 FF FF 20 20 44 55 52 41 42 55 42
.byte $42, $4C, $45, $28, $54, $4D, $29, $2E, $20, $49, $54, $53, $20, $20, $20, $FF ; CPU:$A010 PRG:2010 42 4C 45 28 54 4D 29 2E 20 49 54 53 20 20 20 FF
.byte $20, $20, $4D, $4F, $4C, $45, $43, $55, $4C, $41, $52, $20, $53, $54, $52, $55 ; CPU:$A020 PRG:2020 20 20 4D 4F 4C 45 43 55 4C 41 52 20 53 54 52 55
.byte $43, $54, $55, $52, $45, $20, $20, $20, $FF, $20, $41, $4C, $54, $48, $4F, $55 ; CPU:$A030 PRG:2030 43 54 55 52 45 20 20 20 FF 20 41 4C 54 48 4F 55
.byte $47, $48, $20, $46, $4C, $45, $58, $49, $42, $4C, $45, $20, $4C, $49, $4B, $45 ; CPU:$A040 PRG:2040 47 48 20 46 4C 45 58 49 42 4C 45 20 4C 49 4B 45
.byte $20, $FF, $FF, $20, $20, $20, $20, $20, $52, $55, $42, $42, $45, $52, $20, $57 ; CPU:$A050 PRG:2050 20 FF FF 20 20 20 20 20 52 55 42 42 45 52 20 57
.byte $41, $53, $20, $41, $53, $20, $20, $20, $20, $20, $20, $FF, $20, $20, $20, $20 ; CPU:$A060 PRG:2060 41 53 20 41 53 20 20 20 20 20 20 FF 20 20 20 20
.byte $55, $4E, $42, $52, $45, $41, $4B, $41, $42, $4C, $45, $20, $41, $53, $20, $41 ; CPU:$A070 PRG:2070 55 4E 42 52 45 41 4B 41 42 4C 45 20 41 53 20 41
.byte $20, $20, $20, $20, $FF, $20, $20, $20, $20, $44, $49, $41, $4D, $4F, $4E, $44 ; CPU:$A080 PRG:2080 20 20 20 20 FF 20 20 20 20 44 49 41 4D 4F 4E 44
.byte $2E, $20, $4F, $4E, $43, $45, $20, $48, $45, $20, $20, $20, $20, $FF, $FF, $20 ; CPU:$A090 PRG:2090 2E 20 4F 4E 43 45 20 48 45 20 20 20 20 FF FF 20
.byte $20, $45, $4E, $43, $41, $53, $45, $44, $20, $53, $4F, $4D, $45, $54, $48, $49 ; CPU:$A0A0 PRG:20A0 20 45 4E 43 41 53 45 44 20 53 4F 4D 45 54 48 49
.byte $4E, $47, $20, $49, $4E, $20, $20, $FF, $20, $48, $49, $53, $20, $44, $55, $52 ; CPU:$A0B0 PRG:20B0 4E 47 20 49 4E 20 20 FF 20 48 49 53 20 44 55 52
.byte $41, $42, $55, $42, $42, $4C, $45, $28, $54, $4D, $29, $20, $4E, $4F, $20, $20 ; CPU:$A0C0 PRG:20C0 41 42 55 42 42 4C 45 28 54 4D 29 20 4E 4F 20 20
.byte $FF, $20, $4F, $4E, $45, $20, $43, $4F, $55, $4C, $44, $20, $52, $45, $4C, $45 ; CPU:$A0D0 PRG:20D0 FF 20 4F 4E 45 20 43 4F 55 4C 44 20 52 45 4C 45
.byte $41, $53, $45, $20, $49, $54, $2E, $20, $20, $FF, $FF, $FF, $20, $20, $20, $20 ; CPU:$A0E0 PRG:20E0 41 53 45 20 49 54 2E 20 20 FF FF FF 20 20 20 20
.byte $45, $58, $43, $45, $50, $54, $20, $4F, $46, $20, $43, $4F, $55, $52, $53, $45 ; CPU:$A0F0 PRG:20F0 45 58 43 45 50 54 20 4F 46 20 43 4F 55 52 53 45
.byte $20, $20, $20, $20, $FF, $20, $20, $20, $45, $4D, $50, $45, $52, $4F, $52, $20 ; CPU:$A100 PRG:2100 20 20 20 20 FF 20 20 20 45 4D 50 45 52 4F 52 20
.byte $4F, $2D, $44, $49, $4E, $54, $4F, $4E, $2E, $20, $20, $20, $20, $FF, $20, $4E ; CPU:$A110 PRG:2110 4F 2D 44 49 4E 54 4F 4E 2E 20 20 20 20 FF 20 4E
.byte $41, $4D, $4F, $52, $41, $20, $41, $4E, $44, $20, $48, $45, $52, $20, $46, $52 ; CPU:$A120 PRG:2120 41 4D 4F 52 41 20 41 4E 44 20 48 45 52 20 46 52
.byte $49, $45, $4E, $44, $53, $20, $FF, $57, $45, $52, $45, $20, $50, $4C, $41, $59 ; CPU:$A130 PRG:2130 49 45 4E 44 53 20 FF 57 45 52 45 20 50 4C 41 59
.byte $49, $4E, $47, $20, $57, $49, $54, $48, $20, $54, $48, $45, $49, $52, $20, $FF ; CPU:$A140 PRG:2140 49 4E 47 20 57 49 54 48 20 54 48 45 49 52 20 FF
.byte $20, $20, $4E, $45, $57, $20, $47, $41, $4D, $45, $53, $20, $57, $48, $45, $4E ; CPU:$A150 PRG:2150 20 20 4E 45 57 20 47 41 4D 45 53 20 57 48 45 4E
.byte $20, $54, $48, $45, $59, $20, $20, $20, $FF, $FF, $53, $41, $57, $20, $54, $48 ; CPU:$A160 PRG:2160 20 54 48 45 59 20 20 20 FF FF 53 41 57 20 54 48
.byte $45, $20, $42, $55, $42, $42, $4C, $45, $53, $20, $43, $4F, $4D, $49, $4E, $47 ; CPU:$A170 PRG:2170 45 20 42 55 42 42 4C 45 53 20 43 4F 4D 49 4E 47
.byte $2E, $20, $FF, $20, $20, $54, $48, $45, $59, $20, $4B, $4E, $45, $57, $20, $54 ; CPU:$A180 PRG:2180 2E 20 FF 20 20 54 48 45 59 20 4B 4E 45 57 20 54
.byte $48, $45, $52, $45, $20, $57, $41, $53, $20, $20, $20, $FF, $53, $4F, $4D, $45 ; CPU:$A190 PRG:2190 48 45 52 45 20 57 41 53 20 20 20 FF 53 4F 4D 45
.byte $54, $48, $49, $4E, $47, $20, $57, $52, $4F, $4E, $47, $20, $42, $45, $43, $41 ; CPU:$A1A0 PRG:21A0 54 48 49 4E 47 20 57 52 4F 4E 47 20 42 45 43 41
.byte $55, $53, $45, $20, $FF, $FF, $20, $20, $49, $4E, $53, $54, $45, $41, $44, $20 ; CPU:$A1B0 PRG:21B0 55 53 45 20 FF FF 20 20 49 4E 53 54 45 41 44 20
.byte $4F, $46, $20, $46, $4C, $4F, $41, $54, $49, $4E, $47, $20, $20, $20, $FF, $20 ; CPU:$A1C0 PRG:21C0 4F 46 20 46 4C 4F 41 54 49 4E 47 20 20 20 FF 20
.byte $20, $20, $20, $20, $20, $20, $55, $50, $57, $41, $52, $44, $20, $54, $48, $45 ; CPU:$A1D0 PRG:21D0 20 20 20 20 20 20 55 50 57 41 52 44 20 54 48 45
.byte $20, $20, $20, $20, $20, $20, $20, $FF, $20, $20, $42, $55, $42, $42, $4C, $45 ; CPU:$A1E0 PRG:21E0 20 20 20 20 20 20 20 FF 20 20 42 55 42 42 4C 45
.byte $53, $20, $57, $45, $52, $45, $20, $53, $49, $4E, $4B, $49, $4E, $47, $20, $20 ; CPU:$A1F0 PRG:21F0 53 20 57 45 52 45 20 53 49 4E 4B 49 4E 47 20 20
.byte $FF, $FF, $FF, $20, $20, $20, $44, $4F, $57, $4E, $20, $54, $4F, $57, $41, $52 ; CPU:$A200 PRG:2200 FF FF FF 20 20 20 44 4F 57 4E 20 54 4F 57 41 52
.byte $44, $53, $20, $54, $48, $45, $4D, $2E, $20, $20, $20, $FF, $20, $54, $48, $45 ; CPU:$A210 PRG:2210 44 53 20 54 48 45 4D 2E 20 20 20 FF 20 54 48 45
.byte $20, $42, $55, $42, $42, $4C, $45, $53, $20, $45, $4E, $56, $45, $4C, $4F, $50 ; CPU:$A220 PRG:2220 20 42 55 42 42 4C 45 53 20 45 4E 56 45 4C 4F 50
.byte $45, $44, $20, $20, $FF, $20, $54, $48, $45, $20, $4D, $45, $52, $50, $45, $4F ; CPU:$A230 PRG:2230 45 44 20 20 FF 20 54 48 45 20 4D 45 52 50 45 4F
.byte $50, $4C, $45, $27, $53, $20, $47, $41, $4D, $45, $53, $2E, $20, $FF, $20, $20 ; CPU:$A240 PRG:2240 50 4C 45 27 53 20 47 41 4D 45 53 2E 20 FF 20 20
.byte $20, $20, $49, $54, $20, $57, $41, $53, $20, $54, $48, $45, $20, $53, $41, $4D ; CPU:$A250 PRG:2250 20 20 49 54 20 57 41 53 20 54 48 45 20 53 41 4D
.byte $45, $20, $20, $20, $20, $20, $FF, $FF, $20, $20, $45, $56, $45, $52, $59, $57 ; CPU:$A260 PRG:2260 45 20 20 20 20 20 FF FF 20 20 45 56 45 52 59 57
.byte $48, $45, $52, $45, $2E, $20, $41, $4C, $4C, $20, $54, $48, $45, $20, $20, $20 ; CPU:$A270 PRG:2270 48 45 52 45 2E 20 41 4C 4C 20 54 48 45 20 20 20
.byte $FF, $20, $20, $20, $20, $47, $41, $4D, $45, $53, $20, $55, $4E, $44, $45, $52 ; CPU:$A280 PRG:2280 FF 20 20 20 20 47 41 4D 45 53 20 55 4E 44 45 52
.byte $20, $54, $48, $45, $20, $20, $20, $20, $20, $FF, $20, $20, $53, $45, $41, $20 ; CPU:$A290 PRG:2290 20 54 48 45 20 20 20 20 20 FF 20 20 53 45 41 20
.byte $57, $45, $52, $45, $20, $45, $4E, $43, $41, $53, $45, $44, $20, $49, $4E, $20 ; CPU:$A2A0 PRG:22A0 57 45 52 45 20 45 4E 43 41 53 45 44 20 49 4E 20
.byte $20, $20, $FF, $FF, $20, $20, $20, $42, $55, $42, $42, $4C, $45, $53, $20, $53 ; CPU:$A2B0 PRG:22B0 20 20 FF FF 20 20 20 42 55 42 42 4C 45 53 20 53
.byte $4F, $20, $4E, $4F, $20, $4F, $4E, $45, $20, $20, $20, $20, $FF, $20, $20, $43 ; CPU:$A2C0 PRG:22C0 4F 20 4E 4F 20 4F 4E 45 20 20 20 20 FF 20 20 43
.byte $4F, $55, $4C, $44, $20, $50, $4C, $41, $59, $20, $54, $48, $45, $4D, $20, $41 ; CPU:$A2D0 PRG:22D0 4F 55 4C 44 20 50 4C 41 59 20 54 48 45 4D 20 41
.byte $4E, $44, $20, $20, $20, $FF, $20, $20, $20, $20, $20, $20, $20, $48, $41, $56 ; CPU:$A2E0 PRG:22E0 4E 44 20 20 20 FF 20 20 20 20 20 20 20 48 41 56
.byte $45, $20, $46, $55, $4E, $2E, $20, $20, $20, $20, $20, $20, $20, $20, $FF, $20 ; CPU:$A2F0 PRG:22F0 45 20 46 55 4E 2E 20 20 20 20 20 20 20 20 FF 20
.byte $20, $20, $20, $20, $20, $54, $48, $45, $4E, $20, $45, $4D, $50, $45, $52, $4F ; CPU:$A300 PRG:2300 20 20 20 20 20 54 48 45 4E 20 45 4D 50 45 52 4F
.byte $52, $20, $20, $20, $20, $20, $20, $FF, $20, $20, $20, $4F, $2D, $44, $49, $4E ; CPU:$A310 PRG:2310 52 20 20 20 20 20 20 FF 20 20 20 4F 2D 44 49 4E
.byte $54, $4F, $4E, $20, $43, $41, $4D, $45, $20, $44, $4F, $57, $4E, $20, $20, $20 ; CPU:$A320 PRG:2320 54 4F 4E 20 43 41 4D 45 20 44 4F 57 4E 20 20 20
.byte $FF, $20, $41, $4E, $44, $20, $41, $4E, $4E, $4F, $55, $4E, $43, $45, $44, $20 ; CPU:$A330 PRG:2330 FF 20 41 4E 44 20 41 4E 4E 4F 55 4E 43 45 44 20
.byte $54, $48, $41, $54, $20, $54, $48, $45, $20, $FF, $FF, $20, $20, $4D, $45, $52 ; CPU:$A340 PRG:2340 54 48 41 54 20 54 48 45 20 FF FF 20 20 4D 45 52
.byte $50, $45, $4F, $50, $4C, $45, $20, $57, $4F, $55, $4C, $44, $20, $48, $41, $56 ; CPU:$A350 PRG:2350 50 45 4F 50 4C 45 20 57 4F 55 4C 44 20 48 41 56
.byte $45, $20, $20, $FF, $20, $54, $4F, $20, $50, $41, $59, $20, $48, $49, $4D, $20 ; CPU:$A360 PRG:2360 45 20 20 FF 20 54 4F 20 50 41 59 20 48 49 4D 20
.byte $41, $20, $50, $45, $41, $52, $4C, $20, $54, $4F, $20, $20, $FF, $42, $55, $52 ; CPU:$A370 PRG:2370 41 20 50 45 41 52 4C 20 54 4F 20 20 FF 42 55 52
.byte $53, $54, $20, $54, $48, $45, $20, $42, $55, $42, $42, $4C, $45, $20, $41, $52 ; CPU:$A380 PRG:2380 53 54 20 54 48 45 20 42 55 42 42 4C 45 20 41 52
.byte $4F, $55, $4E, $44, $20, $FF, $FF, $FF, $20, $20, $41, $4E, $59, $20, $47, $41 ; CPU:$A390 PRG:2390 4F 55 4E 44 20 FF FF FF 20 20 41 4E 59 20 47 41
.byte $4D, $45, $2E, $20, $4F, $4E, $4C, $59, $20, $54, $48, $45, $4E, $20, $20, $20 ; CPU:$A3A0 PRG:23A0 4D 45 2E 20 4F 4E 4C 59 20 54 48 45 4E 20 20 20
.byte $FF, $20, $20, $20, $43, $4F, $55, $4C, $44, $20, $54, $48, $45, $59, $20, $50 ; CPU:$A3B0 PRG:23B0 FF 20 20 20 43 4F 55 4C 44 20 54 48 45 59 20 50
.byte $4C, $41, $59, $2E, $20, $20, $20, $20, $20, $FF, $20, $20, $20, $20, $53, $4F ; CPU:$A3C0 PRG:23C0 4C 41 59 2E 20 20 20 20 20 FF 20 20 20 20 53 4F
.byte $20, $54, $48, $45, $59, $20, $50, $41, $49, $44, $20, $54, $48, $45, $20, $20 ; CPU:$A3D0 PRG:23D0 20 54 48 45 59 20 50 41 49 44 20 54 48 45 20 20
.byte $20, $20, $FF, $20, $20, $45, $56, $49, $4C, $20, $45, $4D, $50, $45, $52, $4F ; CPU:$A3E0 PRG:23E0 20 20 FF 20 20 45 56 49 4C 20 45 4D 50 45 52 4F
.byte $52, $20, $48, $49, $53, $20, $54, $41, $58, $20, $20, $FF, $20, $20, $20, $20 ; CPU:$A3F0 PRG:23F0 52 20 48 49 53 20 54 41 58 20 20 FF 20 20 20 20
.byte $20, $20, $20, $20, $4F, $4E, $20, $46, $55, $4E, $2E, $20, $20, $20, $20, $20 ; CPU:$A400 PRG:2400 20 20 20 20 4F 4E 20 46 55 4E 2E 20 20 20 20 20
.byte $20, $20, $20, $20, $FF, $FF, $20, $20, $20, $4E, $4F, $57, $20, $49, $54, $20 ; CPU:$A410 PRG:2410 20 20 20 20 FF FF 20 20 20 4E 4F 57 20 49 54 20
.byte $53, $45, $45, $4D, $45, $44, $20, $54, $48, $45, $20, $20, $20, $20, $FF, $20 ; CPU:$A420 PRG:2420 53 45 45 4D 45 44 20 54 48 45 20 20 20 20 FF 20
.byte $47, $41, $4D, $45, $53, $20, $57, $45, $52, $45, $4E, $27, $54, $20, $41, $53 ; CPU:$A430 PRG:2430 47 41 4D 45 53 20 57 45 52 45 4E 27 54 20 41 53
.byte $20, $4D, $55, $43, $48, $20, $20, $FF, $20, $46, $55, $4E, $20, $54, $4F, $20 ; CPU:$A440 PRG:2440 20 4D 55 43 48 20 20 FF 20 46 55 4E 20 54 4F 20
.byte $50, $4C, $41, $59, $20, $41, $53, $20, $42, $45, $46, $4F, $52, $45, $2E, $20 ; CPU:$A450 PRG:2450 50 4C 41 59 20 41 53 20 42 45 46 4F 52 45 2E 20
.byte $FF, $20, $20, $4F, $4E, $45, $20, $44, $41, $59, $20, $4E, $41, $4D, $4F, $52 ; CPU:$A460 PRG:2460 FF 20 20 4F 4E 45 20 44 41 59 20 4E 41 4D 4F 52
.byte $41, $20, $46, $4F, $55, $4E, $44, $20, $20, $FF, $20, $54, $48, $41, $54, $20 ; CPU:$A470 PRG:2470 41 20 46 4F 55 4E 44 20 20 FF 20 54 48 41 54 20
.byte $42, $59, $20, $53, $54, $41, $43, $4B, $49, $4E, $47, $20, $46, $4F, $55, $52 ; CPU:$A480 PRG:2480 42 59 20 53 54 41 43 4B 49 4E 47 20 46 4F 55 52
.byte $20, $20, $FF, $20, $20, $20, $20, $4F, $52, $20, $4D, $4F, $52, $45, $20, $42 ; CPU:$A490 PRG:2490 20 20 FF 20 20 20 20 4F 52 20 4D 4F 52 45 20 42
.byte $55, $42, $42, $4C, $45, $53, $20, $20, $20, $20, $20, $FF, $FF, $20, $20, $54 ; CPU:$A4A0 PRG:24A0 55 42 42 4C 45 53 20 20 20 20 20 FF FF 20 20 54
.byte $4F, $47, $45, $54, $48, $45, $52, $20, $49, $4E, $20, $4A, $55, $53, $54, $20 ; CPU:$A4B0 PRG:24B0 4F 47 45 54 48 45 52 20 49 4E 20 4A 55 53 54 20
.byte $54, $48, $45, $20, $20, $FF, $20, $20, $52, $49, $47, $48, $54, $20, $57, $41 ; CPU:$A4C0 PRG:24C0 54 48 45 20 20 FF 20 20 52 49 47 48 54 20 57 41
.byte $59, $20, $54, $48, $45, $59, $20, $57, $4F, $55, $4C, $44, $20, $20, $FF, $20 ; CPU:$A4D0 PRG:24D0 59 20 54 48 45 59 20 57 4F 55 4C 44 20 20 FF 20
.byte $20, $20, $41, $4C, $4C, $20, $50, $4F, $50, $20, $4C, $49, $4B, $45, $20, $41 ; CPU:$A4E0 PRG:24E0 20 20 41 4C 4C 20 50 4F 50 20 4C 49 4B 45 20 41
.byte $20, $42, $49, $47, $20, $20, $20, $FF, $FF, $20, $20, $42, $41, $4C, $4C, $4F ; CPU:$A4F0 PRG:24F0 20 42 49 47 20 20 20 FF FF 20 20 42 41 4C 4C 4F
.byte $4F, $4E, $2E, $20, $4E, $4F, $57, $20, $4E, $4F, $20, $4F, $4E, $45, $20, $20 ; CPU:$A500 PRG:2500 4F 4E 2E 20 4E 4F 57 20 4E 4F 20 4F 4E 45 20 20
.byte $20, $FF, $20, $48, $41, $44, $20, $54, $4F, $20, $50, $41, $59, $20, $54, $48 ; CPU:$A510 PRG:2510 20 FF 20 48 41 44 20 54 4F 20 50 41 59 20 54 48
.byte $45, $20, $45, $4D, $50, $45, $52, $4F, $52, $20, $FF, $20, $20, $20, $20, $48 ; CPU:$A520 PRG:2520 45 20 45 4D 50 45 52 4F 52 20 FF 20 20 20 20 48
.byte $49, $53, $20, $54, $41, $58, $20, $4F, $4E, $20, $46, $55, $4E, $21, $20, $20 ; CPU:$A530 PRG:2530 49 53 20 54 41 58 20 4F 4E 20 46 55 4E 21 20 20
.byte $20, $20, $20, $FF, $FF, $20, $20, $20, $20, $57, $49, $54, $48, $49, $4E, $20 ; CPU:$A540 PRG:2540 20 20 20 FF FF 20 20 20 20 57 49 54 48 49 4E 20
.byte $44, $41, $59, $53, $20, $54, $48, $45, $20, $20, $20, $20, $20, $FF, $20, $20 ; CPU:$A550 PRG:2550 44 41 59 53 20 54 48 45 20 20 20 20 20 FF 20 20
.byte $4D, $45, $52, $50, $45, $4F, $50, $4C, $45, $20, $48, $41, $44, $20, $50, $4F ; CPU:$A560 PRG:2560 4D 45 52 50 45 4F 50 4C 45 20 48 41 44 20 50 4F
.byte $50, $50, $45, $44, $20, $20, $FF, $FF, $FF, $20, $20, $20, $41, $4C, $4C, $20 ; CPU:$A570 PRG:2570 50 50 45 44 20 20 FF FF FF 20 20 20 41 4C 4C 20
.byte $54, $48, $45, $20, $42, $55, $42, $42, $4C, $45, $53, $20, $4F, $4E, $20, $20 ; CPU:$A580 PRG:2580 54 48 45 20 42 55 42 42 4C 45 53 20 4F 4E 20 20
.byte $20, $FF, $20, $20, $20, $20, $20, $20, $45, $56, $45, $52, $59, $20, $47, $41 ; CPU:$A590 PRG:2590 20 FF 20 20 20 20 20 20 45 56 45 52 59 20 47 41
.byte $4D, $45, $2E, $20, $20, $20, $20, $20, $20, $20, $FF, $FF, $20, $20, $54, $48 ; CPU:$A5A0 PRG:25A0 4D 45 2E 20 20 20 20 20 20 20 FF FF 20 20 54 48
.byte $45, $20, $45, $4D, $50, $45, $52, $4F, $52, $20, $57, $41, $53, $20, $56, $45 ; CPU:$A5B0 PRG:25B0 45 20 45 4D 50 45 52 4F 52 20 57 41 53 20 56 45
.byte $52, $59, $20, $20, $FF, $20, $20, $41, $4E, $47, $52, $59, $20, $41, $4E, $44 ; CPU:$A5C0 PRG:25C0 52 59 20 20 FF 20 20 41 4E 47 52 59 20 41 4E 44
.byte $20, $53, $57, $41, $4D, $20, $42, $41, $43, $4B, $20, $20, $20, $FF, $20, $20 ; CPU:$A5D0 PRG:25D0 20 53 57 41 4D 20 42 41 43 4B 20 20 20 FF 20 20
.byte $20, $41, $43, $52, $4F, $53, $53, $20, $54, $48, $45, $20, $4F, $43, $45, $41 ; CPU:$A5E0 PRG:25E0 20 41 43 52 4F 53 53 20 54 48 45 20 4F 43 45 41
.byte $4E, $2E, $20, $20, $20, $20, $FF, $FF, $20, $20, $20, $20, $20, $54, $48, $45 ; CPU:$A5F0 PRG:25F0 4E 2E 20 20 20 20 FF FF 20 20 20 20 20 54 48 45
.byte $20, $4D, $45, $52, $50, $45, $4F, $50, $4C, $45, $20, $20, $20, $20, $20, $20 ; CPU:$A600 PRG:2600 20 4D 45 52 50 45 4F 50 4C 45 20 20 20 20 20 20
.byte $FF, $20, $50, $4C, $41, $59, $45, $44, $20, $41, $4C, $4C, $20, $54, $48, $45 ; CPU:$A610 PRG:2610 FF 20 50 4C 41 59 45 44 20 41 4C 4C 20 54 48 45
.byte $20, $47, $41, $4D, $45, $53, $20, $20, $20, $FF, $20, $20, $54, $48, $45, $59 ; CPU:$A620 PRG:2620 20 47 41 4D 45 53 20 20 20 FF 20 20 54 48 45 59
.byte $20, $4C, $4F, $56, $45, $44, $20, $53, $4F, $20, $4D, $55, $43, $48, $2E, $20 ; CPU:$A630 PRG:2630 20 4C 4F 56 45 44 20 53 4F 20 4D 55 43 48 2E 20
.byte $20, $20, $FF, $FF, $20, $20, $20, $41, $4E, $44, $20, $59, $4F, $55, $20, $4B ; CPU:$A640 PRG:2640 20 20 FF FF 20 20 20 41 4E 44 20 59 4F 55 20 4B
.byte $4E, $4F, $57, $20, $57, $48, $41, $54, $3F, $20, $20, $20, $FF, $20, $20, $20 ; CPU:$A650 PRG:2650 4E 4F 57 20 57 48 41 54 3F 20 20 20 FF 20 20 20
.byte $45, $56, $45, $52, $59, $20, $47, $41, $4D, $45, $20, $53, $45, $45, $4D, $45 ; CPU:$A660 PRG:2660 45 56 45 52 59 20 47 41 4D 45 20 53 45 45 4D 45
.byte $44, $20, $20, $20, $20, $FF, $20, $20, $20, $20, $20, $20, $53, $4F, $4D, $45 ; CPU:$A670 PRG:2670 44 20 20 20 20 FF 20 20 20 20 20 20 53 4F 4D 45
.byte $48, $4F, $57, $20, $4A, $55, $53, $54, $20, $20, $20, $20, $20, $20, $FF, $FF ; CPU:$A680 PRG:2680 48 4F 57 20 4A 55 53 54 20 20 20 20 20 20 FF FF
.byte $FF, $20, $41, $20, $4C, $49, $54, $54, $4C, $45, $20, $42, $49, $54, $20, $4D ; CPU:$A690 PRG:2690 FF 20 41 20 4C 49 54 54 4C 45 20 42 49 54 20 4D
.byte $4F, $52, $45, $20, $46, $55, $4E, $20, $20, $FF, $20, $20, $20, $20, $20, $20 ; CPU:$A6A0 PRG:26A0 4F 52 45 20 46 55 4E 20 20 FF 20 20 20 20 20 20
.byte $54, $48, $41, $4E, $20, $42, $45, $46, $4F, $52, $45, $2E, $20, $20, $20, $20 ; CPU:$A6B0 PRG:26B0 54 48 41 4E 20 42 45 46 4F 52 45 2E 20 20 20 20
.byte $20, $20, $FF, $FF, $20, $20, $20, $20, $20, $20, $41, $4E, $44, $20, $54, $48 ; CPU:$A6C0 PRG:26C0 20 20 FF FF 20 20 20 20 20 20 41 4E 44 20 54 48
.byte $45, $59, $20, $41, $4C, $4C, $20, $20, $20, $20, $20, $20, $FF, $20, $20, $20 ; CPU:$A6D0 PRG:26D0 45 59 20 41 4C 4C 20 20 20 20 20 20 FF 20 20 20
.byte $20, $20, $4C, $49, $56, $45, $44, $20, $48, $41, $50, $50, $49, $4C, $59, $20 ; CPU:$A6E0 PRG:26E0 20 20 4C 49 56 45 44 20 48 41 50 50 49 4C 59 20
.byte $20, $20, $20, $20, $20, $FF, $20, $20, $20, $20, $20, $20, $45, $56, $45, $52 ; CPU:$A6F0 PRG:26F0 20 20 20 20 20 FF 20 20 20 20 20 20 45 56 45 52
.byte $20, $41, $46, $54, $45, $52, $2E, $20, $20, $20, $20, $20, $20, $20, $FF, $0E ; CPU:$A700 PRG:2700 20 41 46 54 45 52 2E 20 20 20 20 20 20 20 FF 0E
.byte $0E, $05, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E ; CPU:$A710 PRG:2710 0E 05 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E
.byte $0E, $0E, $0E, $0E, $25, $13, $1A, $0E, $21, $25, $1A, $0E, $21, $13, $30, $0E ; CPU:$A720 PRG:2720 0E 0E 0E 0E 25 13 1A 0E 21 25 1A 0E 21 13 30 0E
.byte $01, $15, $06, $0E, $05, $0E, $0E, $0E, $01, $05, $0E, $0E, $01, $0E, $10, $0E ; CPU:$A730 PRG:2730 01 15 06 0E 05 0E 0E 0E 01 05 0E 0E 01 0E 10 0E
.byte $0E, $0E, $0E, $0E, $25, $13, $1A, $0E, $21, $25, $1A, $0E, $21, $13, $30, $0E ; CPU:$A740 PRG:2740 0E 0E 0E 0E 25 13 1A 0E 21 25 1A 0E 21 13 30 0E
.byte $11, $25, $16, $0E, $15, $03, $0A, $0E, $11, $15, $0A, $0E, $11, $03, $20, $0E ; CPU:$A750 PRG:2750 11 25 16 0E 15 03 0A 0E 11 15 0A 0E 11 03 20 0E
.byte $0E, $0E, $0E, $0E, $25, $13, $1A, $0E, $21, $25, $1A, $0E, $21, $13, $30, $0E ; CPU:$A760 PRG:2760 0E 0E 0E 0E 25 13 1A 0E 21 25 1A 0E 21 13 30 0E
.byte $21, $36, $26, $0E, $25, $13, $1A, $0E, $21, $25, $1A, $0E, $21, $13, $30, $0E ; CPU:$A770 PRG:2770 21 36 26 0E 25 13 1A 0E 21 25 1A 0E 21 13 30 0E
.byte $0E, $0E, $0E, $0E, $25, $13, $1A, $0E, $21, $25, $1A, $0E, $21, $13, $30, $A5 ; CPU:$A780 PRG:2780 0E 0E 0E 0E 25 13 1A 0E 21 25 1A 0E 21 13 30 A5
.byte $B9, $8D, $E8, $05, $A5, $C2, $F0, $0C, $A5, $B9, $D0, $08, $20, $21, $B8, $A9 ; CPU:$A790 PRG:2790 B9 8D E8 05 A5 C2 F0 0C A5 B9 D0 08 20 21 B8 A9
.byte $00, $85, $B9, $60, $A5, $71, $C9, $02, $F0, $09, $A5, $B9, $C9, $07, $B0, $03 ; CPU:$A7A0 PRG:27A0 00 85 B9 60 A5 71 C9 02 F0 09 A5 B9 C9 07 B0 03
.byte $20, $D0, $B7, $A5, $BE, $30, $0C, $A5, $71, $C9, $02, $F0, $06, $A5, $31, $D0 ; CPU:$A7B0 PRG:27B0 20 D0 B7 A5 BE 30 0C A5 71 C9 02 F0 06 A5 31 D0
.byte $02, $E6, $C0, $A5, $B9, $20, $73, $81, $DC, $A7, $05, $A8, $6C, $A8, $88, $AD ; CPU:$A7C0 PRG:27C0 02 E6 C0 A5 B9 20 73 81 DC A7 05 A8 6C A8 88 AD
.byte $CE, $AF, $AE, $A8, $1B, $AA, $91, $AA, $0B, $AE, $21, $BA, $A9, $A4, $85, $A6 ; CPU:$A7D0 PRG:27D0 CE AF AE A8 1B AA 91 AA 0B AE 21 BA A9 A4 85 A6
.byte $A9, $CE, $85, $A7, $A9, $2B, $85, $AA, $E6, $B9, $A9, $00, $85, $B3, $85, $A5 ; CPU:$A7E0 PRG:27E0 A9 CE 85 A7 A9 2B 85 AA E6 B9 A9 00 85 B3 85 A5
.byte $85, $37, $85, $36, $A9, $08, $85, $9D, $20, $EF, $A8, $A5, $BF, $C9, $05, $D0 ; CPU:$A7F0 PRG:27F0 85 37 85 36 A9 08 85 9D 20 EF A8 A5 BF C9 05 D0
.byte $03, $20, $9F, $AF, $60, $20, $B3, $AA, $A5, $2B, $29, $C0, $F0, $1A, $A9, $01 ; CPU:$A800 PRG:2800 03 20 9F AF 60 20 B3 AA A5 2B 29 C0 F0 1A A9 01
.byte $8D, $E3, $00, $A9, $03, $8D, $E2, $00, $A5, $2B, $29, $80, $F0, $05, $A9, $02 ; CPU:$A810 PRG:2810 8D E3 00 A9 03 8D E2 00 A5 2B 29 80 F0 05 A9 02
.byte $8D, $E2, $00, $A9, $04, $20, $04, $80, $AD, $DD, $06, $F0, $03, $20, $A1, $A9 ; CPU:$A820 PRG:2820 8D E2 00 A9 04 20 04 80 AD DD 06 F0 03 20 A1 A9
.byte $A6, $BD, $F0, $25, $AD, $59, $03, $C9, $07, $90, $1F, $BD, $8D, $03, $8D, $89 ; CPU:$A830 PRG:2830 A6 BD F0 25 AD 59 03 C9 07 90 1F BD 8D 03 8D 89
.byte $03, $BD, $9D, $03, $8D, $99, $03, $A9, $04, $18, $6D, $89, $03, $8D, $89, $03 ; CPU:$A840 PRG:2840 03 BD 9D 03 8D 99 03 A9 04 18 6D 89 03 8D 89 03
.byte $A9, $04, $18, $6D, $99, $03, $8D, $99, $03, $60, $A5, $31, $6A, $29, $03, $85 ; CPU:$A850 PRG:2850 A9 04 18 6D 99 03 8D 99 03 60 A5 31 6A 29 03 85
.byte $20, $AD, $AF, $03, $29, $FC, $05, $20, $8D, $AF, $03, $60, $A5, $31, $6A, $90 ; CPU:$A860 PRG:2860 20 AD AF 03 29 FC 05 20 8D AF 03 60 A5 31 6A 90
.byte $01, $60, $20, $55, $AD, $20, $7F, $A9, $A5, $BD, $F0, $1C, $AD, $59, $03, $C9 ; CPU:$A870 PRG:2870 01 60 20 55 AD 20 7F A9 A5 BD F0 1C AD 59 03 C9
.byte $07, $90, $15, $A6, $BD, $B5, $AA, $85, $BE, $AA, $BD, $EA, $05, $09, $40, $9D ; CPU:$A880 PRG:2880 07 90 15 A6 BD B5 AA 85 BE AA BD EA 05 09 40 9D
.byte $EA, $05, $A9, $00, $85, $BD, $85, $C0, $E6, $B9, $A9, $01, $8D, $E3, $00, $A9 ; CPU:$A890 PRG:2890 EA 05 A9 00 85 BD 85 C0 E6 B9 A9 01 8D E3 00 A9
.byte $00, $8D, $E2, $00, $A9, $04, $20, $04, $80, $A9, $00, $85, $BA, $60, $20, $08 ; CPU:$A8A0 PRG:28A0 00 8D E2 00 A9 04 20 04 80 A9 00 85 BA 60 20 08
.byte $B1, $60, $A6, $C3, $A9, $04, $85, $1F, $A5, $A5, $0A, $0A, $A8, $B1, $A3, $85 ; CPU:$A8B0 PRG:28B0 B1 60 A6 C3 A9 04 85 1F A5 A5 0A 0A A8 B1 A3 85
.byte $1B, $29, $F0, $85, $1C, $18, $65, $A6, $9D, $88, $03, $A5, $1B, $29, $0F, $0A ; CPU:$A8C0 PRG:28C0 1B 29 F0 85 1C 18 65 A6 9D 88 03 A5 1B 29 0F 0A
.byte $0A, $0A, $0A, $18, $65, $A7, $9D, $98, $03, $A9, $10, $25, $1C, $F0, $09, $BD ; CPU:$A8D0 PRG:28D0 0A 0A 0A 18 65 A7 9D 98 03 A9 10 25 1C F0 09 BD
.byte $98, $03, $18, $69, $08, $9D, $98, $03, $E8, $C8, $C6, $1F, $D0, $CF, $60, $EE ; CPU:$A8E0 PRG:28E0 98 03 18 69 08 9D 98 03 E8 C8 C6 1F D0 CF 60 EE
.byte $E3, $05, $AD, $E3, $05, $6A, $AC, $E5, $05, $D0, $05, $20, $52, $85, $A5, $3D ; CPU:$A8F0 PRG:28F0 E3 05 AD E3 05 6A AC E5 05 D0 05 20 52 85 A5 3D
.byte $29, $07, $85, $1D, $AD, $E3, $05, $6A, $AC, $E5, $05, $D0, $05, $20, $52, $85 ; CPU:$A900 PRG:2900 29 07 85 1D AD E3 05 6A AC E5 05 D0 05 20 52 85
.byte $A5, $3D, $29, $7F, $A8, $B1, $3B, $85, $1B, $6A, $6A, $6A, $29, $0E, $85, $9E ; CPU:$A910 PRG:2910 A5 3D 29 7F A8 B1 3B 85 1B 6A 6A 6A 29 0E 85 9E
.byte $AA, $BD, $13, $F3, $85, $A3, $BD, $14, $F3, $85, $A4, $BD, $8E, $F3, $85, $19 ; CPU:$A920 PRG:2920 AA BD 13 F3 85 A3 BD 14 F3 85 A4 BD 8E F3 85 19
.byte $BD, $8F, $F3, $85, $1A, $A5, $1B, $29, $0F, $0A, $0A, $A8, $A2, $00, $86, $21 ; CPU:$A930 PRG:2930 BD 8F F3 85 1A A5 1B 29 0F 0A 0A A8 A2 00 86 21
.byte $B1, $19, $18, $65, $1D, $AA, $BD, $81, $F3, $A6, $21, $95, $AF, $C8, $E8, $E0 ; CPU:$A940 PRG:2940 B1 19 18 65 1D AA BD 81 F3 A6 21 95 AF C8 E8 E0
.byte $04, $90, $EB, $A2, $00, $A9, $06, $85, $12, $86, $21, $B5, $AF, $85, $11, $20 ; CPU:$A950 PRG:2950 04 90 EB A2 00 A9 06 85 12 86 21 B5 AF 85 11 20
.byte $5D, $85, $E6, $12, $A6, $21, $E8, $E0, $04, $90, $EE, $A9, $06, $85, $C3, $A0 ; CPU:$A960 PRG:2960 5D 85 E6 12 A6 21 E8 E0 04 90 EE A9 06 85 C3 A0
.byte $00, $B1, $A3, $18, $65, $AA, $99, $AB, $00, $C8, $C0, $04, $90, $F3, $60, $A9 ; CPU:$A970 PRG:2970 00 B1 A3 18 65 AA 99 AB 00 C8 C0 04 90 F3 60 A9
.byte $00, $85, $11, $A9, $06, $85, $12, $20, $5D, $85, $E6, $12, $AD, $5F, $03, $C9 ; CPU:$A980 PRG:2980 00 85 11 A9 06 85 12 20 5D 85 E6 12 AD 5F 03 C9
.byte $05, $D0, $02, $E6, $12, $20, $5D, $85, $E6, $12, $A5, $12, $C9, $0A, $90, $F5 ; CPU:$A990 PRG:2990 05 D0 02 E6 12 20 5D 85 E6 12 A5 12 C9 0A 90 F5
.byte $60, $A5, $31, $6A, $90, $01, $60, $AD, $DD, $06, $AA, $29, $0F, $18, $6D, $BF ; CPU:$A9A0 PRG:29A0 60 A5 31 6A 90 01 60 AD DD 06 AA 29 0F 18 6D BF
.byte $05, $8D, $BF, $05, $8A, $6A, $6A, $6A, $6A, $29, $0F, $18, $6D, $BE, $05, $8D ; CPU:$A9B0 PRG:29B0 05 8D BF 05 8A 6A 6A 6A 6A 29 0F 18 6D BE 05 8D
.byte $BE, $05, $A2, $05, $BD, $BA, $05, $C9, $0A, $90, $0B, $FE, $B9, $05, $18, $69 ; CPU:$A9C0 PRG:29C0 BE 05 A2 05 BD BA 05 C9 0A 90 0B FE B9 05 18 69
.byte $06, $29, $0F, $9D, $BA, $05, $CA, $D0, $EB, $A9, $06, $8D, $F1, $06, $A9, $01 ; CPU:$A9D0 PRG:29D0 06 29 0F 9D BA 05 CA D0 EB A9 06 8D F1 06 A9 01
.byte $8D, $F2, $06, $A2, $00, $BD, $BA, $05, $A8, $B9, $D6, $F1, $9D, $F3, $06, $E8 ; CPU:$A9E0 PRG:29E0 8D F2 06 A2 00 BD BA 05 A8 B9 D6 F1 9D F3 06 E8
.byte $E0, $06, $90, $F1, $A6, $37, $A9, $3A, $9D, $38, $03, $A9, $23, $9D, $39, $03 ; CPU:$A9F0 PRG:29F0 E0 06 90 F1 A6 37 A9 3A 9D 38 03 A9 23 9D 39 03
.byte $AD, $0A, $B7, $9D, $3A, $03, $AD, $0B, $B7, $9D, $3B, $03, $A9, $00, $9D, $3C ; CPU:$AA00 PRG:2A00 AD 0A B7 9D 3A 03 AD 0B B7 9D 3B 03 A9 00 9D 3C
.byte $03, $8D, $DD, $06, $8A, $18, $69, $04, $85, $37, $60, $A5, $C0, $C9, $08, $90 ; CPU:$AA10 PRG:2A10 03 8D DD 06 8A 18 69 04 85 37 60 A5 C0 C9 08 90
.byte $15, $A6, $BE, $BD, $EA, $05, $29, $BF, $9D, $EA, $05, $A9, $00, $85, $C0, $8D ; CPU:$AA20 PRG:2A20 15 A6 BE BD EA 05 29 BF 9D EA 05 A9 00 85 C0 8D
.byte $59, $03, $A9, $FF, $85, $BE, $A2, $0B, $BD, $EA, $05, $F0, $09, $E6, $B9, $E6 ; CPU:$AA30 PRG:2A30 59 03 A9 FF 85 BE A2 0B BD EA 05 F0 09 E6 B9 E6
.byte $B9, $A9, $00, $85, $BA, $60, $8A, $18, $69, $10, $AA, $C9, $70, $90, $E9, $A9 ; CPU:$AA40 PRG:2A40 B9 A9 00 85 BA 60 8A 18 69 10 AA C9 70 90 E9 A9
.byte $00, $85, $B9, $A5, $71, $C9, $02, $F0, $2C, $A5, $C2, $D0, $27, $A5, $BC, $C9 ; CPU:$AA50 PRG:2A50 00 85 B9 A5 71 C9 02 F0 2C A5 C2 D0 27 A5 BC C9
.byte $1E, $90, $0F, $A9, $00, $85, $BC, $E6, $BF, $A5, $BF, $C9, $05, $F0, $03, $20 ; CPU:$AA60 PRG:2A60 1E 90 0F A9 00 85 BC E6 BF A5 BF C9 05 F0 03 20
.byte $5A, $AF, $A5, $BB, $C9, $C8, $90, $0C, $A9, $07, $85, $B9, $A9, $00, $85, $BA ; CPU:$AA70 PRG:2A70 5A AF A5 BB C9 C8 90 0C A9 07 85 B9 A9 00 85 BA
.byte $A9, $32, $85, $B3, $60, $A6, $BE, $BD, $EA, $05, $29, $40, $D0, $F6, $4C, $78 ; CPU:$AA80 PRG:2A80 A9 32 85 B3 60 A6 BE BD EA 05 29 40 D0 F6 4C 78
.byte $AA, $A9, $01, $85, $98, $A5, $95, $D0, $08, $AD, $E9, $05, $C9, $05, $D0, $01 ; CPU:$AA90 PRG:2A90 AA A9 01 85 98 A5 95 D0 08 AD E9 05 C9 05 D0 01
.byte $60, $A9, $09, $85, $6A, $A9, $00, $85, $6C, $60, $A9, $05, $85, $BA, $A9, $08 ; CPU:$AAA0 PRG:2AA0 60 A9 09 85 6A A9 00 85 6C 60 A9 05 85 BA A9 08
.byte $85, $B9, $60, $A5, $B3, $F0, $1E, $A5, $9C, $29, $01, $F0, $05, $E6, $A6, $4C ; CPU:$AAB0 PRG:2AB0 85 B9 60 A5 B3 F0 1E A5 9C 29 01 F0 05 E6 A6 4C
.byte $CA, $AA, $A5, $9C, $29, $02, $F0, $02, $C6, $A6, $C6, $B3, $D0, $04, $A9, $00 ; CPU:$AAC0 PRG:2AC0 CA AA A5 9C 29 02 F0 02 C6 A6 C6 B3 D0 04 A9 00
.byte $85, $9C, $4C, $DF, $AB, $AD, $E5, $05, $F0, $17, $AE, $E4, $05, $BD, $BE, $AC ; CPU:$AAD0 PRG:2AD0 85 9C 4C DF AB AD E5 05 F0 17 AE E4 05 BD BE AC
.byte $C5, $AA, $D0, $0D, $BD, $BF, $AC, $85, $27, $85, $2B, $EE, $E4, $05, $EE, $E4 ; CPU:$AAE0 PRG:2AE0 C5 AA D0 0D BD BF AC 85 27 85 2B EE E4 05 EE E4
.byte $05, $A5, $27, $29, $08, $D0, $06, $A9, $00, $85, $C5, $F0, $16, $E6, $C5, $A5 ; CPU:$AAF0 PRG:2AF0 05 A5 27 29 08 D0 06 A9 00 85 C5 F0 16 E6 C5 A5
.byte $C5, $C9, $08, $90, $0A, $A9, $00, $85, $C5, $EE, $DD, $06, $EE, $DD, $06, $A9 ; CPU:$AB00 PRG:2B00 C5 C9 08 90 0A A9 00 85 C5 EE DD 06 EE DD 06 A9
.byte $00, $85, $C6, $A5, $C6, $D0, $0A, $A5, $CB, $85, $C6, $C6, $9D, $C6, $A7, $C6 ; CPU:$AB10 PRG:2B10 00 85 C6 A5 C6 D0 0A A5 CB 85 C6 C6 9D C6 A7 C6
.byte $A7, $C6, $C6, $A5, $9D, $D0, $16, $A9, $08, $85, $9D, $A5, $AA, $85, $20, $C6 ; CPU:$AB20 PRG:2B20 A7 C6 C6 A5 9D D0 16 A9 08 85 9D A5 AA 85 20 C6
.byte $20, $A5, $A5, $85, $23, $20, $29, $AC, $F0, $03, $E6, $B9, $60, $A5, $27, $29 ; CPU:$AB30 PRG:2B30 20 A5 A5 85 23 20 29 AC F0 03 E6 B9 60 A5 27 29
.byte $03, $D0, $03, $4C, $DF, $AB, $C9, $03, $D0, $07, $A9, $00, $85, $9C, $4C, $DF ; CPU:$AB40 PRG:2B40 03 D0 03 4C DF AB C9 03 D0 07 A9 00 85 9C 4C DF
.byte $AB, $85, $9C, $A5, $27, $29, $01, $F0, $09, $A5, $AA, $18, $69, $10, $29, $F0 ; CPU:$AB50 PRG:2B50 AB 85 9C A5 27 29 01 F0 09 A5 AA 18 69 10 29 F0
.byte $85, $20, $A5, $27, $29, $02, $F0, $09, $A5, $AA, $38, $E9, $10, $29, $F0, $85 ; CPU:$AB60 PRG:2B60 85 20 A5 27 29 02 F0 09 A5 AA 38 E9 10 29 F0 85
.byte $20, $A5, $AA, $29, $0F, $05, $20, $85, $20, $A5, $9D, $C9, $05, $90, $1B, $A5 ; CPU:$AB70 PRG:2B70 20 A5 AA 29 0F 05 20 85 20 A5 9D C9 05 90 1B A5
.byte $AA, $85, $1C, $29, $0F, $C9, $0E, $90, $06, $A5, $AA, $49, $10, $85, $1C, $A5 ; CPU:$AB80 PRG:2B80 AA 85 1C 29 0F C9 0E 90 06 A5 AA 49 10 85 1C A5
.byte $1C, $29, $10, $F0, $1D, $E6, $20, $4C, $B2, $AB, $A5, $AA, $85, $1C, $29, $0F ; CPU:$AB90 PRG:2B90 1C 29 10 F0 1D E6 20 4C B2 AB A5 AA 85 1C 29 0F
.byte $C9, $0E, $90, $06, $A5, $AA, $49, $10, $85, $1C, $A5, $1C, $29, $10, $D0, $02 ; CPU:$ABA0 PRG:2BA0 C9 0E 90 06 A5 AA 49 10 85 1C A5 1C 29 10 D0 02
.byte $C6, $20, $A5, $A5, $85, $23, $20, $29, $AC, $F0, $09, $A9, $00, $85, $9C, $85 ; CPU:$ABB0 PRG:2BB0 C6 20 A5 A5 85 23 20 29 AC F0 09 A9 00 85 9C 85
.byte $B3, $4C, $DF, $AB, $A9, $00, $85, $C6, $A9, $10, $85, $B3, $A5, $9D, $C9, $05 ; CPU:$ABC0 PRG:2BC0 B3 4C DF AB A9 00 85 C6 A9 10 85 B3 A5 9D C9 05
.byte $90, $08, $38, $E9, $04, $85, $9D, $4C, $DF, $AB, $18, $69, $04, $85, $9D, $A5 ; CPU:$ABD0 PRG:2BD0 90 08 38 E9 04 85 9D 4C DF AB 18 69 04 85 9D A5
.byte $A5, $85, $23, $29, $01, $F0, $21, $A5, $2B, $29, $80, $F0, $02, $C6, $23, $A5 ; CPU:$ABE0 PRG:2BE0 A5 85 23 29 01 F0 21 A5 2B 29 80 F0 02 C6 23 A5
.byte $2B, $29, $40, $F0, $02, $E6, $23, $A5, $23, $29, $03, $85, $23, $A5, $AA, $85 ; CPU:$ABF0 PRG:2BF0 2B 29 40 F0 02 E6 23 A5 23 29 03 85 23 A5 AA 85
.byte $20, $20, $29, $AC, $20, $B2, $A8, $60, $A5, $2B, $29, $80, $F0, $02, $E6, $23 ; CPU:$AC00 PRG:2C00 20 20 29 AC 20 B2 A8 60 A5 2B 29 80 F0 02 E6 23
.byte $A5, $2B, $29, $40, $F0, $02, $C6, $23, $A5, $23, $29, $03, $85, $23, $A5, $AA ; CPU:$AC10 PRG:2C10 A5 2B 29 40 F0 02 C6 23 A5 23 29 03 85 23 A5 AA
.byte $85, $20, $20, $29, $AC, $20, $B2, $A8, $60, $A5, $20, $29, $F0, $85, $21, $A5 ; CPU:$AC20 PRG:2C20 85 20 20 29 AC 20 B2 A8 60 A5 20 29 F0 85 21 A5
.byte $20, $29, $0F, $85, $22, $A9, $04, $85, $1F, $A2, $00, $A5, $23, $0A, $0A, $85 ; CPU:$AC30 PRG:2C30 20 29 0F 85 22 A9 04 85 1F A2 00 A5 23 0A 0A 85
.byte $25, $A4, $25, $B1, $A3, $85, $1E, $A5, $21, $85, $1C, $A5, $22, $C9, $0E, $90 ; CPU:$AC40 PRG:2C40 25 A4 25 B1 A3 85 1E A5 21 85 1C A5 22 C9 0E 90
.byte $07, $A5, $21, $18, $69, $10, $85, $1C, $A5, $1C, $29, $10, $F0, $08, $A5, $1E ; CPU:$AC50 PRG:2C50 07 A5 21 18 69 10 85 1C A5 1C 29 10 F0 08 A5 1E
.byte $29, $10, $F0, $02, $E6, $1E, $A5, $1E, $29, $F0, $18, $65, $21, $85, $1D, $C9 ; CPU:$AC60 PRG:2C60 29 10 F0 02 E6 1E A5 1E 29 F0 18 65 21 85 1D C9
.byte $70, $D0, $03, $A9, $FF, $60, $A5, $1E, $29, $0F, $18, $65, $22, $85, $1C, $29 ; CPU:$AC70 PRG:2C70 70 D0 03 A9 FF 60 A5 1E 29 0F 18 65 22 85 1C 29
.byte $0F, $C9, $0E, $90, $03, $A9, $FF, $60, $A5, $1C, $18, $65, $1D, $C9, $70, $B0 ; CPU:$AC80 PRG:2C80 0F C9 0E 90 03 A9 FF 60 A5 1C 18 65 1D C9 70 B0
.byte $F4, $A8, $B9, $EA, $05, $29, $7F, $F0, $01, $60, $98, $95, $C7, $E8, $E6, $25 ; CPU:$AC90 PRG:2C90 F4 A8 B9 EA 05 29 7F F0 01 60 98 95 C7 E8 E6 25
.byte $C6, $1F, $D0, $9D, $A9, $04, $85, $1F, $A2, $00, $B5, $C7, $95, $AB, $E8, $C6 ; CPU:$ACA0 PRG:2CA0 C6 1F D0 9D A9 04 85 1F A2 00 B5 C7 95 AB E8 C6
.byte $1F, $D0, $F7, $A5, $20, $85, $AA, $A5, $23, $85, $A5, $A9, $00, $60, $28, $80 ; CPU:$ACB0 PRG:2CB0 1F D0 F7 A5 20 85 AA A5 23 85 A5 A9 00 60 28 80
.byte $24, $02, $28, $01, $32, $02, $29, $01, $35, $40, $29, $80, $24, $01, $2A, $01 ; CPU:$ACC0 PRG:2CC0 24 02 28 01 32 02 29 01 35 40 29 80 24 01 2A 01
.byte $35, $01, $28, $80, $24, $40, $28, $01, $34, $02, $28, $40, $25, $40, $2A, $02 ; CPU:$ACD0 PRG:2CD0 35 01 28 80 24 40 28 01 34 02 28 40 25 40 2A 02
.byte $17, $02, $05, $80, $28, $40, $23, $80, $28, $01, $34, $40, $32, $01, $29, $01 ; CPU:$ACE0 PRG:2CE0 17 02 05 80 28 40 23 80 28 01 34 40 32 01 29 01
.byte $35, $40, $33, $01, $29, $80, $25, $01, $32, $01, $27, $02, $12, $40, $27, $40 ; CPU:$ACF0 PRG:2CF0 35 40 33 01 29 80 25 01 32 01 27 02 12 40 27 40
.byte $24, $02, $29, $80, $23, $80, $29, $01, $32, $02, $21, $02, $26, $40, $22, $02 ; CPU:$AD00 PRG:2D00 24 02 29 80 23 80 29 01 32 02 21 02 26 40 22 02
.byte $10, $01, $25, $02, $29, $80, $26, $40, $28, $40, $25, $80, $23, $40, $29, $80 ; CPU:$AD10 PRG:2D10 10 01 25 02 29 80 26 40 28 40 25 80 23 40 29 80
.byte $26, $01, $34, $01, $28, $80, $22, $01, $29, $01, $36, $01, $43, $01, $28, $40 ; CPU:$AD20 PRG:2D20 26 01 34 01 28 80 22 01 29 01 36 01 43 01 28 40
.byte $25, $80, $23, $01, $29, $01, $36, $01, $29, $01, $36, $01, $29, $80, $25, $80 ; CPU:$AD30 PRG:2D30 25 80 23 01 29 01 36 01 29 01 36 01 29 80 25 80
.byte $28, $80, $2A, $02, $18, $02, $06, $40, $04, $01, $28, $40, $28, $80, $25, $80 ; CPU:$AD40 PRG:2D40 28 80 2A 02 18 02 06 40 04 01 28 40 28 80 25 80
.byte $29, $02, $29, $01, $37, $A2, $00, $86, $21, $B4, $AB, $B5, $AF, $85, $1B, $99 ; CPU:$AD50 PRG:2D50 29 02 29 01 37 A2 00 86 21 B4 AB B5 AF 85 1B 99
.byte $EA, $05, $E6, $21, $0A, $AA, $BD, $9E, $F2, $85, $17, $BD, $9F, $F2, $85, $18 ; CPU:$AD60 PRG:2D60 EA 05 E6 21 0A AA BD 9E F2 85 17 BD 9F F2 85 18
.byte $98, $20, $BF, $84, $20, $8A, $85, $20, $E3, $84, $A6, $21, $E0, $04, $90, $D9 ; CPU:$AD70 PRG:2D70 98 20 BF 84 20 8A 85 20 E3 84 A6 21 E0 04 90 D9
.byte $A6, $36, $A9, $00, $9D, $00, $03, $60, $A5, $BA, $C9, $00, $D0, $36, $A2, $00 ; CPU:$AD80 PRG:2D80 A6 36 A9 00 9D 00 03 60 A5 BA C9 00 D0 36 A2 00
.byte $86, $B5, $86, $21, $B5, $AB, $85, $20, $C6, $20, $A5, $20, $29, $0F, $C9, $0E ; CPU:$AD90 PRG:2D90 86 B5 86 21 B5 AB 85 20 C6 20 A5 20 29 0F C9 0E
.byte $B0, $18, $A4, $20, $B9, $EA, $05, $D0, $11, $A9, $80, $99, $EA, $05, $98, $A6 ; CPU:$ADA0 PRG:2DA0 B0 18 A4 20 B9 EA 05 D0 11 A9 80 99 EA 05 98 A6
.byte $B5, $9D, $A1, $06, $E6, $B5, $C6, $20, $10, $E0, $A6, $21, $E8, $E0, $04, $90 ; CPU:$ADB0 PRG:2DB0 B5 9D A1 06 E6 B5 C6 20 10 E0 A6 21 E8 E0 04 90
.byte $D1, $E6, $BA, $60, $A5, $31, $6A, $90, $01, $60, $A9, $0D, $85, $17, $A9, $F3 ; CPU:$ADC0 PRG:2DC0 D1 E6 BA 60 A5 31 6A 90 01 60 A9 0D 85 17 A9 F3
.byte $85, $18, $A9, $0C, $85, $1F, $A0, $00, $C6, $B5, $10, $18, $E6, $B9, $A5, $BD ; CPU:$ADD0 PRG:2DD0 85 18 A9 0C 85 1F A0 00 C6 B5 10 18 E6 B9 A5 BD
.byte $D0, $02, $E6, $B9, $A9, $00, $A4, $36, $85, $BA, $99, $00, $03, $85, $9C, $A9 ; CPU:$ADE0 PRG:2DE0 D0 02 E6 B9 A9 00 A4 36 85 BA 99 00 03 85 9C A9
.byte $03, $85, $B3, $60, $A6, $B5, $BD, $A1, $06, $20, $BF, $84, $20, $8A, $85, $C6 ; CPU:$ADF0 PRG:2DF0 03 85 B3 60 A6 B5 BD A1 06 20 BF 84 20 8A 85 C6
.byte $1F, $10, $D5, $A4, $36, $A9, $00, $99, $00, $03, $60, $A5, $BA, $20, $73, $81 ; CPU:$AE00 PRG:2E00 1F 10 D5 A4 36 A9 00 99 00 03 60 A5 BA 20 73 81
.byte $20, $AE, $2B, $AE, $47, $AE, $80, $AE, $D6, $AE, $E3, $AE, $0A, $AF, $23, $AF ; CPU:$AE10 PRG:2E10 20 AE 2B AE 47 AE 80 AE D6 AE E3 AE 0A AF 23 AF
.byte $A9, $0A, $85, $6A, $A9, $00, $85, $6C, $E6, $BA, $60, $A9, $00, $8D, $59, $03 ; CPU:$AE20 PRG:2E20 A9 0A 85 6A A9 00 85 6C E6 BA 60 A9 00 8D 59 03
.byte $8D, $5E, $03, $8D, $5F, $03, $8D, $60, $03, $8D, $61, $03, $A9, $0A, $85, $B5 ; CPU:$AE30 PRG:2E30 8D 5E 03 8D 5F 03 8D 60 03 8D 61 03 A9 0A 85 B5
.byte $E6, $BA, $A9, $07, $4C, $04, $80, $A5, $31, $6A, $90, $01, $60, $A9, $A8, $85 ; CPU:$AE40 PRG:2E40 E6 BA A9 07 4C 04 80 A5 31 6A 90 01 60 A9 A8 85
.byte $17, $A9, $F2, $85, $18, $A5, $B5, $85, $B3, $20, $BF, $84, $20, $8A, $85, $A5 ; CPU:$AE50 PRG:2E50 17 A9 F2 85 18 A5 B5 85 B3 20 BF 84 20 8A 85 A5
.byte $B3, $18, $69, $10, $C9, $70, $90, $EF, $A9, $00, $9D, $00, $03, $C6, $B5, $10 ; CPU:$AE60 PRG:2E60 B3 18 69 10 C9 70 90 EF A9 00 9D 00 03 C6 B5 10
.byte $0E, $E6, $BA, $A0, $00, $A9, $00, $99, $EA, $05, $C8, $C0, $70, $90, $F8, $60 ; CPU:$AE70 PRG:2E70 0E E6 BA A0 00 A9 00 99 EA 05 C8 C0 70 90 F8 60
.byte $A5, $31, $6A, $90, $01, $60, $A6, $37, $A0, $00, $B9, $AC, $AE, $9D, $38, $03 ; CPU:$AE80 PRG:2E80 A5 31 6A 90 01 60 A6 37 A0 00 B9 AC AE 9D 38 03
.byte $E8, $C8, $C0, $08, $90, $F4, $A9, $00, $9D, $38, $03, $86, $37, $A9, $01, $85 ; CPU:$AE90 PRG:2E90 E8 C8 C0 08 90 F4 A9 00 9D 38 03 86 37 A9 01 85
.byte $96, $A9, $00, $85, $B8, $85, $B7, $85, $91, $E6, $BA, $60, $B7, $21, $11, $F8 ; CPU:$AEA0 PRG:2EA0 96 A9 00 85 B8 85 B7 85 91 E6 BA 60 B7 21 11 F8
.byte $DD, $23, $1B, $F8, $A9, $00, $85, $BA, $A9, $0A, $85, $B5, $60, $20, $4D, $AE ; CPU:$AEB0 PRG:2EB0 DD 23 1B F8 A9 00 85 BA A9 0A 85 B5 60 20 4D AE
.byte $A5, $BA, $F0, $02, $E6, $6C, $60 ; CPU:$AEC0 PRG:2EC0 A5 BA F0 02 E6 6C 60
; -----------------------------------------------------------------------------
; Routine: ClearBubbleSlots
; Global: Empties the bubble slots.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ClearBubbleSlots:
lda #$00 ; CPU:$AEC7 PRG:2EC7 A9 00
tax ; CPU:$AEC9 PRG:2EC9 AA
; -----------------------------------------------------------------------------
; Routine: ClearBubbleSlots_OnCarryClear
; Global: Branch target inside ClearBubbleSlots: taken when the addition or subtraction did not carry.
; Local: Part of ClearBubbleSlots.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ClearBubbleSlots_OnCarryClear:
sta ZpB9,x ; CPU:$AECA PRG:2ECA 95 B9
inx ; CPU:$AECC PRG:2ECC E8
cpx #$0A ; CPU:$AECD PRG:2ECD E0 0A
bcc ClearBubbleSlots_OnCarryClear ; CPU:$AECF PRG:2ECF 90 F9
lda #$FF ; CPU:$AED1 PRG:2ED1 A9 FF
sta ZpBE ; CPU:$AED3 PRG:2ED3 85 BE
rts ; CPU:$AED5 PRG:2ED5 60
; ---- data $AED6-$BB4E (3193 bytes) ----
.byte $A5, $27, $C9, $C0, $D0, $06, $E6, $BA, $A9, $00, $85, $96, $60, $A5, $31, $6A ; CPU:$AED6 PRG:2ED6 A5 27 C9 C0 D0 06 E6 BA A9 00 85 96 60 A5 31 6A
.byte $90, $01, $60, $A2, $00, $BD, $FE, $AE, $9D, $38, $03, $E8, $E0, $0C, $90, $F5 ; CPU:$AEE6 PRG:2EE6 90 01 60 A2 00 BD FE AE 9D 38 03 E8 E0 0C 90 F5
.byte $A9, $00, $9D, $38, $03, $E6, $BA, $60, $75, $21, $25, $F8, $B5, $21, $25, $F8 ; CPU:$AEF6 PRG:2EF6 A9 00 9D 38 03 E6 BA 60 75 21 25 F8 B5 21 25 F8
.byte $DD, $23, $20, $F8, $A5, $31, $6A, $90, $01, $60, $A0, $00, $A6, $37, $B9, $48 ; CPU:$AF06 PRG:2F06 DD 23 20 F8 A5 31 6A 90 01 60 A0 00 A6 37 B9 48
.byte $AF, $9D, $38, $03, $E8, $C8, $C0, $0D, $90, $F4, $E6, $BA, $60, $A5, $31, $6A ; CPU:$AF16 PRG:2F16 AF 9D 38 03 E8 C8 C0 0D 90 F4 E6 BA 60 A5 31 6A
.byte $90, $01, $60, $A0, $00, $A6, $37, $B9, $55, $AF, $9D, $38, $03, $E8, $C8, $C0 ; CPU:$AF26 PRG:2F26 90 01 60 A0 00 A6 37 B9 55 AF 9D 38 03 E8 C8 C0
.byte $05, $90, $F4, $20, $C7, $AE, $20, $0F, $97, $A9, $09, $85, $B9, $A9, $00, $85 ; CPU:$AF36 PRG:2F36 05 90 F4 20 C7 AE 20 0F 97 A9 09 85 B9 A9 00 85
.byte $BA, $60, $32, $23, $A1, $FB, $52, $23, $A1, $FB, $3A, $23, $A7, $FB, $00, $56 ; CPU:$AF46 PRG:2F46 BA 60 32 23 A1 FB 52 23 A1 FB 3A 23 A7 FB 00 56
.byte $23, $AF, $FB, $00, $A5, $B7, $D0, $18, $20, $52, $85, $A5, $3D, $29, $03, $A8 ; CPU:$AF56 PRG:2F56 23 AF FB 00 A5 B7 D0 18 20 52 85 A5 3D 29 03 A8
.byte $A2, $00, $B9, $37, $C1, $9D, $F9, $06, $C8, $E8, $E0, $05, $90, $F4, $86, $B7 ; CPU:$AF66 PRG:2F66 A2 00 B9 37 C1 9D F9 06 C8 E8 E0 05 90 F4 86 B7
.byte $A6, $B7, $BD, $F8, $06, $18, $69, $07, $85, $11, $A9, $01, $85, $12, $20, $5D ; CPU:$AF76 PRG:2F76 A6 B7 BD F8 06 18 69 07 85 11 A9 01 85 12 20 5D
.byte $85, $20, $52, $85, $A5, $3D, $29, $03, $85, $BD, $E6, $BD, $A6, $BE, $30, $08 ; CPU:$AF86 PRG:2F86 85 20 52 85 A5 3D 29 03 85 BD E6 BD A6 BE 30 08
.byte $BD, $EA, $05, $29, $BF, $9D, $EA, $05, $60, $A9, $02, $85, $BD, $A9, $05, $85 ; CPU:$AF96 PRG:2F96 BD EA 05 29 BF 9D EA 05 60 A9 02 85 BD A9 05 85
.byte $11, $A9, $07, $85, $12, $20, $5D, $85, $A9, $00, $85, $BC, $A6, $BE, $30, $17 ; CPU:$AFA6 PRG:2FA6 11 A9 07 85 12 20 5D 85 A9 00 85 BC A6 BE 30 17
.byte $BD, $EA, $05, $29, $BF, $9D, $EA, $05, $A9, $FF, $85, $BE, $A9, $00, $85, $11 ; CPU:$AFB6 PRG:2FB6 BD EA 05 29 BF 9D EA 05 A9 FF 85 BE A9 00 85 11
.byte $A9, $01, $85, $12, $20, $5D, $85, $60, $A5, $31, $6A, $90, $01, $60, $A5, $BA ; CPU:$AFC6 PRG:2FC6 A9 01 85 12 20 5D 85 60 A5 31 6A 90 01 60 A5 BA
.byte $D0, $11, $E6, $BA, $A9, $01, $8D, $E3, $00, $A9, $05, $8D, $E2, $00, $A9, $04 ; CPU:$AFD6 PRG:2FD6 D0 11 E6 BA A9 01 8D E3 00 A9 05 8D E2 00 A9 04
.byte $4C, $04, $80, $C9, $01, $D0, $4A, $A9, $05, $85, $11, $A9, $08, $85, $12, $20 ; CPU:$AFE6 PRG:2FE6 4C 04 80 C9 01 D0 4A A9 05 85 11 A9 08 85 12 20
.byte $5D, $85, $A5, $9C, $0A, $AA, $BD, $87, $F8, $18, $6D, $8F, $03, $8D, $90, $03 ; CPU:$AFF6 PRG:2FF6 5D 85 A5 9C 0A AA BD 87 F8 18 6D 8F 03 8D 90 03
.byte $BD, $88, $F8, $18, $6D, $9F, $03, $8D, $A0, $03, $A5, $31, $6A, $29, $03, $85 ; CPU:$B006 PRG:3006 BD 88 F8 18 6D 9F 03 8D A0 03 A5 31 6A 29 03 85
.byte $20, $AD, $AF, $03, $29, $FC, $05, $20, $8D, $AF, $03, $8D, $B0, $03, $E6, $9C ; CPU:$B016 PRG:3016 20 AD AF 03 29 FC 05 20 8D AF 03 8D B0 03 E6 9C
.byte $A5, $9C, $C9, $18, $D0, $0A, $A9, $00, $85, $9C, $C6, $B3, $D0, $02, $E6, $BA ; CPU:$B026 PRG:3026 A5 9C C9 18 D0 0A A9 00 85 9C C6 B3 D0 02 E6 BA
.byte $60, $C9, $02, $D0, $6F, $A5, $AC, $8D, $5B, $06, $AA, $20, $52, $85, $A5, $3D ; CPU:$B036 PRG:3036 60 C9 02 D0 6F A5 AC 8D 5B 06 AA 20 52 85 A5 3D
.byte $29, $03, $85, $BD, $E6, $BD, $A5, $BD, $9D, $EA, $05, $A0, $01, $84, $25, $AD ; CPU:$B046 PRG:3046 29 03 85 BD E6 BD A5 BD 9D EA 05 A0 01 84 25 AD
.byte $5B, $06, $29, $10, $F0, $06, $98, $18, $69, $06, $85, $25, $A9, $01, $85, $21 ; CPU:$B056 PRG:3056 5B 06 29 10 F0 06 98 18 69 06 85 25 A9 01 85 21
.byte $A9, $06, $85, $1F, $A4, $25, $B9, $7A, $F8, $E6, $25, $18, $6D, $5B, $06, $AA ; CPU:$B066 PRG:3066 A9 06 85 1F A4 25 B9 7A F8 E6 25 18 6D 5B 06 AA
.byte $29, $0F, $C9, $0D, $B0, $20, $8A, $29, $F0, $C9, $70, $B0, $19, $BD, $EA, $05 ; CPU:$B076 PRG:3076 29 0F C9 0D B0 20 8A 29 F0 C9 70 B0 19 BD EA 05
.byte $29, $07, $D0, $05, $9D, $EA, $05, $F0, $05, $A5, $BD, $9D, $EA, $05, $8A, $A6 ; CPU:$B086 PRG:3086 29 07 D0 05 9D EA 05 F0 05 A5 BD 9D EA 05 8A A6
.byte $21, $9D, $5B, $06, $E6, $21, $C6, $1F, $D0, $CA, $A6, $21, $A9, $FF, $9D, $5B ; CPU:$B096 PRG:3096 21 9D 5B 06 E6 21 C6 1F D0 CA A6 21 A9 FF 9D 5B
.byte $06, $E6, $BA, $60, $C9, $03, $D0, $47, $A0, $00, $84, $22, $A4, $22, $B9, $5B ; CPU:$B0A6 PRG:30A6 06 E6 BA 60 C9 03 D0 47 A0 00 84 22 A4 22 B9 5B
.byte $06, $30, $22, $85, $21, $20, $BF, $84, $A6, $21, $BD, $EA, $05, $85, $1B, $0A ; CPU:$B0B6 PRG:30B6 06 30 22 85 21 20 BF 84 A6 21 BD EA 05 85 1B 0A
.byte $AA, $BD, $9E, $F2, $85, $17, $BD, $9F, $F2, $85, $18, $20, $8A, $85, $20, $E3 ; CPU:$B0C6 PRG:30C6 AA BD 9E F2 85 17 BD 9F F2 85 18 20 8A 85 20 E3
.byte $84, $E6, $22, $10, $D7, $A6, $36, $A9, $00, $9D, $00, $03, $A9, $00, $85, $11 ; CPU:$B0D6 PRG:30D6 84 E6 22 10 D7 A6 36 A9 00 9D 00 03 A9 00 85 11
.byte $A9, $07, $85, $12, $20, $5D, $85, $E6, $12, $20, $5D, $85, $E6, $BA, $60, $E6 ; CPU:$B0E6 PRG:30E6 A9 07 85 12 20 5D 85 E6 12 20 5D 85 E6 BA 60 E6
.byte $BA, $A5, $BA, $C9, $0F, $90, $0A, $A9, $00, $85, $BA, $85, $BF, $85, $BD, $E6 ; CPU:$B0F6 PRG:30F6 BA A5 BA C9 0F 90 0A A9 00 85 BA 85 BF 85 BD E6
.byte $B9, $60, $A5, $BA, $20, $73, $81, $21, $B1, $F2, $B5, $29, $B2, $21, $B4, $51 ; CPU:$B106 PRG:3106 B9 60 A5 BA 20 73 81 21 B1 F2 B5 29 B2 21 B4 51
.byte $B1, $0C, $B7, $E3, $B1, $E2, $B4, $4C, $B5, $7D, $B1, $A9, $00, $85, $B5, $A9 ; CPU:$B116 PRG:3116 B1 0C B7 E3 B1 E2 B4 4C B5 7D B1 A9 00 85 B5 A9
.byte $04, $85, $1E, $A5, $1E, $85, $20, $20, $37, $B3, $C6, $1E, $D0, $F5, $AD, $DF ; CPU:$B126 PRG:3126 04 85 1E A5 1E 85 20 20 37 B3 C6 1E D0 F5 AD DF
.byte $06, $D0, $0D, $85, $BA, $E6, $B9, $A5, $C1, $C9, $03, $90, $02, $E6, $C1, $60 ; CPU:$B136 PRG:3136 06 D0 0D 85 BA E6 B9 A5 C1 C9 03 90 02 E6 C1 60
.byte $A9, $00, $85, $9C, $85, $B3, $85, $B6, $E6, $BA, $60, $E6, $BA, $20, $A9, $B1 ; CPU:$B146 PRG:3146 A9 00 85 9C 85 B3 85 B6 E6 BA 60 E6 BA 20 A9 B1
.byte $20, $C3, $B1, $A6, $BE, $30, $17, $BD, $EA, $05, $29, $40, $D0, $10, $A9, $00 ; CPU:$B156 PRG:3156 20 C3 B1 A6 BE 30 17 BD EA 05 29 40 D0 10 A9 00
.byte $8D, $59, $03, $A5, $71, $C9, $02, $F0, $04, $A9, $FF, $85, $BE, $60, $A5, $B5 ; CPU:$B166 PRG:3166 8D 59 03 A5 71 C9 02 F0 04 A9 FF 85 BE 60 A5 B5
.byte $D0, $02, $E6, $BA, $E6, $BA, $60, $A5, $31, $6A, $90, $01, $60, $A6, $37, $A9 ; CPU:$B176 PRG:3176 D0 02 E6 BA E6 BA 60 A5 31 6A 90 01 60 A6 37 A9
.byte $52, $9D, $38, $03, $A9, $23, $9D, $39, $03, $A9, $E0, $9D, $3A, $03, $A9, $F1 ; CPU:$B186 PRG:3186 52 9D 38 03 A9 23 9D 39 03 A9 E0 9D 3A 03 A9 F1
.byte $9D, $3B, $03, $A9, $00, $9D, $3C, $03, $8A, $18, $69, $04, $85, $37, $A9, $00 ; CPU:$B196 PRG:3196 9D 3B 03 A9 00 9D 3C 03 8A 18 69 04 85 37 A9 00
.byte $85, $BA, $60, $A2, $00, $A0, $00, $86, $24, $A6, $24, $BD, $A1, $06, $C9, $FF ; CPU:$B1A6 PRG:31A6 85 BA 60 A2 00 A0 00 86 24 A6 24 BD A1 06 C9 FF
.byte $D0, $01, $60, $AA, $98, $9D, $EA, $05, $E6, $24, $D0, $ED, $60, $A0, $00, $A2 ; CPU:$B1B6 PRG:31B6 D0 01 60 AA 98 9D EA 05 E6 24 D0 ED 60 A0 00 A2
.byte $6E, $CA, $BD, $EA, $05, $F0, $07, $10, $0B, $8A, $99, $A1, $06, $C8, $CA, $10 ; CPU:$B1C6 PRG:31C6 6E CA BD EA 05 F0 07 10 0B 8A 99 A1 06 C8 CA 10
.byte $F1, $84, $B5, $60, $8A, $29, $F0, $AA, $D0, $E7, $84, $B5, $60, $A5, $31, $6A ; CPU:$B1D6 PRG:31D6 F1 84 B5 60 8A 29 F0 AA D0 E7 84 B5 60 A5 31 6A
.byte $90, $01, $60, $A9, $A8, $85, $17, $A9, $F2, $85, $18, $A9, $0C, $85, $1F, $A0 ; CPU:$B1E6 PRG:31E6 90 01 60 A9 A8 85 17 A9 F2 85 18 A9 0C 85 1F A0
.byte $00, $C6, $B5, $10, $08, $E6, $BA, $A9, $00, $85, $B3, $F0, $1E, $A6, $B5, $BD ; CPU:$B1F6 PRG:31F6 00 C6 B5 10 08 E6 BA A9 00 85 B3 F0 1E A6 B5 BD
.byte $A1, $06, $85, $24, $20, $BF, $84, $A5, $1A, $C9, $24, $F0, $0A, $A6, $24, $A9 ; CPU:$B206 PRG:3206 A1 06 85 24 20 BF 84 A5 1A C9 24 F0 0A A6 24 A9
.byte $00, $9D, $EA, $05, $20, $8A, $85, $C6, $1F, $10, $D6, $A6, $36, $A9, $00, $9D ; CPU:$B216 PRG:3216 00 9D EA 05 20 8A 85 C6 1F 10 D6 A6 36 A9 00 9D
.byte $00, $03, $60, $A9, $01, $8D, $E3, $00, $A9, $01, $8D, $E2, $00, $A9, $04, $20 ; CPU:$B226 PRG:3226 00 03 60 A9 01 8D E3 00 A9 01 8D E2 00 A9 04 20
.byte $04, $80, $E6, $BA, $60, $A9, $FF, $85, $BE, $A5, $96, $F0, $07, $A9, $00, $85 ; CPU:$B236 PRG:3236 04 80 E6 BA 60 A9 FF 85 BE A5 96 F0 07 A9 00 85
.byte $6C, $85, $6A, $60, $20, $52, $85, $29, $06, $85, $20, $A5, $5D, $0A, $0A, $0A ; CPU:$B246 PRG:3246 6C 85 6A 60 20 52 85 29 06 85 20 A5 5D 0A 0A 0A
.byte $18, $65, $20, $AA, $BD, $BD, $F8, $85, $AB, $BD, $BE, $F8, $85, $AC, $A9, $00 ; CPU:$B256 PRG:3256 18 65 20 AA BD BD F8 85 AB BD BE F8 85 AC A9 00
.byte $85, $B3, $85, $B5, $E6, $6C, $A9, $01, $85, $34, $A2, $00, $8A, $9D, $F9, $06 ; CPU:$B266 PRG:3266 85 B3 85 B5 E6 6C A9 01 85 34 A2 00 8A 9D F9 06
.byte $E8, $E0, $05, $90, $F7, $60, $A5, $31, $6A, $90, $01, $60, $A6, $B3, $A4, $B5 ; CPU:$B276 PRG:3276 E8 E0 05 90 F7 60 A5 31 6A 90 01 60 A6 B3 A4 B5
.byte $B1, $AB, $F0, $33, $9D, $EA, $05, $85, $1B, $8A, $20, $BF, $84, $A5, $1B, $10 ; CPU:$B286 PRG:3286 B1 AB F0 33 9D EA 05 85 1B 8A 20 BF 84 A5 1B 10
.byte $0E, $A9, $0D, $85, $17, $A9, $F3, $85, $18, $A9, $01, $85, $1B, $D0, $0C, $0A ; CPU:$B296 PRG:3296 0E A9 0D 85 17 A9 F3 85 18 A9 01 85 1B D0 0C 0A
.byte $AA, $BD, $9E, $F2, $85, $17, $BD, $9F, $F2, $85, $18, $20, $8A, $85, $20, $E3 ; CPU:$B2A6 PRG:32A6 AA BD 9E F2 85 17 BD 9F F2 85 18 20 8A 85 20 E3
.byte $84, $E6, $B5, $E6, $B3, $10, $C5, $A6, $36, $A9, $00, $9D, $00, $03, $E6, $B5 ; CPU:$B2B6 PRG:32B6 84 E6 B5 E6 B3 10 C5 A6 36 A9 00 9D 00 03 E6 B5
.byte $A5, $B3, $29, $F0, $18, $69, $10, $85, $B3, $C9, $70, $90, $02, $E6, $6C, $60 ; CPU:$B2C6 PRG:32C6 A5 B3 29 F0 18 69 10 85 B3 C9 70 90 02 E6 6C 60
.byte $A5, $31, $6A, $90, $01, $60, $A5, $5D, $85, $B7, $A6, $5C, $86, $B8, $BD, $5A ; CPU:$B2D6 PRG:32D6 A5 31 6A 90 01 60 A5 5D 85 B7 A6 5C 86 B8 BD 5A
.byte $D4, $85, $1B, $20, $78, $B7, $A6, $5D, $F0, $18, $86, $21, $20, $9B, $B7, $20 ; CPU:$B2E6 PRG:32E6 D4 85 1B 20 78 B7 A6 5D F0 18 86 21 20 9B B7 20
.byte $8A, $85, $20, $E3, $84, $C6, $21, $A6, $21, $D0, $F1, $A6, $36, $A9, $00, $9D ; CPU:$B2F6 PRG:32F6 8A 85 20 E3 84 C6 21 A6 21 D0 F1 A6 36 A9 00 9D
.byte $00, $03, $A5, $5D, $18, $69, $07, $85, $11, $A9, $01, $85, $12, $20, $5D, $85 ; CPU:$B306 PRG:3306 00 03 A5 5D 18 69 07 85 11 A9 01 85 12 20 5D 85
.byte $A9, $B8, $8D, $89, $03, $A9, $1C, $8D, $99, $03, $A2, $30, $BD, $EA, $05, $09 ; CPU:$B316 PRG:3316 A9 B8 8D 89 03 A9 1C 8D 99 03 A2 30 BD EA 05 09
.byte $40, $9D, $EA, $05, $86, $BE, $A9, $00, $85, $6C, $85, $6A, $85, $B5, $E6, $B7 ; CPU:$B326 PRG:3326 40 9D EA 05 86 BE A9 00 85 6C 85 6A 85 B5 E6 B7
.byte $60, $A0, $00, $A2, $00, $BD, $EA, $05, $29, $87, $C5, $20, $F0, $04, $A9, $00 ; CPU:$B336 PRG:3336 60 A0 00 A2 00 BD EA 05 29 87 C5 20 F0 04 A9 00
.byte $F0, $07, $C8, $8A, $99, $5B, $06, $A5, $20, $9D, $71, $04, $E8, $E0, $70, $90 ; CPU:$B346 PRG:3346 F0 07 C8 8A 99 5B 06 A5 20 9D 71 04 E8 E0 70 90
.byte $E4, $C0, $00, $D0, $01, $60, $BE, $5B, $06, $BD, $71, $04, $F0, $18, $84, $25 ; CPU:$B356 PRG:3356 E4 C0 00 D0 01 60 BE 5B 06 BD 71 04 F0 18 84 25
.byte $A0, $00, $84, $21, $98, $9D, $71, $04, $8A, $99, $79, $06, $86, $20, $C8, $84 ; CPU:$B366 PRG:3366 A0 00 84 21 98 9D 71 04 8A 99 79 06 86 20 C8 84
.byte $B6, $20, $80, $B3, $A4, $25, $88, $D0, $DD, $60, $A0, $06, $84, $22, $A2, $00 ; CPU:$B376 PRG:3376 B6 20 80 B3 A4 25 88 D0 DD 60 A0 06 84 22 A2 00
.byte $86, $24, $A4, $22, $A5, $20, $29, $10, $F0, $05, $98, $18, $69, $06, $A8, $B9 ; CPU:$B386 PRG:3386 86 24 A4 22 A5 20 29 10 F0 05 98 18 69 06 A8 B9
.byte $7A, $F8, $18, $65, $20, $AA, $29, $0F, $C9, $0E, $B0, $16, $8A, $29, $F0, $C9 ; CPU:$B396 PRG:3396 7A F8 18 65 20 AA 29 0F C9 0E B0 16 8A 29 F0 C9
.byte $70, $B0, $0F, $BD, $71, $04, $F0, $0A, $86, $23, $E6, $24, $A6, $24, $E0, $02 ; CPU:$B3A6 PRG:33A6 70 B0 0F BD 71 04 F0 0A 86 23 E6 24 A6 24 E0 02
.byte $B0, $06, $C6, $22, $D0, $CC, $F0, $09, $E6, $21, $A6, $21, $A5, $20, $9D, $92 ; CPU:$B3B6 PRG:33B6 B0 06 C6 22 D0 CC F0 09 E6 21 A6 21 A5 20 9D 92
.byte $06, $A6, $24, $F0, $14, $A6, $23, $A9, $00, $9D, $71, $04, $A4, $B6, $8A, $99 ; CPU:$B3C6 PRG:33C6 06 A6 24 F0 14 A6 23 A9 00 9D 71 04 A4 B6 8A 99
.byte $79, $06, $86, $20, $E6, $B6, $4C, $80, $B3, $A6, $21, $F0, $0A, $BD, $92, $06 ; CPU:$B3D6 PRG:33D6 79 06 86 20 E6 B6 4C 80 B3 A6 21 F0 0A BD 92 06
.byte $C6, $21, $85, $20, $4C, $80, $B3, $A4, $B6, $C0, $04, $90, $29, $98, $18, $6D ; CPU:$B3E6 PRG:33E6 C6 21 85 20 4C 80 B3 A4 B6 C0 04 90 29 98 18 6D
.byte $DE, $06, $8D, $DE, $06, $98, $38, $E9, $03, $0A, $0A, $18, $6D, $DF, $06, $8D ; CPU:$B3F6 PRG:33F6 DE 06 8D DE 06 98 38 E9 03 0A 0A 18 6D DF 06 8D
.byte $DF, $06, $88, $A6, $B5, $B9, $79, $06, $9D, $A1, $06, $E8, $88, $10, $F6, $A9 ; CPU:$B406 PRG:3406 DF 06 88 A6 B5 B9 79 06 9D A1 06 E8 88 10 F6 A9
.byte $FF, $9D, $A1, $06, $86, $B5, $A9, $00, $85, $B6, $60, $A5, $31, $6A, $90, $01 ; CPU:$B416 PRG:3416 FF 9D A1 06 86 B5 A9 00 85 B6 60 A5 31 6A 90 01
.byte $60, $E6, $B3, $A5, $B3, $C9, $04, $90, $11, $A9, $00, $85, $B3, $85, $B6, $E6 ; CPU:$B426 PRG:3426 60 E6 B3 A5 B3 C9 04 90 11 A9 00 85 B3 85 B6 E6
.byte $9C, $A5, $9C, $C9, $08, $90, $03, $E6, $BA, $60, $A4, $B6, $B9, $A1, $06, $C9 ; CPU:$B436 PRG:3436 9C A5 9C C9 08 90 03 E6 BA 60 A4 B6 B9 A1 06 C9
.byte $FF, $D0, $01, $60, $A2, $00, $9D, $79, $06, $E8, $C8, $B9, $A1, $06, $C9, $FF ; CPU:$B446 PRG:3446 FF D0 01 60 A2 00 9D 79 06 E8 C8 B9 A1 06 C9 FF
.byte $F0, $04, $E0, $0D, $90, $F0, $84, $B6, $86, $24, $86, $21, $A2, $00, $86, $36 ; CPU:$B456 PRG:3456 F0 04 E0 0D 90 F0 84 B6 86 24 86 21 A2 00 86 36
.byte $A6, $36, $BD, $79, $06, $20, $BF, $84, $A5, $36, $0A, $0A, $A8, $A5, $19, $99 ; CPU:$B466 PRG:3466 A6 36 BD 79 06 20 BF 84 A5 36 0A 0A A8 A5 19 99
.byte $00, $03, $A5, $1A, $99, $01, $03, $E6, $36, $C6, $24, $D0, $E3, $A9, $00, $99 ; CPU:$B476 PRG:3476 00 03 A5 1A 99 01 03 E6 36 C6 24 D0 E3 A9 00 99
.byte $04, $03, $A6, $9C, $BD, $A8, $D1, $C9, $03, $90, $04, $20, $BB, $B4, $60, $20 ; CPU:$B486 PRG:3486 04 03 A6 9C BD A8 D1 C9 03 90 04 20 BB B4 60 20
.byte $99, $B4, $60, $0A, $AA, $BD, $FB, $F2, $85, $19, $BD, $FC, $F2, $85, $1A, $A2 ; CPU:$B496 PRG:3496 99 B4 60 0A AA BD FB F2 85 19 BD FC F2 85 1A A2
.byte $00, $8A, $0A, $0A, $A8, $A5, $19, $99, $02, $03, $A5, $1A, $99, $03, $03, $E8 ; CPU:$B4A6 PRG:34A6 00 8A 0A 0A A8 A5 19 99 02 03 A5 1A 99 03 03 E8
.byte $C6, $21, $10, $ED, $60, $A2, $00, $BD, $79, $06, $86, $24, $A8, $B9, $EA, $05 ; CPU:$B4B6 PRG:34B6 C6 21 10 ED 60 A2 00 BD 79 06 86 24 A8 B9 EA 05
.byte $29, $07, $0A, $A8, $8A, $0A, $0A, $AA, $B9, $9E, $F2, $9D, $02, $03, $B9, $9F ; CPU:$B4C6 PRG:34C6 29 07 0A A8 8A 0A 0A AA B9 9E F2 9D 02 03 B9 9F
.byte $F2, $9D, $03, $03, $A6, $24, $E8, $C6, $21, $10, $DC, $60, $A9, $00, $85, $22 ; CPU:$B4D6 PRG:34D6 F2 9D 03 03 A6 24 E8 C6 21 10 DC 60 A9 00 85 22
.byte $A9, $FF, $85, $24, $A5, $22, $0A, $0A, $0A, $0A, $AA, $A9, $0E, $85, $1F, $BD ; CPU:$B4E6 PRG:34E6 A9 FF 85 24 A5 22 0A 0A 0A 0A AA A9 0E 85 1F BD
.byte $EA, $05, $D0, $30, $86, $B5, $8A, $A4, $22, $99, $79, $06, $E8, $BD, $EA, $05 ; CPU:$B4F6 PRG:34F6 EA 05 D0 30 86 B5 8A A4 22 99 79 06 E8 BD EA 05
.byte $F0, $10, $A4, $B5, $99, $EA, $05, $E6, $B5, $A9, $00, $9D, $EA, $05, $86, $24 ; CPU:$B506 PRG:3506 F0 10 A4 B5 99 EA 05 E6 B5 A9 00 9D EA 05 86 24
.byte $E6, $24, $E8, $C6, $1F, $D0, $E6, $A4, $22, $A5, $24, $99, $5B, $06, $A9, $FF ; CPU:$B516 PRG:3516 E6 24 E8 C6 1F D0 E6 A4 22 A5 24 99 5B 06 A9 FF
.byte $85, $24, $30, $0C, $E8, $C6, $1F, $D0, $C6, $A4, $22, $A9, $FF, $99, $5B, $06 ; CPU:$B526 PRG:3526 85 24 30 0C E8 C6 1F D0 C6 A4 22 A9 FF 99 5B 06
.byte $E6, $22, $A5, $22, $C9, $07, $90, $AC, $A9, $00, $85, $B5, $E6, $BA, $A5, $BE ; CPU:$B536 PRG:3536 E6 22 A5 22 C9 07 90 AC A9 00 85 B5 E6 BA A5 BE
.byte $30, $03, $20, $50, $B7, $60, $A5, $31, $6A, $90, $01, $60, $A9, $00, $85, $36 ; CPU:$B546 PRG:3546 30 03 20 50 B7 60 A5 31 6A 90 01 60 A9 00 85 36
.byte $A9, $08, $85, $1F, $A4, $B5, $B9, $5B, $06, $10, $12, $E6, $B5, $A4, $B5, $C0 ; CPU:$B556 PRG:3556 A9 08 85 1F A4 B5 B9 5B 06 10 12 E6 B5 A4 B5 C0
.byte $07, $90, $F3, $A9, $00, $A6, $36, $9D, $00, $03, $E6, $BA, $60, $85, $24, $B9 ; CPU:$B566 PRG:3566 07 90 F3 A9 00 A6 36 9D 00 03 E6 BA 60 85 24 B9
.byte $79, $06, $85, $25, $20, $BF, $84, $A6, $36, $A5, $19, $9D, $00, $03, $E8, $A5 ; CPU:$B576 PRG:3576 79 06 85 25 20 BF 84 A6 36 A5 19 9D 00 03 E8 A5
.byte $1A, $9D, $00, $03, $E8, $A5, $25, $29, $0F, $C9, $0B, $B0, $33, $A4, $25, $B9 ; CPU:$B586 PRG:3586 1A 9D 00 03 E8 A5 25 29 0F C9 0B B0 33 A4 25 B9
.byte $EA, $05, $29, $87, $85, $1B, $30, $13, $0A, $A8, $B9, $9E, $F2, $9D, $00, $03 ; CPU:$B596 PRG:3596 EA 05 29 87 85 1B 30 13 0A A8 B9 9E F2 9D 00 03
.byte $E8, $B9, $9F, $F2, $9D, $00, $03, $A9, $00, $F0, $0B, $A9, $0D, $9D, $00, $03 ; CPU:$B5A6 PRG:35A6 E8 B9 9F F2 9D 00 03 A9 00 F0 0B A9 0D 9D 00 03
.byte $E8, $A9, $F3, $9D, $00, $03, $E8, $86, $36, $A5, $1B, $F0, $03, $20, $E3, $84 ; CPU:$B5B6 PRG:35B6 E8 A9 F3 9D 00 03 E8 86 36 A5 1B F0 03 20 E3 84
.byte $C6, $1F, $F0, $17, $E6, $25, $A5, $25, $C5, $24, $B0, $8F, $A5, $19, $18, $69 ; CPU:$B5C6 PRG:35C6 C6 1F F0 17 E6 25 A5 25 C5 24 B0 8F A5 19 18 69
.byte $40, $85, $19, $90, $02, $E6, $1A, $A9, $00, $F0, $9C, $E6, $25, $A4, $B5, $A5 ; CPU:$B5D6 PRG:35D6 40 85 19 90 02 E6 1A A9 00 F0 9C E6 25 A4 B5 A5
.byte $25, $99, $79, $06, $A6, $36, $A9, $00, $9D, $00, $03, $60, $A5, $31, $6A, $90 ; CPU:$B5E6 PRG:35E6 25 99 79 06 A6 36 A9 00 9D 00 03 60 A5 31 6A 90
.byte $01, $60, $A9, $00, $85, $20, $AD, $DF, $06, $38, $E9, $0A, $90, $0A, $8D, $DF ; CPU:$B5F6 PRG:35F6 01 60 A9 00 85 20 AD DF 06 38 E9 0A 90 0A 8D DF
.byte $06, $E6, $20, $AD, $DF, $06, $10, $F1, $AD, $DF, $06, $8D, $E3, $06, $A5, $20 ; CPU:$B606 PRG:3606 06 E6 20 AD DF 06 10 F1 AD DF 06 8D E3 06 A5 20
.byte $8D, $E2, $06, $A2, $02, $BD, $E1, $06, $C9, $0A, $90, $0B, $FE, $E0, $06, $18 ; CPU:$B616 PRG:3616 8D E2 06 A2 02 BD E1 06 C9 0A 90 0B FE E0 06 18
.byte $69, $06, $29, $0F, $9D, $E1, $06, $CA, $D0, $EB, $AD, $DE, $06, $AA, $18, $65 ; CPU:$B626 PRG:3626 69 06 29 0F 9D E1 06 CA D0 EB AD DE 06 AA 18 65
.byte $BB, $85, $BB, $8A, $18, $65, $BC, $85, $BC, $8A, $29, $0F, $18, $6D, $B9, $05 ; CPU:$B636 PRG:3636 BB 85 BB 8A 18 65 BC 85 BC 8A 29 0F 18 6D B9 05
.byte $8D, $B9, $05, $8A, $6A, $6A, $6A, $6A, $29, $0F, $18, $6D, $B8, $05, $8D, $B8 ; CPU:$B646 PRG:3646 8D B9 05 8A 6A 6A 6A 6A 29 0F 18 6D B8 05 8D B8
.byte $05, $A2, $03, $BD, $B6, $05, $C9, $0A, $90, $0B, $FE, $B5, $05, $18, $69, $06 ; CPU:$B656 PRG:3656 05 A2 03 BD B6 05 C9 0A 90 0B FE B5 05 18 69 06
.byte $29, $0F, $9D, $B6, $05, $CA, $D0, $EB, $A2, $02, $BD, $E1, $06, $18, $7D, $BC ; CPU:$B666 PRG:3666 29 0F 9D B6 05 CA D0 EB A2 02 BD E1 06 18 7D BC
.byte $05, $9D, $BC, $05, $CA, $10, $F3, $A2, $04, $BD, $BA, $05, $C9, $0A, $90, $0B ; CPU:$B676 PRG:3676 05 9D BC 05 CA 10 F3 A2 04 BD BA 05 C9 0A 90 0B
.byte $FE, $B9, $05, $18, $69, $06, $29, $0F, $9D, $BA, $05, $CA, $D0, $EB, $A9, $04 ; CPU:$B686 PRG:3686 FE B9 05 18 69 06 29 0F 9D BA 05 CA D0 EB A9 04
.byte $8D, $E5, $06, $8D, $EB, $06, $A9, $01, $8D, $E6, $06, $8D, $EC, $06, $A2, $00 ; CPU:$B696 PRG:3696 8D E5 06 8D EB 06 A9 01 8D E6 06 8D EC 06 A2 00
.byte $BD, $B6, $05, $A8, $B9, $D6, $F1, $9D, $E7, $06, $BD, $E1, $06, $A8, $B9, $D6 ; CPU:$B6A6 PRG:36A6 BD B6 05 A8 B9 D6 F1 9D E7 06 BD E1 06 A8 B9 D6
.byte $F1, $9D, $ED, $06, $E8, $E0, $04, $90, $E7, $A9, $06, $8D, $F1, $06, $A9, $01 ; CPU:$B6B6 PRG:36B6 F1 9D ED 06 E8 E0 04 90 E7 A9 06 8D F1 06 A9 01
.byte $8D, $F2, $06, $A2, $00, $BD, $BA, $05, $A8, $B9, $D6, $F1, $9D, $F3, $06, $E8 ; CPU:$B6C6 PRG:36C6 8D F2 06 A2 00 BD BA 05 A8 B9 D6 F1 9D F3 06 E8
.byte $E0, $06, $90, $F1, $A6, $37, $A0, $00, $B9, $00, $B7, $9D, $38, $03, $E8, $C8 ; CPU:$B6D6 PRG:36D6 E0 06 90 F1 A6 37 A0 00 B9 00 B7 9D 38 03 E8 C8
.byte $C0, $0C, $90, $F4, $86, $37, $A9, $00, $9D, $38, $03, $8D, $DE, $06, $8D, $DD ; CPU:$B6E6 PRG:36E6 C0 0C 90 F4 86 37 A9 00 9D 38 03 8D DE 06 8D DD
.byte $06, $8D, $DF, $06, $8D, $E0, $06, $E6, $BA, $60, $32, $23, $E5, $06, $52, $23 ; CPU:$B6F6 PRG:36F6 06 8D DF 06 8D E0 06 E6 BA 60 32 23 E5 06 52 23
.byte $EB, $06, $3A, $23, $F1, $06, $A5, $31, $6A, $90, $01, $60, $A5, $71, $C9, $02 ; CPU:$B706 PRG:3706 EB 06 3A 23 F1 06 A5 31 6A 90 01 60 A5 71 C9 02
.byte $F0, $09, $A5, $B7, $C9, $05, $D0, $03, $20, $78, $B7, $A5, $B8, $29, $03, $AA ; CPU:$B716 PRG:3716 F0 09 A5 B7 C9 05 D0 03 20 78 B7 A5 B8 29 03 AA
.byte $BD, $5A, $D4, $85, $1B, $A6, $B7, $20, $9B, $B7, $20, $8A, $85, $A9, $00, $9D ; CPU:$B726 PRG:3726 BD 5A D4 85 1B A6 B7 20 9B B7 20 8A 85 A9 00 9D
.byte $00, $03, $20, $E3, $84, $A5, $71, $C9, $02, $F0, $06, $C6, $B7, $D0, $02, $E6 ; CPU:$B736 PRG:3736 00 03 20 E3 84 A5 71 C9 02 F0 06 C6 B7 D0 02 E6
.byte $B8, $A5, $B5, $D0, $02, $E6, $BA, $E6, $BA, $60, $A5, $BE, $AA, $29, $0F, $A8 ; CPU:$B746 PRG:3746 B8 A5 B5 D0 02 E6 BA E6 BA 60 A5 BE AA 29 0F A8
.byte $BD, $EA, $05, $29, $40, $D0, $05, $CA, $88, $10, $F5, $60, $8A, $C5, $BE, $F0 ; CPU:$B756 PRG:3756 BD EA 05 29 40 D0 05 CA 88 10 F5 60 8A C5 BE F0
.byte $10, $38, $E5, $BE, $0A, $0A, $0A, $0A, $18, $6D, $99, $03, $8D, $99, $03, $86 ; CPU:$B766 PRG:3766 10 38 E5 BE 0A 0A 0A 0A 18 6D 99 03 8D 99 03 86
.byte $BE, $60, $A0, $05, $A9, $23, $85, $1A, $A9, $56, $85, $19, $A9, $A8, $85, $17 ; CPU:$B776 PRG:3776 BE 60 A0 05 A9 23 85 1A A9 56 85 19 A9 A8 85 17
.byte $A9, $F2, $85, $18, $20, $8A, $85, $E6, $19, $E6, $19, $88, $D0, $F6, $98, $9D ; CPU:$B786 PRG:3786 A9 F2 85 18 20 8A 85 E6 19 E6 19 88 D0 F6 98 9D
.byte $00, $03, $86, $36, $60, $A9, $23, $85, $1A, $A9, $56, $85, $19, $BD, $F8, $06 ; CPU:$B796 PRG:3796 00 03 86 36 60 A9 23 85 1A A9 56 85 19 BD F8 06
.byte $0A, $A8, $18, $65, $19, $85, $19, $98, $0A, $A8, $A6, $B8, $E8, $8A, $29, $02 ; CPU:$B7A6 PRG:37A6 0A A8 18 65 19 85 19 98 0A A8 A6 B8 E8 8A 29 02
.byte $D0, $05, $98, $18, $69, $14, $A8, $A9, $D1, $85, $17, $A9, $F2, $85, $18, $98 ; CPU:$B7B6 PRG:37B6 D0 05 98 18 69 14 A8 A9 D1 85 17 A9 F2 85 18 98
.byte $18, $65, $17, $85, $17, $90, $02, $E6, $18, $60, $A5, $C2, $D0, $11, $A6, $B8 ; CPU:$B7C6 PRG:37C6 18 65 17 85 17 90 02 E6 18 60 A5 C2 D0 11 A6 B8
.byte $CA, $30, $0C, $A5, $27, $A8, $C9, $84, $F0, $06, $98, $C9, $44, $F0, $01, $60 ; CPU:$B7D6 PRG:37D6 CA 30 0C A5 27 A8 C9 84 F0 06 98 C9 44 F0 01 60
.byte $A5, $BD, $F0, $09, $AD, $59, $03, $F0, $14, $A9, $00, $85, $BD, $A6, $BE, $30 ; CPU:$B7E6 PRG:37E6 A5 BD F0 09 AD 59 03 F0 14 A9 00 85 BD A6 BE 30
.byte $0C, $BD, $EA, $05, $29, $BF, $9D, $EA, $05, $A9, $FF, $85, $BE, $A9, $01, $85 ; CPU:$B7F6 PRG:37F6 0C BD EA 05 29 BF 9D EA 05 A9 FF 85 BE A9 01 85
.byte $C2, $A9, $00, $85, $C1, $A9, $06, $85, $11, $A9, $01, $85, $12, $20, $5D, $85 ; CPU:$B806 PRG:3806 C2 A9 00 85 C1 A9 06 85 11 A9 01 85 12 20 5D 85
.byte $A9, $B0, $8D, $89, $03, $A9, $98, $8D, $99, $03, $60, $A5, $31, $6A, $90, $01 ; CPU:$B816 PRG:3816 A9 B0 8D 89 03 A9 98 8D 99 03 60 A5 31 6A 90 01
.byte $60, $A5, $C1, $20, $73, $81, $3A, $B8, $5C, $B8, $F5, $B8, $08, $B1, $59, $B9 ; CPU:$B826 PRG:3826 60 A5 C1 20 73 81 3A B8 5C B8 F5 B8 08 B1 59 B9
.byte $08, $B1, $BA, $B9, $A9, $03, $20, $04, $80, $A9, $01, $8D, $DD, $00, $A9, $06 ; CPU:$B836 PRG:3836 08 B1 BA B9 A9 03 20 04 80 A9 01 8D DD 00 A9 06
.byte $8D, $DE, $00, $A9, $05, $20, $04, $80, $A9, $00, $8D, $DD, $00, $E6, $C1, $A9 ; CPU:$B846 PRG:3846 8D DE 00 A9 05 20 04 80 A9 00 8D DD 00 E6 C1 A9
.byte $F0, $85, $B3, $60, $A1, $06, $C6, $B3, $D0, $0A, $20, $99, $B8, $E6, $C1, $A9 ; CPU:$B856 PRG:3856 F0 85 B3 60 A1 06 C6 B3 D0 0A 20 99 B8 E6 C1 A9
.byte $00, $85, $B3, $60, $A5, $31, $29, $04, $F0, $03, $4C, $99, $B8, $A9, $23, $85 ; CPU:$B866 PRG:3866 00 85 B3 60 A5 31 29 04 F0 03 4C 99 B8 A9 23 85
.byte $1A, $A9, $C4, $85, $19, $A9, $B7, $85, $17, $A9, $F8, $85, $18, $20, $A7, $85 ; CPU:$B876 PRG:3876 1A A9 C4 85 19 A9 B7 85 17 A9 F8 85 18 20 A7 85
.byte $A5, $19, $18, $69, $08, $85, $19, $C9, $F0, $90, $F2, $A6, $37, $A9, $00, $9D ; CPU:$B886 PRG:3886 A5 19 18 69 08 85 19 C9 F0 90 F2 A6 37 A9 00 9D
.byte $38, $03, $60, $AD, $5A, $B8, $85, $17, $AD, $5B, $B8, $85, $18, $A9, $23, $85 ; CPU:$B896 PRG:3896 38 03 60 AD 5A B8 85 17 AD 5B B8 85 18 A9 23 85
.byte $1A, $A9, $C4, $85, $19, $A9, $04, $85, $21, $A0, $00, $A9, $04, $99, $A1, $06 ; CPU:$B8A6 PRG:38A6 1A A9 C4 85 19 A9 04 85 21 A0 00 A9 04 99 A1 06
.byte $A9, $01, $C8, $99, $A1, $06, $C8, $A9, $04, $85, $1F, $A6, $21, $BD, $E2, $04 ; CPU:$B8B6 PRG:38B6 A9 01 C8 99 A1 06 C8 A9 04 85 1F A6 21 BD E2 04
.byte $99, $A1, $06, $C8, $E8, $C6, $1F, $D0, $F4, $20, $A7, $85, $A5, $17, $18, $69 ; CPU:$B8C6 PRG:38C6 99 A1 06 C8 E8 C6 1F D0 F4 20 A7 85 A5 17 18 69
.byte $06, $85, $17, $90, $02, $E6, $18, $A5, $21, $18, $69, $08, $85, $21, $18, $69 ; CPU:$B8D6 PRG:38D6 06 85 17 90 02 E6 18 A5 21 18 69 08 85 21 18 69
.byte $C0, $85, $19, $C9, $F0, $90, $C4, $A6, $37, $A9, $00, $9D, $38, $03, $60, $A5 ; CPU:$B8E6 PRG:38E6 C0 85 19 C9 F0 90 C4 A6 37 A9 00 9D 38 03 60 A5
.byte $B3, $AA, $A8, $BD, $EA, $05, $30, $04, $99, $EA, $05, $C8, $E8, $BD, $EA, $05 ; CPU:$B8F6 PRG:38F6 B3 AA A8 BD EA 05 30 04 99 EA 05 C8 E8 BD EA 05
.byte $D0, $F4, $86, $21, $A9, $00, $99, $EA, $05, $C8, $C4, $21, $90, $F8, $A6, $B3 ; CPU:$B906 PRG:3906 D0 F4 86 21 A9 00 99 EA 05 C8 C4 21 90 F8 A6 B3
.byte $86, $24, $A6, $24, $BD, $EA, $05, $29, $07, $85, $1B, $0A, $AA, $BD, $9E, $F2 ; CPU:$B916 PRG:3916 86 24 A6 24 BD EA 05 29 07 85 1B 0A AA BD 9E F2
.byte $85, $17, $BD, $9F, $F2, $85, $18, $A5, $24, $20, $BF, $84, $20, $8A, $85, $20 ; CPU:$B926 PRG:3926 85 17 BD 9F F2 85 18 A5 24 20 BF 84 20 8A 85 20
.byte $E3, $84, $E6, $24, $A6, $24, $E4, $21, $90, $DA, $A6, $36, $A9, $00, $9D, $00 ; CPU:$B936 PRG:3936 E3 84 E6 24 A6 24 E4 21 90 DA A6 36 A9 00 9D 00
.byte $03, $A5, $B3, $18, $69, $10, $85, $B3, $C9, $70, $90, $06, $E6, $C1, $A9, $00 ; CPU:$B946 PRG:3946 03 A5 B3 18 69 10 85 B3 C9 70 90 06 E6 C1 A9 00
.byte $85, $BA, $60, $A9, $08, $85, $1F, $20, $52, $85, $A5, $3D, $2A, $2A, $29, $7F ; CPU:$B956 PRG:3956 85 BA 60 A9 08 85 1F 20 52 85 A5 3D 2A 2A 29 7F
.byte $C9, $70, $B0, $30, $AA, $BD, $EA, $05, $29, $07, $F0, $28, $86, $21, $20, $52 ; CPU:$B966 PRG:3966 C9 70 B0 30 AA BD EA 05 29 07 F0 28 86 21 20 52
.byte $85, $A5, $3D, $29, $03, $A8, $C8, $84, $1B, $98, $9D, $EA, $05, $0A, $AA, $BD ; CPU:$B976 PRG:3976 85 A5 3D 29 03 A8 C8 84 1B 98 9D EA 05 0A AA BD
.byte $9E, $F2, $85, $17, $BD, $9F, $F2, $85, $18, $A5, $21, $20, $BF, $84, $20, $8A ; CPU:$B986 PRG:3986 9E F2 85 17 BD 9F F2 85 18 A5 21 20 BF 84 20 8A
.byte $85, $20, $E3, $84, $C6, $1F, $D0, $BF, $A6, $36, $A9, $00, $9D, $00, $03, $CE ; CPU:$B996 PRG:3996 85 20 E3 84 C6 1F D0 BF A6 36 A9 00 9D 00 03 CE
.byte $99, $03, $CE, $99, $03, $AD, $99, $03, $C9, $F8, $90, $07, $E6, $C1, $A9, $00 ; CPU:$B9A6 PRG:39A6 99 03 CE 99 03 AD 99 03 C9 F8 90 07 E6 C1 A9 00
.byte $8D, $59, $03, $60, $A9, $00, $85, $C2, $85, $C1, $A9, $03, $20, $04, $80, $A9 ; CPU:$B9B6 PRG:39B6 8D 59 03 60 A9 00 85 C2 85 C1 A9 03 20 04 80 A9
.byte $01, $8D, $DD, $00, $AD, $73, $00, $8D, $DE, $00, $A9, $05, $20, $04, $80, $A9 ; CPU:$B9C6 PRG:39C6 01 8D DD 00 AD 73 00 8D DE 00 A9 05 20 04 80 A9
.byte $00, $8D, $DD, $00, $C6, $B8, $D0, $0B, $A5, $B7, $D0, $07, $20, $78, $B7, $A9 ; CPU:$B9D6 PRG:39D6 00 8D DD 00 C6 B8 D0 0B A5 B7 D0 07 20 78 B7 A9
.byte $00, $F0, $2A, $A5, $B8, $29, $03, $AA, $A5, $B7, $D0, $03, $CA, $C6, $B8, $BD ; CPU:$B9E6 PRG:39E6 00 F0 2A A5 B8 29 03 AA A5 B7 D0 03 CA C6 B8 BD
.byte $5A, $D4, $85, $1B, $A9, $05, $85, $21, $A5, $B7, $C5, $21, $B0, $0F, $A6, $21 ; CPU:$B9F6 PRG:39F6 5A D4 85 1B A9 05 85 21 A5 B7 C5 21 B0 0F A6 21
.byte $20, $9B, $B7, $20, $8A, $85, $20, $E3, $84, $C6, $21, $D0, $EB, $A6, $36, $A9 ; CPU:$BA06 PRG:3A06 20 9B B7 20 8A 85 20 E3 84 C6 21 D0 EB A6 36 A9
.byte $00, $9D, $00, $03, $A5, $B7, $D0, $02, $E6, $B8, $60, $A5, $BA, $20, $73, $81 ; CPU:$BA16 PRG:3A16 00 9D 00 03 A5 B7 D0 02 E6 B8 60 A5 BA 20 73 81
.byte $30, $BA, $4C, $BA, $5C, $BA, $8C, $BA, $E6, $BA, $A9, $FF, $85, $BE, $A5, $5C ; CPU:$BA26 PRG:3A26 30 BA 4C BA 5C BA 8C BA E6 BA A9 FF 85 BE A5 5C
.byte $0A, $AA, $BD, $5C, $F4, $85, $3B, $BD, $5D, $F4, $85, $3C, $A6, $5D, $BD, $75 ; CPU:$BA36 PRG:3A36 0A AA BD 5C F4 85 3B BD 5D F4 85 3C A6 5D BD 75
.byte $F8, $85, $CB, $E6, $BA, $60, $A5, $71, $C9, $02, $F0, $07, $A9, $00, $85, $BA ; CPU:$BA46 PRG:3A46 F8 85 CB E6 BA 60 A5 71 C9 02 F0 07 A9 00 85 BA
.byte $85, $B9, $60, $E6, $BA, $60, $20, $52, $85, $29, $06, $85, $20, $A5, $5D, $0A ; CPU:$BA56 PRG:3A56 85 B9 60 E6 BA 60 20 52 85 29 06 85 20 A5 5D 0A
.byte $0A, $0A, $18, $65, $20, $AA, $BD, $BD, $F8, $85, $AB, $BD, $BE, $F8, $85, $AC ; CPU:$BA66 PRG:3A66 0A 0A 18 65 20 AA BD BD F8 85 AB BD BE F8 85 AC
.byte $A9, $00, $85, $B3, $85, $B5, $E6, $BA, $A9, $01, $85, $34, $8A, $9D, $F9, $06 ; CPU:$BA76 PRG:3A76 A9 00 85 B3 85 B5 E6 BA A9 01 85 34 8A 9D F9 06
.byte $E8, $E0, $05, $90, $F7, $60, $A5, $31, $6A, $90, $01, $60, $A6, $B3, $A4, $B5 ; CPU:$BA86 PRG:3A86 E8 E0 05 90 F7 60 A5 31 6A 90 01 60 A6 B3 A4 B5
.byte $B1, $AB, $F0, $33, $9D, $EA, $05, $85, $1B, $8A, $20, $BF, $84, $A5, $1B, $10 ; CPU:$BA96 PRG:3A96 B1 AB F0 33 9D EA 05 85 1B 8A 20 BF 84 A5 1B 10
.byte $0E, $A9, $0D, $85, $17, $A9, $F3, $85, $18, $A9, $01, $85, $1B, $D0, $0C, $0A ; CPU:$BAA6 PRG:3AA6 0E A9 0D 85 17 A9 F3 85 18 A9 01 85 1B D0 0C 0A
.byte $AA, $BD, $9E, $F2, $85, $17, $BD, $9F, $F2, $85, $18, $20, $8A, $85, $20, $E3 ; CPU:$BAB6 PRG:3AB6 AA BD 9E F2 85 17 BD 9F F2 85 18 20 8A 85 20 E3
.byte $84, $E6, $B5, $E6, $B3, $10, $C5, $A6, $36, $A9, $00, $9D, $00, $03, $E6, $B5 ; CPU:$BAC6 PRG:3AC6 84 E6 B5 E6 B3 10 C5 A6 36 A9 00 9D 00 03 E6 B5
.byte $A5, $B3, $29, $F0, $18, $69, $10, $85, $B3, $C9, $70, $90, $02, $E6, $BA, $60 ; CPU:$BAD6 PRG:3AD6 A5 B3 29 F0 18 69 10 85 B3 C9 70 90 02 E6 BA 60
.byte $A5, $31, $6A, $90, $01, $60, $A5, $5D, $85, $B7, $A6, $5C, $86, $B8, $BD, $5A ; CPU:$BAE6 PRG:3AE6 A5 31 6A 90 01 60 A5 5D 85 B7 A6 5C 86 B8 BD 5A
.byte $D4, $85, $1B, $20, $78, $B7, $A6, $5D, $F0, $18, $86, $21, $20, $9B, $B7, $20 ; CPU:$BAF6 PRG:3AF6 D4 85 1B 20 78 B7 A6 5D F0 18 86 21 20 9B B7 20
.byte $8A, $85, $20, $E3, $84, $C6, $21, $A6, $21, $D0, $F1, $A6, $36, $A9, $00, $9D ; CPU:$BB06 PRG:3B06 8A 85 20 E3 84 C6 21 A6 21 D0 F1 A6 36 A9 00 9D
.byte $00, $03, $20, $36, $BB, $A2, $30, $BD, $EA, $05, $09, $40, $9D, $EA, $05, $86 ; CPU:$BB16 PRG:3B16 00 03 20 36 BB A2 30 BD EA 05 09 40 9D EA 05 86
.byte $BE, $E6, $6C, $E6, $B7, $A9, $00, $85, $BA, $85, $B5, $A9, $00, $85, $B9, $60 ; CPU:$BB26 PRG:3B26 BE E6 6C E6 B7 A9 00 85 BA 85 B5 A9 00 85 B9 60
.byte $A5, $5D, $18, $69, $07, $85, $11, $A9, $01, $85, $12, $20, $5D, $85, $A9, $B8 ; CPU:$BB36 PRG:3B36 A5 5D 18 69 07 85 11 A9 01 85 12 20 5D 85 A9 B8
.byte $8D, $89, $03, $A9, $1C, $8D, $99, $03, $60 ; CPU:$BB46 PRG:3B46 8D 89 03 A9 1C 8D 99 03 60
; -----------------------------------------------------------------------------
; Routine: ClearActorSlots
; Global: Empties the actor slots.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ClearActorSlots:
lda #$00 ; CPU:$BB4F PRG:3B4F A9 00
tax ; CPU:$BB51 PRG:3B51 AA
; -----------------------------------------------------------------------------
; Routine: ClearActorSlots_OnCarryClear
; Global: Branch target inside ClearActorSlots: taken when the addition or subtraction did not carry.
; Local: Part of ClearActorSlots.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ClearActorSlots_OnCarryClear:
sta ZpB7,x ; CPU:$BB52 PRG:3B52 95 B7
inx ; CPU:$BB54 PRG:3B54 E8
cpx #$0C ; CPU:$BB55 PRG:3B55 E0 0C
bcc ClearActorSlots_OnCarryClear ; CPU:$BB57 PRG:3B57 90 F9
ldx #$00 ; CPU:$BB59 PRG:3B59 A2 00
; -----------------------------------------------------------------------------
; Routine: ClearActorTable
; Global: Empties the actor table in RAM.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ClearActorTable:
sta $05EA,x ; CPU:$BB5B PRG:3B5B 9D EA 05
inx ; CPU:$BB5E PRG:3B5E E8
cpx #$70 ; CPU:$BB5F PRG:3B5F E0 70
bcc ClearActorTable ; CPU:$BB61 PRG:3B61 90 F8
lda #$FF ; CPU:$BB63 PRG:3B63 A9 FF
sta ZpBE ; CPU:$BB65 PRG:3B65 85 BE
rts ; CPU:$BB67 PRG:3B67 60
; -----------------------------------------------------------------------------
; Routine: SoundTimerTick
; Global: Counts the sound effect timer down.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SoundTimerTick:
lda FrameCounter ; CPU:$BB68 PRG:3B68 A5 31
ror a ; CPU:$BB6A PRG:3B6A 6A
bcs SoundTimerTick_Loop ; CPU:$BB6B PRG:3B6B B0 01
rts ; CPU:$BB6D PRG:3B6D 60
; -----------------------------------------------------------------------------
; Routine: SoundTimerTick_Loop
; Global: Branch target inside SoundTimerTick: taken when the loop repeats.
; Local: Part of SoundTimerTick.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SoundTimerTick_Loop:
and #$1F ; CPU:$BB6E PRG:3B6E 29 1F
bne SoundTimerTick_Loop2 ; CPU:$BB70 PRG:3B70 D0 0B
lda a:$00D4 ; CPU:$BB72 PRG:3B72 AD D4 00
eor Zp33 ; CPU:$BB75 PRG:3B75 45 33
sta a:$00D4 ; CPU:$BB77 PRG:3B77 8D D4 00
jmp PlaySoundEffect ; CPU:$BB7A PRG:3B7A 4C 7E BB
; -----------------------------------------------------------------------------
; Routine: SoundTimerTick_Loop2
; Global: Branch target inside SoundTimerTick: taken when Loop2.
; Local: Part of SoundTimerTick.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SoundTimerTick_Loop2:
rts ; CPU:$BB7D PRG:3B7D 60
; -----------------------------------------------------------------------------
; Routine: PlaySoundEffect
; Global: Starts a sound effect from the sound table.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
PlaySoundEffect:
lda #$00 ; CPU:$BB7E PRG:3B7E A9 00
asl a ; CPU:$BB80 PRG:3B80 0A
tax ; CPU:$BB81 PRG:3B81 AA
lda a:$00D4 ; CPU:$BB82 PRG:3B82 AD D4 00
beq LoadActorTemplate ; CPU:$BB85 PRG:3B85 F0 0D
lda $BBDE,x ; CPU:$BB87 PRG:3B87 BD DE BB
sta Zp19 ; CPU:$BB8A PRG:3B8A 85 19
lda $BBDF,x ; CPU:$BB8C PRG:3B8C BD DF BB
sta Zp1A ; CPU:$BB8F PRG:3B8F 85 1A
jmp CopyActorToSpriteTable ; CPU:$BB91 PRG:3B91 4C 9E BB
; -----------------------------------------------------------------------------
; Routine: LoadActorTemplate
; Global: Copies an actor template out of the table.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
LoadActorTemplate:
lda $BBC2,x ; CPU:$BB94 PRG:3B94 BD C2 BB
sta Zp19 ; CPU:$BB97 PRG:3B97 85 19
lda $BBC3,x ; CPU:$BB99 PRG:3B99 BD C3 BB
sta Zp1A ; CPU:$BB9C PRG:3B9C 85 1A
; -----------------------------------------------------------------------------
; Routine: CopyActorToSpriteTable
; Global: Copies an actor into the sprite table.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CopyActorToSpriteTable:
ldy #$00 ; CPU:$BB9E PRG:3B9E A0 00
ldx Zp37 ; CPU:$BBA0 PRG:3BA0 A6 37
lda #$04 ; CPU:$BBA2 PRG:3BA2 A9 04
sta Zp1F ; CPU:$BBA4 PRG:3BA4 85 1F
; -----------------------------------------------------------------------------
; Routine: CopyActorToSpriteTable_OnNonzero
; Global: Branch target inside CopyActorToSpriteTable: taken when the tested value is not zero.
; Local: Part of CopyActorToSpriteTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CopyActorToSpriteTable_OnNonzero:
lda (Zp19),y ; CPU:$BBA6 PRG:3BA6 B1 19
sta $0338,x ; CPU:$BBA8 PRG:3BA8 9D 38 03
inx ; CPU:$BBAB PRG:3BAB E8
iny ; CPU:$BBAC PRG:3BAC C8
dec Zp1F ; CPU:$BBAD PRG:3BAD C6 1F
bne CopyActorToSpriteTable_OnNonzero ; CPU:$BBAF PRG:3BAF D0 F5
lda Zp6F ; CPU:$BBB1 PRG:3BB1 A5 6F
beq CopyActorToSpriteTable_Loop; CPU:$BBB3 PRG:3BB3 F0 05
lda #$45 ; CPU:$BBB5 PRG:3BB5 A9 45
sta $0334,x ; CPU:$BBB7 PRG:3BB7 9D 34 03
; -----------------------------------------------------------------------------
; Routine: CopyActorToSpriteTable_Loop
; Global: Branch target inside CopyActorToSpriteTable: taken when the loop repeats.
; Local: Part of CopyActorToSpriteTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CopyActorToSpriteTable_Loop:
lda #$00 ; CPU:$BBBA PRG:3BBA A9 00
sta $0338,x ; CPU:$BBBC PRG:3BBC 9D 38 03
stx Zp37 ; CPU:$BBBF PRG:3BBF 86 37
rts ; CPU:$BBC1 PRG:3BC1 60
; ---- data $BBC2-$BBF9 (56 bytes) ----
; referenced by `lda $BBDE,x` at $BB87 (operand $BBDE falls inside this region)
; referenced by `lda $BBDF,x` at $BB8C (operand $BBDF falls inside this region)
; referenced by `lda $BBC2,x` at $BB94 (operand $BBC2 falls inside this region)
; referenced by `lda $BBC3,x` at $BB99 (operand $BBC3 falls inside this region)
.byte $C4, $BB, $24, $23, $C8, $BB, $05, $04, $23, $25, $26, $29, $61, $2B, $93, $2D ; CPU:$BBC2 PRG:3BC2 C4 BB 24 23 C8 BB 05 04 23 25 26 29 61 2B 93 2D
.byte $3D, $74, $8D, $8E, $8F, $91, $7B, $C1, $3E, $2A, $97, $96, $E0, $BB, $24, $23 ; CPU:$BBD2 PRG:3BD2 3D 74 8D 8E 8F 91 7B C1 3E 2A 97 96 E0 BB 24 23
.byte $E4, $BB, $05, $04, $C9, $CA, $FF, $CC, $61, $C8, $C7, $C6, $C5, $74, $FF, $C3 ; CPU:$BBE2 PRG:3BE2 E4 BB 05 04 C9 CA FF CC 61 C8 C7 C6 C5 74 FF C3
.byte $C4, $7A, $7B, $C1, $9F, $98, $97, $96 ; CPU:$BBF2 PRG:3BF2 C4 7A 7B C1 9F 98 97 96
; -----------------------------------------------------------------------------
; Routine: UpdatePlayerState
; Global: Updates the player state for the current frame.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdatePlayerState:
lda Zp56 ; CPU:$BBFA PRG:3BFA A5 56
beq HandleDemoMode ; CPU:$BBFC PRG:3BFC F0 1E
lda Zp3F ; CPU:$BBFE PRG:3BFE A5 3F
and #$01 ; CPU:$BC00 PRG:3C00 29 01
beq UpdatePlayerState_Loop ; CPU:$BC02 PRG:3C02 F0 05
inc Zp49 ; CPU:$BC04 PRG:3C04 E6 49
jmp Sub_BC11 ; CPU:$BC06 PRG:3C06 4C 11 BC
; -----------------------------------------------------------------------------
; Routine: UpdatePlayerState_Loop
; Global: Branch target inside UpdatePlayerState: taken when the loop repeats.
; Local: Part of UpdatePlayerState.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdatePlayerState_Loop:
lda Zp3F ; CPU:$BC09 PRG:3C09 A5 3F
and #$02 ; CPU:$BC0B PRG:3C0B 29 02
beq UpdatePlayerState_Loop2 ; CPU:$BC0D PRG:3C0D F0 0A
dec Zp49 ; CPU:$BC0F PRG:3C0F C6 49
; -----------------------------------------------------------------------------
; Routine: Sub_BC11
; Global: Branch target inside Sub: taken when BC11.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_BC11:
dec Zp56 ; CPU:$BC11 PRG:3C11 C6 56
bne UpdatePlayerState_Loop2 ; CPU:$BC13 PRG:3C13 D0 04
lda #$00 ; CPU:$BC15 PRG:3C15 A9 00
sta Zp3F ; CPU:$BC17 PRG:3C17 85 3F
; -----------------------------------------------------------------------------
; Routine: UpdatePlayerState_Loop2
; Global: Branch target inside UpdatePlayerState: taken when Loop2.
; Local: Part of UpdatePlayerState.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdatePlayerState_Loop2:
jmp ApplyPlayerDirection ; CPU:$BC19 PRG:3C19 4C 26 BD
; -----------------------------------------------------------------------------
; Routine: HandleDemoMode
; Global: Runs the attract mode when no credit is left.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
HandleDemoMode:
lda $05E5 ; CPU:$BC1C PRG:3C1C AD E5 05
beq HandlePlayerInput ; CPU:$BC1F PRG:3C1F F0 17
ldx $05E2 ; CPU:$BC21 PRG:3C21 AE E2 05
lda $BE05,x ; CPU:$BC24 PRG:3C24 BD 05 BE
cmp Zp4D ; CPU:$BC27 PRG:3C27 C5 4D
bne HandlePlayerInput ; CPU:$BC29 PRG:3C29 D0 0D
lda $BE06,x ; CPU:$BC2B PRG:3C2B BD 06 BE
sta ButtonState1 ; CPU:$BC2E PRG:3C2E 85 26
sta NewButton1 ; CPU:$BC30 PRG:3C30 85 2A
inc $05E2 ; CPU:$BC32 PRG:3C32 EE E2 05
inc $05E2 ; CPU:$BC35 PRG:3C35 EE E2 05
; -----------------------------------------------------------------------------
; Routine: HandlePlayerInput
; Global: Turns the button bits into the player's actions.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
HandlePlayerInput:
lda ButtonState1 ; CPU:$BC38 PRG:3C38 A5 26
and #$08 ; CPU:$BC3A PRG:3C3A 29 08
bne CountPlayerFrames ; CPU:$BC3C PRG:3C3C D0 06
lda #$00 ; CPU:$BC3E PRG:3C3E A9 00
sta ZpCE ; CPU:$BC40 PRG:3C40 85 CE
beq CountPlayerFrames_Loop2 ; CPU:$BC42 PRG:3C42 F0 16
; -----------------------------------------------------------------------------
; Routine: CountPlayerFrames
; Global: Counts the frames the player state has been in.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CountPlayerFrames:
inc ZpCE ; CPU:$BC44 PRG:3C44 E6 CE
lda ZpCE ; CPU:$BC46 PRG:3C46 A5 CE
cmp #$08 ; CPU:$BC48 PRG:3C48 C9 08
bcc CountPlayerFrames_Loop ; CPU:$BC4A PRG:3C4A 90 0A
lda #$00 ; CPU:$BC4C PRG:3C4C A9 00
sta ZpCE ; CPU:$BC4E PRG:3C4E 85 CE
inc $05A4 ; CPU:$BC50 PRG:3C50 EE A4 05
inc $05A4 ; CPU:$BC53 PRG:3C53 EE A4 05
; -----------------------------------------------------------------------------
; Routine: CountPlayerFrames_Loop
; Global: Branch target inside CountPlayerFrames: taken when the loop repeats.
; Local: Part of CountPlayerFrames.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CountPlayerFrames_Loop:
lda #$00 ; CPU:$BC56 PRG:3C56 A9 00
sta ZpCF ; CPU:$BC58 PRG:3C58 85 CF
; -----------------------------------------------------------------------------
; Routine: CountPlayerFrames_Loop2
; Global: Branch target inside CountPlayerFrames: taken when Loop2.
; Local: Part of CountPlayerFrames.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CountPlayerFrames_Loop2:
lda ZpCF ; CPU:$BC5A PRG:3C5A A5 CF
bne CountPlayerFrames_Loop3 ; CPU:$BC5C PRG:3C5C D0 0A
lda Zp35 ; CPU:$BC5E PRG:3C5E A5 35
sta ZpCF ; CPU:$BC60 PRG:3C60 85 CF
dec Zp40 ; CPU:$BC62 PRG:3C62 C6 40
dec Zp4A ; CPU:$BC64 PRG:3C64 C6 4A
dec Zp4A ; CPU:$BC66 PRG:3C66 C6 4A
; -----------------------------------------------------------------------------
; Routine: CountPlayerFrames_Loop3
; Global: Branch target inside CountPlayerFrames: taken when Loop3.
; Local: Part of CountPlayerFrames.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CountPlayerFrames_Loop3:
dec ZpCF ; CPU:$BC68 PRG:3C68 C6 CF
lda Zp40 ; CPU:$BC6A PRG:3C6A A5 40
bne CountPlayerFrames_Loop4 ; CPU:$BC6C PRG:3C6C D0 16
lda #$08 ; CPU:$BC6E PRG:3C6E A9 08
sta Zp40 ; CPU:$BC70 PRG:3C70 85 40
lda Zp4D ; CPU:$BC72 PRG:3C72 A5 4D
sta Zp20 ; CPU:$BC74 PRG:3C74 85 20
dec Zp20 ; CPU:$BC76 PRG:3C76 C6 20
lda Zp48 ; CPU:$BC78 PRG:3C78 A5 48
sta Zp23 ; CPU:$BC7A PRG:3C7A 85 23
jsr ComputePlayerPosition ; CPU:$BC7C PRG:3C7C 20 70 BD
beq CountPlayerFrames_Loop4 ; CPU:$BC7F PRG:3C7F F0 03
inc Zp60 ; CPU:$BC81 PRG:3C81 E6 60
rts ; CPU:$BC83 PRG:3C83 60
; -----------------------------------------------------------------------------
; Routine: CountPlayerFrames_Loop4
; Global: Branch target inside CountPlayerFrames: taken when Loop4.
; Local: Part of CountPlayerFrames.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CountPlayerFrames_Loop4:
lda ButtonState1 ; CPU:$BC84 PRG:3C84 A5 26
and #$03 ; CPU:$BC86 PRG:3C86 29 03
bne CountPlayerFrames_Loop5 ; CPU:$BC88 PRG:3C88 D0 03
jmp ApplyPlayerDirection ; CPU:$BC8A PRG:3C8A 4C 26 BD
; -----------------------------------------------------------------------------
; Routine: CountPlayerFrames_Loop5
; Global: Branch target inside CountPlayerFrames: taken when Loop5.
; Local: Part of CountPlayerFrames.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CountPlayerFrames_Loop5:
cmp #$03 ; CPU:$BC8D PRG:3C8D C9 03
bne CountPlayerFrames_Loop6 ; CPU:$BC8F PRG:3C8F D0 07
lda #$00 ; CPU:$BC91 PRG:3C91 A9 00
sta Zp3F ; CPU:$BC93 PRG:3C93 85 3F
jmp ApplyPlayerDirection ; CPU:$BC95 PRG:3C95 4C 26 BD
; -----------------------------------------------------------------------------
; Routine: CountPlayerFrames_Loop6
; Global: Branch target inside CountPlayerFrames: taken when Loop6.
; Local: Part of CountPlayerFrames.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CountPlayerFrames_Loop6:
sta Zp3F ; CPU:$BC98 PRG:3C98 85 3F
lda ButtonState1 ; CPU:$BC9A PRG:3C9A A5 26
and #$01 ; CPU:$BC9C PRG:3C9C 29 01
beq CountPlayerFrames_Loop7 ; CPU:$BC9E PRG:3C9E F0 09
lda Zp4D ; CPU:$BCA0 PRG:3CA0 A5 4D
clc ; CPU:$BCA2 PRG:3CA2 18
adc #$10 ; CPU:$BCA3 PRG:3CA3 69 10
and #$F0 ; CPU:$BCA5 PRG:3CA5 29 F0
sta Zp20 ; CPU:$BCA7 PRG:3CA7 85 20
; -----------------------------------------------------------------------------
; Routine: CountPlayerFrames_Loop7
; Global: Branch target inside CountPlayerFrames: taken when Loop7.
; Local: Part of CountPlayerFrames.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CountPlayerFrames_Loop7:
lda ButtonState1 ; CPU:$BCA9 PRG:3CA9 A5 26
and #$02 ; CPU:$BCAB PRG:3CAB 29 02
beq CountPlayerFrames_Loop8 ; CPU:$BCAD PRG:3CAD F0 09
lda Zp4D ; CPU:$BCAF PRG:3CAF A5 4D
sec ; CPU:$BCB1 PRG:3CB1 38
sbc #$10 ; CPU:$BCB2 PRG:3CB2 E9 10
and #$F0 ; CPU:$BCB4 PRG:3CB4 29 F0
sta Zp20 ; CPU:$BCB6 PRG:3CB6 85 20
; -----------------------------------------------------------------------------
; Routine: CountPlayerFrames_Loop8
; Global: Branch target inside CountPlayerFrames: taken when Loop8.
; Local: Part of CountPlayerFrames.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CountPlayerFrames_Loop8:
lda Zp4D ; CPU:$BCB8 PRG:3CB8 A5 4D
and #$0F ; CPU:$BCBA PRG:3CBA 29 0F
ora Zp20 ; CPU:$BCBC PRG:3CBC 05 20
sta Zp20 ; CPU:$BCBE PRG:3CBE 85 20
lda Zp40 ; CPU:$BCC0 PRG:3CC0 A5 40
cmp #$05 ; CPU:$BCC2 PRG:3CC2 C9 05
bcc CountPlayerFrames_Loop10 ; CPU:$BCC4 PRG:3CC4 90 1B
lda Zp4D ; CPU:$BCC6 PRG:3CC6 A5 4D
sta Zp1C ; CPU:$BCC8 PRG:3CC8 85 1C
and #$0F ; CPU:$BCCA PRG:3CCA 29 0F
cmp #$0E ; CPU:$BCCC PRG:3CCC C9 0E
bcc CountPlayerFrames_Loop9 ; CPU:$BCCE PRG:3CCE 90 06
lda Zp4D ; CPU:$BCD0 PRG:3CD0 A5 4D
eor #$10 ; CPU:$BCD2 PRG:3CD2 49 10
sta Zp1C ; CPU:$BCD4 PRG:3CD4 85 1C
; -----------------------------------------------------------------------------
; Routine: CountPlayerFrames_Loop9
; Global: Branch target inside CountPlayerFrames: taken when Loop9.
; Local: Part of CountPlayerFrames.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CountPlayerFrames_Loop9:
lda Zp1C ; CPU:$BCD6 PRG:3CD6 A5 1C
and #$10 ; CPU:$BCD8 PRG:3CD8 29 10
beq MovePlayer ; CPU:$BCDA PRG:3CDA F0 1D
inc Zp20 ; CPU:$BCDC PRG:3CDC E6 20
jmp MovePlayer ; CPU:$BCDE PRG:3CDE 4C F9 BC
; -----------------------------------------------------------------------------
; Routine: CountPlayerFrames_Loop10
; Global: Branch target inside CountPlayerFrames: taken when Loop10.
; Local: Part of CountPlayerFrames.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CountPlayerFrames_Loop10:
lda Zp4D ; CPU:$BCE1 PRG:3CE1 A5 4D
sta Zp1C ; CPU:$BCE3 PRG:3CE3 85 1C
and #$0F ; CPU:$BCE5 PRG:3CE5 29 0F
cmp #$0E ; CPU:$BCE7 PRG:3CE7 C9 0E
bcc CountPlayerFrames_Loop11 ; CPU:$BCE9 PRG:3CE9 90 06
lda Zp4D ; CPU:$BCEB PRG:3CEB A5 4D
eor #$10 ; CPU:$BCED PRG:3CED 49 10
sta Zp1C ; CPU:$BCEF PRG:3CEF 85 1C
; -----------------------------------------------------------------------------
; Routine: CountPlayerFrames_Loop11
; Global: Branch target inside CountPlayerFrames: taken when Loop11.
; Local: Part of CountPlayerFrames.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CountPlayerFrames_Loop11:
lda Zp1C ; CPU:$BCF1 PRG:3CF1 A5 1C
and #$10 ; CPU:$BCF3 PRG:3CF3 29 10
bne MovePlayer ; CPU:$BCF5 PRG:3CF5 D0 02
dec Zp20 ; CPU:$BCF7 PRG:3CF7 C6 20
; -----------------------------------------------------------------------------
; Routine: MovePlayer
; Global: Moves the player by one step.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
MovePlayer:
lda Zp48 ; CPU:$BCF9 PRG:3CF9 A5 48
sta Zp23 ; CPU:$BCFB PRG:3CFB 85 23
jsr ComputePlayerPosition ; CPU:$BCFD PRG:3CFD 20 70 BD
beq MovePlayer_Loop ; CPU:$BD00 PRG:3D00 F0 09
lda #$00 ; CPU:$BD02 PRG:3D02 A9 00
sta Zp3F ; CPU:$BD04 PRG:3D04 85 3F
sta Zp56 ; CPU:$BD06 PRG:3D06 85 56
jmp ApplyPlayerDirection ; CPU:$BD08 PRG:3D08 4C 26 BD
; -----------------------------------------------------------------------------
; Routine: MovePlayer_Loop
; Global: Branch target inside MovePlayer: taken when the loop repeats.
; Local: Part of MovePlayer.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
MovePlayer_Loop:
lda #$00 ; CPU:$BD0B PRG:3D0B A9 00
sta ZpCF ; CPU:$BD0D PRG:3D0D 85 CF
lda #$10 ; CPU:$BD0F PRG:3D0F A9 10
sta Zp56 ; CPU:$BD11 PRG:3D11 85 56
lda Zp40 ; CPU:$BD13 PRG:3D13 A5 40
cmp #$05 ; CPU:$BD15 PRG:3D15 C9 05
bcc MovePlayer_Loop2 ; CPU:$BD17 PRG:3D17 90 08
sec ; CPU:$BD19 PRG:3D19 38
sbc #$04 ; CPU:$BD1A PRG:3D1A E9 04
sta Zp40 ; CPU:$BD1C PRG:3D1C 85 40
jmp ApplyPlayerDirection ; CPU:$BD1E PRG:3D1E 4C 26 BD
; -----------------------------------------------------------------------------
; Routine: MovePlayer_Loop2
; Global: Branch target inside MovePlayer: taken when Loop2.
; Local: Part of MovePlayer.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
MovePlayer_Loop2:
clc ; CPU:$BD21 PRG:3D21 18
adc #$04 ; CPU:$BD22 PRG:3D22 69 04
sta Zp40 ; CPU:$BD24 PRG:3D24 85 40
; -----------------------------------------------------------------------------
; Routine: ApplyPlayerDirection
; Global: Turns the direction bits into a movement delta.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ApplyPlayerDirection:
lda Zp48 ; CPU:$BD26 PRG:3D26 A5 48
sta Zp23 ; CPU:$BD28 PRG:3D28 85 23
and #$01 ; CPU:$BD2A PRG:3D2A 29 01
beq ApplyPlayerDirection_Loop3 ; CPU:$BD2C PRG:3D2C F0 21
lda NewButton1 ; CPU:$BD2E PRG:3D2E A5 2A
and #$80 ; CPU:$BD30 PRG:3D30 29 80
beq ApplyPlayerDirection_Loop ; CPU:$BD32 PRG:3D32 F0 02
dec Zp23 ; CPU:$BD34 PRG:3D34 C6 23
; -----------------------------------------------------------------------------
; Routine: ApplyPlayerDirection_Loop
; Global: Branch target inside ApplyPlayerDirection: taken when the loop repeats.
; Local: Part of ApplyPlayerDirection.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ApplyPlayerDirection_Loop:
lda NewButton1 ; CPU:$BD36 PRG:3D36 A5 2A
and #$40 ; CPU:$BD38 PRG:3D38 29 40
beq ApplyPlayerDirection_Loop2 ; CPU:$BD3A PRG:3D3A F0 02
inc Zp23 ; CPU:$BD3C PRG:3D3C E6 23
; -----------------------------------------------------------------------------
; Routine: ApplyPlayerDirection_Loop2
; Global: Branch target inside ApplyPlayerDirection: taken when Loop2.
; Local: Part of ApplyPlayerDirection.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ApplyPlayerDirection_Loop2:
lda Zp23 ; CPU:$BD3E PRG:3D3E A5 23
and #$03 ; CPU:$BD40 PRG:3D40 29 03
sta Zp23 ; CPU:$BD42 PRG:3D42 85 23
lda Zp4D ; CPU:$BD44 PRG:3D44 A5 4D
sta Zp20 ; CPU:$BD46 PRG:3D46 85 20
jsr ComputePlayerPosition ; CPU:$BD48 PRG:3D48 20 70 BD
jsr Sub_CD1C ; CPU:$BD4B PRG:3D4B 20 1C CD
rts ; CPU:$BD4E PRG:3D4E 60
; -----------------------------------------------------------------------------
; Routine: ApplyPlayerDirection_Loop3
; Global: Branch target inside ApplyPlayerDirection: taken when Loop3.
; Local: Part of ApplyPlayerDirection.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ApplyPlayerDirection_Loop3:
lda NewButton1 ; CPU:$BD4F PRG:3D4F A5 2A
and #$80 ; CPU:$BD51 PRG:3D51 29 80
beq ApplyPlayerDirection_Loop4 ; CPU:$BD53 PRG:3D53 F0 02
inc Zp23 ; CPU:$BD55 PRG:3D55 E6 23
; -----------------------------------------------------------------------------
; Routine: ApplyPlayerDirection_Loop4
; Global: Branch target inside ApplyPlayerDirection: taken when Loop4.
; Local: Part of ApplyPlayerDirection.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ApplyPlayerDirection_Loop4:
lda NewButton1 ; CPU:$BD57 PRG:3D57 A5 2A
and #$40 ; CPU:$BD59 PRG:3D59 29 40
beq ApplyPlayerDirection_Loop5 ; CPU:$BD5B PRG:3D5B F0 02
dec Zp23 ; CPU:$BD5D PRG:3D5D C6 23
; -----------------------------------------------------------------------------
; Routine: ApplyPlayerDirection_Loop5
; Global: Branch target inside ApplyPlayerDirection: taken when Loop5.
; Local: Part of ApplyPlayerDirection.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ApplyPlayerDirection_Loop5:
lda Zp23 ; CPU:$BD5F PRG:3D5F A5 23
and #$03 ; CPU:$BD61 PRG:3D61 29 03
sta Zp23 ; CPU:$BD63 PRG:3D63 85 23
lda Zp4D ; CPU:$BD65 PRG:3D65 A5 4D
sta Zp20 ; CPU:$BD67 PRG:3D67 85 20
jsr ComputePlayerPosition ; CPU:$BD69 PRG:3D69 20 70 BD
jsr Sub_CD1C ; CPU:$BD6C PRG:3D6C 20 1C CD
rts ; CPU:$BD6F PRG:3D6F 60
; -----------------------------------------------------------------------------
; Routine: ComputePlayerPosition
; Global: Computes the player's position from the tile map.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ComputePlayerPosition:
lda Zp20 ; CPU:$BD70 PRG:3D70 A5 20
and #$F0 ; CPU:$BD72 PRG:3D72 29 F0
sta Zp21 ; CPU:$BD74 PRG:3D74 85 21
lda Zp20 ; CPU:$BD76 PRG:3D76 A5 20
and #$0F ; CPU:$BD78 PRG:3D78 29 0F
sta Zp22 ; CPU:$BD7A PRG:3D7A 85 22
lda #$04 ; CPU:$BD7C PRG:3D7C A9 04
sta Zp1F ; CPU:$BD7E PRG:3D7E 85 1F
ldx #$00 ; CPU:$BD80 PRG:3D80 A2 00
lda Zp23 ; CPU:$BD82 PRG:3D82 A5 23
asl a ; CPU:$BD84 PRG:3D84 0A
asl a ; CPU:$BD85 PRG:3D85 0A
sta Zp25 ; CPU:$BD86 PRG:3D86 85 25
; -----------------------------------------------------------------------------
; Routine: ComputePlayerPosition_OnNonzero
; Global: Branch target inside ComputePlayerPosition: taken when the tested value is not zero.
; Local: Part of ComputePlayerPosition.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ComputePlayerPosition_OnNonzero:
ldy Zp25 ; CPU:$BD88 PRG:3D88 A4 25
lda (Zp46),y ; CPU:$BD8A PRG:3D8A B1 46
sta Zp1E ; CPU:$BD8C PRG:3D8C 85 1E
lda Zp21 ; CPU:$BD8E PRG:3D8E A5 21
sta Zp1C ; CPU:$BD90 PRG:3D90 85 1C
lda Zp22 ; CPU:$BD92 PRG:3D92 A5 22
cmp #$0E ; CPU:$BD94 PRG:3D94 C9 0E
bcc ComputePlayerPosition_Loop ; CPU:$BD96 PRG:3D96 90 07
lda Zp21 ; CPU:$BD98 PRG:3D98 A5 21
clc ; CPU:$BD9A PRG:3D9A 18
adc #$10 ; CPU:$BD9B PRG:3D9B 69 10
sta Zp1C ; CPU:$BD9D PRG:3D9D 85 1C
; -----------------------------------------------------------------------------
; Routine: ComputePlayerPosition_Loop
; Global: Branch target inside ComputePlayerPosition: taken when the loop repeats.
; Local: Part of ComputePlayerPosition.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ComputePlayerPosition_Loop:
lda Zp1C ; CPU:$BD9F PRG:3D9F A5 1C
and #$10 ; CPU:$BDA1 PRG:3DA1 29 10
beq ComputePlayerPosition_Loop2; CPU:$BDA3 PRG:3DA3 F0 08
lda Zp1E ; CPU:$BDA5 PRG:3DA5 A5 1E
and #$10 ; CPU:$BDA7 PRG:3DA7 29 10
beq ComputePlayerPosition_Loop2; CPU:$BDA9 PRG:3DA9 F0 02
inc Zp1E ; CPU:$BDAB PRG:3DAB E6 1E
; -----------------------------------------------------------------------------
; Routine: ComputePlayerPosition_Loop2
; Global: Branch target inside ComputePlayerPosition: taken when Loop2.
; Local: Part of ComputePlayerPosition.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ComputePlayerPosition_Loop2:
lda Zp1E ; CPU:$BDAD PRG:3DAD A5 1E
and #$F0 ; CPU:$BDAF PRG:3DAF 29 F0
clc ; CPU:$BDB1 PRG:3DB1 18
adc Zp21 ; CPU:$BDB2 PRG:3DB2 65 21
sta Zp1D ; CPU:$BDB4 PRG:3DB4 85 1D
cmp #$70 ; CPU:$BDB6 PRG:3DB6 C9 70
bne ComputePlayerPosition_Loop3; CPU:$BDB8 PRG:3DB8 D0 03
lda #$FF ; CPU:$BDBA PRG:3DBA A9 FF
rts ; CPU:$BDBC PRG:3DBC 60
; -----------------------------------------------------------------------------
; Routine: ComputePlayerPosition_Loop3
; Global: Branch target inside ComputePlayerPosition: taken when Loop3.
; Local: Part of ComputePlayerPosition.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ComputePlayerPosition_Loop3:
lda Zp1E ; CPU:$BDBD PRG:3DBD A5 1E
and #$0F ; CPU:$BDBF PRG:3DBF 29 0F
clc ; CPU:$BDC1 PRG:3DC1 18
adc Zp22 ; CPU:$BDC2 PRG:3DC2 65 22
sta Zp1C ; CPU:$BDC4 PRG:3DC4 85 1C
and #$0F ; CPU:$BDC6 PRG:3DC6 29 0F
cmp #$0E ; CPU:$BDC8 PRG:3DC8 C9 0E
bcc ComputePlayerPosition_Loop4; CPU:$BDCA PRG:3DCA 90 03
; -----------------------------------------------------------------------------
; Routine: ComputePlayerPosition_OnCarrySet
; Global: Branch target inside ComputePlayerPosition: taken when the addition or subtraction carried.
; Local: Part of ComputePlayerPosition.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ComputePlayerPosition_OnCarrySet:
lda #$FF ; CPU:$BDCC PRG:3DCC A9 FF
rts ; CPU:$BDCE PRG:3DCE 60
; -----------------------------------------------------------------------------
; Routine: ComputePlayerPosition_Loop4
; Global: Branch target inside ComputePlayerPosition: taken when Loop4.
; Local: Part of ComputePlayerPosition.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ComputePlayerPosition_Loop4:
lda Zp1C ; CPU:$BDCF PRG:3DCF A5 1C
clc ; CPU:$BDD1 PRG:3DD1 18
adc Zp1D ; CPU:$BDD2 PRG:3DD2 65 1D
cmp #$70 ; CPU:$BDD4 PRG:3DD4 C9 70
bcs ComputePlayerPosition_OnCarrySet ; CPU:$BDD6 PRG:3DD6 B0 F4
tay ; CPU:$BDD8 PRG:3DD8 A8
lda $0400,y ; CPU:$BDD9 PRG:3DD9 B9 00 04
and #$7F ; CPU:$BDDC PRG:3DDC 29 7F
beq StorePlayerSprite ; CPU:$BDDE PRG:3DDE F0 01
rts ; CPU:$BDE0 PRG:3DE0 60
; -----------------------------------------------------------------------------
; Routine: StorePlayerSprite
; Global: Stores the player's sprite in the sprite table.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
StorePlayerSprite:
tya ; CPU:$BDE1 PRG:3DE1 98
sta ZpD0,x ; CPU:$BDE2 PRG:3DE2 95 D0
inx ; CPU:$BDE4 PRG:3DE4 E8
inc Zp25 ; CPU:$BDE5 PRG:3DE5 E6 25
dec Zp1F ; CPU:$BDE7 PRG:3DE7 C6 1F
bne ComputePlayerPosition_OnNonzero ; CPU:$BDE9 PRG:3DE9 D0 9D
lda #$04 ; CPU:$BDEB PRG:3DEB A9 04
sta Zp1F ; CPU:$BDED PRG:3DED 85 1F
ldx #$00 ; CPU:$BDEF PRG:3DEF A2 00
; -----------------------------------------------------------------------------
; Routine: StorePlayerSprite_OnNonzero
; Global: Branch target inside StorePlayerSprite: taken when the tested value is not zero.
; Local: Part of StorePlayerSprite.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
StorePlayerSprite_OnNonzero:
lda ZpD0,x ; CPU:$BDF1 PRG:3DF1 B5 D0
sta Zp4E,x ; CPU:$BDF3 PRG:3DF3 95 4E
inx ; CPU:$BDF5 PRG:3DF5 E8
dec Zp1F ; CPU:$BDF6 PRG:3DF6 C6 1F
bne StorePlayerSprite_OnNonzero; CPU:$BDF8 PRG:3DF8 D0 F7
lda Zp20 ; CPU:$BDFA PRG:3DFA A5 20
sta Zp4D ; CPU:$BDFC PRG:3DFC 85 4D
lda Zp23 ; CPU:$BDFE PRG:3DFE A5 23
sta Zp48 ; CPU:$BE00 PRG:3E00 85 48
lda #$00 ; CPU:$BE02 PRG:3E02 A9 00
rts ; CPU:$BE04 PRG:3E04 60
; ---- data $BE05-$BEE3 (223 bytes) ----
; referenced by `lda $BE05,x` at $BC24 (operand $BE05 falls inside this region)
; referenced by `lda $BE06,x` at $BC2B (operand $BE06 falls inside this region)
.byte $27, $02, $15, $02, $03, $02, $28, $80, $24, $02, $26, $02, $13, $01, $29, $40 ; CPU:$BE05 PRG:3E05 27 02 15 02 03 02 28 80 24 02 26 02 13 01 29 40
.byte $27, $80, $25, $02, $13, $40, $12, $02, $01, $80, $25, $01, $33, $01, $41, $40 ; CPU:$BE15 PRG:3E15 27 80 25 02 13 40 12 02 01 80 25 01 33 01 41 40
.byte $29, $40, $28, $01, $33, $01, $29, $40, $26, $80, $24, $80, $29, $80, $25, $01 ; CPU:$BE25 PRG:3E25 29 40 28 01 33 01 29 40 26 80 24 80 29 80 25 01
.byte $32, $02, $26, $40, $21, $02, $27, $80, $24, $02, $26, $01, $34, $01, $43, $80 ; CPU:$BE35 PRG:3E35 32 02 26 40 21 02 27 80 24 02 26 01 34 01 43 80
.byte $41, $40, $28, $01, $34, $01, $28, $01, $29, $02, $15, $01, $23, $80, $26, $01 ; CPU:$BE45 PRG:3E45 41 40 28 01 34 01 28 01 29 02 15 01 23 80 26 01
.byte $32, $01, $27, $02, $12, $02, $27, $01, $35, $01, $44, $80, $43, $40, $28, $40 ; CPU:$BE55 PRG:3E55 32 01 27 02 12 02 27 01 35 01 44 80 43 40 28 40
.byte $26, $80, $25, $02, $13, $02, $25, $02, $27, $01, $34, $01, $28, $40, $25, $40 ; CPU:$BE65 PRG:3E65 26 80 25 02 13 02 25 02 27 01 34 01 28 40 25 40
.byte $24, $02, $12, $02, $26, $80, $28, $80, $25, $02, $29, $40, $27, $80, $23, $02 ; CPU:$BE75 PRG:3E75 24 02 12 02 26 80 28 80 25 02 29 40 27 80 23 02
.byte $29, $01, $36, $01, $45, $01, $29, $40, $28, $01, $36, $01, $44, $80, $28, $80 ; CPU:$BE85 PRG:3E85 29 01 36 01 45 01 29 40 28 01 36 01 44 80 28 80
.byte $26, $01, $34, $01, $43, $40, $26, $40, $25, $01, $33, $80, $28, $40, $26, $02 ; CPU:$BE95 PRG:3E95 26 01 34 01 43 40 26 40 25 01 33 80 28 40 26 02
.byte $14, $02, $29, $40, $27, $80, $28, $01, $35, $01, $29, $01, $36, $01, $45, $80 ; CPU:$BEA5 PRG:3EA5 14 02 29 40 27 80 28 01 35 01 29 01 36 01 45 80
.byte $29, $40, $27, $80, $29, $02, $14, $01, $29, $02, $15, $02, $04, $02, $28, $01 ; CPU:$BEB5 PRG:3EB5 29 40 27 80 29 02 14 01 29 02 15 02 04 02 28 01
.byte $35, $01, $27, $80, $25, $02, $27, $40, $24, $02, $28, $40, $25, $01, $28, $40 ; CPU:$BEC5 PRG:3EC5 35 01 27 80 25 02 27 40 24 02 28 40 25 01 28 40
.byte $25, $80, $22, $02, $29, $80, $27, $01, $35, $01, $45, $40, $44, $01, $27 ; CPU:$BED5 PRG:3ED5 25 80 22 02 29 80 27 01 35 01 45 40 44 01 27
; -----------------------------------------------------------------------------
; Routine: BuildBubbleTable
; Global: Builds the table of the bubbles on the screen.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
BuildBubbleTable:
ldx #$00 ; CPU:$BEE4 PRG:3EE4 A2 00
stx Zp21 ; CPU:$BEE6 PRG:3EE6 86 21
; -----------------------------------------------------------------------------
; Routine: BuildBubbleTable_OnCarryClear
; Global: Branch target inside BuildBubbleTable: taken when the addition or subtraction did not carry.
; Local: Part of BuildBubbleTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
BuildBubbleTable_OnCarryClear:
ldy Zp4E,x ; CPU:$BEE8 PRG:3EE8 B4 4E
lda Zp52,x ; CPU:$BEEA PRG:3EEA B5 52
sta Zp1B ; CPU:$BEEC PRG:3EEC 85 1B
sta $0400,y ; CPU:$BEEE PRG:3EEE 99 00 04
inc Zp21 ; CPU:$BEF1 PRG:3EF1 E6 21
asl a ; CPU:$BEF3 PRG:3EF3 0A
tax ; CPU:$BEF4 PRG:3EF4 AA
lda $F29E,x ; CPU:$BEF5 PRG:3EF5 BD 9E F2
sta Zp17 ; CPU:$BEF8 PRG:3EF8 85 17
lda $F29F,x ; CPU:$BEFA PRG:3EFA BD 9F F2
sta Zp18 ; CPU:$BEFD PRG:3EFD 85 18
tya ; CPU:$BEFF PRG:3EFF 98
jsr Sub_84BF ; CPU:$BF00 PRG:3F00 20 BF 84
jsr Sub_858A ; CPU:$BF03 PRG:3F03 20 8A 85
jsr Sub_84E3 ; CPU:$BF06 PRG:3F06 20 E3 84
ldx Zp21 ; CPU:$BF09 PRG:3F09 A6 21
cpx #$04 ; CPU:$BF0B PRG:3F0B E0 04
bcc BuildBubbleTable_OnCarryClear ; CPU:$BF0D PRG:3F0D 90 D9
ldx Zp36 ; CPU:$BF0F PRG:3F0F A6 36
lda #$00 ; CPU:$BF11 PRG:3F11 A9 00
sta $0300,x ; CPU:$BF13 PRG:3F13 9D 00 03
rts ; CPU:$BF16 PRG:3F16 60
; -----------------------------------------------------------------------------
; Routine: UpdateBubbles
; Global: Updates every bubble on the screen.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateBubbles:
lda Zp61 ; CPU:$BF17 PRG:3F17 A5 61
cmp #$00 ; CPU:$BF19 PRG:3F19 C9 00
bne PlayBubbleSound ; CPU:$BF1B PRG:3F1B D0 36
ldx #$00 ; CPU:$BF1D PRG:3F1D A2 00
stx Zp58 ; CPU:$BF1F PRG:3F1F 86 58
; -----------------------------------------------------------------------------
; Routine: UpdateBubbles_OnCarryClear
; Global: Branch target inside UpdateBubbles: taken when the addition or subtraction did not carry.
; Local: Part of UpdateBubbles.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateBubbles_OnCarryClear:
stx Zp21 ; CPU:$BF21 PRG:3F21 86 21
lda Zp4E,x ; CPU:$BF23 PRG:3F23 B5 4E
sta Zp20 ; CPU:$BF25 PRG:3F25 85 20
dec Zp20 ; CPU:$BF27 PRG:3F27 C6 20
; -----------------------------------------------------------------------------
; Routine: UpdateBubbles_OnNonnegative
; Global: Branch target inside UpdateBubbles: taken when the tested value is not negative.
; Local: Part of UpdateBubbles.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateBubbles_OnNonnegative:
lda Zp20 ; CPU:$BF29 PRG:3F29 A5 20
and #$0F ; CPU:$BF2B PRG:3F2B 29 0F
cmp #$0E ; CPU:$BF2D PRG:3F2D C9 0E
bcs UpdateBubbles_Loop ; CPU:$BF2F PRG:3F2F B0 18
ldy Zp20 ; CPU:$BF31 PRG:3F31 A4 20
lda $0400,y ; CPU:$BF33 PRG:3F33 B9 00 04
bne UpdateBubbles_Loop ; CPU:$BF36 PRG:3F36 D0 11
lda #$80 ; CPU:$BF38 PRG:3F38 A9 80
sta $0400,y ; CPU:$BF3A PRG:3F3A 99 00 04
tya ; CPU:$BF3D PRG:3F3D 98
ldx Zp58 ; CPU:$BF3E PRG:3F3E A6 58
sta $0568,x ; CPU:$BF40 PRG:3F40 9D 68 05
inc Zp58 ; CPU:$BF43 PRG:3F43 E6 58
dec Zp20 ; CPU:$BF45 PRG:3F45 C6 20
bpl UpdateBubbles_OnNonnegative; CPU:$BF47 PRG:3F47 10 E0
; -----------------------------------------------------------------------------
; Routine: UpdateBubbles_Loop
; Global: Branch target inside UpdateBubbles: taken when the loop repeats.
; Local: Part of UpdateBubbles.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateBubbles_Loop:
ldx Zp21 ; CPU:$BF49 PRG:3F49 A6 21
inx ; CPU:$BF4B PRG:3F4B E8
cpx #$04 ; CPU:$BF4C PRG:3F4C E0 04
bcc UpdateBubbles_OnCarryClear ; CPU:$BF4E PRG:3F4E 90 D1
inc Zp61 ; CPU:$BF50 PRG:3F50 E6 61
rts ; CPU:$BF52 PRG:3F52 60
; -----------------------------------------------------------------------------
; Routine: PlayBubbleSound
; Global: Plays the sound of a bubble that burst.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
PlayBubbleSound:
lda FrameCounter ; CPU:$BF53 PRG:3F53 A5 31
ror a ; CPU:$BF55 PRG:3F55 6A
bcs PlayBubbleSound_Loop ; CPU:$BF56 PRG:3F56 B0 01
rts ; CPU:$BF58 PRG:3F58 60
; -----------------------------------------------------------------------------
; Routine: PlayBubbleSound_Loop
; Global: Branch target inside PlayBubbleSound: taken when the loop repeats.
; Local: Part of PlayBubbleSound.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
PlayBubbleSound_Loop:
lda #$0D ; CPU:$BF59 PRG:3F59 A9 0D
sta Zp17 ; CPU:$BF5B PRG:3F5B 85 17
lda #$F3 ; CPU:$BF5D PRG:3F5D A9 F3
sta Zp18 ; CPU:$BF5F PRG:3F5F 85 18
lda #$0C ; CPU:$BF61 PRG:3F61 A9 0C
sta Zp1F ; CPU:$BF63 PRG:3F63 85 1F
ldy #$00 ; CPU:$BF65 PRG:3F65 A0 00
; -----------------------------------------------------------------------------
; Routine: SpawnBubble
; Global: Puts a new bubble on the screen.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SpawnBubble:
dec Zp58 ; CPU:$BF67 PRG:3F67 C6 58
bpl DrawBubble ; CPU:$BF69 PRG:3F69 10 18
inc Zp60 ; CPU:$BF6B PRG:3F6B E6 60
lda Zp64 ; CPU:$BF6D PRG:3F6D A5 64
bne SpawnBubble_Loop ; CPU:$BF6F PRG:3F6F D0 02
inc Zp60 ; CPU:$BF71 PRG:3F71 E6 60
; -----------------------------------------------------------------------------
; Routine: SpawnBubble_Loop
; Global: Branch target inside SpawnBubble: taken when the loop repeats.
; Local: Part of SpawnBubble.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SpawnBubble_Loop:
lda #$00 ; CPU:$BF73 PRG:3F73 A9 00
ldy Zp36 ; CPU:$BF75 PRG:3F75 A4 36
sta Zp61 ; CPU:$BF77 PRG:3F77 85 61
sta $0300,y ; CPU:$BF79 PRG:3F79 99 00 03
sta Zp3F ; CPU:$BF7C PRG:3F7C 85 3F
lda #$03 ; CPU:$BF7E PRG:3F7E A9 03
sta Zp56 ; CPU:$BF80 PRG:3F80 85 56
rts ; CPU:$BF82 PRG:3F82 60
; -----------------------------------------------------------------------------
; Routine: DrawBubble
; Global: Draws one bubble.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DrawBubble:
ldx Zp58 ; CPU:$BF83 PRG:3F83 A6 58
lda $0568,x ; CPU:$BF85 PRG:3F85 BD 68 05
jsr Sub_84BF ; CPU:$BF88 PRG:3F88 20 BF 84
jsr Sub_858A ; CPU:$BF8B PRG:3F8B 20 8A 85
dec Zp1F ; CPU:$BF8E PRG:3F8E C6 1F
bpl SpawnBubble ; CPU:$BF90 PRG:3F90 10 D5
ldy Zp36 ; CPU:$BF92 PRG:3F92 A4 36
lda #$00 ; CPU:$BF94 PRG:3F94 A9 00
sta $0300,y ; CPU:$BF96 PRG:3F96 99 00 03
rts ; CPU:$BF99 PRG:3F99 60
; -----------------------------------------------------------------------------
; Routine: DispatchBubbleHandler
; Global: Jumps to the handler the bubble table names.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DispatchBubbleHandler:
lda Zp61 ; CPU:$BF9A PRG:3F9A A5 61
jsr DispatchByJumpTable ; CPU:$BF9C PRG:3F9C 20 73 81
; ---- data $BF9F-$BFAE (16 bytes) ----
.byte $AF, $BF, $BA, $BF, $D6, $BF, $0F, $C0, $70, $C0, $79, $C0, $9E, $C0, $B9, $C0 ; CPU:$BF9F PRG:3F9F AF BF BA BF D6 BF 0F C0 70 C0 79 C0 9E C0 B9 C0
; -----------------------------------------------------------------------------
; Routine: ResetLevel
; Global: Resets the level and the player.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetLevel:
lda #$0A ; CPU:$BFAF PRG:3FAF A9 0A
sta GameMode ; CPU:$BFB1 PRG:3FB1 85 6A
lda #$00 ; CPU:$BFB3 PRG:3FB3 A9 00
sta Zp6C ; CPU:$BFB5 PRG:3FB5 85 6C
inc Zp61 ; CPU:$BFB7 PRG:3FB7 E6 61
rts ; CPU:$BFB9 PRG:3FB9 60
; -----------------------------------------------------------------------------
; Routine: ClearSpriteTable
; Global: Empties the sprite table in RAM.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ClearSpriteTable:
lda #$00 ; CPU:$BFBA PRG:3FBA A9 00
sta $0358 ; CPU:$BFBC PRG:3FBC 8D 58 03
sta $035A ; CPU:$BFBF PRG:3FBF 8D 5A 03
sta $035B ; CPU:$BFC2 PRG:3FC2 8D 5B 03
sta $035C ; CPU:$BFC5 PRG:3FC5 8D 5C 03
sta $035D ; CPU:$BFC8 PRG:3FC8 8D 5D 03
lda #$0A ; CPU:$BFCB PRG:3FCB A9 0A
sta Zp58 ; CPU:$BFCD PRG:3FCD 85 58
inc Zp61 ; CPU:$BFCF PRG:3FCF E6 61
lda #$07 ; CPU:$BFD1 PRG:3FD1 A9 07
jsr BankedCall ; CPU:$BFD3 PRG:3FD3 20 04 80
lda FrameCounter ; CPU:$BFD6 PRG:3FD6 A5 31
ror a ; CPU:$BFD8 PRG:3FD8 6A
bcs ClearSpriteTable_Loop ; CPU:$BFD9 PRG:3FD9 B0 01
rts ; CPU:$BFDB PRG:3FDB 60
; -----------------------------------------------------------------------------
; Routine: ClearSpriteTable_Loop
; Global: Branch target inside ClearSpriteTable: taken when the loop repeats.
; Local: Part of ClearSpriteTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ClearSpriteTable_Loop:
lda #$A8 ; CPU:$BFDC PRG:3FDC A9 A8
sta Zp17 ; CPU:$BFDE PRG:3FDE 85 17
lda #$F2 ; CPU:$BFE0 PRG:3FE0 A9 F2
sta Zp18 ; CPU:$BFE2 PRG:3FE2 85 18
lda Zp58 ; CPU:$BFE4 PRG:3FE4 A5 58
; -----------------------------------------------------------------------------
; Routine: ClearSpriteTable_OnCarryClear
; Global: Branch target inside ClearSpriteTable: taken when the addition or subtraction did not carry.
; Local: Part of ClearSpriteTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ClearSpriteTable_OnCarryClear:
sta Zp56 ; CPU:$BFE6 PRG:3FE6 85 56
jsr Sub_84BF ; CPU:$BFE8 PRG:3FE8 20 BF 84
jsr Sub_858A ; CPU:$BFEB PRG:3FEB 20 8A 85
lda Zp56 ; CPU:$BFEE PRG:3FEE A5 56
clc ; CPU:$BFF0 PRG:3FF0 18
adc #$10 ; CPU:$BFF1 PRG:3FF1 69 10
cmp #$70 ; CPU:$BFF3 PRG:3FF3 C9 70
bcc ClearSpriteTable_OnCarryClear ; CPU:$BFF5 PRG:3FF5 90 EF
lda #$00 ; CPU:$BFF7 PRG:3FF7 A9 00
sta $0300,x ; CPU:$BFF9 PRG:3FF9 9D 00 03
dec Zp58 ; CPU:$BFFC PRG:3FFC C6 58
bpl ClearNametableRam_Loop ; CPU:$BFFE PRG:3FFE 10 0E
.segment "PRG2"
.org $C000
; -----------------------------------------------------------------------------
; Routine: ClearNametableRam
; Global: Clears the nametable RAM the game writes to.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ClearNametableRam:
inc Zp61 ; CPU:$C000 PRG:4000 E6 61
ldy #$00 ; CPU:$C002 PRG:4002 A0 00
lda #$00 ; CPU:$C004 PRG:4004 A9 00
; -----------------------------------------------------------------------------
; Routine: ClearNametableRam_OnCarryClear
; Global: Branch target inside ClearNametableRam: taken when the addition or subtraction did not carry.
; Local: Part of ClearNametableRam.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ClearNametableRam_OnCarryClear:
sta $0400,y ; CPU:$C006 PRG:4006 99 00 04
iny ; CPU:$C009 PRG:4009 C8
cpy #$70 ; CPU:$C00A PRG:400A C0 70
bcc ClearNametableRam_OnCarryClear ; CPU:$C00C PRG:400C 90 F8
; -----------------------------------------------------------------------------
; Routine: ClearNametableRam_Loop
; Global: Branch target inside ClearNametableRam: taken when the loop repeats.
; Local: Part of ClearNametableRam.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ClearNametableRam_Loop:
rts ; CPU:$C00E PRG:400E 60
; -----------------------------------------------------------------------------
; Routine: PlayStageMusic
; Global: Runs the stage script: the music, the waves and the timer.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
PlayStageMusic:
lda FrameCounter ; CPU:$C00F PRG:400F A5 31
ror a ; CPU:$C011 PRG:4011 6A
bcs PlayStageMusic_Loop ; CPU:$C012 PRG:4012 B0 01
rts ; CPU:$C014 PRG:4014 60
; -----------------------------------------------------------------------------
; Routine: PlayStageMusic_Loop
; Global: Branch target inside PlayStageMusic: taken when the loop repeats.
; Local: Part of PlayStageMusic.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
PlayStageMusic_Loop:
ldx Zp37 ; CPU:$C015 PRG:4015 A6 37
ldy #$00 ; CPU:$C017 PRG:4017 A0 00
; -----------------------------------------------------------------------------
; Routine: PlayStageMusic_OnCarryClear
; Global: Branch target inside PlayStageMusic: taken when the addition or subtraction did not carry.
; Local: Part of PlayStageMusic.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
PlayStageMusic_OnCarryClear:
lda $C046,y ; CPU:$C019 PRG:4019 B9 46 C0
sta $0338,x ; CPU:$C01C PRG:401C 9D 38 03
inx ; CPU:$C01F PRG:401F E8
iny ; CPU:$C020 PRG:4020 C8
cpy #$08 ; CPU:$C021 PRG:4021 C0 08
bcc PlayStageMusic_OnCarryClear; CPU:$C023 PRG:4023 90 F4
lda #$00 ; CPU:$C025 PRG:4025 A9 00
sta $0338,x ; CPU:$C027 PRG:4027 9D 38 03
lda Zp6F ; CPU:$C02A PRG:402A A5 6F
beq PlayStageMusic_Loop2 ; CPU:$C02C PRG:402C F0 07
ldy Zp37 ; CPU:$C02E PRG:402E A4 37
lda #$A7 ; CPU:$C030 PRG:4030 A9 A7
sta $0338,y ; CPU:$C032 PRG:4032 99 38 03
; -----------------------------------------------------------------------------
; Routine: PlayStageMusic_Loop2
; Global: Branch target inside PlayStageMusic: taken when Loop2.
; Local: Part of PlayStageMusic.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
PlayStageMusic_Loop2:
stx Zp37 ; CPU:$C035 PRG:4035 86 37
lda #$01 ; CPU:$C037 PRG:4037 A9 01
sta Zp95 ; CPU:$C039 PRG:4039 85 95
lda #$00 ; CPU:$C03B PRG:403B A9 00
sta Zp5F ; CPU:$C03D PRG:403D 85 5F
sta Zp5E ; CPU:$C03F PRG:403F 85 5E
sta Zp91 ; CPU:$C041 PRG:4041 85 91
inc Zp61 ; CPU:$C043 PRG:4043 E6 61
rts ; CPU:$C045 PRG:4045 60
; ---- data $C046-$C060 (27 bytes) ----
; referenced by `lda $C046,y` at $C019 (operand $C046 falls inside this region)
.byte $A9, $21, $11, $F8, $D9, $23, $1B, $F8, $A9, $00, $85, $61, $A9, $0A, $85, $58 ; CPU:$C046 PRG:4046 A9 21 11 F8 D9 23 1B F8 A9 00 85 61 A9 0A 85 58
.byte $60, $20, $DC, $BF, $A5, $61, $F0, $02, $E6, $6C, $60 ; CPU:$C056 PRG:4056 60 20 DC BF A5 61 F0 02 E6 6C 60
; -----------------------------------------------------------------------------
; Routine: Sub_C061
; Global: Branch target inside Sub: taken when C061.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_C061:
lda #$00 ; CPU:$C061 PRG:4061 A9 00
tax ; CPU:$C063 PRG:4063 AA
; -----------------------------------------------------------------------------
; Routine: PlayStageMusic_OnCarryClear2
; Global: Branch target inside PlayStageMusic: taken when OnCarryClear2.
; Local: Part of PlayStageMusic.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
PlayStageMusic_OnCarryClear2:
sta Zp60,x ; CPU:$C064 PRG:4064 95 60
inx ; CPU:$C066 PRG:4066 E8
cpx #$0A ; CPU:$C067 PRG:4067 E0 0A
bcc PlayStageMusic_OnCarryClear2 ; CPU:$C069 PRG:4069 90 F9
lda #$FF ; CPU:$C06B PRG:406B A9 FF
sta Zp65 ; CPU:$C06D PRG:406D 85 65
rts ; CPU:$C06F PRG:406F 60
; ---- data $C070-$C0F1 (130 bytes) ----
.byte $A5, $26, $C9, $C0, $D0, $02, $E6, $61, $60, $A5, $31, $6A, $B0, $01, $60, $A2 ; CPU:$C070 PRG:4070 A5 26 C9 C0 D0 02 E6 61 60 A5 31 6A B0 01 60 A2
.byte $00, $BD, $96, $C0, $9D, $38, $03, $E8, $E0, $08, $90, $F5, $A9, $00, $9D, $38 ; CPU:$C080 PRG:4080 00 BD 96 C0 9D 38 03 E8 E0 08 90 F5 A9 00 9D 38
.byte $03, $85, $95, $E6, $61, $60, $A7, $21, $25, $F8, $D9, $23, $20, $F8, $A5, $31 ; CPU:$C090 PRG:4090 03 85 95 E6 61 60 A7 21 25 F8 D9 23 20 F8 A5 31
.byte $6A, $B0, $01, $60, $A0, $00, $A6, $37, $B9, $E0, $C0, $9D, $38, $03, $E8, $C8 ; CPU:$C0A0 PRG:40A0 6A B0 01 60 A0 00 A6 37 B9 E0 C0 9D 38 03 E8 C8
.byte $C0, $0D, $90, $F4, $86, $37, $E6, $61, $60, $A5, $31, $6A, $B0, $01, $60, $A0 ; CPU:$C0B0 PRG:40B0 C0 0D 90 F4 86 37 E6 61 60 A5 31 6A B0 01 60 A0
.byte $00, $A6, $37, $B9, $ED, $C0, $9D, $38, $03, $E8, $C8, $C0, $05, $90, $F4, $86 ; CPU:$C0C0 PRG:40C0 00 A6 37 B9 ED C0 9D 38 03 E8 C8 C0 05 90 F4 86
.byte $37, $20, $61, $C0, $20, $03, $97, $A9, $09, $85, $60, $A9, $00, $85, $61, $60 ; CPU:$C0D0 PRG:40D0 37 20 61 C0 20 03 97 A9 09 85 60 A9 00 85 61 60
.byte $22, $23, $A1, $FB, $42, $23, $A1, $FB, $2A, $23, $A7, $FB, $00, $46, $23, $AF ; CPU:$C0E0 PRG:40E0 22 23 A1 FB 42 23 A1 FB 2A 23 A7 FB 00 46 23 AF
.byte $FB, $00 ; CPU:$C0F0 PRG:40F0 FB 00
; -----------------------------------------------------------------------------
; Routine: Sub_C0F2
; Global: Branch target inside Sub: taken when C0F2.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_C0F2:
lda Zp5E ; CPU:$C0F2 PRG:40F2 A5 5E
bne PlayStageMusic_Loop3 ; CPU:$C0F4 PRG:40F4 D0 18
jsr Sub_8552 ; CPU:$C0F6 PRG:40F6 20 52 85
lda Zp3D ; CPU:$C0F9 PRG:40F9 A5 3D
and #$03 ; CPU:$C0FB PRG:40FB 29 03
tay ; CPU:$C0FD PRG:40FD A8
ldx #$00 ; CPU:$C0FE PRG:40FE A2 00
; -----------------------------------------------------------------------------
; Routine: PlayStageMusic_OnCarryClear3
; Global: Branch target inside PlayStageMusic: taken when OnCarryClear3.
; Local: Part of PlayStageMusic.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
PlayStageMusic_OnCarryClear3:
lda $C137,y ; CPU:$C100 PRG:4100 B9 37 C1
sta $05DA,x ; CPU:$C103 PRG:4103 9D DA 05
iny ; CPU:$C106 PRG:4106 C8
inx ; CPU:$C107 PRG:4107 E8
cpx #$05 ; CPU:$C108 PRG:4108 E0 05
bcc PlayStageMusic_OnCarryClear3 ; CPU:$C10A PRG:410A 90 F4
stx Zp5E ; CPU:$C10C PRG:410C 86 5E
; -----------------------------------------------------------------------------
; Routine: PlayStageMusic_Loop3
; Global: Branch target inside PlayStageMusic: taken when Loop3.
; Local: Part of PlayStageMusic.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
PlayStageMusic_Loop3:
ldx Zp5E ; CPU:$C10E PRG:410E A6 5E
lda $05D9,x ; CPU:$C110 PRG:4110 BD D9 05
clc ; CPU:$C113 PRG:4113 18
adc #$07 ; CPU:$C114 PRG:4114 69 07
sta Zp11 ; CPU:$C116 PRG:4116 85 11
lda #$00 ; CPU:$C118 PRG:4118 A9 00
sta Zp12 ; CPU:$C11A PRG:411A 85 12
jsr Sub_855D ; CPU:$C11C PRG:411C 20 5D 85
jsr Sub_8552 ; CPU:$C11F PRG:411F 20 52 85
lda Zp3D ; CPU:$C122 PRG:4122 A5 3D
and #$03 ; CPU:$C124 PRG:4124 29 03
sta Zp64 ; CPU:$C126 PRG:4126 85 64
inc Zp64 ; CPU:$C128 PRG:4128 E6 64
ldx Zp65 ; CPU:$C12A PRG:412A A6 65
bmi PlayStageMusic_Loop4 ; CPU:$C12C PRG:412C 30 08
lda $0400,x ; CPU:$C12E PRG:412E BD 00 04
and #$BF ; CPU:$C131 PRG:4131 29 BF
sta $0400,x ; CPU:$C133 PRG:4133 9D 00 04
; -----------------------------------------------------------------------------
; Routine: PlayStageMusic_Loop4
; Global: Branch target inside PlayStageMusic: taken when Loop4.
; Local: Part of PlayStageMusic.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
PlayStageMusic_Loop4:
rts ; CPU:$C136 PRG:4136 60
; ---- data $C137-$C13F (9 bytes) ----
; referenced by `lda $C137,y` at $C100 (operand $C137 falls inside this region)
.byte $02, $00, $04, $03, $01, $02, $00, $04, $03 ; CPU:$C137 PRG:4137 02 00 04 03 01 02 00 04 03
; -----------------------------------------------------------------------------
; Routine: Sub_C140
; Global: Branch target inside Sub: taken when C140.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_C140:
lda #$02 ; CPU:$C140 PRG:4140 A9 02
sta Zp64 ; CPU:$C142 PRG:4142 85 64
lda #$05 ; CPU:$C144 PRG:4144 A9 05
sta Zp11 ; CPU:$C146 PRG:4146 85 11
lda #$02 ; CPU:$C148 PRG:4148 A9 02
sta Zp12 ; CPU:$C14A PRG:414A 85 12
jsr Sub_855D ; CPU:$C14C PRG:414C 20 5D 85
lda #$00 ; CPU:$C14F PRG:414F A9 00
sta Zp63 ; CPU:$C151 PRG:4151 85 63
ldx Zp65 ; CPU:$C153 PRG:4153 A6 65
bmi PlayStageMusic_Loop5 ; CPU:$C155 PRG:4155 30 17
lda $0400,x ; CPU:$C157 PRG:4157 BD 00 04
and #$BF ; CPU:$C15A PRG:415A 29 BF
sta $0400,x ; CPU:$C15C PRG:415C 9D 00 04
lda #$FF ; CPU:$C15F PRG:415F A9 FF
sta Zp65 ; CPU:$C161 PRG:4161 85 65
lda #$00 ; CPU:$C163 PRG:4163 A9 00
sta Zp11 ; CPU:$C165 PRG:4165 85 11
lda #$00 ; CPU:$C167 PRG:4167 A9 00
sta Zp12 ; CPU:$C169 PRG:4169 85 12
jsr Sub_855D ; CPU:$C16B PRG:416B 20 5D 85
; -----------------------------------------------------------------------------
; Routine: PlayStageMusic_Loop5
; Global: Branch target inside PlayStageMusic: taken when Loop5.
; Local: Part of PlayStageMusic.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
PlayStageMusic_Loop5:
rts ; CPU:$C16E PRG:416E 60
; ---- data $C16F-$C2A6 (312 bytes) ----
.byte $A5, $31, $6A, $B0, $01, $60, $A5, $61, $D0, $11, $E6, $61, $A9, $01, $8D, $E3 ; CPU:$C16F PRG:416F A5 31 6A B0 01 60 A5 61 D0 11 E6 61 A9 01 8D E3
.byte $00, $A9, $05, $8D, $E2, $00, $A9, $04, $20, $04, $80, $C9, $01, $D0, $4A, $A9 ; CPU:$C17F PRG:417F 00 A9 05 8D E2 00 A9 04 20 04 80 C9 01 D0 4A A9
.byte $05, $85, $11, $A9, $03, $85, $12, $20, $5D, $85, $A5, $3F, $0A, $AA, $BD, $87 ; CPU:$C18F PRG:418F 05 85 11 A9 03 85 12 20 5D 85 A5 3F 0A AA BD 87
.byte $F8, $18, $6D, $8A, $03, $8D, $8B, $03, $BD, $88, $F8, $18, $6D, $9A, $03, $8D ; CPU:$C19F PRG:419F F8 18 6D 8A 03 8D 8B 03 BD 88 F8 18 6D 9A 03 8D
.byte $9B, $03, $A5, $31, $6A, $29, $03, $85, $20, $AD, $AA, $03, $29, $FC, $05, $20 ; CPU:$C1AF PRG:41AF 9B 03 A5 31 6A 29 03 85 20 AD AA 03 29 FC 05 20
.byte $8D, $AA, $03, $8D, $AB, $03, $E6, $3F, $A5, $3F, $C9, $18, $D0, $0A, $A9, $00 ; CPU:$C1BF PRG:41BF 8D AA 03 8D AB 03 E6 3F A5 3F C9 18 D0 0A A9 00
.byte $85, $3F, $C6, $56, $D0, $02, $E6, $61, $60, $C9, $02, $D0, $6D, $A5, $4E, $8D ; CPU:$C1CF PRG:41CF 85 3F C6 56 D0 02 E6 61 60 C9 02 D0 6D A5 4E 8D
.byte $22, $05, $AA, $20, $52, $85, $A5, $3D, $29, $03, $85, $64, $E6, $64, $A5, $64 ; CPU:$C1DF PRG:41DF 22 05 AA 20 52 85 A5 3D 29 03 85 64 E6 64 A5 64
.byte $9D, $00, $04, $A0, $01, $84, $25, $AD, $22, $05, $29, $10, $F0, $04, $A9, $07 ; CPU:$C1EF PRG:41EF 9D 00 04 A0 01 84 25 AD 22 05 29 10 F0 04 A9 07
.byte $85, $25, $A9, $01, $85, $21, $A9, $06, $85, $1F, $A4, $25, $B9, $7A, $F8, $E6 ; CPU:$C1FF PRG:41FF 85 25 A9 01 85 21 A9 06 85 1F A4 25 B9 7A F8 E6
.byte $25, $18, $6D, $22, $05, $AA, $29, $0F, $C9, $0D, $B0, $20, $8A, $29, $F0, $C9 ; CPU:$C20F PRG:420F 25 18 6D 22 05 AA 29 0F C9 0D B0 20 8A 29 F0 C9
.byte $70, $B0, $19, $BD, $00, $04, $29, $07, $D0, $05, $9D, $00, $04, $F0, $05, $A5 ; CPU:$C21F PRG:421F 70 B0 19 BD 00 04 29 07 D0 05 9D 00 04 F0 05 A5
.byte $64, $9D, $00, $04, $8A, $A6, $21, $9D, $22, $05, $E6, $21, $C6, $1F, $D0, $CA ; CPU:$C22F PRG:422F 64 9D 00 04 8A A6 21 9D 22 05 E6 21 C6 1F D0 CA
.byte $A6, $21, $A9, $FF, $9D, $22, $05, $E6, $61, $60, $C9, $03, $D0, $47, $A0, $00 ; CPU:$C23F PRG:423F A6 21 A9 FF 9D 22 05 E6 61 60 C9 03 D0 47 A0 00
.byte $84, $22, $A4, $22, $B9, $22, $05, $30, $22, $85, $21, $20, $BF, $84, $A6, $21 ; CPU:$C24F PRG:424F 84 22 A4 22 B9 22 05 30 22 85 21 20 BF 84 A6 21
.byte $BD, $00, $04, $85, $1B, $0A, $AA, $BD, $9E, $F2, $85, $17, $BD, $9F, $F2, $85 ; CPU:$C25F PRG:425F BD 00 04 85 1B 0A AA BD 9E F2 85 17 BD 9F F2 85
.byte $18, $20, $8A, $85, $20, $E3, $84, $E6, $22, $10, $D7, $A6, $36, $A9, $00, $9D ; CPU:$C26F PRG:426F 18 20 8A 85 20 E3 84 E6 22 10 D7 A6 36 A9 00 9D
.byte $00, $03, $A9, $00, $85, $11, $A9, $02, $85, $12, $20, $5D, $85, $E6, $12, $20 ; CPU:$C27F PRG:427F 00 03 A9 00 85 11 A9 02 85 12 20 5D 85 E6 12 20
.byte $5D, $85, $E6, $61, $60, $E6, $61, $A5, $61, $C9, $0F, $90, $0A, $A9, $00, $85 ; CPU:$C28F PRG:428F 5D 85 E6 61 60 E6 61 A5 61 C9 0F 90 0A A9 00 85
.byte $61, $85, $66, $85, $64, $E6, $60, $60 ; CPU:$C29F PRG:429F 61 85 66 85 64 E6 60 60
; -----------------------------------------------------------------------------
; Routine: DispatchLevelScript
; Global: Jumps to the level script step the game is on.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DispatchLevelScript:
lda Zp6C ; CPU:$C2A7 PRG:42A7 A5 6C
jsr DispatchByJumpTable ; CPU:$C2A9 PRG:42A9 20 73 81
; ---- data $C2AC-$C2BE (19 bytes) ----
; referenced by `lda $C2BE,x` at $C2C9 (operand $C2BE falls inside this region)
; referenced by `sta $C2BE,x` at $C2CC (operand $C2BE falls inside this region)
.byte $BF, $C2, $C8, $C3, $56, $C4, $69, $C4, $9D, $C4, $E7, $C4, $05, $C5, $24, $C7 ; CPU:$C2AC PRG:42AC BF C2 C8 C3 56 C4 69 C4 9D C4 E7 C4 05 C5 24 C7
.byte $7E, $C7, $01 ; CPU:$C2BC PRG:42BC 7E C7 01
; -----------------------------------------------------------------------------
; Routine: ResetPpuAndLoadTiles
; Global: Turns the PPU off and loads the tile set.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetPpuAndLoadTiles:
lda #$00 ; CPU:$C2BF PRG:42BF A9 00
sta PPUCTRL ; CPU:$C2C1 PRG:42C1 8D 00 20
sta PPUMASK ; CPU:$C2C4 PRG:42C4 8D 01 20
ldx #$00 ; CPU:$C2C7 PRG:42C7 A2 00
lda $C2BE,x ; CPU:$C2C9 PRG:42C9 BD BE C2
sta $C2BE,x ; CPU:$C2CC PRG:42CC 9D BE C2
sta PrgBankNumber ; CPU:$C2CF PRG:42CF 85 2C
lda #$F1 ; CPU:$C2D1 PRG:42D1 A9 F1
sta Zp12 ; CPU:$C2D3 PRG:42D3 85 12
lda #$E6 ; CPU:$C2D5 PRG:42D5 A9 E6
sta Zp11 ; CPU:$C2D7 PRG:42D7 85 11
jsr Sub_85C4 ; CPU:$C2D9 PRG:42D9 20 C4 85
lda Zp5A ; CPU:$C2DC PRG:42DC A5 5A
asl a ; CPU:$C2DE PRG:42DE 0A
tax ; CPU:$C2DF PRG:42DF AA
lda $F45C,x ; CPU:$C2E0 PRG:42E0 BD 5C F4
sta Zp39 ; CPU:$C2E3 PRG:42E3 85 39
lda $F45D,x ; CPU:$C2E5 PRG:42E5 BD 5D F4
sta Zp3A ; CPU:$C2E8 PRG:42E8 85 3A
lda Zp5C ; CPU:$C2EA PRG:42EA A5 5C
asl a ; CPU:$C2EC PRG:42EC 0A
tax ; CPU:$C2ED PRG:42ED AA
lda $F45C,x ; CPU:$C2EE PRG:42EE BD 5C F4
sta Zp3B ; CPU:$C2F1 PRG:42F1 85 3B
lda $F45D,x ; CPU:$C2F3 PRG:42F3 BD 5D F4
sta Zp3C ; CPU:$C2F6 PRG:42F6 85 3C
lda Zp6F ; CPU:$C2F8 PRG:42F8 A5 6F
bne ResetPpuAndLoadTiles_Loop2 ; CPU:$C2FA PRG:42FA D0 42
ldy #$07 ; CPU:$C2FC PRG:42FC A0 07
lda #$22 ; CPU:$C2FE PRG:42FE A9 22
sta Zp1A ; CPU:$C300 PRG:4300 85 1A
lda #$76 ; CPU:$C302 PRG:4302 A9 76
sta Zp19 ; CPU:$C304 PRG:4304 85 19
ldx #$06 ; CPU:$C306 PRG:4306 A2 06
; -----------------------------------------------------------------------------
; Routine: ResetPpuAndLoadTiles_OnNonzero
; Global: Branch target inside ResetPpuAndLoadTiles: taken when the tested value is not zero.
; Local: Part of ResetPpuAndLoadTiles.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetPpuAndLoadTiles_OnNonzero:
stx Zp21 ; CPU:$C308 PRG:4308 86 21
lda PPUSTATUS ; CPU:$C30A PRG:430A AD 02 20
lda Zp1A ; CPU:$C30D PRG:430D A5 1A
sta PPUADDR ; CPU:$C30F PRG:430F 8D 06 20
lda Zp19 ; CPU:$C312 PRG:4312 A5 19
sta PPUADDR ; CPU:$C314 PRG:4314 8D 06 20
lda #$FF ; CPU:$C317 PRG:4317 A9 FF
; -----------------------------------------------------------------------------
; Routine: ResetPpuAndLoadTiles_OnNonzero2
; Global: Branch target inside ResetPpuAndLoadTiles: taken when OnNonzero2.
; Local: Part of ResetPpuAndLoadTiles.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetPpuAndLoadTiles_OnNonzero2:
sta PPUDATA ; CPU:$C319 PRG:4319 8D 07 20
dec Zp21 ; CPU:$C31C PRG:431C C6 21
bne ResetPpuAndLoadTiles_OnNonzero2 ; CPU:$C31E PRG:431E D0 F9
lda Zp19 ; CPU:$C320 PRG:4320 A5 19
clc ; CPU:$C322 PRG:4322 18
adc #$20 ; CPU:$C323 PRG:4323 69 20
sta Zp19 ; CPU:$C325 PRG:4325 85 19
bcc ResetPpuAndLoadTiles_Loop ; CPU:$C327 PRG:4327 90 02
inc Zp1A ; CPU:$C329 PRG:4329 E6 1A
; -----------------------------------------------------------------------------
; Routine: ResetPpuAndLoadTiles_Loop
; Global: Branch target inside ResetPpuAndLoadTiles: taken when the loop repeats.
; Local: Part of ResetPpuAndLoadTiles.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetPpuAndLoadTiles_Loop:
dey ; CPU:$C32B PRG:432B 88
bne ResetPpuAndLoadTiles_OnNonzero ; CPU:$C32C PRG:432C D0 DA
lda #$3A ; CPU:$C32E PRG:432E A9 3A
sta Zp19 ; CPU:$C330 PRG:4330 85 19
lda #$21 ; CPU:$C332 PRG:4332 A9 21
sta Zp1A ; CPU:$C334 PRG:4334 85 1A
jsr Sub_C5D2 ; CPU:$C336 PRG:4336 20 D2 C5
; ---- data $C339-$C33D (5 bytes) ----
.byte $A9, $00, $9D, $38, $03 ; CPU:$C339 PRG:4339 A9 00 9D 38 03
; -----------------------------------------------------------------------------
; Routine: ResetPpuAndLoadTiles_Loop2
; Global: Branch target inside ResetPpuAndLoadTiles: taken when Loop2.
; Local: Part of ResetPpuAndLoadTiles.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetPpuAndLoadTiles_Loop2:
lda Zp6F ; CPU:$C33E PRG:433E A5 6F
beq ResetPpuAndLoadTiles_Loop3 ; CPU:$C340 PRG:4340 F0 3B
lda PPUSTATUS ; CPU:$C342 PRG:4342 AD 02 20
lda Zp01 ; CPU:$C345 PRG:4345 A5 01
ora #$04 ; CPU:$C347 PRG:4347 09 04
sta PPUCTRL ; CPU:$C349 PRG:4349 8D 00 20
lda #$24 ; CPU:$C34C PRG:434C A9 24
sta PPUADDR ; CPU:$C34E PRG:434E 8D 06 20
lda #$00 ; CPU:$C351 PRG:4351 A9 00
sta PPUADDR ; CPU:$C353 PRG:4353 8D 06 20
tay ; CPU:$C356 PRG:4356 A8
; -----------------------------------------------------------------------------
; Routine: ResetPpuAndLoadTiles_OnCarryClear
; Global: Branch target inside ResetPpuAndLoadTiles: taken when the addition or subtraction did not carry.
; Local: Part of ResetPpuAndLoadTiles.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetPpuAndLoadTiles_OnCarryClear:
lda $C697,y ; CPU:$C357 PRG:4357 B9 97 C6
sta PPUDATA ; CPU:$C35A PRG:435A 8D 07 20
iny ; CPU:$C35D PRG:435D C8
cpy #$1E ; CPU:$C35E PRG:435E C0 1E
bcc ResetPpuAndLoadTiles_OnCarryClear ; CPU:$C360 PRG:4360 90 F5
ldx #$C0 ; CPU:$C362 PRG:4362 A2 C0
ldy #$55 ; CPU:$C364 PRG:4364 A0 55
; -----------------------------------------------------------------------------
; Routine: ResetPpuAndLoadTiles_OnNonzero3
; Global: Branch target inside ResetPpuAndLoadTiles: taken when OnNonzero3.
; Local: Part of ResetPpuAndLoadTiles.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetPpuAndLoadTiles_OnNonzero3:
lda PPUSTATUS ; CPU:$C366 PRG:4366 AD 02 20
lda #$27 ; CPU:$C369 PRG:4369 A9 27
sta PPUADDR ; CPU:$C36B PRG:436B 8D 06 20
stx PPUADDR ; CPU:$C36E PRG:436E 8E 06 20
sty PPUDATA ; CPU:$C371 PRG:4371 8C 07 20
txa ; CPU:$C374 PRG:4374 8A
clc ; CPU:$C375 PRG:4375 18
adc #$08 ; CPU:$C376 PRG:4376 69 08
tax ; CPU:$C378 PRG:4378 AA
cmp #$F8 ; CPU:$C379 PRG:4379 C9 F8
bne ResetPpuAndLoadTiles_OnNonzero3 ; CPU:$C37B PRG:437B D0 E9
; -----------------------------------------------------------------------------
; Routine: ResetPpuAndLoadTiles_Loop3
; Global: Branch target inside ResetPpuAndLoadTiles: taken when Loop3.
; Local: Part of ResetPpuAndLoadTiles.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetPpuAndLoadTiles_Loop3:
lda #$02 ; CPU:$C37D PRG:437D A9 02
jsr ClearSpriteSlots ; CPU:$C37F PRG:437F 20 28 92
jsr Sub_CD59 ; CPU:$C382 PRG:4382 20 59 CD
inc Zp6C ; CPU:$C385 PRG:4385 E6 6C
lda $05E5 ; CPU:$C387 PRG:4387 AD E5 05
bne ResetPpuAndLoadTiles_Loop4 ; CPU:$C38A PRG:438A D0 19
lda #$03 ; CPU:$C38C PRG:438C A9 03
jsr BankedCall ; CPU:$C38E PRG:438E 20 04 80
lda #$01 ; CPU:$C391 PRG:4391 A9 01
sta a:$00DD ; CPU:$C393 PRG:4393 8D DD 00
lda Zp73 ; CPU:$C396 PRG:4396 A5 73
sta a:$00DE ; CPU:$C398 PRG:4398 8D DE 00
lda #$05 ; CPU:$C39B PRG:439B A9 05
jsr BankedCall ; CPU:$C39D PRG:439D 20 04 80
lda #$00 ; CPU:$C3A0 PRG:43A0 A9 00
sta a:$00DD ; CPU:$C3A2 PRG:43A2 8D DD 00
; -----------------------------------------------------------------------------
; Routine: ResetPpuAndLoadTiles_Loop4
; Global: Branch target inside ResetPpuAndLoadTiles: taken when Loop4.
; Local: Part of ResetPpuAndLoadTiles.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetPpuAndLoadTiles_Loop4:
lda #$88 ; CPU:$C3A5 PRG:43A5 A9 88
sta Zp01 ; CPU:$C3A7 PRG:43A7 85 01
lda Zp02 ; CPU:$C3A9 PRG:43A9 A5 02
ora #$18 ; CPU:$C3AB PRG:43AB 09 18
sta Zp02 ; CPU:$C3AD PRG:43AD 85 02
lda Zp6F ; CPU:$C3AF PRG:43AF A5 6F
beq ResetPpuAndLoadTiles_Loop5 ; CPU:$C3B1 PRG:43B1 F0 04
lda #$0C ; CPU:$C3B3 PRG:43B3 A9 0C
sta Zp03 ; CPU:$C3B5 PRG:43B5 85 03
; -----------------------------------------------------------------------------
; Routine: ResetPpuAndLoadTiles_Loop5
; Global: Branch target inside ResetPpuAndLoadTiles: taken when Loop5.
; Local: Part of ResetPpuAndLoadTiles.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetPpuAndLoadTiles_Loop5:
lda Zp71 ; CPU:$C3B7 PRG:43B7 A5 71
cmp #$01 ; CPU:$C3B9 PRG:43B9 C9 01
beq ResetPpuAndLoadTiles_Loop6 ; CPU:$C3BB PRG:43BB F0 06
lda $05E5 ; CPU:$C3BD PRG:43BD AD E5 05
bne ResetPpuAndLoadTiles_Loop6 ; CPU:$C3C0 PRG:43C0 D0 01
rts ; CPU:$C3C2 PRG:43C2 60
; -----------------------------------------------------------------------------
; Routine: ResetPpuAndLoadTiles_Loop6
; Global: Branch target inside ResetPpuAndLoadTiles: taken when Loop6.
; Local: Part of ResetPpuAndLoadTiles.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetPpuAndLoadTiles_Loop6:
lda #$06 ; CPU:$C3C3 PRG:43C3 A9 06
sta Zp6C ; CPU:$C3C5 PRG:43C5 85 6C
rts ; CPU:$C3C7 PRG:43C7 60
; -----------------------------------------------------------------------------
; Routine: SetVramPointer
; Global: Points the VRAM pointer at the tile set.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetVramPointer:
lda #$87 ; CPU:$C3C8 PRG:43C8 A9 87
sta Zp19 ; CPU:$C3CA PRG:43CA 85 19
lda #$21 ; CPU:$C3CC PRG:43CC A9 21
sta Zp1A ; CPU:$C3CE PRG:43CE 85 1A
lda $C6D0 ; CPU:$C3D0 PRG:43D0 AD D0 C6
sta Zp17 ; CPU:$C3D3 PRG:43D3 85 17
lda $C6D1 ; CPU:$C3D5 PRG:43D5 AD D1 C6
sta Zp18 ; CPU:$C3D8 PRG:43D8 85 18
lda Zp6F ; CPU:$C3DA PRG:43DA A5 6F
beq SetVramPointer_Loop ; CPU:$C3DC PRG:43DC F0 04
dec Zp19 ; CPU:$C3DE PRG:43DE C6 19
dec Zp19 ; CPU:$C3E0 PRG:43E0 C6 19
; -----------------------------------------------------------------------------
; Routine: SetVramPointer_Loop
; Global: Branch target inside SetVramPointer: taken when the loop repeats.
; Local: Part of SetVramPointer.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetVramPointer_Loop:
jsr Sub_85A7 ; CPU:$C3E2 PRG:43E2 20 A7 85
lda #$D9 ; CPU:$C3E5 PRG:43E5 A9 D9
sta Zp19 ; CPU:$C3E7 PRG:43E7 85 19
lda #$23 ; CPU:$C3E9 PRG:43E9 A9 23
sta Zp1A ; CPU:$C3EB PRG:43EB 85 1A
lda $C6D2 ; CPU:$C3ED PRG:43ED AD D2 C6
sta Zp17 ; CPU:$C3F0 PRG:43F0 85 17
lda $C6D3 ; CPU:$C3F2 PRG:43F2 AD D3 C6
sta Zp18 ; CPU:$C3F5 PRG:43F5 85 18
jsr Sub_85A7 ; CPU:$C3F7 PRG:43F7 20 A7 85
lda #$8C ; CPU:$C3FA PRG:43FA A9 8C
sta Zp19 ; CPU:$C3FC PRG:43FC 85 19
lda #$21 ; CPU:$C3FE PRG:43FE A9 21
sta Zp1A ; CPU:$C400 PRG:4400 85 1A
lda Zp6F ; CPU:$C402 PRG:4402 A5 6F
beq SetVramPointer_Loop2 ; CPU:$C404 PRG:4404 F0 04
dec Zp19 ; CPU:$C406 PRG:4406 C6 19
dec Zp19 ; CPU:$C408 PRG:4408 C6 19
; -----------------------------------------------------------------------------
; Routine: SetVramPointer_Loop2
; Global: Branch target inside SetVramPointer: taken when Loop2.
; Local: Part of SetVramPointer.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetVramPointer_Loop2:
jsr Sub_C5D2 ; CPU:$C40A PRG:440A 20 D2 C5
; ---- data $C40D-$C413 (7 bytes) ----
.byte $A5, $6F, $F0, $03, $20, $20, $C4 ; CPU:$C40D PRG:440D A5 6F F0 03 20 20 C4
; -----------------------------------------------------------------------------
; Routine: ClearSpriteEntry
; Global: Clears one entry of the sprite table.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ClearSpriteEntry:
lda #$00 ; CPU:$C414 PRG:4414 A9 00
sta $0338,x ; CPU:$C416 PRG:4416 9D 38 03
inc Zp6C ; CPU:$C419 PRG:4419 E6 6C
lda #$3C ; CPU:$C41B PRG:441B A9 3C
sta Zp56 ; CPU:$C41D PRG:441D 85 56
rts ; CPU:$C41F PRG:441F 60
; ---- data $C420-$C455 (54 bytes) ----
.byte $A9, $95, $85, $19, $A9, $21, $85, $1A, $AD, $D0, $C6, $85, $17, $AD, $D1, $C6 ; CPU:$C420 PRG:4420 A9 95 85 19 A9 21 85 1A AD D0 C6 85 17 AD D1 C6
.byte $85, $18, $20, $A7, $85, $A9, $DD, $85, $19, $A9, $23, $85, $1A, $AD, $D2, $C6 ; CPU:$C430 PRG:4430 85 18 20 A7 85 A9 DD 85 19 A9 23 85 1A AD D2 C6
.byte $85, $17, $AD, $D3, $C6, $85, $18, $20, $A7, $85, $A9, $9A, $85, $19, $A9, $21 ; CPU:$C440 PRG:4440 85 17 AD D3 C6 85 18 20 A7 85 A9 9A 85 19 A9 21
.byte $85, $1A, $20, $FE, $C5, $60 ; CPU:$C450 PRG:4450 85 1A 20 FE C5 60
; -----------------------------------------------------------------------------
; Routine: TickStageDelay
; Global: Counts the delay between two stage script steps.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickStageDelay:
lda NewButton1 ; CPU:$C456 PRG:4456 A5 2A
and #$10 ; CPU:$C458 PRG:4458 29 10
bne TickStageDelay_Loop ; CPU:$C45A PRG:445A D0 04
dec Zp56 ; CPU:$C45C PRG:445C C6 56
bne TickStageDelay_Loop2 ; CPU:$C45E PRG:445E D0 08
; -----------------------------------------------------------------------------
; Routine: TickStageDelay_Loop
; Global: Branch target inside TickStageDelay: taken when the loop repeats.
; Local: Part of TickStageDelay.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickStageDelay_Loop:
lda #$06 ; CPU:$C460 PRG:4460 A9 06
sta Zp6C ; CPU:$C462 PRG:4462 85 6C
lda #$00 ; CPU:$C464 PRG:4464 A9 00
sta Zp56 ; CPU:$C466 PRG:4466 85 56
; -----------------------------------------------------------------------------
; Routine: TickStageDelay_Loop2
; Global: Branch target inside TickStageDelay: taken when Loop2.
; Local: Part of TickStageDelay.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickStageDelay_Loop2:
rts ; CPU:$C468 PRG:4468 60
; ---- data $C469-$C504 (156 bytes) ----
.byte $A5, $2A, $F0, $15, $A6, $58, $30, $12, $BD, $99, $C4, $C5, $2A, $D0, $0B, $E6 ; CPU:$C469 PRG:4469 A5 2A F0 15 A6 58 30 12 BD 99 C4 C5 2A D0 0B E6
.byte $58, $A5, $58, $C9, $04, $90, $02, $E6, $6C, $60, $A9, $FF, $85, $58, $A5, $2A ; CPU:$C479 PRG:4479 58 A5 58 C9 04 90 02 E6 6C 60 A9 FF 85 58 A5 2A
.byte $29, $10, $F0, $F5, $A9, $00, $85, $3E, $20, $1B, $98, $A9, $06, $85, $6C, $60 ; CPU:$C489 PRG:4489 29 10 F0 F5 A9 00 85 3E 20 1B 98 A9 06 85 6C 60
.byte $08, $01, $04, $02, $A0, $05, $84, $20, $A5, $2A, $29, $10, $F0, $03, $E6, $6C ; CPU:$C499 PRG:4499 08 01 04 02 A0 05 84 20 A5 2A 29 10 F0 03 E6 6C
.byte $60, $A5, $2A, $29, $80, $F0, $0C, $E6, $5B, $A5, $5B, $C5, $20, $90, $04, $A9 ; CPU:$C4A9 PRG:44A9 60 A5 2A 29 80 F0 0C E6 5B A5 5B C5 20 90 04 A9
.byte $00, $85, $5B, $A5, $2A, $29, $40, $F0, $0C, $E6, $5A, $A5, $5A, $C9, $04, $90 ; CPU:$C4B9 PRG:44B9 00 85 5B A5 2A 29 40 F0 0C E6 5A A5 5A C9 04 90
.byte $04, $A9, $00, $85, $5A, $A9, $8C, $85, $19, $A9, $21, $85, $1A, $A5, $6F, $F0 ; CPU:$C4C9 PRG:44C9 04 A9 00 85 5A A9 8C 85 19 A9 21 85 1A A5 6F F0
.byte $04, $C6, $19, $C6, $19, $20, $D2, $C5, $A9, $00, $9D, $38, $03, $60, $A5, $2A ; CPU:$C4D9 PRG:44D9 04 C6 19 C6 19 20 D2 C5 A9 00 9D 38 03 60 A5 2A
.byte $29, $10, $F0, $17, $A9, $00, $85, $3E, $20, $88, $81, $A5, $5A, $85, $5C, $A5 ; CPU:$C4E9 PRG:44E9 29 10 F0 17 A9 00 85 3E 20 88 81 A5 5A 85 5C A5
.byte $5B, $85, $5D, $A9, $09, $85, $6A, $A9, $05, $85, $6C, $60 ; CPU:$C4F9 PRG:44F9 5B 85 5D A9 09 85 6A A9 05 85 6C 60
; -----------------------------------------------------------------------------
; Routine: UpdateStageMode
; Global: Updates the mode the stage script is in.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateStageMode:
lda Zp71 ; CPU:$C505 PRG:4505 A5 71
cmp #$01 ; CPU:$C507 PRG:4507 C9 01
beq UpdateStageMode_Loop5 ; CPU:$C509 PRG:4509 F0 50
lda #$08 ; CPU:$C50B PRG:450B A9 08
ldy Zp95 ; CPU:$C50D PRG:450D A4 95
beq UpdateStageMode_Loop ; CPU:$C50F PRG:450F F0 02
lda #$04 ; CPU:$C511 PRG:4511 A9 04
; -----------------------------------------------------------------------------
; Routine: UpdateStageMode_Loop
; Global: Branch target inside UpdateStageMode: taken when the loop repeats.
; Local: Part of UpdateStageMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateStageMode_Loop:
sta Zp1F ; CPU:$C513 PRG:4513 85 1F
ldx #$00 ; CPU:$C515 PRG:4515 A2 00
ldy #$00 ; CPU:$C517 PRG:4517 A0 00
; -----------------------------------------------------------------------------
; Routine: UpdateStageMode_OnNonzero
; Global: Branch target inside UpdateStageMode: taken when the tested value is not zero.
; Local: Part of UpdateStageMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateStageMode_OnNonzero:
lda $C5BA,y ; CPU:$C519 PRG:4519 B9 BA C5
sta $0338,x ; CPU:$C51C PRG:451C 9D 38 03
inx ; CPU:$C51F PRG:451F E8
iny ; CPU:$C520 PRG:4520 C8
dec Zp1F ; CPU:$C521 PRG:4521 C6 1F
bne UpdateStageMode_OnNonzero ; CPU:$C523 PRG:4523 D0 F4
stx Zp37 ; CPU:$C525 PRG:4525 86 37
lda Zp6F ; CPU:$C527 PRG:4527 A5 6F
beq UpdateStageMode_Loop2 ; CPU:$C529 PRG:4529 F0 06
dec $0338 ; CPU:$C52B PRG:452B CE 38 03
dec $0338 ; CPU:$C52E PRG:452E CE 38 03
; -----------------------------------------------------------------------------
; Routine: UpdateStageMode_Loop2
; Global: Branch target inside UpdateStageMode: taken when Loop2.
; Local: Part of UpdateStageMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateStageMode_Loop2:
lda Zp6F ; CPU:$C531 PRG:4531 A5 6F
bne UpdateStageMode_Loop3 ; CPU:$C533 PRG:4533 D0 0F
lda #$3A ; CPU:$C535 PRG:4535 A9 3A
sta Zp19 ; CPU:$C537 PRG:4537 85 19
lda #$21 ; CPU:$C539 PRG:4539 A9 21
sta Zp1A ; CPU:$C53B PRG:453B 85 1A
jsr Sub_C5D2 ; CPU:$C53D PRG:453D 20 D2 C5
; ---- data $C540-$C543 (4 bytes) ----
.byte $A9, $01, $85, $96 ; CPU:$C540 PRG:4540 A9 01 85 96
; -----------------------------------------------------------------------------
; Routine: UpdateStageMode_Loop3
; Global: Branch target inside UpdateStageMode: taken when Loop3.
; Local: Part of UpdateStageMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateStageMode_Loop3:
lda Zp96 ; CPU:$C544 PRG:4544 A5 96
bne UpdateStageMode_Loop4 ; CPU:$C546 PRG:4546 D0 0E
ldy #$08 ; CPU:$C548 PRG:4548 A0 08
; -----------------------------------------------------------------------------
; Routine: UpdateStageMode_OnCarryClear
; Global: Branch target inside UpdateStageMode: taken when the addition or subtraction did not carry.
; Local: Part of UpdateStageMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateStageMode_OnCarryClear:
lda $C5BA,y ; CPU:$C54A PRG:454A B9 BA C5
sta $0338,x ; CPU:$C54D PRG:454D 9D 38 03
inx ; CPU:$C550 PRG:4550 E8
iny ; CPU:$C551 PRG:4551 C8
cpy #$10 ; CPU:$C552 PRG:4552 C0 10
bcc UpdateStageMode_OnCarryClear ; CPU:$C554 PRG:4554 90 F4
; -----------------------------------------------------------------------------
; Routine: UpdateStageMode_Loop4
; Global: Branch target inside UpdateStageMode: taken when Loop4.
; Local: Part of UpdateStageMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateStageMode_Loop4:
lda #$00 ; CPU:$C556 PRG:4556 A9 00
sta $0338,x ; CPU:$C558 PRG:4558 9D 38 03
; -----------------------------------------------------------------------------
; Routine: UpdateStageMode_Loop5
; Global: Branch target inside UpdateStageMode: taken when Loop5.
; Local: Part of UpdateStageMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateStageMode_Loop5:
lda Zp5A ; CPU:$C55B PRG:455B A5 5A
asl a ; CPU:$C55D PRG:455D 0A
tax ; CPU:$C55E PRG:455E AA
lda $F45C,x ; CPU:$C55F PRG:455F BD 5C F4
sta Zp39 ; CPU:$C562 PRG:4562 85 39
lda $F45D,x ; CPU:$C564 PRG:4564 BD 5D F4
sta Zp3A ; CPU:$C567 PRG:4567 85 3A
lda Zp5C ; CPU:$C569 PRG:4569 A5 5C
asl a ; CPU:$C56B PRG:456B 0A
tax ; CPU:$C56C PRG:456C AA
lda $F45C,x ; CPU:$C56D PRG:456D BD 5C F4
sta Zp3B ; CPU:$C570 PRG:4570 85 3B
lda $F45D,x ; CPU:$C572 PRG:4572 BD 5D F4
sta Zp3C ; CPU:$C575 PRG:4575 85 3C
ldx Zp5B ; CPU:$C577 PRG:4577 A6 5B
lda $F875,x ; CPU:$C579 PRG:4579 BD 75 F8
sta Zp35 ; CPU:$C57C PRG:457C 85 35
ldx Zp5D ; CPU:$C57E PRG:457E A6 5D
lda $F875,x ; CPU:$C580 PRG:4580 BD 75 F8
sta ZpCB ; CPU:$C583 PRG:4583 85 CB
lda #$00 ; CPU:$C585 PRG:4585 A9 00
sta Zp6C ; CPU:$C587 PRG:4587 85 6C
lda Zp71 ; CPU:$C589 PRG:4589 A5 71
cmp #$02 ; CPU:$C58B PRG:458B C9 02
beq UpdateStageMode_Loop7 ; CPU:$C58D PRG:458D F0 10
lda #$00 ; CPU:$C58F PRG:458F A9 00
sta GameMode ; CPU:$C591 PRG:4591 85 6A
lda $05E5 ; CPU:$C593 PRG:4593 AD E5 05
beq UpdateStageMode_Loop6 ; CPU:$C596 PRG:4596 F0 06
jsr Sub_C6B7 ; CPU:$C598 PRG:4598 20 B7 C6
jsr ClearActorSlots ; CPU:$C59B PRG:459B 20 4F BB
; -----------------------------------------------------------------------------
; Routine: UpdateStageMode_Loop6
; Global: Branch target inside UpdateStageMode: taken when Loop6.
; Local: Part of UpdateStageMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateStageMode_Loop6:
rts ; CPU:$C59E PRG:459E 60
; -----------------------------------------------------------------------------
; Routine: UpdateStageMode_Loop7
; Global: Branch target inside UpdateStageMode: taken when Loop7.
; Local: Part of UpdateStageMode.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateStageMode_Loop7:
inc GameMode ; CPU:$C59F PRG:459F E6 6A
rts ; CPU:$C5A1 PRG:45A1 60
; ---- data $C5A2-$C5D1 (48 bytes) ----
; referenced by `lda $C5BA,y` at $C519 (operand $C5BA falls inside this region)
; referenced by `lda $C5BA,y` at $C54A (operand $C5BA falls inside this region)
.byte $A6, $37, $A0, $00, $B9, $CA, $C5, $9D, $38, $03, $E8, $C8, $C0, $08, $90, $F4 ; CPU:$C5A2 PRG:45A2 A6 37 A0 00 B9 CA C5 9D 38 03 E8 C8 C0 08 90 F4
.byte $A9, $00, $9D, $38, $03, $86, $37, $60, $67, $21, $25, $F8, $D9, $23, $20, $F8 ; CPU:$C5B2 PRG:45B2 A9 00 9D 38 03 86 37 60 67 21 25 F8 D9 23 20 F8
.byte $75, $21, $25, $F8, $DD, $23, $20, $F8, $55, $21, $25, $F8, $DD, $23, $20, $F8 ; CPU:$C5C2 PRG:45C2 75 21 25 F8 DD 23 20 F8 55 21 25 F8 DD 23 20 F8
; -----------------------------------------------------------------------------
; Routine: Sub_C5D2
; Global: Branch target inside Sub: taken when C5D2.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_C5D2:
lda #$03 ; CPU:$C5D2 PRG:45D2 A9 03
sta $05C6 ; CPU:$C5D4 PRG:45D4 8D C6 05
lda #$01 ; CPU:$C5D7 PRG:45D7 A9 01
sta $05C7 ; CPU:$C5D9 PRG:45D9 8D C7 05
ldy Zp5A ; CPU:$C5DC PRG:45DC A4 5A
lda $F1D7,y ; CPU:$C5DE PRG:45DE B9 D7 F1
sta $05C8 ; CPU:$C5E1 PRG:45E1 8D C8 05
lda #$D4 ; CPU:$C5E4 PRG:45E4 A9 D4
sta $05C9 ; CPU:$C5E6 PRG:45E6 8D C9 05
ldy Zp5B ; CPU:$C5E9 PRG:45E9 A4 5B
lda $F1D7,y ; CPU:$C5EB PRG:45EB B9 D7 F1
sta $05CA ; CPU:$C5EE PRG:45EE 8D CA 05
lda $C6D4 ; CPU:$C5F1 PRG:45F1 AD D4 C6
sta Zp17 ; CPU:$C5F4 PRG:45F4 85 17
lda $C6D5 ; CPU:$C5F6 PRG:45F6 AD D5 C6
sta Zp18 ; CPU:$C5F9 PRG:45F9 85 18
jmp Sub_85A7 ; CPU:$C5FB PRG:45FB 4C A7 85
; ---- data $C5FE-$C629 (44 bytes) ----
.byte $A9, $03, $8D, $CB, $05, $A9, $01, $8D, $CC, $05, $A4, $5C, $B9, $D7, $F1, $8D ; CPU:$C5FE PRG:45FE A9 03 8D CB 05 A9 01 8D CC 05 A4 5C B9 D7 F1 8D
.byte $CD, $05, $A9, $D4, $8D, $CE, $05, $A4, $5D, $B9, $D7, $F1, $8D, $CF, $05, $AD ; CPU:$C60E PRG:460E CD 05 A9 D4 8D CE 05 A4 5D B9 D7 F1 8D CF 05 AD
.byte $D6, $C6, $85, $17, $AD, $D7, $C6, $85, $18, $4C, $A7, $85 ; CPU:$C61E PRG:461E D6 C6 85 17 AD D7 C6 85 18 4C A7 85
; -----------------------------------------------------------------------------
; Routine: DisablePpuRendering
; Global: Turns the PPU off.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DisablePpuRendering:
lda #$00 ; CPU:$C62A PRG:462A A9 00
sta PPUCTRL ; CPU:$C62C PRG:462C 8D 00 20
lda Zp02 ; CPU:$C62F PRG:462F A5 02
and #$E7 ; CPU:$C631 PRG:4631 29 E7
sta PPUMASK ; CPU:$C633 PRG:4633 8D 01 20
sta Zp02 ; CPU:$C636 PRG:4636 85 02
jsr ClearOamShadow ; CPU:$C638 PRG:4638 20 88 81
ldx Zp6F ; CPU:$C63B PRG:463B A6 6F
lda $C6B5,x ; CPU:$C63D PRG:463D BD B5 C6
sta Zp2E ; CPU:$C640 PRG:4640 85 2E
lda #$00 ; CPU:$C642 PRG:4642 A9 00
jsr BankedCall ; CPU:$C644 PRG:4644 20 04 80
lda Zp6F ; CPU:$C647 PRG:4647 A5 6F
asl a ; CPU:$C649 PRG:4649 0A
tax ; CPU:$C64A PRG:464A AA
lda $F6A7,x ; CPU:$C64B PRG:464B BD A7 F6
sta Zp11 ; CPU:$C64E PRG:464E 85 11
lda $F6A8,x ; CPU:$C650 PRG:4650 BD A8 F6
sta Zp12 ; CPU:$C653 PRG:4653 85 12
jsr Sub_848C ; CPU:$C655 PRG:4655 20 8C 84
ldx Zp72 ; CPU:$C658 PRG:4658 A6 72
lda Zp6F ; CPU:$C65A PRG:465A A5 6F
bne DisablePpuRendering_Loop ; CPU:$C65C PRG:465C D0 13
lda PPUSTATUS ; CPU:$C65E PRG:465E AD 02 20
lda #$21 ; CPU:$C661 PRG:4661 A9 21
sta PPUADDR ; CPU:$C663 PRG:4663 8D 06 20
lda #$3C ; CPU:$C666 PRG:4666 A9 3C
sta PPUADDR ; CPU:$C668 PRG:4668 8D 06 20
lda $F1D6,x ; CPU:$C66B PRG:466B BD D6 F1
sta PPUDATA ; CPU:$C66E PRG:466E 8D 07 20
; -----------------------------------------------------------------------------
; Routine: DisablePpuRendering_Loop
; Global: Branch target inside DisablePpuRendering: taken when the loop repeats.
; Local: Part of DisablePpuRendering.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DisablePpuRendering_Loop:
lda $F875,x ; CPU:$C671 PRG:4671 BD 75 F8
sta Zp35 ; CPU:$C674 PRG:4674 85 35
ldx Zp5D ; CPU:$C676 PRG:4676 A6 5D
lda $F875,x ; CPU:$C678 PRG:4678 BD 75 F8
sta ZpCB ; CPU:$C67B PRG:467B 85 CB
lda #$00 ; CPU:$C67D PRG:467D A9 00
sta Zp4B ; CPU:$C67F PRG:467F 85 4B
lda #$04 ; CPU:$C681 PRG:4681 A9 04
sta Zp4C ; CPU:$C683 PRG:4683 85 4C
lda Zp71 ; CPU:$C685 PRG:4685 A5 71
beq DisablePpuRendering_Loop2 ; CPU:$C687 PRG:4687 F0 0B
ldx #$00 ; CPU:$C689 PRG:4689 A2 00
; -----------------------------------------------------------------------------
; Routine: DisablePpuRendering_OnCarryClear
; Global: Branch target inside DisablePpuRendering: taken when the addition or subtraction did not carry.
; Local: Part of DisablePpuRendering.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DisablePpuRendering_OnCarryClear:
txa ; CPU:$C68B PRG:468B 8A
sta $05DA,x ; CPU:$C68C PRG:468C 9D DA 05
inx ; CPU:$C68F PRG:468F E8
cpx #$05 ; CPU:$C690 PRG:4690 E0 05
bcc DisablePpuRendering_OnCarryClear ; CPU:$C692 PRG:4692 90 F7
; -----------------------------------------------------------------------------
; Routine: DisablePpuRendering_Loop2
; Global: Branch target inside DisablePpuRendering: taken when Loop2.
; Local: Part of DisablePpuRendering.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DisablePpuRendering_Loop2:
inc GameMode ; CPU:$C694 PRG:4694 E6 6A
rts ; CPU:$C696 PRG:4696 60
; ---- data $C697-$C6B6 (32 bytes) ----
; referenced by `lda $C697,y` at $C357 (operand $C697 falls inside this region)
; referenced by `lda $C6B5,x` at $C63D (operand $C6B5 falls inside this region)
.byte $FF, $24, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22 ; CPU:$C697 PRG:4697 FF 24 21 22 21 22 21 22 21 22 21 22 21 22 21 22
.byte $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $10, $11 ; CPU:$C6A7 PRG:46A7 21 22 21 22 21 22 21 22 21 22 21 22 21 22 10 11
; -----------------------------------------------------------------------------
; Routine: Sub_C6B7
; Global: Branch target inside Sub: taken when C6B7.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_C6B7:
lda #$00 ; CPU:$C6B7 PRG:46B7 A9 00
tax ; CPU:$C6B9 PRG:46B9 AA
; -----------------------------------------------------------------------------
; Routine: DisablePpuRendering_OnCarryClear2
; Global: Branch target inside DisablePpuRendering: taken when OnCarryClear2.
; Local: Part of DisablePpuRendering.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DisablePpuRendering_OnCarryClear2:
sta Zp5E,x ; CPU:$C6BA PRG:46BA 95 5E
inx ; CPU:$C6BC PRG:46BC E8
cpx #$0C ; CPU:$C6BD PRG:46BD E0 0C
bcc DisablePpuRendering_OnCarryClear2 ; CPU:$C6BF PRG:46BF 90 F9
ldx #$00 ; CPU:$C6C1 PRG:46C1 A2 00
; -----------------------------------------------------------------------------
; Routine: DisablePpuRendering_OnCarryClear3
; Global: Branch target inside DisablePpuRendering: taken when OnCarryClear3.
; Local: Part of DisablePpuRendering.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DisablePpuRendering_OnCarryClear3:
sta $0400,x ; CPU:$C6C3 PRG:46C3 9D 00 04
inx ; CPU:$C6C6 PRG:46C6 E8
cpx #$70 ; CPU:$C6C7 PRG:46C7 E0 70
bcc DisablePpuRendering_OnCarryClear3 ; CPU:$C6C9 PRG:46C9 90 F8
lda #$FF ; CPU:$C6CB PRG:46CB A9 FF
sta Zp65 ; CPU:$C6CD PRG:46CD 85 65
rts ; CPU:$C6CF PRG:46CF 60
; ---- data $C6D0-$C7E9 (282 bytes) ----
; referenced by `lda $C6D0` at $C3D0 (operand $C6D0 falls inside this region)
; referenced by `lda $C6D1` at $C3D5 (operand $C6D1 falls inside this region)
; referenced by `lda $C6D2` at $C3ED (operand $C6D2 falls inside this region)
; referenced by `lda $C6D3` at $C3F2 (operand $C6D3 falls inside this region)
; referenced by `lda $C6D4` at $C5F1 (operand $C6D4 falls inside this region)
; referenced by `lda $C6D5` at $C5F6 (operand $C6D5 falls inside this region)
.byte $37, $F8, $1B, $F8, $C6, $05, $CB, $05, $A5, $6C, $20, $73, $81, $E9, $C6, $24 ; CPU:$C6D0 PRG:46D0 37 F8 1B F8 C6 05 CB 05 A5 6C 20 73 81 E9 C6 24
.byte $C7, $7E, $C7, $3B, $B2, $7C, $B2, $D6, $B2, $A5, $95, $F0, $05, $A9, $03, $85 ; CPU:$C6E0 PRG:46E0 C7 7E C7 3B B2 7C B2 D6 B2 A5 95 F0 05 A9 03 85
.byte $6C, $60, $20, $52, $85, $29, $06, $85, $20, $A5, $5B, $0A, $0A, $0A, $18, $65 ; CPU:$C6F0 PRG:46F0 6C 60 20 52 85 29 06 85 20 A5 5B 0A 0A 0A 18 65
.byte $20, $AA, $BD, $BD, $F8, $85, $4E, $BD, $BE, $F8, $85, $4F, $A9, $00, $85, $56 ; CPU:$C700 PRG:4700 20 AA BD BD F8 85 4E BD BE F8 85 4F A9 00 85 56
.byte $85, $58, $E6, $6C, $A9, $00, $85, $34, $A2, $00, $8A, $9D, $DA, $05, $E8, $E0 ; CPU:$C710 PRG:4710 85 58 E6 6C A9 00 85 34 A2 00 8A 9D DA 05 E8 E0
.byte $05, $90, $F7, $60, $A5, $31, $6A, $B0, $01, $60, $A6, $56, $A4, $58, $B1, $4E ; CPU:$C720 PRG:4720 05 90 F7 60 A5 31 6A B0 01 60 A6 56 A4 58 B1 4E
.byte $F0, $33, $9D, $00, $04, $85, $1B, $8A, $20, $BF, $84, $A5, $1B, $10, $0E, $A9 ; CPU:$C730 PRG:4730 F0 33 9D 00 04 85 1B 8A 20 BF 84 A5 1B 10 0E A9
.byte $0D, $85, $17, $A9, $F3, $85, $18, $A9, $01, $85, $1B, $D0, $0C, $0A, $AA, $BD ; CPU:$C740 PRG:4740 0D 85 17 A9 F3 85 18 A9 01 85 1B D0 0C 0A AA BD
.byte $9E, $F2, $85, $17, $BD, $9F, $F2, $85, $18, $20, $8A, $85, $20, $E3, $84, $E6 ; CPU:$C750 PRG:4750 9E F2 85 17 BD 9F F2 85 18 20 8A 85 20 E3 84 E6
.byte $58, $E6, $56, $10, $C5, $A6, $36, $A9, $00, $9D, $00, $03, $E6, $58, $A5, $56 ; CPU:$C760 PRG:4760 58 E6 56 10 C5 A6 36 A9 00 9D 00 03 E6 58 A5 56
.byte $29, $F0, $18, $69, $10, $85, $56, $C9, $70, $90, $02, $E6, $6C, $60, $A5, $31 ; CPU:$C770 PRG:4770 29 F0 18 69 10 85 56 C9 70 90 02 E6 6C 60 A5 31
.byte $6A, $B0, $01, $60, $A5, $5B, $85, $5E, $A6, $5A, $86, $5F, $BD, $5A, $D4, $85 ; CPU:$C780 PRG:4780 6A B0 01 60 A5 5B 85 5E A6 5A 86 5F BD 5A D4 85
.byte $1B, $20, $86, $D4, $A6, $5B, $F0, $18, $86, $21, $20, $AF, $D4, $20, $8A, $85 ; CPU:$C790 PRG:4790 1B 20 86 D4 A6 5B F0 18 86 21 20 AF D4 20 8A 85
.byte $20, $E3, $84, $C6, $21, $A6, $21, $D0, $F1, $A6, $36, $A9, $00, $9D, $00, $03 ; CPU:$C7A0 PRG:47A0 20 E3 84 C6 21 A6 21 D0 F1 A6 36 A9 00 9D 00 03
.byte $A5, $5B, $18, $69, $07, $85, $11, $A9, $00, $85, $12, $20, $5D, $85, $A6, $6F ; CPU:$C7B0 PRG:47B0 A5 5B 18 69 07 85 11 A9 00 85 12 20 5D 85 A6 6F
.byte $BD, $E8, $C7, $8D, $88, $03, $A9, $1C, $8D, $98, $03, $A2, $30, $BD, $00, $04 ; CPU:$C7C0 PRG:47C0 BD E8 C7 8D 88 03 A9 1C 8D 98 03 A2 30 BD 00 04
.byte $09, $40, $9D, $00, $04, $86, $65, $E6, $6C, $E6, $5E, $A5, $6F, $D0, $08, $A9 ; CPU:$C7D0 PRG:47D0 09 40 9D 00 04 86 65 E6 6C E6 5E A5 6F D0 08 A9
.byte $00, $85, $6C, $85, $6A, $85, $58, $60, $54, $38 ; CPU:$C7E0 PRG:47E0 00 85 6C 85 6A 85 58 60 54 38
; -----------------------------------------------------------------------------
; Routine: Sub_C7EA
; Global: Branch target inside Sub: taken when C7EA.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_C7EA:
lda Zp69 ; CPU:$C7EA PRG:47EA A5 69
bne DisablePpuRendering_Loop3 ; CPU:$C7EC PRG:47EC D0 11
ldx Zp5F ; CPU:$C7EE PRG:47EE A6 5F
dex ; CPU:$C7F0 PRG:47F0 CA
bmi DisablePpuRendering_Loop3 ; CPU:$C7F1 PRG:47F1 30 0C
lda ButtonState1 ; CPU:$C7F3 PRG:47F3 A5 26
tay ; CPU:$C7F5 PRG:47F5 A8
cmp #$84 ; CPU:$C7F6 PRG:47F6 C9 84
beq DisablePpuRendering_Loop4 ; CPU:$C7F8 PRG:47F8 F0 06
tya ; CPU:$C7FA PRG:47FA 98
cmp #$44 ; CPU:$C7FB PRG:47FB C9 44
beq DisablePpuRendering_Loop4 ; CPU:$C7FD PRG:47FD F0 01
; -----------------------------------------------------------------------------
; Routine: DisablePpuRendering_Loop3
; Global: Branch target inside DisablePpuRendering: taken when Loop3.
; Local: Part of DisablePpuRendering.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DisablePpuRendering_Loop3:
rts ; CPU:$C7FF PRG:47FF 60
; -----------------------------------------------------------------------------
; Routine: DisablePpuRendering_Loop4
; Global: Branch target inside DisablePpuRendering: taken when Loop4.
; Local: Part of DisablePpuRendering.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DisablePpuRendering_Loop4:
lda Zp64 ; CPU:$C800 PRG:4800 A5 64
beq DisablePpuRendering_Loop5 ; CPU:$C802 PRG:4802 F0 09
lda $0358 ; CPU:$C804 PRG:4804 AD 58 03
beq DisablePpuRendering_Loop6 ; CPU:$C807 PRG:4807 F0 14
lda #$00 ; CPU:$C809 PRG:4809 A9 00
sta Zp64 ; CPU:$C80B PRG:480B 85 64
; -----------------------------------------------------------------------------
; Routine: DisablePpuRendering_Loop5
; Global: Branch target inside DisablePpuRendering: taken when Loop5.
; Local: Part of DisablePpuRendering.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DisablePpuRendering_Loop5:
ldx Zp65 ; CPU:$C80D PRG:480D A6 65
bmi DisablePpuRendering_Loop6 ; CPU:$C80F PRG:480F 30 0C
lda $0400,x ; CPU:$C811 PRG:4811 BD 00 04
and #$BF ; CPU:$C814 PRG:4814 29 BF
sta $0400,x ; CPU:$C816 PRG:4816 9D 00 04
lda #$FF ; CPU:$C819 PRG:4819 A9 FF
sta Zp65 ; CPU:$C81B PRG:481B 85 65
; -----------------------------------------------------------------------------
; Routine: DisablePpuRendering_Loop6
; Global: Branch target inside DisablePpuRendering: taken when Loop6.
; Local: Part of DisablePpuRendering.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DisablePpuRendering_Loop6:
lda #$01 ; CPU:$C81D PRG:481D A9 01
sta Zp69 ; CPU:$C81F PRG:481F 85 69
lda #$00 ; CPU:$C821 PRG:4821 A9 00
sta Zp68 ; CPU:$C823 PRG:4823 85 68
lda #$06 ; CPU:$C825 PRG:4825 A9 06
sta Zp11 ; CPU:$C827 PRG:4827 85 11
lda #$00 ; CPU:$C829 PRG:4829 A9 00
sta Zp12 ; CPU:$C82B PRG:482B 85 12
jsr Sub_855D ; CPU:$C82D PRG:482D 20 5D 85
lda Zp6F ; CPU:$C830 PRG:4830 A5 6F
beq DisablePpuRendering_Loop7 ; CPU:$C832 PRG:4832 F0 05
lda #$28 ; CPU:$C834 PRG:4834 A9 28
sta $0388 ; CPU:$C836 PRG:4836 8D 88 03
; -----------------------------------------------------------------------------
; Routine: DisablePpuRendering_Loop7
; Global: Branch target inside DisablePpuRendering: taken when Loop7.
; Local: Part of DisablePpuRendering.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DisablePpuRendering_Loop7:
rts ; CPU:$C839 PRG:4839 60
; -----------------------------------------------------------------------------
; Routine: Sub_C83A
; Global: Branch target inside Sub: taken when C83A.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_C83A:
lda FrameCounter ; CPU:$C83A PRG:483A A5 31
ror a ; CPU:$C83C PRG:483C 6A
bcs DisablePpuRendering_Loop8 ; CPU:$C83D PRG:483D B0 01
rts ; CPU:$C83F PRG:483F 60
; -----------------------------------------------------------------------------
; Routine: DisablePpuRendering_Loop8
; Global: Branch target inside DisablePpuRendering: taken when Loop8.
; Local: Part of DisablePpuRendering.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DisablePpuRendering_Loop8:
lda Zp68 ; CPU:$C840 PRG:4840 A5 68
jsr DispatchByJumpTable ; CPU:$C842 PRG:4842 20 73 81
.byte $53, $C8 ; CPU:$C845 PRG:4845 53 C8 -- sre (ZpC8),y (undocumented; ca65 cannot encode)
.byte $73, $C8 ; CPU:$C847 PRG:4847 73 C8 -- rra (ZpC8),y (undocumented; ca65 cannot encode)
asl ZpC9,x ; CPU:$C849 PRG:4849 16 C9
inc $7AD4 ; CPU:$C84B PRG:484B EE D4 7A
cmp #$EE ; CPU:$C84E PRG:484E C9 EE
.byte $D4, $DB ; CPU:$C850 PRG:4850 D4 DB -- nop ZpDB,x (undocumented; ca65 cannot encode)
cmp #$A9 ; CPU:$C852 PRG:4852 C9 A9
.byte $03, $20 ; CPU:$C854 PRG:4854 03 20 -- slo (Zp20,x) (undocumented; ca65 cannot encode)
.byte $04, $80 ; CPU:$C856 PRG:4856 04 80 -- nop Zp80 (undocumented; ca65 cannot encode)
lda #$01 ; CPU:$C858 PRG:4858 A9 01
sta a:$00DD ; CPU:$C85A PRG:485A 8D DD 00
lda #$06 ; CPU:$C85D PRG:485D A9 06
sta a:$00DE ; CPU:$C85F PRG:485F 8D DE 00
lda #$05 ; CPU:$C862 PRG:4862 A9 05
jsr BankedCall ; CPU:$C864 PRG:4864 20 04 80
lda #$00 ; CPU:$C867 PRG:4867 A9 00
sta a:$00DD ; CPU:$C869 PRG:4869 8D DD 00
inc Zp68 ; CPU:$C86C PRG:486C E6 68
lda #$F0 ; CPU:$C86E PRG:486E A9 F0
sta Zp56 ; CPU:$C870 PRG:4870 85 56
rts ; CPU:$C872 PRG:4872 60
; ---- data $C873-$CBC3 (849 bytes) ----
.byte $C6, $56, $D0, $0A, $20, $B6, $C8, $E6, $68, $A9, $00, $85, $56, $60, $A5, $31 ; CPU:$C873 PRG:4873 C6 56 D0 0A 20 B6 C8 E6 68 A9 00 85 56 60 A5 31
.byte $29, $04, $F0, $03, $4C, $B6, $C8, $A9, $23, $85, $1A, $A9, $C0, $85, $19, $A5 ; CPU:$C883 PRG:4883 29 04 F0 03 4C B6 C8 A9 23 85 1A A9 C0 85 19 A5
.byte $6F, $D0, $02, $E6, $19, $A9, $B7, $85, $17, $A9, $F8, $85, $18, $20, $A7, $85 ; CPU:$C893 PRG:4893 6F D0 02 E6 19 A9 B7 85 17 A9 F8 85 18 20 A7 85
.byte $A5, $19, $18, $69, $08, $85, $19, $C9, $F0, $90, $F2, $A6, $37, $A9, $00, $9D ; CPU:$C8A3 PRG:48A3 A5 19 18 69 08 85 19 C9 F0 90 F2 A6 37 A9 00 9D
.byte $38, $03, $60, $A9, $68, $85, $17, $A9, $05, $85, $18, $A9, $23, $85, $1A, $A9 ; CPU:$C8B3 PRG:48B3 38 03 60 A9 68 85 17 A9 05 85 18 A9 23 85 1A A9
.byte $C0, $85, $19, $A0, $00, $84, $21, $A5, $6F, $D0, $04, $E6, $19, $E6, $21, $A9 ; CPU:$C8C3 PRG:48C3 C0 85 19 A0 00 84 21 A5 6F D0 04 E6 19 E6 21 A9
.byte $04, $99, $68, $05, $A9, $01, $C8, $99, $68, $05, $C8, $A9, $04, $85, $1F, $A6 ; CPU:$C8D3 PRG:48D3 04 99 68 05 A9 01 C8 99 68 05 C8 A9 04 85 1F A6
.byte $21, $BD, $E2, $04, $99, $68, $05, $C8, $E8, $C6, $1F, $D0, $F4, $20, $A7, $85 ; CPU:$C8E3 PRG:48E3 21 BD E2 04 99 68 05 C8 E8 C6 1F D0 F4 20 A7 85
.byte $A5, $17, $18, $69, $06, $85, $17, $90, $02, $E6, $18, $A5, $21, $18, $69, $08 ; CPU:$C8F3 PRG:48F3 A5 17 18 69 06 85 17 90 02 E6 18 A5 21 18 69 08
.byte $85, $21, $18, $69, $C0, $85, $19, $C9, $F0, $90, $C4, $A6, $37, $A9, $00, $9D ; CPU:$C903 PRG:4903 85 21 18 69 C0 85 19 C9 F0 90 C4 A6 37 A9 00 9D
.byte $38, $03, $60, $A5, $56, $AA, $A8, $BD, $00, $04, $30, $04, $99, $00, $04, $C8 ; CPU:$C913 PRG:4913 38 03 60 A5 56 AA A8 BD 00 04 30 04 99 00 04 C8
.byte $E8, $BD, $00, $04, $D0, $F4, $86, $21, $A9, $00, $99, $00, $04, $C8, $C4, $21 ; CPU:$C923 PRG:4923 E8 BD 00 04 D0 F4 86 21 A9 00 99 00 04 C8 C4 21
.byte $90, $F8, $A6, $56, $86, $24, $A6, $24, $BD, $00, $04, $29, $07, $85, $1B, $0A ; CPU:$C933 PRG:4933 90 F8 A6 56 86 24 A6 24 BD 00 04 29 07 85 1B 0A
.byte $AA, $BD, $9E, $F2, $85, $17, $BD, $9F, $F2, $85, $18, $A5, $24, $20, $BF, $84 ; CPU:$C943 PRG:4943 AA BD 9E F2 85 17 BD 9F F2 85 18 A5 24 20 BF 84
.byte $20, $8A, $85, $20, $E3, $84, $E6, $24, $A6, $24, $E4, $21, $90, $DA, $A6, $36 ; CPU:$C953 PRG:4953 20 8A 85 20 E3 84 E6 24 A6 24 E4 21 90 DA A6 36
.byte $A9, $00, $9D, $00, $03, $A5, $56, $18, $69, $10, $85, $56, $C9, $70, $90, $06 ; CPU:$C963 PRG:4963 A9 00 9D 00 03 A5 56 18 69 10 85 56 C9 70 90 06
.byte $E6, $68, $A9, $00, $85, $61, $60, $A9, $08, $85, $1F, $20, $52, $85, $A5, $3D ; CPU:$C973 PRG:4973 E6 68 A9 00 85 61 60 A9 08 85 1F 20 52 85 A5 3D
.byte $2A, $2A, $29, $7F, $C9, $70, $B0, $30, $AA, $BD, $00, $04, $29, $07, $F0, $28 ; CPU:$C983 PRG:4983 2A 2A 29 7F C9 70 B0 30 AA BD 00 04 29 07 F0 28
.byte $86, $21, $20, $52, $85, $A5, $3D, $29, $03, $A8, $C8, $84, $1B, $98, $9D, $00 ; CPU:$C993 PRG:4993 86 21 20 52 85 A5 3D 29 03 A8 C8 84 1B 98 9D 00
.byte $04, $0A, $AA, $BD, $9E, $F2, $85, $17, $BD, $9F, $F2, $85, $18, $A5, $21, $20 ; CPU:$C9A3 PRG:49A3 04 0A AA BD 9E F2 85 17 BD 9F F2 85 18 A5 21 20
.byte $BF, $84, $20, $8A, $85, $20, $E3, $84, $C6, $1F, $D0, $BF, $A6, $36, $A9, $00 ; CPU:$C9B3 PRG:49B3 BF 84 20 8A 85 20 E3 84 C6 1F D0 BF A6 36 A9 00
.byte $9D, $00, $03, $CE, $98, $03, $CE, $98, $03, $AD, $98, $03, $C9, $F8, $90, $07 ; CPU:$C9C3 PRG:49C3 9D 00 03 CE 98 03 CE 98 03 AD 98 03 C9 F8 90 07
.byte $E6, $68, $A9, $00, $8D, $58, $03, $60, $A9, $00, $85, $69, $85, $68, $A9, $03 ; CPU:$C9D3 PRG:49D3 E6 68 A9 00 8D 58 03 60 A9 00 85 69 85 68 A9 03
.byte $20, $04, $80, $A9, $01, $8D, $DD, $00, $A5, $73, $8D, $DE, $00, $A9, $05, $20 ; CPU:$C9E3 PRG:49E3 20 04 80 A9 01 8D DD 00 A5 73 8D DE 00 A9 05 20
.byte $04, $80, $A9, $00, $8D, $DD, $00, $C6, $5F, $D0, $0B, $A5, $5E, $D0, $07, $20 ; CPU:$C9F3 PRG:49F3 04 80 A9 00 8D DD 00 C6 5F D0 0B A5 5E D0 07 20
.byte $86, $D4, $A9, $00, $F0, $2A, $A5, $5F, $29, $03, $AA, $A5, $5E, $D0, $03, $CA ; CPU:$CA03 PRG:4A03 86 D4 A9 00 F0 2A A5 5F 29 03 AA A5 5E D0 03 CA
.byte $C6, $5F, $BD, $5A, $D4, $85, $1B, $A9, $05, $85, $21, $A5, $5E, $C5, $21, $B0 ; CPU:$CA13 PRG:4A13 C6 5F BD 5A D4 85 1B A9 05 85 21 A5 5E C5 21 B0
.byte $0F, $A6, $21, $20, $AF, $D4, $20, $8A, $85, $20, $E3, $84, $C6, $21, $D0, $EB ; CPU:$CA23 PRG:4A23 0F A6 21 20 AF D4 20 8A 85 20 E3 84 C6 21 D0 EB
.byte $A6, $36, $A9, $00, $9D, $00, $03, $A5, $5E, $D0, $02, $E6, $5F, $60, $A5, $61 ; CPU:$CA33 PRG:4A33 A6 36 A9 00 9D 00 03 A5 5E D0 02 E6 5F 60 A5 61
.byte $20, $73, $81, $50, $CA, $76, $CA, $86, $CA, $AD, $CA, $07, $CB, $A9, $FF, $85 ; CPU:$CA43 PRG:4A43 20 73 81 50 CA 76 CA 86 CA AD CA 07 CB A9 FF 85
.byte $65, $A5, $6F, $D0, $03, $20, $57, $CB, $A5, $5A, $0A, $AA, $BD, $5C, $F4, $85 ; CPU:$CA53 PRG:4A53 65 A5 6F D0 03 20 57 CB A5 5A 0A AA BD 5C F4 85
.byte $39, $BD, $5D, $F4, $85, $3A, $A6, $5B, $BD, $75, $F8, $85, $35, $20, $59, $CD ; CPU:$CA63 PRG:4A63 39 BD 5D F4 85 3A A6 5B BD 75 F8 85 35 20 59 CD
.byte $E6, $61, $60, $A5, $71, $C9, $02, $F0, $07, $A9, $00, $85, $61, $85, $60, $60 ; CPU:$CA73 PRG:4A73 E6 61 60 A5 71 C9 02 F0 07 A9 00 85 61 85 60 60
.byte $E6, $61, $60, $20, $52, $85, $29, $06, $85, $20, $A5, $5B, $0A, $0A, $0A, $18 ; CPU:$CA83 PRG:4A83 E6 61 60 20 52 85 29 06 85 20 A5 5B 0A 0A 0A 18
.byte $65, $20, $AA, $BD, $BD, $F8, $85, $4E, $BD, $BE, $F8, $85, $4F, $A9, $00, $85 ; CPU:$CA93 PRG:4A93 65 20 AA BD BD F8 85 4E BD BE F8 85 4F A9 00 85
.byte $56, $85, $58, $E6, $61, $A9, $00, $85, $34, $60, $A5, $31, $6A, $B0, $01, $60 ; CPU:$CAA3 PRG:4AA3 56 85 58 E6 61 A9 00 85 34 60 A5 31 6A B0 01 60
.byte $A6, $56, $A4, $58, $B1, $4E, $F0, $33, $9D, $00, $04, $85, $1B, $8A, $20, $BF ; CPU:$CAB3 PRG:4AB3 A6 56 A4 58 B1 4E F0 33 9D 00 04 85 1B 8A 20 BF
.byte $84, $A5, $1B, $10, $0E, $A9, $0D, $85, $17, $A9, $F3, $85, $18, $A9, $01, $85 ; CPU:$CAC3 PRG:4AC3 84 A5 1B 10 0E A9 0D 85 17 A9 F3 85 18 A9 01 85
.byte $1B, $D0, $0C, $0A, $AA, $BD, $9E, $F2, $85, $17, $BD, $9F, $F2, $85, $18, $20 ; CPU:$CAD3 PRG:4AD3 1B D0 0C 0A AA BD 9E F2 85 17 BD 9F F2 85 18 20
.byte $8A, $85, $20, $E3, $84, $E6, $58, $E6, $56, $10, $C5, $A6, $36, $A9, $00, $9D ; CPU:$CAE3 PRG:4AE3 8A 85 20 E3 84 E6 58 E6 56 10 C5 A6 36 A9 00 9D
.byte $00, $03, $E6, $58, $A5, $56, $29, $F0, $18, $69, $10, $85, $56, $C9, $70, $90 ; CPU:$CAF3 PRG:4AF3 00 03 E6 58 A5 56 29 F0 18 69 10 85 56 C9 70 90
.byte $02, $E6, $61, $60, $A5, $31, $6A, $B0, $01, $60, $A5, $5B, $85, $5E, $A6, $5A ; CPU:$CB03 PRG:4B03 02 E6 61 60 A5 31 6A B0 01 60 A5 5B 85 5E A6 5A
.byte $86, $5F, $BD, $5A, $D4, $85, $1B, $20, $86, $D4, $A6, $5B, $F0, $18, $86, $21 ; CPU:$CB13 PRG:4B13 86 5F BD 5A D4 85 1B 20 86 D4 A6 5B F0 18 86 21
.byte $20, $AF, $D4, $20, $8A, $85, $20, $E3, $84, $C6, $21, $A6, $21, $D0, $F1, $A6 ; CPU:$CB23 PRG:4B23 20 AF D4 20 8A 85 20 E3 84 C6 21 A6 21 D0 F1 A6
.byte $36, $A9, $00, $9D, $00, $03, $20, $A8, $CB, $A2, $30, $BD, $00, $04, $09, $40 ; CPU:$CB33 PRG:4B33 36 A9 00 9D 00 03 20 A8 CB A2 30 BD 00 04 09 40
.byte $9D, $00, $04, $86, $65, $E6, $6C, $E6, $5E, $A9, $00, $85, $61, $85, $58, $A9 ; CPU:$CB43 PRG:4B43 9D 00 04 86 65 E6 6C E6 5E A9 00 85 61 85 58 A9
.byte $00, $85, $60, $60, $A9, $20, $85, $1F, $A0, $00, $A6, $36, $B9, $85, $CB, $9D ; CPU:$CB53 PRG:4B53 00 85 60 60 A9 20 85 1F A0 00 A6 36 B9 85 CB 9D
.byte $00, $03, $E8, $C8, $C6, $1F, $D0, $F4, $A9, $00, $9D, $00, $03, $86, $36, $A0 ; CPU:$CB63 PRG:4B63 00 03 E8 C8 C6 1F D0 F4 A9 00 9D 00 03 86 36 A0
.byte $00, $A6, $38, $B9, $A5, $CB, $9D, $B8, $03, $E8, $C8, $C0, $03, $90, $F4, $86 ; CPU:$CB73 PRG:4B73 00 A6 38 B9 A5 CB 9D B8 03 E8 C8 C0 03 90 F4 86
.byte $38, $60, $7A, $22, $A8, $F2, $98, $22, $A8, $F2, $B6, $22, $A8, $F2, $BA, $22 ; CPU:$CB83 PRG:4B83 38 60 7A 22 A8 F2 98 22 A8 F2 B6 22 A8 F2 BA 22
.byte $A8, $F2, $F6, $22, $A8, $F2, $D8, $22, $A8, $F2, $FA, $22, $A8, $F2, $18, $23 ; CPU:$CB93 PRG:4B93 A8 F2 F6 22 A8 F2 D8 22 A8 F2 FA 22 A8 F2 18 23
.byte $A8, $F2, $E6, $55, $00, $A5, $5B, $18, $69, $07, $85, $11, $A9, $00, $85, $12 ; CPU:$CBA3 PRG:4BA3 A8 F2 E6 55 00 A5 5B 18 69 07 85 11 A9 00 85 12
.byte $20, $5D, $85, $A6, $6F, $BD, $E8, $C7, $8D, $88, $03, $A9, $1C, $8D, $98, $03 ; CPU:$CBB3 PRG:4BB3 20 5D 85 A6 6F BD E8 C7 8D 88 03 A9 1C 8D 98 03
.byte $60 ; CPU:$CBC3 PRG:4BC3 60
; -----------------------------------------------------------------------------
; Routine: Sub_CBC4
; Global: Branch target inside Sub: taken when CBC4.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_CBC4:
lda Zp60 ; CPU:$CBC4 PRG:4BC4 A5 60
sta $05E9 ; CPU:$CBC6 PRG:4BC6 8D E9 05
lda Zp69 ; CPU:$CBC9 PRG:4BC9 A5 69
beq DisablePpuRendering_Loop9 ; CPU:$CBCB PRG:4BCB F0 0C
lda Zp60 ; CPU:$CBCD PRG:4BCD A5 60
bne DisablePpuRendering_Loop9 ; CPU:$CBCF PRG:4BCF D0 08
jsr Sub_C83A ; CPU:$CBD1 PRG:4BD1 20 3A C8
lda #$00 ; CPU:$CBD4 PRG:4BD4 A9 00
sta Zp60 ; CPU:$CBD6 PRG:4BD6 85 60
rts ; CPU:$CBD8 PRG:4BD8 60
; -----------------------------------------------------------------------------
; Routine: DisablePpuRendering_Loop9
; Global: Branch target inside DisablePpuRendering: taken when Loop9.
; Local: Part of DisablePpuRendering.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DisablePpuRendering_Loop9:
lda Zp71 ; CPU:$CBD9 PRG:4BD9 A5 71
cmp #$02 ; CPU:$CBDB PRG:4BDB C9 02
beq DisablePpuRendering_Loop10 ; CPU:$CBDD PRG:4BDD F0 09
lda Zp60 ; CPU:$CBDF PRG:4BDF A5 60
cmp #$07 ; CPU:$CBE1 PRG:4BE1 C9 07
bcs DisablePpuRendering_Loop10 ; CPU:$CBE3 PRG:4BE3 B0 03
jsr Sub_C7EA ; CPU:$CBE5 PRG:4BE5 20 EA C7
; -----------------------------------------------------------------------------
; Routine: DisablePpuRendering_Loop10
; Global: Branch target inside DisablePpuRendering: taken when Loop10.
; Local: Part of DisablePpuRendering.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DisablePpuRendering_Loop10:
lda Zp65 ; CPU:$CBE8 PRG:4BE8 A5 65
bmi DisablePpuRendering_Loop11 ; CPU:$CBEA PRG:4BEA 30 0C
lda Zp71 ; CPU:$CBEC PRG:4BEC A5 71
cmp #$02 ; CPU:$CBEE PRG:4BEE C9 02
beq DisablePpuRendering_Loop11 ; CPU:$CBF0 PRG:4BF0 F0 06
lda FrameCounter ; CPU:$CBF2 PRG:4BF2 A5 31
bne DisablePpuRendering_Loop11 ; CPU:$CBF4 PRG:4BF4 D0 02
inc Zp67 ; CPU:$CBF6 PRG:4BF6 E6 67
; -----------------------------------------------------------------------------
; Routine: DisablePpuRendering_Loop11
; Global: Branch target inside DisablePpuRendering: taken when Loop11.
; Local: Part of DisablePpuRendering.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DisablePpuRendering_Loop11:
lda Zp60 ; CPU:$CBF8 PRG:4BF8 A5 60
jsr DispatchByJumpTable ; CPU:$CBFA PRG:4BFA 20 73 81
; ---- data $CBFD-$CC10 (20 bytes) ----
.byte $11, $CC, $56, $CC, $CF, $CC, $17, $BF, $6F, $C1, $18, $CD, $32, $CF, $A8, $CF ; CPU:$CBFD PRG:4BFD 11 CC 56 CC CF CC 17 BF 6F C1 18 CD 32 CF A8 CF
.byte $9A, $BF, $41, $CA ; CPU:$CC0D PRG:4C0D 9A BF 41 CA
; -----------------------------------------------------------------------------
; Routine: SetPlayerActive
; Global: Marks the player as active.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetPlayerActive:
lda #$01 ; CPU:$CC11 PRG:4C11 A9 01
sta Zp33 ; CPU:$CC13 PRG:4C13 85 33
ldx #$00 ; CPU:$CC15 PRG:4C15 A2 00
lda Zp6F ; CPU:$CC17 PRG:4C17 A5 6F
beq SetPlayerActive_Loop ; CPU:$CC19 PRG:4C19 F0 02
ldx #$03 ; CPU:$CC1B PRG:4C1B A2 03
; -----------------------------------------------------------------------------
; Routine: SetPlayerActive_Loop
; Global: Branch target inside SetPlayerActive: taken when the loop repeats.
; Local: Part of SetPlayerActive.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetPlayerActive_Loop:
lda $CC50,x ; CPU:$CC1D PRG:4C1D BD 50 CC
sta Zp49 ; CPU:$CC20 PRG:4C20 85 49
lda $CC51,x ; CPU:$CC22 PRG:4C22 BD 51 CC
sta Zp4A ; CPU:$CC25 PRG:4C25 85 4A
lda $CC52,x ; CPU:$CC27 PRG:4C27 BD 52 CC
sta Zp4D ; CPU:$CC2A PRG:4C2A 85 4D
inc Zp60 ; CPU:$CC2C PRG:4C2C E6 60
lda #$00 ; CPU:$CC2E PRG:4C2E A9 00
sta Zp56 ; CPU:$CC30 PRG:4C30 85 56
sta Zp48 ; CPU:$CC32 PRG:4C32 85 48
sta Zp37 ; CPU:$CC34 PRG:4C34 85 37
sta Zp36 ; CPU:$CC36 PRG:4C36 85 36
lda #$08 ; CPU:$CC38 PRG:4C38 A9 08
sta Zp40 ; CPU:$CC3A PRG:4C3A 85 40
jsr Sub_CDB6 ; CPU:$CC3C PRG:4C3C 20 B6 CD
lda Zp66 ; CPU:$CC3F PRG:4C3F A5 66
cmp #$05 ; CPU:$CC41 PRG:4C41 C9 05
bne SetPlayerActive_Loop2 ; CPU:$CC43 PRG:4C43 D0 03
jsr Sub_C140 ; CPU:$CC45 PRG:4C45 20 40 C1
; -----------------------------------------------------------------------------
; Routine: SetPlayerActive_Loop2
; Global: Branch target inside SetPlayerActive: taken when Loop2.
; Local: Part of SetPlayerActive.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetPlayerActive_Loop2:
jsr Sub_CD59 ; CPU:$CC48 PRG:4C48 20 59 CD
lda #$88 ; CPU:$CC4B PRG:4C4B A9 88
sta Zp01 ; CPU:$CC4D PRG:4C4D 85 01
rts ; CPU:$CC4F PRG:4C4F 60
; ---- data $CC50-$CC55 (6 bytes) ----
; referenced by `lda $CC50,x` at $CC1D (operand $CC50 falls inside this region)
; referenced by `lda $CC51,x` at $CC22 (operand $CC51 falls inside this region)
; referenced by `lda $CC52,x` at $CC27 (operand $CC52 falls inside this region)
.byte $40, $CE, $2B, $24, $CE, $2B ; CPU:$CC50 PRG:4C50 40 CE 2B 24 CE 2B
; -----------------------------------------------------------------------------
; Routine: CheckPlayerActive
; Global: Tests whether the player is still in play.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckPlayerActive:
lda Zp6F ; CPU:$CC56 PRG:4C56 A5 6F
bne CheckPlayerActive_Loop ; CPU:$CC58 PRG:4C58 D0 0E
lda ZpCD ; CPU:$CC5A PRG:4C5A A5 CD
beq CheckPlayerActive_Loop ; CPU:$CC5C PRG:4C5C F0 0A
lda Zp4A ; CPU:$CC5E PRG:4C5E A5 4A
cmp #$B0 ; CPU:$CC60 PRG:4C60 C9 B0
bcs CheckPlayerActive_Loop ; CPU:$CC62 PRG:4C62 B0 04
jsr Sub_CE8B ; CPU:$CC64 PRG:4C64 20 8B CE
rts ; CPU:$CC67 PRG:4C67 60
; -----------------------------------------------------------------------------
; Routine: CheckPlayerActive_Loop
; Global: Branch target inside CheckPlayerActive: taken when the loop repeats.
; Local: Part of CheckPlayerActive.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckPlayerActive_Loop:
jsr UpdatePlayerState ; CPU:$CC68 PRG:4C68 20 FA BB
lda NewButton1 ; CPU:$CC6B PRG:4C6B A5 2A
and #$C0 ; CPU:$CC6D PRG:4C6D 29 C0
beq CheckPlayerActive_Loop3 ; CPU:$CC6F PRG:4C6F F0 1A
lda #$01 ; CPU:$CC71 PRG:4C71 A9 01
sta a:$00E3 ; CPU:$CC73 PRG:4C73 8D E3 00
lda #$03 ; CPU:$CC76 PRG:4C76 A9 03
sta a:$00E2 ; CPU:$CC78 PRG:4C78 8D E2 00
lda NewButton1 ; CPU:$CC7B PRG:4C7B A5 2A
and #$80 ; CPU:$CC7D PRG:4C7D 29 80
beq CheckPlayerActive_Loop2 ; CPU:$CC7F PRG:4C7F F0 05
lda #$02 ; CPU:$CC81 PRG:4C81 A9 02
sta a:$00E2 ; CPU:$CC83 PRG:4C83 8D E2 00
; -----------------------------------------------------------------------------
; Routine: CheckPlayerActive_Loop2
; Global: Branch target inside CheckPlayerActive: taken when Loop2.
; Local: Part of CheckPlayerActive.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckPlayerActive_Loop2:
lda #$04 ; CPU:$CC86 PRG:4C86 A9 04
jsr BankedCall ; CPU:$CC88 PRG:4C88 20 04 80
; -----------------------------------------------------------------------------
; Routine: CheckPlayerActive_Loop3
; Global: Branch target inside CheckPlayerActive: taken when Loop3.
; Local: Part of CheckPlayerActive.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckPlayerActive_Loop3:
lda $05A4 ; CPU:$CC8B PRG:4C8B AD A4 05
beq CheckPlayerActive_Loop4 ; CPU:$CC8E PRG:4C8E F0 03
jsr Sub_CE0D ; CPU:$CC90 PRG:4C90 20 0D CE
; -----------------------------------------------------------------------------
; Routine: CheckPlayerActive_Loop4
; Global: Branch target inside CheckPlayerActive: taken when Loop4.
; Local: Part of CheckPlayerActive.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckPlayerActive_Loop4:
ldx Zp64 ; CPU:$CC93 PRG:4C93 A6 64
beq CheckPlayerActive_Loop5 ; CPU:$CC95 PRG:4C95 F0 25
lda $0358 ; CPU:$CC97 PRG:4C97 AD 58 03
cmp #$07 ; CPU:$CC9A PRG:4C9A C9 07
bcc CheckPlayerActive_Loop6 ; CPU:$CC9C PRG:4C9C 90 1F
lda $0389,x ; CPU:$CC9E PRG:4C9E BD 89 03
sta $0388 ; CPU:$CCA1 PRG:4CA1 8D 88 03
lda $0399,x ; CPU:$CCA4 PRG:4CA4 BD 99 03
sta $0398 ; CPU:$CCA7 PRG:4CA7 8D 98 03
lda #$04 ; CPU:$CCAA PRG:4CAA A9 04
clc ; CPU:$CCAC PRG:4CAC 18
adc $0388 ; CPU:$CCAD PRG:4CAD 6D 88 03
sta $0388 ; CPU:$CCB0 PRG:4CB0 8D 88 03
lda #$04 ; CPU:$CCB3 PRG:4CB3 A9 04
clc ; CPU:$CCB5 PRG:4CB5 18
adc $0398 ; CPU:$CCB6 PRG:4CB6 6D 98 03
sta $0398 ; CPU:$CCB9 PRG:4CB9 8D 98 03
; -----------------------------------------------------------------------------
; Routine: CheckPlayerActive_Loop5
; Global: Branch target inside CheckPlayerActive: taken when Loop5.
; Local: Part of CheckPlayerActive.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckPlayerActive_Loop5:
rts ; CPU:$CCBC PRG:4CBC 60
; -----------------------------------------------------------------------------
; Routine: CheckPlayerActive_Loop6
; Global: Branch target inside CheckPlayerActive: taken when Loop6.
; Local: Part of CheckPlayerActive.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckPlayerActive_Loop6:
lda FrameCounter ; CPU:$CCBD PRG:4CBD A5 31
ror a ; CPU:$CCBF PRG:4CBF 6A
and #$03 ; CPU:$CCC0 PRG:4CC0 29 03
sta Zp20 ; CPU:$CCC2 PRG:4CC2 85 20
lda $03AA ; CPU:$CCC4 PRG:4CC4 AD AA 03
and #$FC ; CPU:$CCC7 PRG:4CC7 29 FC
ora Zp20 ; CPU:$CCC9 PRG:4CC9 05 20
sta $03AA ; CPU:$CCCB PRG:4CCB 8D AA 03
rts ; CPU:$CCCE PRG:4CCE 60
; -----------------------------------------------------------------------------
; Routine: TickSoundOnEvenFrame
; Global: Updates the sound on every second frame.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickSoundOnEvenFrame:
lda FrameCounter ; CPU:$CCCF PRG:4CCF A5 31
ror a ; CPU:$CCD1 PRG:4CD1 6A
bcs TickSoundOnEvenFrame_Loop ; CPU:$CCD2 PRG:4CD2 B0 01
rts ; CPU:$CCD4 PRG:4CD4 60
; -----------------------------------------------------------------------------
; Routine: TickSoundOnEvenFrame_Loop
; Global: Branch target inside TickSoundOnEvenFrame: taken when the loop repeats.
; Local: Part of TickSoundOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickSoundOnEvenFrame_Loop:
lda Zp6F ; CPU:$CCD5 PRG:4CD5 A5 6F
bne TickSoundOnEvenFrame_Loop2 ; CPU:$CCD7 PRG:4CD7 D0 03
jsr Sub_CE8B ; CPU:$CCD9 PRG:4CD9 20 8B CE
; -----------------------------------------------------------------------------
; Routine: TickSoundOnEvenFrame_Loop2
; Global: Branch target inside TickSoundOnEvenFrame: taken when Loop2.
; Local: Part of TickSoundOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickSoundOnEvenFrame_Loop2:
jsr BuildBubbleTable ; CPU:$CCDC PRG:4CDC 20 E4 BE
jsr Sub_CDF0 ; CPU:$CCDF PRG:4CDF 20 F0 CD
lda Zp64 ; CPU:$CCE2 PRG:4CE2 A5 64
beq TickSoundOnEvenFrame_Loop3 ; CPU:$CCE4 PRG:4CE4 F0 1C
lda $0358 ; CPU:$CCE6 PRG:4CE6 AD 58 03
cmp #$07 ; CPU:$CCE9 PRG:4CE9 C9 07
bcc TickSoundOnEvenFrame_Loop3 ; CPU:$CCEB PRG:4CEB 90 15
ldx Zp64 ; CPU:$CCED PRG:4CED A6 64
lda Zp4D,x ; CPU:$CCEF PRG:4CEF B5 4D
sta Zp65 ; CPU:$CCF1 PRG:4CF1 85 65
tax ; CPU:$CCF3 PRG:4CF3 AA
lda $0400,x ; CPU:$CCF4 PRG:4CF4 BD 00 04
ora #$40 ; CPU:$CCF7 PRG:4CF7 09 40
sta $0400,x ; CPU:$CCF9 PRG:4CF9 9D 00 04
lda #$00 ; CPU:$CCFC PRG:4CFC A9 00
sta Zp64 ; CPU:$CCFE PRG:4CFE 85 64
sta Zp67 ; CPU:$CD00 PRG:4D00 85 67
; -----------------------------------------------------------------------------
; Routine: TickSoundOnEvenFrame_Loop3
; Global: Branch target inside TickSoundOnEvenFrame: taken when Loop3.
; Local: Part of TickSoundOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickSoundOnEvenFrame_Loop3:
inc Zp60 ; CPU:$CD02 PRG:4D02 E6 60
lda #$01 ; CPU:$CD04 PRG:4D04 A9 01
sta a:$00E3 ; CPU:$CD06 PRG:4D06 8D E3 00
lda #$00 ; CPU:$CD09 PRG:4D09 A9 00
sta a:$00E2 ; CPU:$CD0B PRG:4D0B 8D E2 00
lda #$04 ; CPU:$CD0E PRG:4D0E A9 04
jsr BankedCall ; CPU:$CD10 PRG:4D10 20 04 80
lda #$00 ; CPU:$CD13 PRG:4D13 A9 00
sta Zp61 ; CPU:$CD15 PRG:4D15 85 61
rts ; CPU:$CD17 PRG:4D17 60
; -----------------------------------------------------------------------------
; Routine: UpdateSoundEngine
; Global: Updates the sound engine.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSoundEngine:
jsr Sub_D4EE ; CPU:$CD18 PRG:4D18 20 EE D4
rts ; CPU:$CD1B PRG:4D1B 60
; -----------------------------------------------------------------------------
; Routine: Sub_CD1C
; Global: Branch target inside Sub: taken when CD1C.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_CD1C:
ldx ZpCC ; CPU:$CD1C PRG:4D1C A6 CC
lda #$04 ; CPU:$CD1E PRG:4D1E A9 04
sta Zp1F ; CPU:$CD20 PRG:4D20 85 1F
lda Zp48 ; CPU:$CD22 PRG:4D22 A5 48
asl a ; CPU:$CD24 PRG:4D24 0A
asl a ; CPU:$CD25 PRG:4D25 0A
tay ; CPU:$CD26 PRG:4D26 A8
; -----------------------------------------------------------------------------
; Routine: UpdateSoundEngine_OnNonzero
; Global: Branch target inside UpdateSoundEngine: taken when the tested value is not zero.
; Local: Part of UpdateSoundEngine.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSoundEngine_OnNonzero:
lda (Zp46),y ; CPU:$CD27 PRG:4D27 B1 46
sta Zp1B ; CPU:$CD29 PRG:4D29 85 1B
and #$F0 ; CPU:$CD2B PRG:4D2B 29 F0
sta Zp1C ; CPU:$CD2D PRG:4D2D 85 1C
clc ; CPU:$CD2F PRG:4D2F 18
adc Zp49 ; CPU:$CD30 PRG:4D30 65 49
sta $0388,x ; CPU:$CD32 PRG:4D32 9D 88 03
lda Zp1B ; CPU:$CD35 PRG:4D35 A5 1B
and #$0F ; CPU:$CD37 PRG:4D37 29 0F
asl a ; CPU:$CD39 PRG:4D39 0A
asl a ; CPU:$CD3A PRG:4D3A 0A
asl a ; CPU:$CD3B PRG:4D3B 0A
asl a ; CPU:$CD3C PRG:4D3C 0A
clc ; CPU:$CD3D PRG:4D3D 18
adc Zp4A ; CPU:$CD3E PRG:4D3E 65 4A
sta $0398,x ; CPU:$CD40 PRG:4D40 9D 98 03
lda #$10 ; CPU:$CD43 PRG:4D43 A9 10
and Zp1C ; CPU:$CD45 PRG:4D45 25 1C
beq UpdateSoundEngine_Loop ; CPU:$CD47 PRG:4D47 F0 09
lda $0398,x ; CPU:$CD49 PRG:4D49 BD 98 03
clc ; CPU:$CD4C PRG:4D4C 18
adc #$08 ; CPU:$CD4D PRG:4D4D 69 08
sta $0398,x ; CPU:$CD4F PRG:4D4F 9D 98 03
; -----------------------------------------------------------------------------
; Routine: UpdateSoundEngine_Loop
; Global: Branch target inside UpdateSoundEngine: taken when the loop repeats.
; Local: Part of UpdateSoundEngine.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSoundEngine_Loop:
inx ; CPU:$CD52 PRG:4D52 E8
iny ; CPU:$CD53 PRG:4D53 C8
dec Zp1F ; CPU:$CD54 PRG:4D54 C6 1F
bne UpdateSoundEngine_OnNonzero; CPU:$CD56 PRG:4D56 D0 CF
rts ; CPU:$CD58 PRG:4D58 60
; -----------------------------------------------------------------------------
; Routine: Sub_CD59
; Global: Branch target inside Sub: taken when CD59.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_CD59:
lda Zp41 ; CPU:$CD59 PRG:4D59 A5 41
sta ZpCD ; CPU:$CD5B PRG:4D5B 85 CD
inc $05E1 ; CPU:$CD5D PRG:4D5D EE E1 05
lda $05E1 ; CPU:$CD60 PRG:4D60 AD E1 05
ldy $05E5 ; CPU:$CD63 PRG:4D63 AC E5 05
bne UpdateSoundEngine_Loop2 ; CPU:$CD66 PRG:4D66 D0 05
jsr Sub_8552 ; CPU:$CD68 PRG:4D68 20 52 85
lda Zp3D ; CPU:$CD6B PRG:4D6B A5 3D
; -----------------------------------------------------------------------------
; Routine: UpdateSoundEngine_Loop2
; Global: Branch target inside UpdateSoundEngine: taken when Loop2.
; Local: Part of UpdateSoundEngine.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSoundEngine_Loop2:
and #$07 ; CPU:$CD6D PRG:4D6D 29 07
sta Zp1D ; CPU:$CD6F PRG:4D6F 85 1D
lda $05E1 ; CPU:$CD71 PRG:4D71 AD E1 05
ldy $05E5 ; CPU:$CD74 PRG:4D74 AC E5 05
bne UpdateSoundEngine_Loop3 ; CPU:$CD77 PRG:4D77 D0 05
jsr Sub_8552 ; CPU:$CD79 PRG:4D79 20 52 85
lda Zp3D ; CPU:$CD7C PRG:4D7C A5 3D
; -----------------------------------------------------------------------------
; Routine: UpdateSoundEngine_Loop3
; Global: Branch target inside UpdateSoundEngine: taken when Loop3.
; Local: Part of UpdateSoundEngine.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSoundEngine_Loop3:
and #$7F ; CPU:$CD7E PRG:4D7E 29 7F
tay ; CPU:$CD80 PRG:4D80 A8
lda (Zp39),y ; CPU:$CD81 PRG:4D81 B1 39
sta Zp1B ; CPU:$CD83 PRG:4D83 85 1B
ror a ; CPU:$CD85 PRG:4D85 6A
ror a ; CPU:$CD86 PRG:4D86 6A
ror a ; CPU:$CD87 PRG:4D87 6A
and #$0E ; CPU:$CD88 PRG:4D88 29 0E
sta Zp41 ; CPU:$CD8A PRG:4D8A 85 41
tax ; CPU:$CD8C PRG:4D8C AA
lda $F38E,x ; CPU:$CD8D PRG:4D8D BD 8E F3
sta Zp19 ; CPU:$CD90 PRG:4D90 85 19
lda $F38F,x ; CPU:$CD92 PRG:4D92 BD 8F F3
sta Zp1A ; CPU:$CD95 PRG:4D95 85 1A
lda Zp1B ; CPU:$CD97 PRG:4D97 A5 1B
and #$0F ; CPU:$CD99 PRG:4D99 29 0F
asl a ; CPU:$CD9B PRG:4D9B 0A
asl a ; CPU:$CD9C PRG:4D9C 0A
tay ; CPU:$CD9D PRG:4D9D A8
ldx #$00 ; CPU:$CD9E PRG:4D9E A2 00
; -----------------------------------------------------------------------------
; Routine: UpdateSoundEngine_OnCarryClear
; Global: Branch target inside UpdateSoundEngine: taken when the addition or subtraction did not carry.
; Local: Part of UpdateSoundEngine.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSoundEngine_OnCarryClear:
stx Zp21 ; CPU:$CDA0 PRG:4DA0 86 21
lda (Zp19),y ; CPU:$CDA2 PRG:4DA2 B1 19
clc ; CPU:$CDA4 PRG:4DA4 18
adc Zp1D ; CPU:$CDA5 PRG:4DA5 65 1D
tax ; CPU:$CDA7 PRG:4DA7 AA
lda $F381,x ; CPU:$CDA8 PRG:4DA8 BD 81 F3
ldx Zp21 ; CPU:$CDAB PRG:4DAB A6 21
sta Zp42,x ; CPU:$CDAD PRG:4DAD 95 42
iny ; CPU:$CDAF PRG:4DAF C8
inx ; CPU:$CDB0 PRG:4DB0 E8
cpx #$04 ; CPU:$CDB1 PRG:4DB1 E0 04
bcc UpdateSoundEngine_OnCarryClear ; CPU:$CDB3 PRG:4DB3 90 EB
rts ; CPU:$CDB5 PRG:4DB5 60
; -----------------------------------------------------------------------------
; Routine: Sub_CDB6
; Global: Branch target inside Sub: taken when CDB6.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_CDB6:
ldx Zp41 ; CPU:$CDB6 PRG:4DB6 A6 41
lda $F313,x ; CPU:$CDB8 PRG:4DB8 BD 13 F3
sta Zp46 ; CPU:$CDBB PRG:4DBB 85 46
lda $F314,x ; CPU:$CDBD PRG:4DBD BD 14 F3
sta Zp47 ; CPU:$CDC0 PRG:4DC0 85 47
ldx #$00 ; CPU:$CDC2 PRG:4DC2 A2 00
lda #$02 ; CPU:$CDC4 PRG:4DC4 A9 02
sta Zp12 ; CPU:$CDC6 PRG:4DC6 85 12
; -----------------------------------------------------------------------------
; Routine: UpdateSoundEngine_OnCarryClear2
; Global: Branch target inside UpdateSoundEngine: taken when OnCarryClear2.
; Local: Part of UpdateSoundEngine.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSoundEngine_OnCarryClear2:
stx Zp21 ; CPU:$CDC8 PRG:4DC8 86 21
lda Zp42,x ; CPU:$CDCA PRG:4DCA B5 42
sta Zp52,x ; CPU:$CDCC PRG:4DCC 95 52
sta Zp11 ; CPU:$CDCE PRG:4DCE 85 11
jsr Sub_855D ; CPU:$CDD0 PRG:4DD0 20 5D 85
inc Zp12 ; CPU:$CDD3 PRG:4DD3 E6 12
ldx Zp21 ; CPU:$CDD5 PRG:4DD5 A6 21
inx ; CPU:$CDD7 PRG:4DD7 E8
cpx #$04 ; CPU:$CDD8 PRG:4DD8 E0 04
bcc UpdateSoundEngine_OnCarryClear2 ; CPU:$CDDA PRG:4DDA 90 EC
lda #$02 ; CPU:$CDDC PRG:4DDC A9 02
sta ZpCC ; CPU:$CDDE PRG:4DDE 85 CC
ldy #$00 ; CPU:$CDE0 PRG:4DE0 A0 00
; -----------------------------------------------------------------------------
; Routine: UpdateSoundEngine_OnCarryClear3
; Global: Branch target inside UpdateSoundEngine: taken when OnCarryClear3.
; Local: Part of UpdateSoundEngine.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSoundEngine_OnCarryClear3:
lda (Zp46),y ; CPU:$CDE2 PRG:4DE2 B1 46
clc ; CPU:$CDE4 PRG:4DE4 18
adc Zp4D ; CPU:$CDE5 PRG:4DE5 65 4D
sta a:$004E,y ; CPU:$CDE7 PRG:4DE7 99 4E 00
iny ; CPU:$CDEA PRG:4DEA C8
cpy #$04 ; CPU:$CDEB PRG:4DEB C0 04
bcc UpdateSoundEngine_OnCarryClear3 ; CPU:$CDED PRG:4DED 90 F3
rts ; CPU:$CDEF PRG:4DEF 60
; -----------------------------------------------------------------------------
; Routine: Sub_CDF0
; Global: Branch target inside Sub: taken when CDF0.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_CDF0:
lda #$00 ; CPU:$CDF0 PRG:4DF0 A9 00
sta Zp11 ; CPU:$CDF2 PRG:4DF2 85 11
lda #$02 ; CPU:$CDF4 PRG:4DF4 A9 02
sta Zp12 ; CPU:$CDF6 PRG:4DF6 85 12
lda $035A ; CPU:$CDF8 PRG:4DF8 AD 5A 03
cmp #$05 ; CPU:$CDFB PRG:4DFB C9 05
bne UpdateSoundEngine_OnCarryClear4 ; CPU:$CDFD PRG:4DFD D0 02
inc Zp12 ; CPU:$CDFF PRG:4DFF E6 12
; -----------------------------------------------------------------------------
; Routine: UpdateSoundEngine_OnCarryClear4
; Global: Branch target inside UpdateSoundEngine: taken when OnCarryClear4.
; Local: Part of UpdateSoundEngine.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSoundEngine_OnCarryClear4:
jsr Sub_855D ; CPU:$CE01 PRG:4E01 20 5D 85
inc Zp12 ; CPU:$CE04 PRG:4E04 E6 12
lda Zp12 ; CPU:$CE06 PRG:4E06 A5 12
cmp #$06 ; CPU:$CE08 PRG:4E08 C9 06
bcc UpdateSoundEngine_OnCarryClear4 ; CPU:$CE0A PRG:4E0A 90 F5
rts ; CPU:$CE0C PRG:4E0C 60
; -----------------------------------------------------------------------------
; Routine: Sub_CE0D
; Global: Branch target inside Sub: taken when CE0D.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_CE0D:
lda FrameCounter ; CPU:$CE0D PRG:4E0D A5 31
ror a ; CPU:$CE0F PRG:4E0F 6A
bcs UpdateSoundEngine_Loop4 ; CPU:$CE10 PRG:4E10 B0 01
rts ; CPU:$CE12 PRG:4E12 60
; -----------------------------------------------------------------------------
; Routine: UpdateSoundEngine_Loop4
; Global: Branch target inside UpdateSoundEngine: taken when Loop4.
; Local: Part of UpdateSoundEngine.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSoundEngine_Loop4:
lda $05A4 ; CPU:$CE13 PRG:4E13 AD A4 05
tax ; CPU:$CE16 PRG:4E16 AA
and #$0F ; CPU:$CE17 PRG:4E17 29 0F
clc ; CPU:$CE19 PRG:4E19 18
adc $05B5 ; CPU:$CE1A PRG:4E1A 6D B5 05
sta $05B5 ; CPU:$CE1D PRG:4E1D 8D B5 05
txa ; CPU:$CE20 PRG:4E20 8A
ror a ; CPU:$CE21 PRG:4E21 6A
ror a ; CPU:$CE22 PRG:4E22 6A
ror a ; CPU:$CE23 PRG:4E23 6A
ror a ; CPU:$CE24 PRG:4E24 6A
and #$0F ; CPU:$CE25 PRG:4E25 29 0F
clc ; CPU:$CE27 PRG:4E27 18
adc $05B4 ; CPU:$CE28 PRG:4E28 6D B4 05
sta $05B4 ; CPU:$CE2B PRG:4E2B 8D B4 05
ldx #$05 ; CPU:$CE2E PRG:4E2E A2 05
; -----------------------------------------------------------------------------
; Routine: UpdateSoundEngine_OnNonzero2
; Global: Branch target inside UpdateSoundEngine: taken when OnNonzero2.
; Local: Part of UpdateSoundEngine.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSoundEngine_OnNonzero2:
lda $05B0,x ; CPU:$CE30 PRG:4E30 BD B0 05
cmp #$0A ; CPU:$CE33 PRG:4E33 C9 0A
bcc UpdateSoundEngine_Loop5 ; CPU:$CE35 PRG:4E35 90 0B
inc $05AF,x ; CPU:$CE37 PRG:4E37 FE AF 05
clc ; CPU:$CE3A PRG:4E3A 18
adc #$06 ; CPU:$CE3B PRG:4E3B 69 06
and #$0F ; CPU:$CE3D PRG:4E3D 29 0F
sta $05B0,x ; CPU:$CE3F PRG:4E3F 9D B0 05
; -----------------------------------------------------------------------------
; Routine: UpdateSoundEngine_Loop5
; Global: Branch target inside UpdateSoundEngine: taken when Loop5.
; Local: Part of UpdateSoundEngine.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSoundEngine_Loop5:
dex ; CPU:$CE42 PRG:4E42 CA
bne UpdateSoundEngine_OnNonzero2 ; CPU:$CE43 PRG:4E43 D0 EB
lda #$06 ; CPU:$CE45 PRG:4E45 A9 06
sta $05D2 ; CPU:$CE47 PRG:4E47 8D D2 05
lda #$01 ; CPU:$CE4A PRG:4E4A A9 01
sta $05D3 ; CPU:$CE4C PRG:4E4C 8D D3 05
ldx #$00 ; CPU:$CE4F PRG:4E4F A2 00
; -----------------------------------------------------------------------------
; Routine: UpdateSoundEngine_OnCarryClear5
; Global: Branch target inside UpdateSoundEngine: taken when OnCarryClear5.
; Local: Part of UpdateSoundEngine.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSoundEngine_OnCarryClear5:
lda $05B0,x ; CPU:$CE51 PRG:4E51 BD B0 05
tay ; CPU:$CE54 PRG:4E54 A8
lda $F1D6,y ; CPU:$CE55 PRG:4E55 B9 D6 F1
sta $05D4,x ; CPU:$CE58 PRG:4E58 9D D4 05
inx ; CPU:$CE5B PRG:4E5B E8
cpx #$06 ; CPU:$CE5C PRG:4E5C E0 06
bcc UpdateSoundEngine_OnCarryClear5 ; CPU:$CE5E PRG:4E5E 90 F1
lda Zp6F ; CPU:$CE60 PRG:4E60 A5 6F
asl a ; CPU:$CE62 PRG:4E62 0A
tay ; CPU:$CE63 PRG:4E63 A8
ldx Zp37 ; CPU:$CE64 PRG:4E64 A6 37
lda $D412,y ; CPU:$CE66 PRG:4E66 B9 12 D4
sta $0338,x ; CPU:$CE69 PRG:4E69 9D 38 03
lda $D413,y ; CPU:$CE6C PRG:4E6C B9 13 D4
sta $0339,x ; CPU:$CE6F PRG:4E6F 9D 39 03
lda #$D2 ; CPU:$CE72 PRG:4E72 A9 D2
sta $033A,x ; CPU:$CE74 PRG:4E74 9D 3A 03
lda #$05 ; CPU:$CE77 PRG:4E77 A9 05
sta $033B,x ; CPU:$CE79 PRG:4E79 9D 3B 03
lda #$00 ; CPU:$CE7C PRG:4E7C A9 00
sta $033C,x ; CPU:$CE7E PRG:4E7E 9D 3C 03
sta $05A4 ; CPU:$CE81 PRG:4E81 8D A4 05
txa ; CPU:$CE84 PRG:4E84 8A
clc ; CPU:$CE85 PRG:4E85 18
adc #$04 ; CPU:$CE86 PRG:4E86 69 04
sta Zp37 ; CPU:$CE88 PRG:4E88 85 37
rts ; CPU:$CE8A PRG:4E8A 60
; -----------------------------------------------------------------------------
; Routine: Sub_CE8B
; Global: Branch target inside Sub: taken when CE8B.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_CE8B:
lda FrameCounter ; CPU:$CE8B PRG:4E8B A5 31
ror a ; CPU:$CE8D PRG:4E8D 6A
bcs UpdateSoundEngine_Loop6 ; CPU:$CE8E PRG:4E8E B0 01
rts ; CPU:$CE90 PRG:4E90 60
; -----------------------------------------------------------------------------
; Routine: UpdateSoundEngine_Loop6
; Global: Branch target inside UpdateSoundEngine: taken when Loop6.
; Local: Part of UpdateSoundEngine.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSoundEngine_Loop6:
ldy #$04 ; CPU:$CE91 PRG:4E91 A0 04
sty Zp22 ; CPU:$CE93 PRG:4E93 84 22
lda ZpCD ; CPU:$CE95 PRG:4E95 A5 CD
asl a ; CPU:$CE97 PRG:4E97 0A
asl a ; CPU:$CE98 PRG:4E98 0A
tay ; CPU:$CE99 PRG:4E99 A8
; -----------------------------------------------------------------------------
; Routine: UpdateSoundEngine_OnNonzero3
; Global: Branch target inside UpdateSoundEngine: taken when OnNonzero3.
; Local: Part of UpdateSoundEngine.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSoundEngine_OnNonzero3:
lda $CFC5,y ; CPU:$CE9A PRG:4E9A B9 C5 CF
sta Zp19 ; CPU:$CE9D PRG:4E9D 85 19
iny ; CPU:$CE9F PRG:4E9F C8
lda $CFC5,y ; CPU:$CEA0 PRG:4EA0 B9 C5 CF
sta Zp1A ; CPU:$CEA3 PRG:4EA3 85 1A
iny ; CPU:$CEA5 PRG:4EA5 C8
ldx Zp36 ; CPU:$CEA6 PRG:4EA6 A6 36
lda Zp19 ; CPU:$CEA8 PRG:4EA8 A5 19
sta $0300,x ; CPU:$CEAA PRG:4EAA 9D 00 03
inx ; CPU:$CEAD PRG:4EAD E8
lda Zp1A ; CPU:$CEAE PRG:4EAE A5 1A
sta $0300,x ; CPU:$CEB0 PRG:4EB0 9D 00 03
inx ; CPU:$CEB3 PRG:4EB3 E8
lda #$A8 ; CPU:$CEB4 PRG:4EB4 A9 A8
sta $0300,x ; CPU:$CEB6 PRG:4EB6 9D 00 03
inx ; CPU:$CEB9 PRG:4EB9 E8
lda #$F2 ; CPU:$CEBA PRG:4EBA A9 F2
sta $0300,x ; CPU:$CEBC PRG:4EBC 9D 00 03
inx ; CPU:$CEBF PRG:4EBF E8
stx Zp36 ; CPU:$CEC0 PRG:4EC0 86 36
dec Zp22 ; CPU:$CEC2 PRG:4EC2 C6 22
bne UpdateSoundEngine_OnNonzero3 ; CPU:$CEC4 PRG:4EC4 D0 D4
ldx Zp38 ; CPU:$CEC6 PRG:4EC6 A6 38
lda #$E6 ; CPU:$CEC8 PRG:4EC8 A9 E6
sta $03B8,x ; CPU:$CECA PRG:4ECA 9D B8 03
inx ; CPU:$CECD PRG:4ECD E8
lda #$55 ; CPU:$CECE PRG:4ECE A9 55
sta $03B8,x ; CPU:$CED0 PRG:4ED0 9D B8 03
inx ; CPU:$CED3 PRG:4ED3 E8
stx Zp38 ; CPU:$CED4 PRG:4ED4 86 38
ldy #$00 ; CPU:$CED6 PRG:4ED6 A0 00
sty Zp22 ; CPU:$CED8 PRG:4ED8 84 22
lda Zp41 ; CPU:$CEDA PRG:4EDA A5 41
asl a ; CPU:$CEDC PRG:4EDC 0A
asl a ; CPU:$CEDD PRG:4EDD 0A
sta Zp21 ; CPU:$CEDE PRG:4EDE 85 21
; -----------------------------------------------------------------------------
; Routine: UpdateSoundEngine_OnCarryClear6
; Global: Branch target inside UpdateSoundEngine: taken when OnCarryClear6.
; Local: Part of UpdateSoundEngine.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateSoundEngine_OnCarryClear6:
ldx Zp21 ; CPU:$CEE0 PRG:4EE0 A6 21
lda $CFC5,x ; CPU:$CEE2 PRG:4EE2 BD C5 CF
sta Zp19 ; CPU:$CEE5 PRG:4EE5 85 19
inx ; CPU:$CEE7 PRG:4EE7 E8
lda $CFC5,x ; CPU:$CEE8 PRG:4EE8 BD C5 CF
sta Zp1A ; CPU:$CEEB PRG:4EEB 85 1A
inx ; CPU:$CEED PRG:4EED E8
stx Zp21 ; CPU:$CEEE PRG:4EEE 86 21
lda a:$0042,y ; CPU:$CEF0 PRG:4EF0 B9 42 00
sta Zp1B ; CPU:$CEF3 PRG:4EF3 85 1B
inc Zp22 ; CPU:$CEF5 PRG:4EF5 E6 22
asl a ; CPU:$CEF7 PRG:4EF7 0A
tay ; CPU:$CEF8 PRG:4EF8 A8
lda $F29E,y ; CPU:$CEF9 PRG:4EF9 B9 9E F2
sta Zp17 ; CPU:$CEFC PRG:4EFC 85 17
lda $F29F,y ; CPU:$CEFE PRG:4EFE B9 9F F2
sta Zp18 ; CPU:$CF01 PRG:4F01 85 18
ldx Zp36 ; CPU:$CF03 PRG:4F03 A6 36
lda Zp19 ; CPU:$CF05 PRG:4F05 A5 19
sta $0300,x ; CPU:$CF07 PRG:4F07 9D 00 03
inx ; CPU:$CF0A PRG:4F0A E8
lda Zp1A ; CPU:$CF0B PRG:4F0B A5 1A
sta $0300,x ; CPU:$CF0D PRG:4F0D 9D 00 03
inx ; CPU:$CF10 PRG:4F10 E8
lda Zp17 ; CPU:$CF11 PRG:4F11 A5 17
sta $0300,x ; CPU:$CF13 PRG:4F13 9D 00 03
inx ; CPU:$CF16 PRG:4F16 E8
lda Zp18 ; CPU:$CF17 PRG:4F17 A5 18
sta $0300,x ; CPU:$CF19 PRG:4F19 9D 00 03
inx ; CPU:$CF1C PRG:4F1C E8
stx Zp36 ; CPU:$CF1D PRG:4F1D 86 36
jsr Sub_84E3 ; CPU:$CF1F PRG:4F1F 20 E3 84
ldy Zp22 ; CPU:$CF22 PRG:4F22 A4 22
cpy #$04 ; CPU:$CF24 PRG:4F24 C0 04
bcc UpdateSoundEngine_OnCarryClear6 ; CPU:$CF26 PRG:4F26 90 B8
ldx Zp36 ; CPU:$CF28 PRG:4F28 A6 36
lda #$00 ; CPU:$CF2A PRG:4F2A A9 00
sta $0300,x ; CPU:$CF2C PRG:4F2C 9D 00 03
sta ZpCD ; CPU:$CF2F PRG:4F2F 85 CD
rts ; CPU:$CF31 PRG:4F31 60
; -----------------------------------------------------------------------------
; Routine: CheckActorCount
; Global: Tests how many actors are on the screen.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckActorCount:
lda Zp67 ; CPU:$CF32 PRG:4F32 A5 67
cmp #$08 ; CPU:$CF34 PRG:4F34 C9 08
bcc CheckActorCount_Loop ; CPU:$CF36 PRG:4F36 90 15
ldx Zp65 ; CPU:$CF38 PRG:4F38 A6 65
lda $0400,x ; CPU:$CF3A PRG:4F3A BD 00 04
and #$BF ; CPU:$CF3D PRG:4F3D 29 BF
sta $0400,x ; CPU:$CF3F PRG:4F3F 9D 00 04
lda #$00 ; CPU:$CF42 PRG:4F42 A9 00
sta Zp67 ; CPU:$CF44 PRG:4F44 85 67
sta $0358 ; CPU:$CF46 PRG:4F46 8D 58 03
lda #$FF ; CPU:$CF49 PRG:4F49 A9 FF
sta Zp65 ; CPU:$CF4B PRG:4F4B 85 65
; -----------------------------------------------------------------------------
; Routine: CheckActorCount_Loop
; Global: Branch target inside CheckActorCount: taken when the loop repeats.
; Local: Part of CheckActorCount.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckActorCount_Loop:
ldx #$0B ; CPU:$CF4D PRG:4F4D A2 0B
; -----------------------------------------------------------------------------
; Routine: CheckActorCount_OnCarryClear
; Global: Branch target inside CheckActorCount: taken when the addition or subtraction did not carry.
; Local: Part of CheckActorCount.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckActorCount_OnCarryClear:
lda $0400,x ; CPU:$CF4F PRG:4F4F BD 00 04
beq CheckActorCount_Loop2 ; CPU:$CF52 PRG:4F52 F0 09
inc Zp60 ; CPU:$CF54 PRG:4F54 E6 60
inc Zp60 ; CPU:$CF56 PRG:4F56 E6 60
lda #$00 ; CPU:$CF58 PRG:4F58 A9 00
sta Zp61 ; CPU:$CF5A PRG:4F5A 85 61
rts ; CPU:$CF5C PRG:4F5C 60
; -----------------------------------------------------------------------------
; Routine: CheckActorCount_Loop2
; Global: Branch target inside CheckActorCount: taken when Loop2.
; Local: Part of CheckActorCount.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckActorCount_Loop2:
txa ; CPU:$CF5D PRG:4F5D 8A
clc ; CPU:$CF5E PRG:4F5E 18
adc #$10 ; CPU:$CF5F PRG:4F5F 69 10
tax ; CPU:$CF61 PRG:4F61 AA
cmp #$70 ; CPU:$CF62 PRG:4F62 C9 70
bcc CheckActorCount_OnCarryClear ; CPU:$CF64 PRG:4F64 90 E9
lda #$00 ; CPU:$CF66 PRG:4F66 A9 00
sta Zp60 ; CPU:$CF68 PRG:4F68 85 60
lda Zp71 ; CPU:$CF6A PRG:4F6A A5 71
cmp #$02 ; CPU:$CF6C PRG:4F6C C9 02
beq CheckActorCount_Loop5 ; CPU:$CF6E PRG:4F6E F0 2C
lda Zp69 ; CPU:$CF70 PRG:4F70 A5 69
bne CheckActorCount_Loop4 ; CPU:$CF72 PRG:4F72 D0 27
lda Zp63 ; CPU:$CF74 PRG:4F74 A5 63
cmp #$1E ; CPU:$CF76 PRG:4F76 C9 1E
bcc CheckActorCount_Loop3 ; CPU:$CF78 PRG:4F78 90 0F
lda #$00 ; CPU:$CF7A PRG:4F7A A9 00
sta Zp63 ; CPU:$CF7C PRG:4F7C 85 63
inc Zp66 ; CPU:$CF7E PRG:4F7E E6 66
lda Zp66 ; CPU:$CF80 PRG:4F80 A5 66
cmp #$05 ; CPU:$CF82 PRG:4F82 C9 05
beq CheckActorCount_Loop3 ; CPU:$CF84 PRG:4F84 F0 03
jsr Sub_C0F2 ; CPU:$CF86 PRG:4F86 20 F2 C0
; -----------------------------------------------------------------------------
; Routine: CheckActorCount_Loop3
; Global: Branch target inside CheckActorCount: taken when Loop3.
; Local: Part of CheckActorCount.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckActorCount_Loop3:
lda Zp62 ; CPU:$CF89 PRG:4F89 A5 62
cmp #$C8 ; CPU:$CF8B PRG:4F8B C9 C8
bcc CheckActorCount_Loop4 ; CPU:$CF8D PRG:4F8D 90 0C
; -----------------------------------------------------------------------------
; Routine: Sub_CF8F
; Global: Branch target inside Sub: taken when CF8F.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_CF8F:
lda #$07 ; CPU:$CF8F PRG:4F8F A9 07
sta Zp60 ; CPU:$CF91 PRG:4F91 85 60
lda #$00 ; CPU:$CF93 PRG:4F93 A9 00
sta Zp61 ; CPU:$CF95 PRG:4F95 85 61
lda #$32 ; CPU:$CF97 PRG:4F97 A9 32
sta Zp56 ; CPU:$CF99 PRG:4F99 85 56
; -----------------------------------------------------------------------------
; Routine: CheckActorCount_Loop4
; Global: Branch target inside CheckActorCount: taken when Loop4.
; Local: Part of CheckActorCount.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckActorCount_Loop4:
rts ; CPU:$CF9B PRG:4F9B 60
; -----------------------------------------------------------------------------
; Routine: CheckActorCount_Loop5
; Global: Branch target inside CheckActorCount: taken when Loop5.
; Local: Part of CheckActorCount.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckActorCount_Loop5:
ldx Zp65 ; CPU:$CF9C PRG:4F9C A6 65
lda $0400,x ; CPU:$CF9E PRG:4F9E BD 00 04
and #$40 ; CPU:$CFA1 PRG:4FA1 29 40
bne CheckActorCount_Loop4 ; CPU:$CFA3 PRG:4FA3 D0 F6
jmp Sub_CF8F ; CPU:$CFA5 PRG:4FA5 4C 8F CF
; ---- data $CFA8-$CFFC (85 bytes) ----
; referenced by `lda $CFC5,y` at $CE9A (operand $CFC5 falls inside this region)
; referenced by `lda $CFC5,y` at $CEA0 (operand $CFC5 falls inside this region)
; referenced by `lda $CFC5,x` at $CEE2 (operand $CFC5 falls inside this region)
; referenced by `lda $CFC5,x` at $CEE8 (operand $CFC5 falls inside this region)
.byte $A9, $00, $85, $98, $A5, $6F, $F0, $0C, $A5, $96, $D0, $08, $AD, $E8, $05, $C9 ; CPU:$CFA8 PRG:4FA8 A9 00 85 98 A5 6F F0 0C A5 96 D0 08 AD E8 05 C9
.byte $05, $D0, $01, $60, $A9, $09, $85, $6A, $A9, $00, $85, $6C, $60, $50, $24, $50 ; CPU:$CFB8 PRG:4FB8 05 D0 01 60 A9 09 85 6A A9 00 85 6C 60 50 24 50
.byte $24, $50, $24, $50, $24, $98, $22, $BA, $22, $D8, $22, $FA, $22, $D6, $22, $B8 ; CPU:$CFC8 PRG:4FC8 24 50 24 50 24 98 22 BA 22 D8 22 FA 22 D6 22 B8
.byte $22, $DA, $22, $F8, $22, $F6, $22, $98, $22, $D8, $22, $18, $23, $B6, $22, $BA ; CPU:$CFD8 PRG:4FD8 22 DA 22 F8 22 F6 22 98 22 D8 22 18 23 B6 22 BA
.byte $22, $D8, $22, $F6, $22, $98, $22, $7A, $22, $D8, $22, $18, $23, $B6, $22, $D8 ; CPU:$CFE8 PRG:4FE8 22 D8 22 F6 22 98 22 7A 22 D8 22 18 23 B6 22 D8
.byte $22, $BA, $22, $18, $23 ; CPU:$CFF8 PRG:4FF8 22 BA 22 18 23
; -----------------------------------------------------------------------------
; Routine: Sub_CFFD
; Global: Branch target inside Sub: taken when CFFD.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_CFFD:
ldy #$00 ; CPU:$CFFD PRG:4FFD A0 00
ldx #$00 ; CPU:$CFFF PRG:4FFF A2 00
; -----------------------------------------------------------------------------
; Routine: CheckActorCount_OnCarryClear2
; Global: Branch target inside CheckActorCount: taken when OnCarryClear2.
; Local: Part of CheckActorCount.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckActorCount_OnCarryClear2:
lda $0400,x ; CPU:$D001 PRG:5001 BD 00 04
and #$87 ; CPU:$D004 PRG:5004 29 87
cmp Zp20 ; CPU:$D006 PRG:5006 C5 20
beq CheckActorCount_Loop6 ; CPU:$D008 PRG:5008 F0 04
lda #$00 ; CPU:$D00A PRG:500A A9 00
beq CheckActorCount_Loop7 ; CPU:$D00C PRG:500C F0 07
; -----------------------------------------------------------------------------
; Routine: CheckActorCount_Loop6
; Global: Branch target inside CheckActorCount: taken when Loop6.
; Local: Part of CheckActorCount.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckActorCount_Loop6:
iny ; CPU:$D00E PRG:500E C8
txa ; CPU:$D00F PRG:500F 8A
sta $0522,y ; CPU:$D010 PRG:5010 99 22 05
lda Zp20 ; CPU:$D013 PRG:5013 A5 20
; -----------------------------------------------------------------------------
; Routine: CheckActorCount_Loop7
; Global: Branch target inside CheckActorCount: taken when Loop7.
; Local: Part of CheckActorCount.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckActorCount_Loop7:
sta $0471,x ; CPU:$D015 PRG:5015 9D 71 04
inx ; CPU:$D018 PRG:5018 E8
cpx #$70 ; CPU:$D019 PRG:5019 E0 70
bcc CheckActorCount_OnCarryClear2 ; CPU:$D01B PRG:501B 90 E4
cpy #$00 ; CPU:$D01D PRG:501D C0 00
bne CheckActorCount_OnNonzero ; CPU:$D01F PRG:501F D0 01
rts ; CPU:$D021 PRG:5021 60
; -----------------------------------------------------------------------------
; Routine: CheckActorCount_OnNonzero
; Global: Branch target inside CheckActorCount: taken when the tested value is not zero.
; Local: Part of CheckActorCount.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckActorCount_OnNonzero:
ldx $0522,y ; CPU:$D022 PRG:5022 BE 22 05
lda $0471,x ; CPU:$D025 PRG:5025 BD 71 04
beq CheckActorCount_Loop8 ; CPU:$D028 PRG:5028 F0 18
sty Zp25 ; CPU:$D02A PRG:502A 84 25
ldy #$00 ; CPU:$D02C PRG:502C A0 00
sty Zp21 ; CPU:$D02E PRG:502E 84 21
tya ; CPU:$D030 PRG:5030 98
sta $0471,x ; CPU:$D031 PRG:5031 9D 71 04
txa ; CPU:$D034 PRG:5034 8A
sta $0540,y ; CPU:$D035 PRG:5035 99 40 05
stx Zp20 ; CPU:$D038 PRG:5038 86 20
iny ; CPU:$D03A PRG:503A C8
sty Zp59 ; CPU:$D03B PRG:503B 84 59
jsr Sub_D046 ; CPU:$D03D PRG:503D 20 46 D0
; ---- data $D040-$D041 (2 bytes) ----
.byte $A4, $25 ; CPU:$D040 PRG:5040 A4 25
; -----------------------------------------------------------------------------
; Routine: CheckActorCount_Loop8
; Global: Branch target inside CheckActorCount: taken when Loop8.
; Local: Part of CheckActorCount.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckActorCount_Loop8:
dey ; CPU:$D042 PRG:5042 88
bne CheckActorCount_OnNonzero ; CPU:$D043 PRG:5043 D0 DD
rts ; CPU:$D045 PRG:5045 60
; -----------------------------------------------------------------------------
; Routine: Sub_D046
; Global: Branch target inside Sub: taken when D046.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_D046:
ldy #$06 ; CPU:$D046 PRG:5046 A0 06
sty Zp22 ; CPU:$D048 PRG:5048 84 22
ldx #$00 ; CPU:$D04A PRG:504A A2 00
stx Zp24 ; CPU:$D04C PRG:504C 86 24
; -----------------------------------------------------------------------------
; Routine: CheckActorCount_OnNonzero2
; Global: Branch target inside CheckActorCount: taken when OnNonzero2.
; Local: Part of CheckActorCount.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckActorCount_OnNonzero2:
ldy Zp22 ; CPU:$D04E PRG:504E A4 22
lda Zp20 ; CPU:$D050 PRG:5050 A5 20
and #$10 ; CPU:$D052 PRG:5052 29 10
beq CheckActorCount_Loop9 ; CPU:$D054 PRG:5054 F0 05
tya ; CPU:$D056 PRG:5056 98
clc ; CPU:$D057 PRG:5057 18
adc #$06 ; CPU:$D058 PRG:5058 69 06
tay ; CPU:$D05A PRG:505A A8
; -----------------------------------------------------------------------------
; Routine: CheckActorCount_Loop9
; Global: Branch target inside CheckActorCount: taken when Loop9.
; Local: Part of CheckActorCount.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckActorCount_Loop9:
lda $F87A,y ; CPU:$D05B PRG:505B B9 7A F8
clc ; CPU:$D05E PRG:505E 18
adc Zp20 ; CPU:$D05F PRG:505F 65 20
tax ; CPU:$D061 PRG:5061 AA
and #$0F ; CPU:$D062 PRG:5062 29 0F
cmp #$0E ; CPU:$D064 PRG:5064 C9 0E
bcs CheckActorCount_Loop10 ; CPU:$D066 PRG:5066 B0 16
txa ; CPU:$D068 PRG:5068 8A
and #$F0 ; CPU:$D069 PRG:5069 29 F0
cmp #$70 ; CPU:$D06B PRG:506B C9 70
bcs CheckActorCount_Loop10 ; CPU:$D06D PRG:506D B0 0F
lda $0471,x ; CPU:$D06F PRG:506F BD 71 04
beq CheckActorCount_Loop10 ; CPU:$D072 PRG:5072 F0 0A
stx Zp23 ; CPU:$D074 PRG:5074 86 23
inc Zp24 ; CPU:$D076 PRG:5076 E6 24
ldx Zp24 ; CPU:$D078 PRG:5078 A6 24
cpx #$02 ; CPU:$D07A PRG:507A E0 02
bcs CheckActorCount_Loop11 ; CPU:$D07C PRG:507C B0 06
; -----------------------------------------------------------------------------
; Routine: CheckActorCount_Loop10
; Global: Branch target inside CheckActorCount: taken when Loop10.
; Local: Part of CheckActorCount.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckActorCount_Loop10:
dec Zp22 ; CPU:$D07E PRG:507E C6 22
bne CheckActorCount_OnNonzero2 ; CPU:$D080 PRG:5080 D0 CC
beq CheckActorCount_Loop12 ; CPU:$D082 PRG:5082 F0 09
; -----------------------------------------------------------------------------
; Routine: CheckActorCount_Loop11
; Global: Branch target inside CheckActorCount: taken when Loop11.
; Local: Part of CheckActorCount.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckActorCount_Loop11:
inc Zp21 ; CPU:$D084 PRG:5084 E6 21
ldx Zp21 ; CPU:$D086 PRG:5086 A6 21
lda Zp20 ; CPU:$D088 PRG:5088 A5 20
sta $0559,x ; CPU:$D08A PRG:508A 9D 59 05
; -----------------------------------------------------------------------------
; Routine: CheckActorCount_Loop12
; Global: Branch target inside CheckActorCount: taken when Loop12.
; Local: Part of CheckActorCount.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckActorCount_Loop12:
ldx Zp24 ; CPU:$D08D PRG:508D A6 24
beq CheckActorCount_Loop13 ; CPU:$D08F PRG:508F F0 14
ldx Zp23 ; CPU:$D091 PRG:5091 A6 23
lda #$00 ; CPU:$D093 PRG:5093 A9 00
sta $0471,x ; CPU:$D095 PRG:5095 9D 71 04
ldy Zp59 ; CPU:$D098 PRG:5098 A4 59
txa ; CPU:$D09A PRG:509A 8A
sta $0540,y ; CPU:$D09B PRG:509B 99 40 05
stx Zp20 ; CPU:$D09E PRG:509E 86 20
inc Zp59 ; CPU:$D0A0 PRG:50A0 E6 59
jmp Sub_D046 ; CPU:$D0A2 PRG:50A2 4C 46 D0
; -----------------------------------------------------------------------------
; Routine: CheckActorCount_Loop13
; Global: Branch target inside CheckActorCount: taken when Loop13.
; Local: Part of CheckActorCount.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckActorCount_Loop13:
ldx Zp21 ; CPU:$D0A5 PRG:50A5 A6 21
beq CheckActorCount_Loop14 ; CPU:$D0A7 PRG:50A7 F0 0A
lda $0559,x ; CPU:$D0A9 PRG:50A9 BD 59 05
dec Zp21 ; CPU:$D0AC PRG:50AC C6 21
sta Zp20 ; CPU:$D0AE PRG:50AE 85 20
jmp Sub_D046 ; CPU:$D0B0 PRG:50B0 4C 46 D0
; -----------------------------------------------------------------------------
; Routine: CheckActorCount_Loop14
; Global: Branch target inside CheckActorCount: taken when Loop14.
; Local: Part of CheckActorCount.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckActorCount_Loop14:
ldy Zp59 ; CPU:$D0B3 PRG:50B3 A4 59
cpy #$04 ; CPU:$D0B5 PRG:50B5 C0 04
bcc CheckActorCount_Loop15 ; CPU:$D0B7 PRG:50B7 90 29
tya ; CPU:$D0B9 PRG:50B9 98
clc ; CPU:$D0BA PRG:50BA 18
adc $05A5 ; CPU:$D0BB PRG:50BB 6D A5 05
sta $05A5 ; CPU:$D0BE PRG:50BE 8D A5 05
tya ; CPU:$D0C1 PRG:50C1 98
sec ; CPU:$D0C2 PRG:50C2 38
sbc #$03 ; CPU:$D0C3 PRG:50C3 E9 03
asl a ; CPU:$D0C5 PRG:50C5 0A
asl a ; CPU:$D0C6 PRG:50C6 0A
clc ; CPU:$D0C7 PRG:50C7 18
adc $05A6 ; CPU:$D0C8 PRG:50C8 6D A6 05
sta $05A6 ; CPU:$D0CB PRG:50CB 8D A6 05
dey ; CPU:$D0CE PRG:50CE 88
ldx Zp58 ; CPU:$D0CF PRG:50CF A6 58
; -----------------------------------------------------------------------------
; Routine: CheckActorCount_OnNonnegative
; Global: Branch target inside CheckActorCount: taken when the tested value is not negative.
; Local: Part of CheckActorCount.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckActorCount_OnNonnegative:
lda $0540,y ; CPU:$D0D1 PRG:50D1 B9 40 05
sta $0568,x ; CPU:$D0D4 PRG:50D4 9D 68 05
inx ; CPU:$D0D7 PRG:50D7 E8
dey ; CPU:$D0D8 PRG:50D8 88
bpl CheckActorCount_OnNonnegative ; CPU:$D0D9 PRG:50D9 10 F6
lda #$FF ; CPU:$D0DB PRG:50DB A9 FF
sta $0568,x ; CPU:$D0DD PRG:50DD 9D 68 05
stx Zp58 ; CPU:$D0E0 PRG:50E0 86 58
; -----------------------------------------------------------------------------
; Routine: CheckActorCount_Loop15
; Global: Branch target inside CheckActorCount: taken when Loop15.
; Local: Part of CheckActorCount.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
CheckActorCount_Loop15:
lda #$00 ; CPU:$D0E2 PRG:50E2 A9 00
sta Zp59 ; CPU:$D0E4 PRG:50E4 85 59
rts ; CPU:$D0E6 PRG:50E6 60
; -----------------------------------------------------------------------------
; Routine: TickActorsOnEvenFrame
; Global: Updates the actors on every second frame.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickActorsOnEvenFrame:
lda FrameCounter ; CPU:$D0E7 PRG:50E7 A5 31
ror a ; CPU:$D0E9 PRG:50E9 6A
bcs TickActorsOnEvenFrame_Loop ; CPU:$D0EA PRG:50EA B0 01
rts ; CPU:$D0EC PRG:50EC 60
; -----------------------------------------------------------------------------
; Routine: TickActorsOnEvenFrame_Loop
; Global: Branch target inside TickActorsOnEvenFrame: taken when the loop repeats.
; Local: Part of TickActorsOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickActorsOnEvenFrame_Loop:
inc Zp56 ; CPU:$D0ED PRG:50ED E6 56
lda Zp56 ; CPU:$D0EF PRG:50EF A5 56
cmp #$04 ; CPU:$D0F1 PRG:50F1 C9 04
bcc TickActorsOnEvenFrame_Loop2; CPU:$D0F3 PRG:50F3 90 11
lda #$00 ; CPU:$D0F5 PRG:50F5 A9 00
sta Zp56 ; CPU:$D0F7 PRG:50F7 85 56
sta Zp59 ; CPU:$D0F9 PRG:50F9 85 59
inc Zp3F ; CPU:$D0FB PRG:50FB E6 3F
lda Zp3F ; CPU:$D0FD PRG:50FD A5 3F
cmp #$08 ; CPU:$D0FF PRG:50FF C9 08
bcc TickActorsOnEvenFrame_Loop2; CPU:$D101 PRG:5101 90 03
inc Zp61 ; CPU:$D103 PRG:5103 E6 61
rts ; CPU:$D105 PRG:5105 60
; -----------------------------------------------------------------------------
; Routine: TickActorsOnEvenFrame_Loop2
; Global: Branch target inside TickActorsOnEvenFrame: taken when Loop2.
; Local: Part of TickActorsOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickActorsOnEvenFrame_Loop2:
ldy Zp59 ; CPU:$D106 PRG:5106 A4 59
lda $0568,y ; CPU:$D108 PRG:5108 B9 68 05
cmp #$FF ; CPU:$D10B PRG:510B C9 FF
bne TickActorsOnEvenFrame_Loop3; CPU:$D10D PRG:510D D0 01
rts ; CPU:$D10F PRG:510F 60
; -----------------------------------------------------------------------------
; Routine: TickActorsOnEvenFrame_Loop3
; Global: Branch target inside TickActorsOnEvenFrame: taken when Loop3.
; Local: Part of TickActorsOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickActorsOnEvenFrame_Loop3:
ldx #$00 ; CPU:$D110 PRG:5110 A2 00
; -----------------------------------------------------------------------------
; Routine: TickActorsOnEvenFrame_OnCarryClear
; Global: Branch target inside TickActorsOnEvenFrame: taken when the addition or subtraction did not carry.
; Local: Part of TickActorsOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickActorsOnEvenFrame_OnCarryClear:
sta $0540,x ; CPU:$D112 PRG:5112 9D 40 05
inx ; CPU:$D115 PRG:5115 E8
iny ; CPU:$D116 PRG:5116 C8
lda $0568,y ; CPU:$D117 PRG:5117 B9 68 05
cmp #$FF ; CPU:$D11A PRG:511A C9 FF
beq TickActorsOnEvenFrame_Loop4; CPU:$D11C PRG:511C F0 04
cpx #$0D ; CPU:$D11E PRG:511E E0 0D
bcc TickActorsOnEvenFrame_OnCarryClear ; CPU:$D120 PRG:5120 90 F0
; -----------------------------------------------------------------------------
; Routine: TickActorsOnEvenFrame_Loop4
; Global: Branch target inside TickActorsOnEvenFrame: taken when Loop4.
; Local: Part of TickActorsOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickActorsOnEvenFrame_Loop4:
sty Zp59 ; CPU:$D122 PRG:5122 84 59
stx Zp24 ; CPU:$D124 PRG:5124 86 24
stx Zp21 ; CPU:$D126 PRG:5126 86 21
ldx #$00 ; CPU:$D128 PRG:5128 A2 00
stx Zp36 ; CPU:$D12A PRG:512A 86 36
; -----------------------------------------------------------------------------
; Routine: TickActorsOnEvenFrame_OnNonzero
; Global: Branch target inside TickActorsOnEvenFrame: taken when the tested value is not zero.
; Local: Part of TickActorsOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickActorsOnEvenFrame_OnNonzero:
ldx Zp36 ; CPU:$D12C PRG:512C A6 36
lda $0540,x ; CPU:$D12E PRG:512E BD 40 05
jsr Sub_84BF ; CPU:$D131 PRG:5131 20 BF 84
lda Zp36 ; CPU:$D134 PRG:5134 A5 36
asl a ; CPU:$D136 PRG:5136 0A
asl a ; CPU:$D137 PRG:5137 0A
tay ; CPU:$D138 PRG:5138 A8
lda Zp19 ; CPU:$D139 PRG:5139 A5 19
sta $0300,y ; CPU:$D13B PRG:513B 99 00 03
lda Zp1A ; CPU:$D13E PRG:513E A5 1A
sta $0301,y ; CPU:$D140 PRG:5140 99 01 03
inc Zp36 ; CPU:$D143 PRG:5143 E6 36
dec Zp24 ; CPU:$D145 PRG:5145 C6 24
bne TickActorsOnEvenFrame_OnNonzero ; CPU:$D147 PRG:5147 D0 E3
lda #$00 ; CPU:$D149 PRG:5149 A9 00
sta $0304,y ; CPU:$D14B PRG:514B 99 04 03
ldx Zp3F ; CPU:$D14E PRG:514E A6 3F
lda $D1A8,x ; CPU:$D150 PRG:5150 BD A8 D1
cmp #$03 ; CPU:$D153 PRG:5153 C9 03
bcc TickActorsOnEvenFrame_Loop5; CPU:$D155 PRG:5155 90 04
jsr Sub_D181 ; CPU:$D157 PRG:5157 20 81 D1
rts ; CPU:$D15A PRG:515A 60
; -----------------------------------------------------------------------------
; Routine: TickActorsOnEvenFrame_Loop5
; Global: Branch target inside TickActorsOnEvenFrame: taken when Loop5.
; Local: Part of TickActorsOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickActorsOnEvenFrame_Loop5:
jsr Sub_D15F ; CPU:$D15B PRG:515B 20 5F D1
rts ; CPU:$D15E PRG:515E 60
; -----------------------------------------------------------------------------
; Routine: Sub_D15F
; Global: Branch target inside Sub: taken when D15F.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_D15F:
asl a ; CPU:$D15F PRG:515F 0A
tax ; CPU:$D160 PRG:5160 AA
lda $F2FB,x ; CPU:$D161 PRG:5161 BD FB F2
sta Zp19 ; CPU:$D164 PRG:5164 85 19
lda $F2FC,x ; CPU:$D166 PRG:5166 BD FC F2
sta Zp1A ; CPU:$D169 PRG:5169 85 1A
ldx #$00 ; CPU:$D16B PRG:516B A2 00
; -----------------------------------------------------------------------------
; Routine: TickActorsOnEvenFrame_OnNonnegative
; Global: Branch target inside TickActorsOnEvenFrame: taken when the tested value is not negative.
; Local: Part of TickActorsOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickActorsOnEvenFrame_OnNonnegative:
txa ; CPU:$D16D PRG:516D 8A
asl a ; CPU:$D16E PRG:516E 0A
asl a ; CPU:$D16F PRG:516F 0A
tay ; CPU:$D170 PRG:5170 A8
lda Zp19 ; CPU:$D171 PRG:5171 A5 19
sta $0302,y ; CPU:$D173 PRG:5173 99 02 03
lda Zp1A ; CPU:$D176 PRG:5176 A5 1A
sta $0303,y ; CPU:$D178 PRG:5178 99 03 03
inx ; CPU:$D17B PRG:517B E8
dec Zp21 ; CPU:$D17C PRG:517C C6 21
bpl TickActorsOnEvenFrame_OnNonnegative ; CPU:$D17E PRG:517E 10 ED
rts ; CPU:$D180 PRG:5180 60
; -----------------------------------------------------------------------------
; Routine: Sub_D181
; Global: Branch target inside Sub: taken when D181.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_D181:
ldx #$00 ; CPU:$D181 PRG:5181 A2 00
; -----------------------------------------------------------------------------
; Routine: TickActorsOnEvenFrame_OnNonnegative2
; Global: Branch target inside TickActorsOnEvenFrame: taken when OnNonnegative2.
; Local: Part of TickActorsOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickActorsOnEvenFrame_OnNonnegative2:
lda $0540,x ; CPU:$D183 PRG:5183 BD 40 05
stx Zp24 ; CPU:$D186 PRG:5186 86 24
tay ; CPU:$D188 PRG:5188 A8
lda $0400,y ; CPU:$D189 PRG:5189 B9 00 04
and #$07 ; CPU:$D18C PRG:518C 29 07
asl a ; CPU:$D18E PRG:518E 0A
tay ; CPU:$D18F PRG:518F A8
txa ; CPU:$D190 PRG:5190 8A
asl a ; CPU:$D191 PRG:5191 0A
asl a ; CPU:$D192 PRG:5192 0A
tax ; CPU:$D193 PRG:5193 AA
lda $F29E,y ; CPU:$D194 PRG:5194 B9 9E F2
sta $0302,x ; CPU:$D197 PRG:5197 9D 02 03
lda $F29F,y ; CPU:$D19A PRG:519A B9 9F F2
sta $0303,x ; CPU:$D19D PRG:519D 9D 03 03
ldx Zp24 ; CPU:$D1A0 PRG:51A0 A6 24
inx ; CPU:$D1A2 PRG:51A2 E8
dec Zp21 ; CPU:$D1A3 PRG:51A3 C6 21
bpl TickActorsOnEvenFrame_OnNonnegative2 ; CPU:$D1A5 PRG:51A5 10 DC
rts ; CPU:$D1A7 PRG:51A7 60
; ---- data $D1A8-$D1AF (8 bytes) ----
; referenced by `lda $D1A8,x` at $D150 (operand $D1A8 falls inside this region)
.byte $00, $03, $00, $03, $00, $01, $02, $00 ; CPU:$D1A8 PRG:51A8 00 03 00 03 00 01 02 00
; -----------------------------------------------------------------------------
; Routine: InitPlayerPosition
; Global: Places the player at the start of the level.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
InitPlayerPosition:
lda #$00 ; CPU:$D1B0 PRG:51B0 A9 00
sta Zp22 ; CPU:$D1B2 PRG:51B2 85 22
lda #$FF ; CPU:$D1B4 PRG:51B4 A9 FF
sta Zp24 ; CPU:$D1B6 PRG:51B6 85 24
; -----------------------------------------------------------------------------
; Routine: InitPlayerPosition_OnCarryClear
; Global: Branch target inside InitPlayerPosition: taken when the addition or subtraction did not carry.
; Local: Part of InitPlayerPosition.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
InitPlayerPosition_OnCarryClear:
lda Zp22 ; CPU:$D1B8 PRG:51B8 A5 22
asl a ; CPU:$D1BA PRG:51BA 0A
asl a ; CPU:$D1BB PRG:51BB 0A
asl a ; CPU:$D1BC PRG:51BC 0A
asl a ; CPU:$D1BD PRG:51BD 0A
tax ; CPU:$D1BE PRG:51BE AA
lda #$0E ; CPU:$D1BF PRG:51BF A9 0E
sta Zp1F ; CPU:$D1C1 PRG:51C1 85 1F
; -----------------------------------------------------------------------------
; Routine: InitPlayerPosition_OnNonzero
; Global: Branch target inside InitPlayerPosition: taken when the tested value is not zero.
; Local: Part of InitPlayerPosition.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
InitPlayerPosition_OnNonzero:
lda $0400,x ; CPU:$D1C3 PRG:51C3 BD 00 04
bne InitPlayerPosition_Loop2 ; CPU:$D1C6 PRG:51C6 D0 30
stx Zp58 ; CPU:$D1C8 PRG:51C8 86 58
txa ; CPU:$D1CA PRG:51CA 8A
ldy Zp22 ; CPU:$D1CB PRG:51CB A4 22
sta $0540,y ; CPU:$D1CD PRG:51CD 99 40 05
inx ; CPU:$D1D0 PRG:51D0 E8
; -----------------------------------------------------------------------------
; Routine: InitPlayerPosition_OnNonzero2
; Global: Branch target inside InitPlayerPosition: taken when OnNonzero2.
; Local: Part of InitPlayerPosition.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
InitPlayerPosition_OnNonzero2:
lda $0400,x ; CPU:$D1D1 PRG:51D1 BD 00 04
beq InitPlayerPosition_Loop ; CPU:$D1D4 PRG:51D4 F0 10
ldy Zp58 ; CPU:$D1D6 PRG:51D6 A4 58
sta $0400,y ; CPU:$D1D8 PRG:51D8 99 00 04
inc Zp58 ; CPU:$D1DB PRG:51DB E6 58
lda #$00 ; CPU:$D1DD PRG:51DD A9 00
sta $0400,x ; CPU:$D1DF PRG:51DF 9D 00 04
stx Zp24 ; CPU:$D1E2 PRG:51E2 86 24
inc Zp24 ; CPU:$D1E4 PRG:51E4 E6 24
; -----------------------------------------------------------------------------
; Routine: InitPlayerPosition_Loop
; Global: Branch target inside InitPlayerPosition: taken when the loop repeats.
; Local: Part of InitPlayerPosition.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
InitPlayerPosition_Loop:
inx ; CPU:$D1E6 PRG:51E6 E8
dec Zp1F ; CPU:$D1E7 PRG:51E7 C6 1F
bne InitPlayerPosition_OnNonzero2 ; CPU:$D1E9 PRG:51E9 D0 E6
ldy Zp22 ; CPU:$D1EB PRG:51EB A4 22
lda Zp24 ; CPU:$D1ED PRG:51ED A5 24
sta $0522,y ; CPU:$D1EF PRG:51EF 99 22 05
lda #$FF ; CPU:$D1F2 PRG:51F2 A9 FF
sta Zp24 ; CPU:$D1F4 PRG:51F4 85 24
bmi InitPlayerPosition_Loop3 ; CPU:$D1F6 PRG:51F6 30 0C
; -----------------------------------------------------------------------------
; Routine: InitPlayerPosition_Loop2
; Global: Branch target inside InitPlayerPosition: taken when Loop2.
; Local: Part of InitPlayerPosition.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
InitPlayerPosition_Loop2:
inx ; CPU:$D1F8 PRG:51F8 E8
dec Zp1F ; CPU:$D1F9 PRG:51F9 C6 1F
bne InitPlayerPosition_OnNonzero ; CPU:$D1FB PRG:51FB D0 C6
ldy Zp22 ; CPU:$D1FD PRG:51FD A4 22
lda #$FF ; CPU:$D1FF PRG:51FF A9 FF
sta $0522,y ; CPU:$D201 PRG:5201 99 22 05
; -----------------------------------------------------------------------------
; Routine: InitPlayerPosition_Loop3
; Global: Branch target inside InitPlayerPosition: taken when Loop3.
; Local: Part of InitPlayerPosition.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
InitPlayerPosition_Loop3:
inc Zp22 ; CPU:$D204 PRG:5204 E6 22
lda Zp22 ; CPU:$D206 PRG:5206 A5 22
cmp #$07 ; CPU:$D208 PRG:5208 C9 07
bcc InitPlayerPosition_OnCarryClear ; CPU:$D20A PRG:520A 90 AC
lda #$00 ; CPU:$D20C PRG:520C A9 00
sta Zp58 ; CPU:$D20E PRG:520E 85 58
inc Zp61 ; CPU:$D210 PRG:5210 E6 61
lda Zp65 ; CPU:$D212 PRG:5212 A5 65
bmi InitPlayerPosition_Loop4 ; CPU:$D214 PRG:5214 30 03
jsr Sub_D45E ; CPU:$D216 PRG:5216 20 5E D4
; -----------------------------------------------------------------------------
; Routine: InitPlayerPosition_Loop4
; Global: Branch target inside InitPlayerPosition: taken when Loop4.
; Local: Part of InitPlayerPosition.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
InitPlayerPosition_Loop4:
rts ; CPU:$D219 PRG:5219 60
; -----------------------------------------------------------------------------
; Routine: TickTimerOnEvenFrame
; Global: Updates the level timer on every second frame.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickTimerOnEvenFrame:
lda FrameCounter ; CPU:$D21A PRG:521A A5 31
ror a ; CPU:$D21C PRG:521C 6A
bcs TickTimerOnEvenFrame_Loop ; CPU:$D21D PRG:521D B0 01
rts ; CPU:$D21F PRG:521F 60
; -----------------------------------------------------------------------------
; Routine: TickTimerOnEvenFrame_Loop
; Global: Branch target inside TickTimerOnEvenFrame: taken when the loop repeats.
; Local: Part of TickTimerOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickTimerOnEvenFrame_Loop:
lda #$00 ; CPU:$D220 PRG:5220 A9 00
sta Zp36 ; CPU:$D222 PRG:5222 85 36
lda #$08 ; CPU:$D224 PRG:5224 A9 08
sta Zp1F ; CPU:$D226 PRG:5226 85 1F
ldy Zp58 ; CPU:$D228 PRG:5228 A4 58
; -----------------------------------------------------------------------------
; Routine: TickTimerOnEvenFrame_OnCarryClear
; Global: Branch target inside TickTimerOnEvenFrame: taken when the addition or subtraction did not carry.
; Local: Part of TickTimerOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickTimerOnEvenFrame_OnCarryClear:
lda $0522,y ; CPU:$D22A PRG:522A B9 22 05
bpl TickTimerOnEvenFrame_Loop2 ; CPU:$D22D PRG:522D 10 12
; -----------------------------------------------------------------------------
; Routine: TickTimerOnEvenFrame_OnCarrySet
; Global: Branch target inside TickTimerOnEvenFrame: taken when the addition or subtraction carried.
; Local: Part of TickTimerOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickTimerOnEvenFrame_OnCarrySet:
inc Zp58 ; CPU:$D22F PRG:522F E6 58
ldy Zp58 ; CPU:$D231 PRG:5231 A4 58
cpy #$07 ; CPU:$D233 PRG:5233 C0 07
bcc TickTimerOnEvenFrame_OnCarryClear ; CPU:$D235 PRG:5235 90 F3
lda #$00 ; CPU:$D237 PRG:5237 A9 00
ldx Zp36 ; CPU:$D239 PRG:5239 A6 36
sta $0300,x ; CPU:$D23B PRG:523B 9D 00 03
inc Zp61 ; CPU:$D23E PRG:523E E6 61
rts ; CPU:$D240 PRG:5240 60
; -----------------------------------------------------------------------------
; Routine: TickTimerOnEvenFrame_Loop2
; Global: Branch target inside TickTimerOnEvenFrame: taken when Loop2.
; Local: Part of TickTimerOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickTimerOnEvenFrame_Loop2:
sta Zp24 ; CPU:$D241 PRG:5241 85 24
lda $0540,y ; CPU:$D243 PRG:5243 B9 40 05
sta Zp25 ; CPU:$D246 PRG:5246 85 25
jsr Sub_84BF ; CPU:$D248 PRG:5248 20 BF 84
; -----------------------------------------------------------------------------
; Routine: TickTimerOnEvenFrame_OnZero
; Global: Branch target inside TickTimerOnEvenFrame: taken when the tested value is zero.
; Local: Part of TickTimerOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickTimerOnEvenFrame_OnZero:
ldx Zp36 ; CPU:$D24B PRG:524B A6 36
lda Zp19 ; CPU:$D24D PRG:524D A5 19
sta $0300,x ; CPU:$D24F PRG:524F 9D 00 03
inx ; CPU:$D252 PRG:5252 E8
lda Zp1A ; CPU:$D253 PRG:5253 A5 1A
sta $0300,x ; CPU:$D255 PRG:5255 9D 00 03
inx ; CPU:$D258 PRG:5258 E8
lda Zp25 ; CPU:$D259 PRG:5259 A5 25
and #$0F ; CPU:$D25B PRG:525B 29 0F
cmp #$0B ; CPU:$D25D PRG:525D C9 0B
bcs TickTimerOnEvenFrame_Loop5 ; CPU:$D25F PRG:525F B0 33
ldy Zp25 ; CPU:$D261 PRG:5261 A4 25
lda $0400,y ; CPU:$D263 PRG:5263 B9 00 04
and #$87 ; CPU:$D266 PRG:5266 29 87
sta Zp1B ; CPU:$D268 PRG:5268 85 1B
bmi TickTimerOnEvenFrame_Loop3 ; CPU:$D26A PRG:526A 30 13
asl a ; CPU:$D26C PRG:526C 0A
tay ; CPU:$D26D PRG:526D A8
lda $F29E,y ; CPU:$D26E PRG:526E B9 9E F2
sta $0300,x ; CPU:$D271 PRG:5271 9D 00 03
inx ; CPU:$D274 PRG:5274 E8
lda $F29F,y ; CPU:$D275 PRG:5275 B9 9F F2
sta $0300,x ; CPU:$D278 PRG:5278 9D 00 03
lda #$00 ; CPU:$D27B PRG:527B A9 00
beq TickTimerOnEvenFrame_Loop4 ; CPU:$D27D PRG:527D F0 0B
; -----------------------------------------------------------------------------
; Routine: TickTimerOnEvenFrame_Loop3
; Global: Branch target inside TickTimerOnEvenFrame: taken when Loop3.
; Local: Part of TickTimerOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickTimerOnEvenFrame_Loop3:
lda #$0D ; CPU:$D27F PRG:527F A9 0D
sta $0300,x ; CPU:$D281 PRG:5281 9D 00 03
inx ; CPU:$D284 PRG:5284 E8
lda #$F3 ; CPU:$D285 PRG:5285 A9 F3
sta $0300,x ; CPU:$D287 PRG:5287 9D 00 03
; -----------------------------------------------------------------------------
; Routine: TickTimerOnEvenFrame_Loop4
; Global: Branch target inside TickTimerOnEvenFrame: taken when Loop4.
; Local: Part of TickTimerOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickTimerOnEvenFrame_Loop4:
inx ; CPU:$D28A PRG:528A E8
stx Zp36 ; CPU:$D28B PRG:528B 86 36
lda Zp1B ; CPU:$D28D PRG:528D A5 1B
beq TickTimerOnEvenFrame_Loop5 ; CPU:$D28F PRG:528F F0 03
jsr Sub_84E3 ; CPU:$D291 PRG:5291 20 E3 84
; -----------------------------------------------------------------------------
; Routine: TickTimerOnEvenFrame_Loop5
; Global: Branch target inside TickTimerOnEvenFrame: taken when Loop5.
; Local: Part of TickTimerOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickTimerOnEvenFrame_Loop5:
dec Zp1F ; CPU:$D294 PRG:5294 C6 1F
beq TickTimerOnEvenFrame_Loop7 ; CPU:$D296 PRG:5296 F0 17
inc Zp25 ; CPU:$D298 PRG:5298 E6 25
lda Zp25 ; CPU:$D29A PRG:529A A5 25
cmp Zp24 ; CPU:$D29C PRG:529C C5 24
bcs TickTimerOnEvenFrame_OnCarrySet ; CPU:$D29E PRG:529E B0 8F
lda Zp19 ; CPU:$D2A0 PRG:52A0 A5 19
clc ; CPU:$D2A2 PRG:52A2 18
adc #$40 ; CPU:$D2A3 PRG:52A3 69 40
sta Zp19 ; CPU:$D2A5 PRG:52A5 85 19
bcc TickTimerOnEvenFrame_Loop6 ; CPU:$D2A7 PRG:52A7 90 02
inc Zp1A ; CPU:$D2A9 PRG:52A9 E6 1A
; -----------------------------------------------------------------------------
; Routine: TickTimerOnEvenFrame_Loop6
; Global: Branch target inside TickTimerOnEvenFrame: taken when Loop6.
; Local: Part of TickTimerOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickTimerOnEvenFrame_Loop6:
lda #$00 ; CPU:$D2AB PRG:52AB A9 00
beq TickTimerOnEvenFrame_OnZero; CPU:$D2AD PRG:52AD F0 9C
; -----------------------------------------------------------------------------
; Routine: TickTimerOnEvenFrame_Loop7
; Global: Branch target inside TickTimerOnEvenFrame: taken when Loop7.
; Local: Part of TickTimerOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickTimerOnEvenFrame_Loop7:
inc Zp25 ; CPU:$D2AF PRG:52AF E6 25
ldy Zp58 ; CPU:$D2B1 PRG:52B1 A4 58
lda Zp25 ; CPU:$D2B3 PRG:52B3 A5 25
sta $0540,y ; CPU:$D2B5 PRG:52B5 99 40 05
ldx Zp36 ; CPU:$D2B8 PRG:52B8 A6 36
lda #$00 ; CPU:$D2BA PRG:52BA A9 00
sta $0300,x ; CPU:$D2BC PRG:52BC 9D 00 03
rts ; CPU:$D2BF PRG:52BF 60
; -----------------------------------------------------------------------------
; Routine: ResetScrollOnEvenFrame
; Global: Resets the scroll on every second frame.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetScrollOnEvenFrame:
lda FrameCounter ; CPU:$D2C0 PRG:52C0 A5 31
ror a ; CPU:$D2C2 PRG:52C2 6A
bcs ResetScrollOnEvenFrame_Loop; CPU:$D2C3 PRG:52C3 B0 01
rts ; CPU:$D2C5 PRG:52C5 60
; -----------------------------------------------------------------------------
; Routine: ResetScrollOnEvenFrame_Loop
; Global: Branch target inside ResetScrollOnEvenFrame: taken when the loop repeats.
; Local: Part of ResetScrollOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetScrollOnEvenFrame_Loop:
lda #$00 ; CPU:$D2C6 PRG:52C6 A9 00
sta Zp20 ; CPU:$D2C8 PRG:52C8 85 20
lda $05A6 ; CPU:$D2CA PRG:52CA AD A6 05
; -----------------------------------------------------------------------------
; Routine: ResetScrollOnEvenFrame_OnNonnegative
; Global: Branch target inside ResetScrollOnEvenFrame: taken when the tested value is not negative.
; Local: Part of ResetScrollOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetScrollOnEvenFrame_OnNonnegative:
sec ; CPU:$D2CD PRG:52CD 38
sbc #$0A ; CPU:$D2CE PRG:52CE E9 0A
bcc ResetScrollOnEvenFrame_Loop2 ; CPU:$D2D0 PRG:52D0 90 0A
sta $05A6 ; CPU:$D2D2 PRG:52D2 8D A6 05
inc Zp20 ; CPU:$D2D5 PRG:52D5 E6 20
lda $05A6 ; CPU:$D2D7 PRG:52D7 AD A6 05
bpl ResetScrollOnEvenFrame_OnNonnegative ; CPU:$D2DA PRG:52DA 10 F1
; -----------------------------------------------------------------------------
; Routine: ResetScrollOnEvenFrame_Loop2
; Global: Branch target inside ResetScrollOnEvenFrame: taken when Loop2.
; Local: Part of ResetScrollOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetScrollOnEvenFrame_Loop2:
lda $05A6 ; CPU:$D2DC PRG:52DC AD A6 05
sta $05AA ; CPU:$D2DF PRG:52DF 8D AA 05
lda Zp20 ; CPU:$D2E2 PRG:52E2 A5 20
sta $05A9 ; CPU:$D2E4 PRG:52E4 8D A9 05
ldx #$02 ; CPU:$D2E7 PRG:52E7 A2 02
; -----------------------------------------------------------------------------
; Routine: ResetScrollOnEvenFrame_OnNonzero
; Global: Branch target inside ResetScrollOnEvenFrame: taken when the tested value is not zero.
; Local: Part of ResetScrollOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetScrollOnEvenFrame_OnNonzero:
lda $05A8,x ; CPU:$D2E9 PRG:52E9 BD A8 05
cmp #$0A ; CPU:$D2EC PRG:52EC C9 0A
bcc ResetScrollOnEvenFrame_Loop3 ; CPU:$D2EE PRG:52EE 90 0B
inc $05A7,x ; CPU:$D2F0 PRG:52F0 FE A7 05
clc ; CPU:$D2F3 PRG:52F3 18
adc #$06 ; CPU:$D2F4 PRG:52F4 69 06
and #$0F ; CPU:$D2F6 PRG:52F6 29 0F
sta $05A8,x ; CPU:$D2F8 PRG:52F8 9D A8 05
; -----------------------------------------------------------------------------
; Routine: ResetScrollOnEvenFrame_Loop3
; Global: Branch target inside ResetScrollOnEvenFrame: taken when Loop3.
; Local: Part of ResetScrollOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetScrollOnEvenFrame_Loop3:
dex ; CPU:$D2FB PRG:52FB CA
bne ResetScrollOnEvenFrame_OnNonzero ; CPU:$D2FC PRG:52FC D0 EB
lda $05A5 ; CPU:$D2FE PRG:52FE AD A5 05
tax ; CPU:$D301 PRG:5301 AA
clc ; CPU:$D302 PRG:5302 18
adc Zp62 ; CPU:$D303 PRG:5303 65 62
sta Zp62 ; CPU:$D305 PRG:5305 85 62
txa ; CPU:$D307 PRG:5307 8A
clc ; CPU:$D308 PRG:5308 18
adc Zp63 ; CPU:$D309 PRG:5309 65 63
sta Zp63 ; CPU:$D30B PRG:530B 85 63
txa ; CPU:$D30D PRG:530D 8A
and #$0F ; CPU:$D30E PRG:530E 29 0F
clc ; CPU:$D310 PRG:5310 18
adc $05AF ; CPU:$D311 PRG:5311 6D AF 05
sta $05AF ; CPU:$D314 PRG:5314 8D AF 05
txa ; CPU:$D317 PRG:5317 8A
ror a ; CPU:$D318 PRG:5318 6A
ror a ; CPU:$D319 PRG:5319 6A
ror a ; CPU:$D31A PRG:531A 6A
ror a ; CPU:$D31B PRG:531B 6A
and #$0F ; CPU:$D31C PRG:531C 29 0F
clc ; CPU:$D31E PRG:531E 18
adc $05AE ; CPU:$D31F PRG:531F 6D AE 05
sta $05AE ; CPU:$D322 PRG:5322 8D AE 05
ldx #$03 ; CPU:$D325 PRG:5325 A2 03
; -----------------------------------------------------------------------------
; Routine: ResetScrollOnEvenFrame_OnNonzero2
; Global: Branch target inside ResetScrollOnEvenFrame: taken when OnNonzero2.
; Local: Part of ResetScrollOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetScrollOnEvenFrame_OnNonzero2:
lda $05AC,x ; CPU:$D327 PRG:5327 BD AC 05
cmp #$0A ; CPU:$D32A PRG:532A C9 0A
bcc ResetScrollOnEvenFrame_Loop4 ; CPU:$D32C PRG:532C 90 0B
inc $05AB,x ; CPU:$D32E PRG:532E FE AB 05
clc ; CPU:$D331 PRG:5331 18
adc #$06 ; CPU:$D332 PRG:5332 69 06
and #$0F ; CPU:$D334 PRG:5334 29 0F
sta $05AC,x ; CPU:$D336 PRG:5336 9D AC 05
; -----------------------------------------------------------------------------
; Routine: ResetScrollOnEvenFrame_Loop4
; Global: Branch target inside ResetScrollOnEvenFrame: taken when Loop4.
; Local: Part of ResetScrollOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetScrollOnEvenFrame_Loop4:
dex ; CPU:$D339 PRG:5339 CA
bne ResetScrollOnEvenFrame_OnNonzero2 ; CPU:$D33A PRG:533A D0 EB
ldx #$02 ; CPU:$D33C PRG:533C A2 02
; -----------------------------------------------------------------------------
; Routine: ResetScrollOnEvenFrame_OnNonnegative2
; Global: Branch target inside ResetScrollOnEvenFrame: taken when OnNonnegative2.
; Local: Part of ResetScrollOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetScrollOnEvenFrame_OnNonnegative2:
lda $05A8,x ; CPU:$D33E PRG:533E BD A8 05
clc ; CPU:$D341 PRG:5341 18
adc $05B2,x ; CPU:$D342 PRG:5342 7D B2 05
sta $05B2,x ; CPU:$D345 PRG:5345 9D B2 05
dex ; CPU:$D348 PRG:5348 CA
bpl ResetScrollOnEvenFrame_OnNonnegative2 ; CPU:$D349 PRG:5349 10 F3
ldx #$04 ; CPU:$D34B PRG:534B A2 04
; -----------------------------------------------------------------------------
; Routine: ResetScrollOnEvenFrame_OnNonzero3
; Global: Branch target inside ResetScrollOnEvenFrame: taken when OnNonzero3.
; Local: Part of ResetScrollOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetScrollOnEvenFrame_OnNonzero3:
lda $05B0,x ; CPU:$D34D PRG:534D BD B0 05
cmp #$0A ; CPU:$D350 PRG:5350 C9 0A
bcc ResetScrollOnEvenFrame_Loop5 ; CPU:$D352 PRG:5352 90 0B
inc $05AF,x ; CPU:$D354 PRG:5354 FE AF 05
clc ; CPU:$D357 PRG:5357 18
adc #$06 ; CPU:$D358 PRG:5358 69 06
and #$0F ; CPU:$D35A PRG:535A 29 0F
sta $05B0,x ; CPU:$D35C PRG:535C 9D B0 05
; -----------------------------------------------------------------------------
; Routine: ResetScrollOnEvenFrame_Loop5
; Global: Branch target inside ResetScrollOnEvenFrame: taken when Loop5.
; Local: Part of ResetScrollOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetScrollOnEvenFrame_Loop5:
dex ; CPU:$D35F PRG:535F CA
bne ResetScrollOnEvenFrame_OnNonzero3 ; CPU:$D360 PRG:5360 D0 EB
lda #$04 ; CPU:$D362 PRG:5362 A9 04
sta $05C0 ; CPU:$D364 PRG:5364 8D C0 05
sta $05C6 ; CPU:$D367 PRG:5367 8D C6 05
lda #$01 ; CPU:$D36A PRG:536A A9 01
sta $05C1 ; CPU:$D36C PRG:536C 8D C1 05
sta $05C7 ; CPU:$D36F PRG:536F 8D C7 05
ldx #$00 ; CPU:$D372 PRG:5372 A2 00
; -----------------------------------------------------------------------------
; Routine: ResetScrollOnEvenFrame_OnCarryClear
; Global: Branch target inside ResetScrollOnEvenFrame: taken when the addition or subtraction did not carry.
; Local: Part of ResetScrollOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetScrollOnEvenFrame_OnCarryClear:
lda $05AC,x ; CPU:$D374 PRG:5374 BD AC 05
tay ; CPU:$D377 PRG:5377 A8
lda $F1D6,y ; CPU:$D378 PRG:5378 B9 D6 F1
sta $05C2,x ; CPU:$D37B PRG:537B 9D C2 05
lda $05A8,x ; CPU:$D37E PRG:537E BD A8 05
tay ; CPU:$D381 PRG:5381 A8
lda $F1D6,y ; CPU:$D382 PRG:5382 B9 D6 F1
sta $05C8,x ; CPU:$D385 PRG:5385 9D C8 05
inx ; CPU:$D388 PRG:5388 E8
cpx #$04 ; CPU:$D389 PRG:5389 E0 04
bcc ResetScrollOnEvenFrame_OnCarryClear ; CPU:$D38B PRG:538B 90 E7
lda #$06 ; CPU:$D38D PRG:538D A9 06
sta $05D2 ; CPU:$D38F PRG:538F 8D D2 05
lda #$01 ; CPU:$D392 PRG:5392 A9 01
sta $05D3 ; CPU:$D394 PRG:5394 8D D3 05
ldx #$00 ; CPU:$D397 PRG:5397 A2 00
; -----------------------------------------------------------------------------
; Routine: ResetScrollOnEvenFrame_OnCarryClear2
; Global: Branch target inside ResetScrollOnEvenFrame: taken when OnCarryClear2.
; Local: Part of ResetScrollOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetScrollOnEvenFrame_OnCarryClear2:
lda $05B0,x ; CPU:$D399 PRG:5399 BD B0 05
tay ; CPU:$D39C PRG:539C A8
lda $F1D6,y ; CPU:$D39D PRG:539D B9 D6 F1
sta $05D4,x ; CPU:$D3A0 PRG:53A0 9D D4 05
inx ; CPU:$D3A3 PRG:53A3 E8
cpx #$06 ; CPU:$D3A4 PRG:53A4 E0 06
bcc ResetScrollOnEvenFrame_OnCarryClear2 ; CPU:$D3A6 PRG:53A6 90 F1
ldx Zp37 ; CPU:$D3A8 PRG:53A8 A6 37
lda Zp6F ; CPU:$D3AA PRG:53AA A5 6F
asl a ; CPU:$D3AC PRG:53AC 0A
tay ; CPU:$D3AD PRG:53AD A8
lda $D40A,y ; CPU:$D3AE PRG:53AE B9 0A D4
sta $0338,x ; CPU:$D3B1 PRG:53B1 9D 38 03
lda $D40B,y ; CPU:$D3B4 PRG:53B4 B9 0B D4
sta $0339,x ; CPU:$D3B7 PRG:53B7 9D 39 03
lda #$C0 ; CPU:$D3BA PRG:53BA A9 C0
sta $033A,x ; CPU:$D3BC PRG:53BC 9D 3A 03
lda #$05 ; CPU:$D3BF PRG:53BF A9 05
sta $033B,x ; CPU:$D3C1 PRG:53C1 9D 3B 03
lda $D40E,y ; CPU:$D3C4 PRG:53C4 B9 0E D4
sta $033C,x ; CPU:$D3C7 PRG:53C7 9D 3C 03
lda $D40F,y ; CPU:$D3CA PRG:53CA B9 0F D4
sta $033D,x ; CPU:$D3CD PRG:53CD 9D 3D 03
lda #$C6 ; CPU:$D3D0 PRG:53D0 A9 C6
sta $033E,x ; CPU:$D3D2 PRG:53D2 9D 3E 03
lda #$05 ; CPU:$D3D5 PRG:53D5 A9 05
sta $033F,x ; CPU:$D3D7 PRG:53D7 9D 3F 03
lda $D412,y ; CPU:$D3DA PRG:53DA B9 12 D4
sta $0340,x ; CPU:$D3DD PRG:53DD 9D 40 03
lda $D413,y ; CPU:$D3E0 PRG:53E0 B9 13 D4
sta $0341,x ; CPU:$D3E3 PRG:53E3 9D 41 03
lda #$D2 ; CPU:$D3E6 PRG:53E6 A9 D2
sta $0342,x ; CPU:$D3E8 PRG:53E8 9D 42 03
lda #$05 ; CPU:$D3EB PRG:53EB A9 05
sta $0343,x ; CPU:$D3ED PRG:53ED 9D 43 03
lda #$00 ; CPU:$D3F0 PRG:53F0 A9 00
sta $0344,x ; CPU:$D3F2 PRG:53F2 9D 44 03
sta $05A5 ; CPU:$D3F5 PRG:53F5 8D A5 05
sta $05A4 ; CPU:$D3F8 PRG:53F8 8D A4 05
sta $05A6 ; CPU:$D3FB PRG:53FB 8D A6 05
sta $05A7 ; CPU:$D3FE PRG:53FE 8D A7 05
txa ; CPU:$D401 PRG:5401 8A
clc ; CPU:$D402 PRG:5402 18
adc #$0C ; CPU:$D403 PRG:5403 69 0C
sta Zp37 ; CPU:$D405 PRG:5405 85 37
inc Zp61 ; CPU:$D407 PRG:5407 E6 61
rts ; CPU:$D409 PRG:5409 60
; ---- data $D40A-$D45D (84 bytes) ----
; referenced by `lda $D412,y` at $CE66 (operand $D412 falls inside this region)
; referenced by `lda $D413,y` at $CE6C (operand $D413 falls inside this region)
; referenced by `lda $D40A,y` at $D3AE (operand $D40A falls inside this region)
; referenced by `lda $D40B,y` at $D3B4 (operand $D40B falls inside this region)
; referenced by `lda $D40E,y` at $D3C4 (operand $D40E falls inside this region)
; referenced by `lda $D40F,y` at $D3CA (operand $D40F falls inside this region)
; ... and 4 further references from decoded code
.byte $79, $21, $22, $23, $B9, $21, $42, $23, $F7, $21, $2A, $23, $A5, $31, $6A, $B0 ; CPU:$D40A PRG:540A 79 21 22 23 B9 21 42 23 F7 21 2A 23 A5 31 6A B0
.byte $01, $60, $A5, $71, $C9, $02, $F0, $09, $A5, $5E, $C9, $05, $D0, $03, $20, $86 ; CPU:$D41A PRG:541A 01 60 A5 71 C9 02 F0 09 A5 5E C9 05 D0 03 20 86
.byte $D4, $A5, $5F, $29, $03, $AA, $BD, $5A, $D4, $85, $1B, $A6, $5E, $20, $AF, $D4 ; CPU:$D42A PRG:542A D4 A5 5F 29 03 AA BD 5A D4 85 1B A6 5E 20 AF D4
.byte $20, $8A, $85, $A9, $00, $9D, $00, $03, $20, $E3, $84, $A5, $71, $C9, $02, $F0 ; CPU:$D43A PRG:543A 20 8A 85 A9 00 9D 00 03 20 E3 84 A5 71 C9 02 F0
.byte $06, $C6, $5E, $D0, $02, $E6, $5F, $A5, $58, $D0, $02, $E6, $61, $E6, $61, $60 ; CPU:$D44A PRG:544A 06 C6 5E D0 02 E6 5F A5 58 D0 02 E6 61 E6 61 60
.byte $03, $04, $02, $01 ; CPU:$D45A PRG:545A 03 04 02 01
; -----------------------------------------------------------------------------
; Routine: Sub_D45E
; Global: Branch target inside Sub: taken when D45E.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_D45E:
lda Zp65 ; CPU:$D45E PRG:545E A5 65
tax ; CPU:$D460 PRG:5460 AA
and #$0F ; CPU:$D461 PRG:5461 29 0F
tay ; CPU:$D463 PRG:5463 A8
; -----------------------------------------------------------------------------
; Routine: ResetScrollOnEvenFrame_OnNonnegative3
; Global: Branch target inside ResetScrollOnEvenFrame: taken when OnNonnegative3.
; Local: Part of ResetScrollOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetScrollOnEvenFrame_OnNonnegative3:
lda $0400,x ; CPU:$D464 PRG:5464 BD 00 04
and #$40 ; CPU:$D467 PRG:5467 29 40
bne ResetScrollOnEvenFrame_Loop6 ; CPU:$D469 PRG:5469 D0 05
dex ; CPU:$D46B PRG:546B CA
dey ; CPU:$D46C PRG:546C 88
bpl ResetScrollOnEvenFrame_OnNonnegative3 ; CPU:$D46D PRG:546D 10 F5
rts ; CPU:$D46F PRG:546F 60
; -----------------------------------------------------------------------------
; Routine: ResetScrollOnEvenFrame_Loop6
; Global: Branch target inside ResetScrollOnEvenFrame: taken when Loop6.
; Local: Part of ResetScrollOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetScrollOnEvenFrame_Loop6:
txa ; CPU:$D470 PRG:5470 8A
cmp Zp65 ; CPU:$D471 PRG:5471 C5 65
beq ResetScrollOnEvenFrame_Loop7 ; CPU:$D473 PRG:5473 F0 10
sec ; CPU:$D475 PRG:5475 38
sbc Zp65 ; CPU:$D476 PRG:5476 E5 65
asl a ; CPU:$D478 PRG:5478 0A
asl a ; CPU:$D479 PRG:5479 0A
asl a ; CPU:$D47A PRG:547A 0A
asl a ; CPU:$D47B PRG:547B 0A
clc ; CPU:$D47C PRG:547C 18
adc $0398 ; CPU:$D47D PRG:547D 6D 98 03
sta $0398 ; CPU:$D480 PRG:5480 8D 98 03
stx Zp65 ; CPU:$D483 PRG:5483 86 65
; -----------------------------------------------------------------------------
; Routine: ResetScrollOnEvenFrame_Loop7
; Global: Branch target inside ResetScrollOnEvenFrame: taken when Loop7.
; Local: Part of ResetScrollOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
ResetScrollOnEvenFrame_Loop7:
rts ; CPU:$D485 PRG:5485 60
; ---- data $D486-$D4ED (104 bytes) ----
.byte $A0, $05, $A5, $6F, $0A, $AA, $BD, $EA, $D4, $85, $19, $BD, $EB, $D4, $85, $1A ; CPU:$D486 PRG:5486 A0 05 A5 6F 0A AA BD EA D4 85 19 BD EB D4 85 1A
.byte $A9, $A8, $85, $17, $A9, $F2, $85, $18, $20, $8A, $85, $E6, $19, $E6, $19, $88 ; CPU:$D496 PRG:5496 A9 A8 85 17 A9 F2 85 18 20 8A 85 E6 19 E6 19 88
.byte $D0, $F6, $98, $9D, $00, $03, $86, $36, $60, $A5, $6F, $0A, $A8, $B9, $EA, $D4 ; CPU:$D4A6 PRG:54A6 D0 F6 98 9D 00 03 86 36 60 A5 6F 0A A8 B9 EA D4
.byte $85, $19, $B9, $EB, $D4, $85, $1A, $BD, $D9, $05, $0A, $A8, $18, $65, $19, $85 ; CPU:$D4B6 PRG:54B6 85 19 B9 EB D4 85 1A BD D9 05 0A A8 18 65 19 85
.byte $19, $98, $0A, $A8, $A6, $5F, $E8, $8A, $29, $02, $D0, $05, $98, $18, $69, $14 ; CPU:$D4C6 PRG:54C6 19 98 0A A8 A6 5F E8 8A 29 02 D0 05 98 18 69 14
.byte $A8, $A9, $D1, $85, $17, $A9, $F2, $85, $18, $98, $18, $65, $17, $85, $17, $90 ; CPU:$D4D6 PRG:54D6 A8 A9 D1 85 17 A9 F2 85 18 98 18 65 17 85 17 90
.byte $02, $E6, $18, $60, $94, $20, $46, $23 ; CPU:$D4E6 PRG:54E6 02 E6 18 60 94 20 46 23
; -----------------------------------------------------------------------------
; Routine: Sub_D4EE
; Global: Branch target inside Sub: taken when D4EE.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_D4EE:
lda Zp61 ; CPU:$D4EE PRG:54EE A5 61
jsr DispatchByJumpTable ; CPU:$D4F0 PRG:54F0 20 73 81
; ---- data $D4F3-$D506 (20 bytes) ----
.byte $07, $D5, $C0, $D2, $15, $D6, $E7, $D0, $37, $D5, $16, $D4, $CF, $D5, $B0, $D1 ; CPU:$D4F3 PRG:54F3 07 D5 C0 D2 15 D6 E7 D0 37 D5 16 D4 CF D5 B0 D1
.byte $1A, $D2, $63, $D5 ; CPU:$D503 PRG:5503 1A D2 63 D5
; -----------------------------------------------------------------------------
; Routine: InitBubbleState
; Global: Sets the bubble state up for a new wave.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
InitBubbleState:
lda #$00 ; CPU:$D507 PRG:5507 A9 00
sta Zp58 ; CPU:$D509 PRG:5509 85 58
lda #$04 ; CPU:$D50B PRG:550B A9 04
sta Zp1E ; CPU:$D50D PRG:550D 85 1E
; -----------------------------------------------------------------------------
; Routine: InitBubbleState_OnNonzero
; Global: Branch target inside InitBubbleState: taken when the tested value is not zero.
; Local: Part of InitBubbleState.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
InitBubbleState_OnNonzero:
lda Zp1E ; CPU:$D50F PRG:550F A5 1E
sta Zp20 ; CPU:$D511 PRG:5511 85 20
jsr Sub_CFFD ; CPU:$D513 PRG:5513 20 FD CF
dec Zp1E ; CPU:$D516 PRG:5516 C6 1E
bne InitBubbleState_OnNonzero ; CPU:$D518 PRG:5518 D0 F5
lda $05A6 ; CPU:$D51A PRG:551A AD A6 05
bne InitBubbleState_Loop2 ; CPU:$D51D PRG:551D D0 0D
sta Zp61 ; CPU:$D51F PRG:551F 85 61
inc Zp60 ; CPU:$D521 PRG:5521 E6 60
lda Zp68 ; CPU:$D523 PRG:5523 A5 68
cmp #$03 ; CPU:$D525 PRG:5525 C9 03
bcc InitBubbleState_Loop ; CPU:$D527 PRG:5527 90 02
inc Zp68 ; CPU:$D529 PRG:5529 E6 68
; -----------------------------------------------------------------------------
; Routine: InitBubbleState_Loop
; Global: Branch target inside InitBubbleState: taken when the loop repeats.
; Local: Part of InitBubbleState.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
InitBubbleState_Loop:
rts ; CPU:$D52B PRG:552B 60
; -----------------------------------------------------------------------------
; Routine: InitBubbleState_Loop2
; Global: Branch target inside InitBubbleState: taken when Loop2.
; Local: Part of InitBubbleState.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
InitBubbleState_Loop2:
lda #$00 ; CPU:$D52C PRG:552C A9 00
sta Zp3F ; CPU:$D52E PRG:552E 85 3F
sta Zp56 ; CPU:$D530 PRG:5530 85 56
sta Zp59 ; CPU:$D532 PRG:5532 85 59
inc Zp61 ; CPU:$D534 PRG:5534 E6 61
rts ; CPU:$D536 PRG:5536 60
; -----------------------------------------------------------------------------
; Routine: UpdateBubbleFrame
; Global: Updates the bubbles once per frame.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateBubbleFrame:
inc Zp61 ; CPU:$D537 PRG:5537 E6 61
jsr Sub_D595 ; CPU:$D539 PRG:5539 20 95 D5
jsr Sub_D5AF ; CPU:$D53C PRG:553C 20 AF D5
ldx Zp65 ; CPU:$D53F PRG:553F A6 65
bmi UpdateBubbleFrame_Loop2 ; CPU:$D541 PRG:5541 30 17
lda $0400,x ; CPU:$D543 PRG:5543 BD 00 04
and #$40 ; CPU:$D546 PRG:5546 29 40
bne UpdateBubbleFrame_Loop2 ; CPU:$D548 PRG:5548 D0 10
lda #$00 ; CPU:$D54A PRG:554A A9 00
sta $0358 ; CPU:$D54C PRG:554C 8D 58 03
lda Zp71 ; CPU:$D54F PRG:554F A5 71
cmp #$02 ; CPU:$D551 PRG:5551 C9 02
beq UpdateBubbleFrame_Loop ; CPU:$D553 PRG:5553 F0 04
lda #$FF ; CPU:$D555 PRG:5555 A9 FF
sta Zp65 ; CPU:$D557 PRG:5557 85 65
; -----------------------------------------------------------------------------
; Routine: UpdateBubbleFrame_Loop
; Global: Branch target inside UpdateBubbleFrame: taken when the loop repeats.
; Local: Part of UpdateBubbleFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateBubbleFrame_Loop:
rts ; CPU:$D559 PRG:5559 60
; -----------------------------------------------------------------------------
; Routine: UpdateBubbleFrame_Loop2
; Global: Branch target inside UpdateBubbleFrame: taken when Loop2.
; Local: Part of UpdateBubbleFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateBubbleFrame_Loop2:
lda Zp58 ; CPU:$D55A PRG:555A A5 58
bne UpdateBubbleFrame_Loop3 ; CPU:$D55C PRG:555C D0 02
inc Zp61 ; CPU:$D55E PRG:555E E6 61
; -----------------------------------------------------------------------------
; Routine: UpdateBubbleFrame_Loop3
; Global: Branch target inside UpdateBubbleFrame: taken when Loop3.
; Local: Part of UpdateBubbleFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
UpdateBubbleFrame_Loop3:
inc Zp61 ; CPU:$D560 PRG:5560 E6 61
rts ; CPU:$D562 PRG:5562 60
; -----------------------------------------------------------------------------
; Routine: TickHudOnEvenFrame
; Global: Updates the score display on every second frame.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickHudOnEvenFrame:
lda FrameCounter ; CPU:$D563 PRG:5563 A5 31
ror a ; CPU:$D565 PRG:5565 6A
bcs TickHudOnEvenFrame_Loop ; CPU:$D566 PRG:5566 B0 01
rts ; CPU:$D568 PRG:5568 60
; -----------------------------------------------------------------------------
; Routine: TickHudOnEvenFrame_Loop
; Global: Branch target inside TickHudOnEvenFrame: taken when the loop repeats.
; Local: Part of TickHudOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickHudOnEvenFrame_Loop:
lda Zp6F ; CPU:$D569 PRG:5569 A5 6F
asl a ; CPU:$D56B PRG:556B 0A
tay ; CPU:$D56C PRG:556C A8
ldx Zp37 ; CPU:$D56D PRG:556D A6 37
lda $D40E,y ; CPU:$D56F PRG:556F B9 0E D4
sta $0338,x ; CPU:$D572 PRG:5572 9D 38 03
lda $D40F,y ; CPU:$D575 PRG:5575 B9 0F D4
sta $0339,x ; CPU:$D578 PRG:5578 9D 39 03
lda #$E0 ; CPU:$D57B PRG:557B A9 E0
sta $033A,x ; CPU:$D57D PRG:557D 9D 3A 03
lda #$F1 ; CPU:$D580 PRG:5580 A9 F1
sta $033B,x ; CPU:$D582 PRG:5582 9D 3B 03
lda #$00 ; CPU:$D585 PRG:5585 A9 00
sta $033C,x ; CPU:$D587 PRG:5587 9D 3C 03
txa ; CPU:$D58A PRG:558A 8A
clc ; CPU:$D58B PRG:558B 18
adc #$04 ; CPU:$D58C PRG:558C 69 04
sta Zp37 ; CPU:$D58E PRG:558E 85 37
lda #$00 ; CPU:$D590 PRG:5590 A9 00
sta Zp61 ; CPU:$D592 PRG:5592 85 61
rts ; CPU:$D594 PRG:5594 60
; -----------------------------------------------------------------------------
; Routine: Sub_D595
; Global: Branch target inside Sub: taken when D595.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_D595:
ldx #$00 ; CPU:$D595 PRG:5595 A2 00
ldy #$00 ; CPU:$D597 PRG:5597 A0 00
stx Zp24 ; CPU:$D599 PRG:5599 86 24
; -----------------------------------------------------------------------------
; Routine: TickHudOnEvenFrame_OnNonzero
; Global: Branch target inside TickHudOnEvenFrame: taken when the tested value is not zero.
; Local: Part of TickHudOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickHudOnEvenFrame_OnNonzero:
ldx Zp24 ; CPU:$D59B PRG:559B A6 24
lda $0568,x ; CPU:$D59D PRG:559D BD 68 05
cmp #$FF ; CPU:$D5A0 PRG:55A0 C9 FF
bne TickHudOnEvenFrame_Loop2 ; CPU:$D5A2 PRG:55A2 D0 01
rts ; CPU:$D5A4 PRG:55A4 60
; -----------------------------------------------------------------------------
; Routine: TickHudOnEvenFrame_Loop2
; Global: Branch target inside TickHudOnEvenFrame: taken when Loop2.
; Local: Part of TickHudOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickHudOnEvenFrame_Loop2:
tax ; CPU:$D5A5 PRG:55A5 AA
tya ; CPU:$D5A6 PRG:55A6 98
sta $0400,x ; CPU:$D5A7 PRG:55A7 9D 00 04
inc Zp24 ; CPU:$D5AA PRG:55AA E6 24
bne TickHudOnEvenFrame_OnNonzero ; CPU:$D5AC PRG:55AC D0 ED
rts ; CPU:$D5AE PRG:55AE 60
; -----------------------------------------------------------------------------
; Routine: Sub_D5AF
; Global: Branch target inside Sub: taken when D5AF.
; Local: Part of Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Sub_D5AF:
ldy #$00 ; CPU:$D5AF PRG:55AF A0 00
ldx #$6E ; CPU:$D5B1 PRG:55B1 A2 6E
; -----------------------------------------------------------------------------
; Routine: TickHudOnEvenFrame_OnNonzero2
; Global: Branch target inside TickHudOnEvenFrame: taken when OnNonzero2.
; Local: Part of TickHudOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickHudOnEvenFrame_OnNonzero2:
dex ; CPU:$D5B3 PRG:55B3 CA
; -----------------------------------------------------------------------------
; Routine: TickHudOnEvenFrame_OnNonnegative
; Global: Branch target inside TickHudOnEvenFrame: taken when the tested value is not negative.
; Local: Part of TickHudOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickHudOnEvenFrame_OnNonnegative:
lda $0400,x ; CPU:$D5B4 PRG:55B4 BD 00 04
beq TickHudOnEvenFrame_Loop3 ; CPU:$D5B7 PRG:55B7 F0 07
bpl TickHudOnEvenFrame_Loop4 ; CPU:$D5B9 PRG:55B9 10 0B
txa ; CPU:$D5BB PRG:55BB 8A
sta $0568,y ; CPU:$D5BC PRG:55BC 99 68 05
iny ; CPU:$D5BF PRG:55BF C8
; -----------------------------------------------------------------------------
; Routine: TickHudOnEvenFrame_Loop3
; Global: Branch target inside TickHudOnEvenFrame: taken when Loop3.
; Local: Part of TickHudOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickHudOnEvenFrame_Loop3:
dex ; CPU:$D5C0 PRG:55C0 CA
bpl TickHudOnEvenFrame_OnNonnegative ; CPU:$D5C1 PRG:55C1 10 F1
sty Zp58 ; CPU:$D5C3 PRG:55C3 84 58
rts ; CPU:$D5C5 PRG:55C5 60
; -----------------------------------------------------------------------------
; Routine: TickHudOnEvenFrame_Loop4
; Global: Branch target inside TickHudOnEvenFrame: taken when Loop4.
; Local: Part of TickHudOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickHudOnEvenFrame_Loop4:
txa ; CPU:$D5C6 PRG:55C6 8A
and #$F0 ; CPU:$D5C7 PRG:55C7 29 F0
tax ; CPU:$D5C9 PRG:55C9 AA
bne TickHudOnEvenFrame_OnNonzero2 ; CPU:$D5CA PRG:55CA D0 E7
sty Zp58 ; CPU:$D5CC PRG:55CC 84 58
rts ; CPU:$D5CE PRG:55CE 60
; -----------------------------------------------------------------------------
; Routine: TickSpritesOnEvenFrame
; Global: Updates the sprite table on every second frame.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickSpritesOnEvenFrame:
lda FrameCounter ; CPU:$D5CF PRG:55CF A5 31
ror a ; CPU:$D5D1 PRG:55D1 6A
bcs TickSpritesOnEvenFrame_Loop; CPU:$D5D2 PRG:55D2 B0 01
rts ; CPU:$D5D4 PRG:55D4 60
; -----------------------------------------------------------------------------
; Routine: TickSpritesOnEvenFrame_Loop
; Global: Branch target inside TickSpritesOnEvenFrame: taken when the loop repeats.
; Local: Part of TickSpritesOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickSpritesOnEvenFrame_Loop:
lda #$A8 ; CPU:$D5D5 PRG:55D5 A9 A8
sta Zp17 ; CPU:$D5D7 PRG:55D7 85 17
lda #$F2 ; CPU:$D5D9 PRG:55D9 A9 F2
sta Zp18 ; CPU:$D5DB PRG:55DB 85 18
lda #$0C ; CPU:$D5DD PRG:55DD A9 0C
sta Zp1F ; CPU:$D5DF PRG:55DF 85 1F
ldy #$00 ; CPU:$D5E1 PRG:55E1 A0 00
; -----------------------------------------------------------------------------
; Routine: TickSpritesOnEvenFrame_OnNonnegative
; Global: Branch target inside TickSpritesOnEvenFrame: taken when the tested value is not negative.
; Local: Part of TickSpritesOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickSpritesOnEvenFrame_OnNonnegative:
dec Zp58 ; CPU:$D5E3 PRG:55E3 C6 58
bpl TickSpritesOnEvenFrame_Loop2 ; CPU:$D5E5 PRG:55E5 10 08
inc Zp61 ; CPU:$D5E7 PRG:55E7 E6 61
lda #$00 ; CPU:$D5E9 PRG:55E9 A9 00
sta Zp56 ; CPU:$D5EB PRG:55EB 85 56
beq TickSpritesOnEvenFrame_Loop4 ; CPU:$D5ED PRG:55ED F0 1E
; -----------------------------------------------------------------------------
; Routine: TickSpritesOnEvenFrame_Loop2
; Global: Branch target inside TickSpritesOnEvenFrame: taken when Loop2.
; Local: Part of TickSpritesOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickSpritesOnEvenFrame_Loop2:
ldx Zp58 ; CPU:$D5EF PRG:55EF A6 58
lda $0568,x ; CPU:$D5F1 PRG:55F1 BD 68 05
sta Zp24 ; CPU:$D5F4 PRG:55F4 85 24
jsr Sub_84BF ; CPU:$D5F6 PRG:55F6 20 BF 84
lda Zp1A ; CPU:$D5F9 PRG:55F9 A5 1A
cmp #$24 ; CPU:$D5FB PRG:55FB C9 24
beq TickSpritesOnEvenFrame_Loop3 ; CPU:$D5FD PRG:55FD F0 0A
ldx Zp24 ; CPU:$D5FF PRG:55FF A6 24
lda #$00 ; CPU:$D601 PRG:5601 A9 00
sta $0400,x ; CPU:$D603 PRG:5603 9D 00 04
jsr Sub_858A ; CPU:$D606 PRG:5606 20 8A 85
; -----------------------------------------------------------------------------
; Routine: TickSpritesOnEvenFrame_Loop3
; Global: Branch target inside TickSpritesOnEvenFrame: taken when Loop3.
; Local: Part of TickSpritesOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickSpritesOnEvenFrame_Loop3:
dec Zp1F ; CPU:$D609 PRG:5609 C6 1F
bpl TickSpritesOnEvenFrame_OnNonnegative ; CPU:$D60B PRG:560B 10 D6
; -----------------------------------------------------------------------------
; Routine: TickSpritesOnEvenFrame_Loop4
; Global: Branch target inside TickSpritesOnEvenFrame: taken when Loop4.
; Local: Part of TickSpritesOnEvenFrame.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
TickSpritesOnEvenFrame_Loop4:
ldx Zp36 ; CPU:$D60D PRG:560D A6 36
lda #$00 ; CPU:$D60F PRG:560F A9 00
sta $0300,x ; CPU:$D611 PRG:5611 9D 00 03
rts ; CPU:$D614 PRG:5614 60
; -----------------------------------------------------------------------------
; Routine: SetSoundChannels
; Global: Turns the APU channels on.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SetSoundChannels:
lda #$01 ; CPU:$D615 PRG:5615 A9 01
sta a:$00E3 ; CPU:$D617 PRG:5617 8D E3 00
lda #$01 ; CPU:$D61A PRG:561A A9 01
sta a:$00E2 ; CPU:$D61C PRG:561C 8D E2 00
lda #$04 ; CPU:$D61F PRG:561F A9 04
jsr BankedCall ; CPU:$D621 PRG:5621 20 04 80
inc Zp61 ; CPU:$D624 PRG:5624 E6 61
rts ; CPU:$D626 PRG:5626 60
; ---- data $D627-$DFFF (2521 bytes) ----
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D627 PRG:5627 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D637 PRG:5637 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D647 PRG:5647 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D657 PRG:5657 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D667 PRG:5667 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D677 PRG:5677 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D687 PRG:5687 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D697 PRG:5697 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D6A7 PRG:56A7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D6B7 PRG:56B7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D6C7 PRG:56C7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D6D7 PRG:56D7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D6E7 PRG:56E7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D6F7 PRG:56F7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D707 PRG:5707 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D717 PRG:5717 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D727 PRG:5727 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D737 PRG:5737 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D747 PRG:5747 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D757 PRG:5757 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D767 PRG:5767 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D777 PRG:5777 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D787 PRG:5787 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D797 PRG:5797 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7A7 PRG:57A7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7B7 PRG:57B7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7C7 PRG:57C7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7D7 PRG:57D7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7E7 PRG:57E7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D7F7 PRG:57F7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D807 PRG:5807 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D817 PRG:5817 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D827 PRG:5827 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D837 PRG:5837 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D847 PRG:5847 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D857 PRG:5857 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D867 PRG:5867 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D877 PRG:5877 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D887 PRG:5887 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D897 PRG:5897 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8A7 PRG:58A7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8B7 PRG:58B7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8C7 PRG:58C7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8D7 PRG:58D7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8E7 PRG:58E7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D8F7 PRG:58F7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D907 PRG:5907 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D917 PRG:5917 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D927 PRG:5927 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D937 PRG:5937 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D947 PRG:5947 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D957 PRG:5957 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D967 PRG:5967 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D977 PRG:5977 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D987 PRG:5987 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D997 PRG:5997 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9A7 PRG:59A7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9B7 PRG:59B7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9C7 PRG:59C7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9D7 PRG:59D7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9E7 PRG:59E7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D9F7 PRG:59F7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA07 PRG:5A07 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA17 PRG:5A17 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA27 PRG:5A27 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA37 PRG:5A37 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA47 PRG:5A47 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA57 PRG:5A57 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA67 PRG:5A67 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA77 PRG:5A77 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA87 PRG:5A87 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DA97 PRG:5A97 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAA7 PRG:5AA7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAB7 PRG:5AB7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAC7 PRG:5AC7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAD7 PRG:5AD7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAE7 PRG:5AE7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DAF7 PRG:5AF7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB07 PRG:5B07 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB17 PRG:5B17 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB27 PRG:5B27 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB37 PRG:5B37 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB47 PRG:5B47 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB57 PRG:5B57 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB67 PRG:5B67 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB77 PRG:5B77 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB87 PRG:5B87 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DB97 PRG:5B97 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBA7 PRG:5BA7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBB7 PRG:5BB7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBC7 PRG:5BC7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBD7 PRG:5BD7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBE7 PRG:5BE7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DBF7 PRG:5BF7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC07 PRG:5C07 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC17 PRG:5C17 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC27 PRG:5C27 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC37 PRG:5C37 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC47 PRG:5C47 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC57 PRG:5C57 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC67 PRG:5C67 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC77 PRG:5C77 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC87 PRG:5C87 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DC97 PRG:5C97 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCA7 PRG:5CA7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCB7 PRG:5CB7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCC7 PRG:5CC7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCD7 PRG:5CD7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCE7 PRG:5CE7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DCF7 PRG:5CF7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD07 PRG:5D07 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD17 PRG:5D17 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD27 PRG:5D27 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD37 PRG:5D37 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD47 PRG:5D47 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD57 PRG:5D57 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD67 PRG:5D67 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD77 PRG:5D77 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD87 PRG:5D87 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DD97 PRG:5D97 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDA7 PRG:5DA7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDB7 PRG:5DB7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDC7 PRG:5DC7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDD7 PRG:5DD7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDE7 PRG:5DE7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DDF7 PRG:5DF7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE07 PRG:5E07 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE17 PRG:5E17 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE27 PRG:5E27 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE37 PRG:5E37 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE47 PRG:5E47 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE57 PRG:5E57 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE67 PRG:5E67 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE77 PRG:5E77 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE87 PRG:5E87 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DE97 PRG:5E97 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DEA7 PRG:5EA7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DEB7 PRG:5EB7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DEC7 PRG:5EC7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DED7 PRG:5ED7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DEE7 PRG:5EE7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DEF7 PRG:5EF7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF07 PRG:5F07 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF17 PRG:5F17 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF27 PRG:5F27 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF37 PRG:5F37 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF47 PRG:5F47 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF57 PRG:5F57 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF67 PRG:5F67 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF77 PRG:5F77 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF87 PRG:5F87 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DF97 PRG:5F97 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFA7 PRG:5FA7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFB7 PRG:5FB7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFC7 PRG:5FC7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFD7 PRG:5FD7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFE7 PRG:5FE7 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFF7 PRG:5FF7 FF FF FF FF FF FF FF FF FF
.segment "PRG3"
.org $E000
; ---- data $E000-$FEFF (7936 bytes) ----
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E000 PRG:6000 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E010 PRG:6010 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E020 PRG:6020 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E030 PRG:6030 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E040 PRG:6040 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E050 PRG:6050 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E060 PRG:6060 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E070 PRG:6070 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E080 PRG:6080 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E090 PRG:6090 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0A0 PRG:60A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0B0 PRG:60B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0C0 PRG:60C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0D0 PRG:60D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0E0 PRG:60E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0F0 PRG:60F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E100 PRG:6100 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E110 PRG:6110 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E120 PRG:6120 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E130 PRG:6130 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E140 PRG:6140 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E150 PRG:6150 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E160 PRG:6160 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E170 PRG:6170 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E180 PRG:6180 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E190 PRG:6190 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1A0 PRG:61A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1B0 PRG:61B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1C0 PRG:61C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1D0 PRG:61D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1E0 PRG:61E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1F0 PRG:61F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E200 PRG:6200 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E210 PRG:6210 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E220 PRG:6220 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E230 PRG:6230 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E240 PRG:6240 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E250 PRG:6250 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E260 PRG:6260 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E270 PRG:6270 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E280 PRG:6280 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E290 PRG:6290 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2A0 PRG:62A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2B0 PRG:62B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2C0 PRG:62C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2D0 PRG:62D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2E0 PRG:62E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2F0 PRG:62F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E300 PRG:6300 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E310 PRG:6310 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E320 PRG:6320 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E330 PRG:6330 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E340 PRG:6340 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E350 PRG:6350 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E360 PRG:6360 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E370 PRG:6370 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E380 PRG:6380 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E390 PRG:6390 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3A0 PRG:63A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3B0 PRG:63B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3C0 PRG:63C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3D0 PRG:63D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3E0 PRG:63E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3F0 PRG:63F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E400 PRG:6400 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E410 PRG:6410 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E420 PRG:6420 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E430 PRG:6430 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E440 PRG:6440 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E450 PRG:6450 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E460 PRG:6460 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E470 PRG:6470 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E480 PRG:6480 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E490 PRG:6490 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4A0 PRG:64A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4B0 PRG:64B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4C0 PRG:64C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4D0 PRG:64D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4E0 PRG:64E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4F0 PRG:64F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E500 PRG:6500 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E510 PRG:6510 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E520 PRG:6520 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E530 PRG:6530 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E540 PRG:6540 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E550 PRG:6550 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E560 PRG:6560 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E570 PRG:6570 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E580 PRG:6580 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E590 PRG:6590 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5A0 PRG:65A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5B0 PRG:65B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5C0 PRG:65C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5D0 PRG:65D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5E0 PRG:65E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5F0 PRG:65F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E600 PRG:6600 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E610 PRG:6610 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E620 PRG:6620 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E630 PRG:6630 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E640 PRG:6640 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E650 PRG:6650 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E660 PRG:6660 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E670 PRG:6670 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E680 PRG:6680 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E690 PRG:6690 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6A0 PRG:66A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6B0 PRG:66B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6C0 PRG:66C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6D0 PRG:66D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6E0 PRG:66E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6F0 PRG:66F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E700 PRG:6700 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E710 PRG:6710 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E720 PRG:6720 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E730 PRG:6730 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E740 PRG:6740 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E750 PRG:6750 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E760 PRG:6760 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E770 PRG:6770 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E780 PRG:6780 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E790 PRG:6790 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7A0 PRG:67A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7B0 PRG:67B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7C0 PRG:67C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7D0 PRG:67D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7E0 PRG:67E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7F0 PRG:67F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E800 PRG:6800 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E810 PRG:6810 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E820 PRG:6820 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E830 PRG:6830 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E840 PRG:6840 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E850 PRG:6850 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E860 PRG:6860 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E870 PRG:6870 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E880 PRG:6880 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E890 PRG:6890 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8A0 PRG:68A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8B0 PRG:68B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8C0 PRG:68C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8D0 PRG:68D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8E0 PRG:68E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8F0 PRG:68F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E900 PRG:6900 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E910 PRG:6910 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E920 PRG:6920 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E930 PRG:6930 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E940 PRG:6940 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E950 PRG:6950 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E960 PRG:6960 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E970 PRG:6970 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E980 PRG:6980 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E990 PRG:6990 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9A0 PRG:69A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9B0 PRG:69B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9C0 PRG:69C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9D0 PRG:69D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9E0 PRG:69E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9F0 PRG:69F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA00 PRG:6A00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA10 PRG:6A10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA20 PRG:6A20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA30 PRG:6A30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA40 PRG:6A40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA50 PRG:6A50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA60 PRG:6A60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA70 PRG:6A70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA80 PRG:6A80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA90 PRG:6A90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAA0 PRG:6AA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAB0 PRG:6AB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAC0 PRG:6AC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAD0 PRG:6AD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAE0 PRG:6AE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAF0 PRG:6AF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB00 PRG:6B00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB10 PRG:6B10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB20 PRG:6B20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB30 PRG:6B30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB40 PRG:6B40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB50 PRG:6B50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB60 PRG:6B60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB70 PRG:6B70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB80 PRG:6B80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB90 PRG:6B90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBA0 PRG:6BA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBB0 PRG:6BB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBC0 PRG:6BC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBD0 PRG:6BD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBE0 PRG:6BE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBF0 PRG:6BF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC00 PRG:6C00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC10 PRG:6C10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC20 PRG:6C20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC30 PRG:6C30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC40 PRG:6C40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC50 PRG:6C50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC60 PRG:6C60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC70 PRG:6C70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC80 PRG:6C80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC90 PRG:6C90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECA0 PRG:6CA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECB0 PRG:6CB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECC0 PRG:6CC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECD0 PRG:6CD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECE0 PRG:6CE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECF0 PRG:6CF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED00 PRG:6D00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED10 PRG:6D10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED20 PRG:6D20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED30 PRG:6D30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED40 PRG:6D40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED50 PRG:6D50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED60 PRG:6D60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED70 PRG:6D70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED80 PRG:6D80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED90 PRG:6D90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDA0 PRG:6DA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDB0 PRG:6DB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDC0 PRG:6DC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDD0 PRG:6DD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDE0 PRG:6DE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDF0 PRG:6DF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE00 PRG:6E00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE10 PRG:6E10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE20 PRG:6E20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE30 PRG:6E30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE40 PRG:6E40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE50 PRG:6E50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE60 PRG:6E60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE70 PRG:6E70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE80 PRG:6E80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE90 PRG:6E90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEA0 PRG:6EA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEB0 PRG:6EB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEC0 PRG:6EC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EED0 PRG:6ED0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEE0 PRG:6EE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEF0 PRG:6EF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF00 PRG:6F00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF10 PRG:6F10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF20 PRG:6F20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF30 PRG:6F30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF40 PRG:6F40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF50 PRG:6F50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF60 PRG:6F60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF70 PRG:6F70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF80 PRG:6F80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF90 PRG:6F90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFA0 PRG:6FA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFB0 PRG:6FB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFC0 PRG:6FC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFD0 PRG:6FD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFE0 PRG:6FE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFF0 PRG:6FF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F000 PRG:7000 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F010 PRG:7010 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F020 PRG:7020 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F030 PRG:7030 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F040 PRG:7040 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F050 PRG:7050 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F060 PRG:7060 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F070 PRG:7070 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F080 PRG:7080 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F090 PRG:7090 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0A0 PRG:70A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0B0 PRG:70B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0C0 PRG:70C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0D0 PRG:70D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0E0 PRG:70E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0F0 PRG:70F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F100 PRG:7100 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F110 PRG:7110 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F120 PRG:7120 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F130 PRG:7130 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F140 PRG:7140 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F150 PRG:7150 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F160 PRG:7160 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F170 PRG:7170 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F180 PRG:7180 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F190 PRG:7190 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1A0 PRG:71A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1B0 PRG:71B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1C0 PRG:71C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39 ; CPU:$F1D0 PRG:71D0 FF FF FF FF FF FF 30 31 32 33 34 35 36 37 38 39
.byte $04, $01, $30, $30, $30, $30, $0E, $31, $2A, $28, $0E, $39, $27, $18, $0E, $36 ; CPU:$F1E0 PRG:71E0 04 01 30 30 30 30 0E 31 2A 28 0E 39 27 18 0E 36
.byte $31, $17, $0E, $31, $15, $22, $0E, $31, $2A, $28, $FF, $30, $25, $22, $FF, $2B ; CPU:$F1F0 PRG:71F0 31 17 0E 31 15 22 0E 31 2A 28 FF 30 25 22 FF 2B
.byte $28, $30, $FF, $31, $15, $22, $00, $20, $20, $23, $23, $00, $21, $01, $01, $01 ; CPU:$F200 PRG:7200 28 30 FF 31 15 22 00 20 20 23 23 00 21 01 01 01
.byte $01, $01, $21, $01, $00, $01, $00, $00, $82, $F2, $88, $F2, $90, $F2, $98, $F2 ; CPU:$F210 PRG:7210 01 01 21 01 00 01 00 00 82 F2 88 F2 90 F2 98 F2
.byte $78, $F6, $91, $F6, $64, $F6, $68, $F6, $6C, $F6, $70, $F6, $74, $F6, $C6, $F2 ; CPU:$F220 PRG:7220 78 F6 91 F6 64 F6 68 F6 6C F6 70 F6 74 F6 C6 F2
.byte $56, $F2, $5A, $F2, $5E, $F2, $00, $00, $00, $F8, $00, $F8, $00, $F8, $00, $F8 ; CPU:$F230 PRG:7230 56 F2 5A F2 5E F2 00 00 00 F8 00 F8 00 F8 00 F8
.byte $00, $F8, $48, $98, $00, $F8, $00, $F8, $00, $F8, $00, $F8, $00, $F8, $44, $78 ; CPU:$F240 PRG:7240 00 F8 48 98 00 F8 00 F8 00 F8 00 F8 00 F8 44 78
.byte $A0, $6D, $A0, $85, $B0, $85, $62, $F2, $FF, $FF, $6A, $F2, $FF, $FF, $74, $F2 ; CPU:$F250 PRG:7250 A0 6D A0 85 B0 85 62 F2 FF FF 6A F2 FF FF 74 F2
.byte $FF, $FF, $02, $03, $25, $34, $4A, $90, $91, $92, $02, $04, $A3, $A4, $C1, $E4 ; CPU:$F260 PRG:7260 FF FF 02 03 25 34 4A 90 91 92 02 04 A3 A4 C1 E4
.byte $E6, $E7, $E9, $EA, $03, $04, $A5, $B3, $B4, $E5, $ED, $EE, $E8, $FF, $FF, $EB ; CPU:$F270 PRG:7270 E6 E7 E9 EA 03 04 A5 B3 B4 E5 ED EE E8 FF FF EB
.byte $EC, $FF, $AE, $F2, $BA, $F2, $FF, $FF, $B4, $F2, $C0, $F2, $B4, $F2, $FF, $FF ; CPU:$F280 PRG:7280 EC FF AE F2 BA F2 FF FF B4 F2 C0 F2 B4 F2 FF FF
.byte $BA, $F2, $AE, $F2, $AE, $F2, $FF, $FF, $C0, $F2, $B4, $F2, $FF, $FF, $A8, $F2 ; CPU:$F290 PRG:7290 BA F2 AE F2 AE F2 FF FF C0 F2 B4 F2 FF FF A8 F2
.byte $AE, $F2, $B4, $F2, $AE, $F2, $B4, $F2, $02, $02, $FF, $FF, $FF, $FF, $02, $02 ; CPU:$F2A0 PRG:72A0 AE F2 B4 F2 AE F2 B4 F2 02 02 FF FF FF FF 02 02
.byte $01, $02, $03, $04, $02, $02, $05, $06, $07, $08, $02, $02, $A6, $A7, $A8, $A9 ; CPU:$F2B0 PRG:72B0 01 02 03 04 02 02 05 06 07 08 02 02 A6 A7 A8 A9
.byte $02, $02, $AA, $AB, $AC, $AD, $CA, $F2, $FF, $FF, $05, $01, $94, $95, $A1, $9F ; CPU:$F2C0 PRG:72C0 02 02 AA AB AC AD CA F2 FF FF 05 01 94 95 A1 9F
.byte $97, $00, $00, $77, $78, $7C, $82, $8B, $8C, $A3, $A4, $A5, $A6, $A7, $A8, $AD ; CPU:$F2D0 PRG:72D0 97 00 00 77 78 7C 82 8B 8C A3 A4 A5 A6 A7 A8 AD
.byte $AE, $AF, $B0, $B5, $B6, $B7, $B8, $6D, $6E, $6F, $72, $84, $8A, $A1, $A2, $A9 ; CPU:$F2E0 PRG:72E0 AE AF B0 B5 B6 B7 B8 6D 6E 6F 72 84 8A A1 A2 A9
.byte $AA, $AB, $AC, $B1, $B2, $B3, $B4, $B9, $BA, $BB, $BC, $A8, $F2, $01, $F3, $07 ; CPU:$F2F0 PRG:72F0 AA AB AC B1 B2 B3 B4 B9 BA BB BC A8 F2 01 F3 07
.byte $F3, $02, $02, $E8, $E9, $EA, $EB, $02, $02, $EC, $ED, $EE, $EF, $02, $02, $BD ; CPU:$F300 PRG:7300 F3 02 02 E8 E9 EA EB 02 02 EC ED EE EF 02 02 BD
.byte $BE, $BF, $C0, $00, $00, $21, $F3, $31, $F3, $41, $F3, $51, $F3, $61, $F3, $71 ; CPU:$F310 PRG:7310 BE BF C0 00 00 21 F3 31 F3 41 F3 51 F3 61 F3 71
.byte $F3, $01, $11, $02, $12, $02, $11, $01, $10, $11, $01, $10, $00, $10, $01, $11 ; CPU:$F320 PRG:7320 F3 01 11 02 12 02 11 01 10 11 01 10 00 10 01 11
.byte $02, $02, $11, $22, $12, $02, $12, $22, $11, $22, $12, $02, $11, $22, $11, $02 ; CPU:$F330 PRG:7330 02 02 11 22 12 02 12 22 11 22 12 02 11 22 11 02
.byte $12, $02, $10, $11, $12, $01, $12, $11, $10, $11, $03, $02, $01, $12, $01, $02 ; CPU:$F340 PRG:7340 12 02 10 11 12 01 12 11 10 11 03 02 01 12 01 02
.byte $03, $11, $31, $22, $12, $12, $32, $22, $11, $32, $12, $22, $31, $31, $11, $22 ; CPU:$F350 PRG:7350 03 11 31 22 12 12 32 22 11 32 12 22 31 31 11 22
.byte $32, $10, $20, $11, $12, $12, $23, $11, $10, $23, $13, $22, $21, $21, $10, $22 ; CPU:$F360 PRG:7360 32 10 20 11 12 12 23 11 10 23 13 22 21 21 10 22
.byte $23, $01, $11, $21, $12, $02, $11, $22, $10, $22, $11, $02, $10, $21, $11, $01 ; CPU:$F370 PRG:7370 23 01 11 21 12 02 11 22 10 22 11 02 10 21 11 01
.byte $12, $01, $01, $02, $03, $04, $01, $02, $03, $04, $01, $02, $03, $04, $00, $00 ; CPU:$F380 PRG:7380 12 01 01 02 03 04 01 02 03 04 01 02 03 04 00 00
.byte $9C, $F3, $BC, $F3, $DC, $F3, $FC, $F3, $1C, $F4, $3C, $F4, $01, $01, $01, $01 ; CPU:$F390 PRG:7390 9C F3 BC F3 DC F3 FC F3 1C F4 3C F4 01 01 01 01
.byte $02, $01, $01, $01, $01, $01, $02, $01, $01, $01, $02, $02, $01, $02, $02, $01 ; CPU:$F3A0 PRG:73A0 02 01 01 01 01 01 02 01 01 01 02 02 01 02 02 01
.byte $01, $02, $01, $03, $02, $01, $01, $03, $01, $03, $02, $04, $01, $01, $01, $01 ; CPU:$F3B0 PRG:73B0 01 02 01 03 02 01 01 03 01 03 02 04 01 01 01 01
.byte $01, $01, $01, $02, $01, $01, $02, $01, $02, $01, $02, $01, $02, $01, $01, $02 ; CPU:$F3C0 PRG:73C0 01 01 01 02 01 01 02 01 02 01 02 01 02 01 01 02
.byte $01, $01, $03, $02, $02, $01, $03, $01, $01, $02, $03, $04, $01, $01, $01, $01 ; CPU:$F3D0 PRG:73D0 01 01 03 02 02 01 03 01 01 02 03 04 01 01 01 01
.byte $02, $01, $01, $01, $01, $01, $02, $01, $02, $01, $01, $02, $01, $02, $01, $02 ; CPU:$F3E0 PRG:73E0 02 01 01 01 01 01 02 01 02 01 01 02 01 02 01 02
.byte $01, $02, $03, $01, $01, $01, $02, $03, $04, $01, $02, $03, $01, $01, $01, $01 ; CPU:$F3F0 PRG:73F0 01 02 03 01 01 01 02 03 04 01 02 03 01 01 01 01
.byte $01, $02, $01, $01, $01, $01, $02, $01, $02, $02, $01, $01, $02, $01, $02, $01 ; CPU:$F400 PRG:7400 01 02 01 01 01 01 02 01 02 02 01 01 02 01 02 01
.byte $01, $03, $02, $01, $02, $01, $01, $03, $01, $04, $02, $03, $01, $01, $01, $01 ; CPU:$F410 PRG:7410 01 03 02 01 02 01 01 03 01 04 02 03 01 01 01 01
.byte $01, $01, $01, $02, $01, $02, $01, $01, $01, $01, $02, $02, $02, $01, $01, $02 ; CPU:$F420 PRG:7420 01 01 01 02 01 02 01 01 01 01 02 02 02 01 01 02
.byte $01, $01, $02, $03, $02, $03, $01, $01, $02, $01, $03, $04, $01, $01, $01, $01 ; CPU:$F430 PRG:7430 01 01 02 03 02 03 01 01 02 01 03 04 01 01 01 01
.byte $01, $01, $02, $01, $01, $02, $01, $01, $02, $01, $02, $01, $01, $02, $02, $01 ; CPU:$F440 PRG:7440 01 01 02 01 01 02 01 01 02 01 02 01 01 02 02 01
.byte $03, $02, $01, $01, $01, $01, $03, $02, $03, $01, $04, $02, $64, $F4, $64, $F5 ; CPU:$F450 PRG:7450 03 02 01 01 01 01 03 02 03 01 04 02 64 F4 64 F5
.byte $E4, $F4, $E4, $F5, $24, $63, $14, $24, $55, $62, $14, $50, $60, $31, $56, $40 ; CPU:$F460 PRG:7460 E4 F4 E4 F5 24 63 14 24 55 62 14 50 60 31 56 40
.byte $61, $45, $11, $60, $10, $44, $32, $61, $13, $20, $43, $34, $15, $37, $63, $32 ; CPU:$F470 PRG:7470 61 45 11 60 10 44 32 61 13 20 43 34 15 37 63 32
.byte $33, $35, $12, $34, $25, $32, $10, $12, $34, $15, $62, $46, $23, $44, $13, $31 ; CPU:$F480 PRG:7480 33 35 12 34 25 32 10 12 34 15 62 46 23 44 13 31
.byte $17, $10, $22, $16, $51, $31, $41, $65, $10, $62, $11, $20, $30, $14, $34, $11 ; CPU:$F490 PRG:7490 17 10 22 16 51 31 41 65 10 62 11 20 30 14 34 11
.byte $34, $27, $13, $60, $37, $26, $33, $32, $32, $11, $53, $52, $61, $52, $12, $64 ; CPU:$F4A0 PRG:74A0 34 27 13 60 37 26 33 32 32 11 53 52 61 52 12 64
.byte $57, $67, $67, $64, $30, $31, $64, $30, $27, $10, $63, $40, $17, $31, $67, $60 ; CPU:$F4B0 PRG:74B0 57 67 67 64 30 31 64 30 27 10 63 40 17 31 67 60
.byte $13, $47, $10, $40, $13, $33, $60, $21, $33, $63, $60, $66, $64, $61, $35, $50 ; CPU:$F4C0 PRG:74C0 13 47 10 40 13 33 60 21 33 63 60 66 64 61 35 50
.byte $21, $12, $62, $53, $17, $41, $11, $42, $63, $65, $14, $54, $62, $30, $30, $12 ; CPU:$F4D0 PRG:74D0 21 12 62 53 17 41 11 42 63 65 14 54 62 30 30 12
.byte $33, $30, $36, $60, $14, $55, $11, $15, $64, $24, $33, $61, $10, $26, $13, $35 ; CPU:$F4E0 PRG:74E0 33 30 36 60 14 55 11 15 64 24 33 61 10 26 13 35
.byte $31, $62, $66, $37, $26, $12, $45, $54, $14, $35, $55, $16, $42, $34, $45, $15 ; CPU:$F4F0 PRG:74F0 31 62 66 37 26 12 45 54 14 35 55 16 42 34 45 15
.byte $54, $66, $35, $17, $25, $65, $43, $63, $46, $15, $32, $64, $32, $47, $33, $66 ; CPU:$F500 PRG:7500 54 66 35 17 25 65 43 63 46 15 32 64 32 47 33 66
.byte $46, $20, $56, $45, $66, $25, $21, $23, $13, $26, $45, $14, $51, $46, $17, $43 ; CPU:$F510 PRG:7510 46 20 56 45 66 25 21 23 13 26 45 14 51 46 17 43
.byte $56, $34, $16, $63, $55, $66, $25, $37, $15, $30, $36, $47, $15, $57, $41, $27 ; CPU:$F520 PRG:7520 56 34 16 63 55 66 25 37 15 30 36 47 15 57 41 27
.byte $25, $67, $24, $36, $13, $37, $54, $27, $21, $16, $44, $57, $36, $44, $50, $17 ; CPU:$F530 PRG:7530 25 67 24 36 13 37 54 27 21 16 44 57 36 44 50 17
.byte $33, $65, $41, $43, $12, $55, $46, $16, $45, $23, $65, $53, $47, $26, $51, $35 ; CPU:$F540 PRG:7540 33 65 41 43 12 55 46 16 45 23 65 53 47 26 51 35
.byte $46, $62, $57, $22, $27, $40, $67, $52, $67, $35, $36, $60, $24, $56, $65, $51 ; CPU:$F550 PRG:7550 46 62 57 22 27 40 67 52 67 35 36 60 24 56 65 51
.byte $44, $23, $25, $53, $64, $50, $17, $55, $46, $17, $40, $51, $34, $47, $53, $60 ; CPU:$F560 PRG:7560 44 23 25 53 64 50 17 55 46 17 40 51 34 47 53 60
.byte $54, $27, $63, $10, $37, $20, $17, $27, $14, $41, $30, $26, $35, $36, $20, $16 ; CPU:$F570 PRG:7570 54 27 63 10 37 20 17 27 14 41 30 26 35 36 20 16
.byte $55, $14, $40, $12, $24, $52, $17, $21, $37, $54, $21, $63, $14, $46, $30, $13 ; CPU:$F580 PRG:7580 55 14 40 12 24 52 17 21 37 54 21 63 14 46 30 13
.byte $34, $26, $44, $11, $36, $23, $65, $42, $64, $50, $25, $45, $16, $12, $41, $56 ; CPU:$F590 PRG:7590 34 26 44 11 36 23 65 42 64 50 25 45 16 12 41 56
.byte $31, $32, $47, $53, $35, $45, $30, $10, $27, $52, $24, $13, $36, $11, $57, $23 ; CPU:$F5A0 PRG:75A0 31 32 47 53 35 45 30 10 27 52 24 13 36 11 57 23
.byte $42, $21, $65, $25, $66, $16, $46, $31, $26, $62, $47, $22, $43, $67, $60, $37 ; CPU:$F5B0 PRG:75B0 42 21 65 25 66 16 46 31 26 62 47 22 43 67 60 37
.byte $55, $62, $33, $57, $44, $15, $62, $27, $65, $22, $61, $67, $25, $66, $51, $57 ; CPU:$F5C0 PRG:75C0 55 62 33 57 44 15 62 27 65 22 61 67 25 66 51 57
.byte $37, $57, $47, $15, $43, $37, $35, $45, $67, $56, $65, $15, $46, $56, $32, $43 ; CPU:$F5D0 PRG:75D0 37 57 47 15 43 37 35 45 67 56 65 15 46 56 32 43
.byte $61, $33, $66, $67, $44, $45, $22, $41, $16, $43, $21, $55, $14, $55, $23, $10 ; CPU:$F5E0 PRG:75E0 61 33 66 67 44 45 22 41 16 43 21 55 14 55 23 10
.byte $42, $13, $61, $56, $54, $37, $26, $66, $44, $67, $12, $17, $15, $65, $47, $65 ; CPU:$F5F0 PRG:75F0 42 13 61 56 54 37 26 66 44 67 12 17 15 65 47 65
.byte $65, $36, $66, $22, $37, $46, $33, $44, $65, $36, $11, $66, $63, $41, $43, $65 ; CPU:$F600 PRG:7600 65 36 66 22 37 46 33 44 65 36 11 66 63 41 43 65
.byte $17, $35, $31, $37, $56, $62, $45, $33, $15, $42, $14, $17, $56, $14, $54, $55 ; CPU:$F610 PRG:7610 17 35 31 37 56 62 45 33 15 42 14 17 56 14 54 55
.byte $64, $46, $27, $35, $16, $26, $53, $57, $45, $50, $15, $37, $32, $36, $11, $26 ; CPU:$F620 PRG:7620 64 46 27 35 16 26 53 57 45 50 15 37 32 36 11 26
.byte $17, $34, $56, $67, $35, $24, $36, $13, $63, $65, $16, $15, $34, $61, $40, $25 ; CPU:$F630 PRG:7630 17 34 56 67 35 24 36 13 63 65 16 15 34 61 40 25
.byte $53, $27, $46, $31, $13, $26, $55, $60, $26, $57, $66, $25, $25, $56, $47, $54 ; CPU:$F640 PRG:7640 53 27 46 31 13 26 55 60 26 57 66 25 25 56 47 54
.byte $16, $27, $64, $25, $45, $35, $23, $46, $27, $32, $36, $53, $25, $52, $35, $24 ; CPU:$F650 PRG:7650 16 27 64 25 45 35 23 46 27 32 36 53 25 52 35 24
.byte $66, $44, $55, $57, $7C, $F6, $FF, $FF, $7F, $F6, $FF, $FF, $82, $F6, $FF, $FF ; CPU:$F660 PRG:7660 66 44 55 57 7C F6 FF FF 7F F6 FF FF 82 F6 FF FF
.byte $85, $F6, $FF, $FF, $88, $F6, $FF, $FF, $8B, $F6, $FF, $FF, $01, $01, $79, $01 ; CPU:$F670 PRG:7670 85 F6 FF FF 88 F6 FF FF 8B F6 FF FF 01 01 79 01
.byte $01, $7A, $01, $01, $7B, $01, $01, $7C, $01, $01, $7D, $02, $02, $7E, $7F, $80 ; CPU:$F680 PRG:7680 01 7A 01 01 7B 01 01 7C 01 01 7D 02 02 7E 7F 80
.byte $81, $95, $F6, $FF, $FF, $04, $04, $69, $6A, $6B, $6C, $6D, $6E, $6F, $70, $71 ; CPU:$F690 PRG:7690 81 95 F6 FF FF 04 04 69 6A 6B 6C 6D 6E 6F 70 71
.byte $72, $73, $74, $75, $76, $77, $78, $AB, $F6, $EB, $F6, $55, $C5, $C5, $C5, $45 ; CPU:$F6A0 PRG:76A0 72 73 74 75 76 77 78 AB F6 EB F6 55 C5 C5 C5 45
.byte $55, $55, $55, $55, $00, $00, $00, $44, $54, $54, $57, $55, $00, $00, $00, $44 ; CPU:$F6B0 PRG:76B0 55 55 55 55 00 00 00 44 54 54 57 55 00 00 00 44
.byte $55, $55, $55, $55, $00, $00, $00, $44, $55, $55, $55, $55, $00, $00, $00, $44 ; CPU:$F6C0 PRG:76C0 55 55 55 55 00 00 00 44 55 55 55 55 00 00 00 44
.byte $55, $55, $55, $55, $00, $00, $00, $44, $DD, $FF, $55, $55, $AA, $22, $00, $44 ; CPU:$F6D0 PRG:76D0 55 55 55 55 00 00 00 44 DD FF 55 55 AA 22 00 44
.byte $5D, $53, $55, $F5, $AA, $AA, $AA, $26, $F5, $F5, $F5, $D5, $F5, $F5, $F5, $D5 ; CPU:$F6E0 PRG:76E0 5D 53 55 F5 AA AA AA 26 F5 F5 F5 D5 F5 F5 F5 D5
.byte $F5, $F5, $F5, $DD, $FF, $FF, $FF, $DD, $FF, $FF, $FF, $DD, $FF, $FF, $FF, $DD ; CPU:$F6F0 PRG:76F0 F5 F5 F5 DD FF FF FF DD FF FF FF DD FF FF FF DD
.byte $FF, $FF, $FF, $DD, $FF, $FF, $FF, $DD, $FF, $FF, $FF, $DD, $FF, $FF, $FF, $DD ; CPU:$F700 PRG:7700 FF FF FF DD FF FF FF DD FF FF FF DD FF FF FF DD
.byte $FF, $FF, $FF, $DD, $FF, $FF, $FF, $DD, $FF, $FF, $FF, $55, $55, $55, $55, $55 ; CPU:$F710 PRG:7710 FF FF FF DD FF FF FF DD FF FF FF 55 55 55 55 55
.byte $55, $55, $55, $55, $55, $55, $55, $55, $55, $55, $55, $44, $20, $84, $20, $C4 ; CPU:$F720 PRG:7720 55 55 55 55 55 55 55 55 55 55 55 44 20 84 20 C4
.byte $20, $04, $21, $44, $21, $84, $21, $C4, $21, $04, $22, $44, $22, $84, $22, $C4 ; CPU:$F730 PRG:7730 20 04 21 44 21 84 21 C4 21 04 22 44 22 84 22 C4
.byte $22, $50, $24, $50, $24, $50, $24, $50, $24, $50, $24, $66, $20, $A6, $20, $E6 ; CPU:$F740 PRG:7740 22 50 24 50 24 50 24 50 24 50 24 66 20 A6 20 E6
.byte $20, $26, $21, $66, $21, $A6, $21, $E6, $21, $26, $22, $66, $22, $A6, $22, $E6 ; CPU:$F750 PRG:7750 20 26 21 66 21 A6 21 E6 21 26 22 66 22 A6 22 E6
.byte $22, $50, $24, $50, $24, $50, $24, $50, $24, $50, $24, $48, $20, $88, $20, $C8 ; CPU:$F760 PRG:7760 22 50 24 50 24 50 24 50 24 50 24 48 20 88 20 C8
.byte $20, $08, $21, $48, $21, $88, $21, $C8, $21, $08, $22, $48, $22, $88, $22, $C8 ; CPU:$F770 PRG:7770 20 08 21 48 21 88 21 C8 21 08 22 48 22 88 22 C8
.byte $22, $50, $24, $50, $24, $50, $24, $50, $24, $50, $24, $6A, $20, $AA, $20, $EA ; CPU:$F780 PRG:7780 22 50 24 50 24 50 24 50 24 50 24 6A 20 AA 20 EA
.byte $20, $2A, $21, $6A, $21, $AA, $21, $EA, $21, $2A, $22, $6A, $22, $AA, $22, $EA ; CPU:$F790 PRG:7790 20 2A 21 6A 21 AA 21 EA 21 2A 22 6A 22 AA 22 EA
.byte $22, $50, $24, $50, $24, $50, $24, $50, $24, $50, $24, $4C, $20, $8C, $20, $CC ; CPU:$F7A0 PRG:77A0 22 50 24 50 24 50 24 50 24 50 24 4C 20 8C 20 CC
.byte $20, $0C, $21, $4C, $21, $8C, $21, $CC, $21, $0C, $22, $4C, $22, $8C, $22, $CC ; CPU:$F7B0 PRG:77B0 20 0C 21 4C 21 8C 21 CC 21 0C 22 4C 22 8C 22 CC
.byte $22, $50, $24, $50, $24, $50, $24, $50, $24, $50, $24, $6E, $20, $AE, $20, $EE ; CPU:$F7C0 PRG:77C0 22 50 24 50 24 50 24 50 24 50 24 6E 20 AE 20 EE
.byte $20, $2E, $21, $6E, $21, $AE, $21, $EE, $21, $2E, $22, $6E, $22, $AE, $22, $EE ; CPU:$F7D0 PRG:77D0 20 2E 21 6E 21 AE 21 EE 21 2E 22 6E 22 AE 22 EE
.byte $22, $50, $24, $50, $24, $50, $24, $50, $24, $50, $24, $50, $20, $90, $20, $D0 ; CPU:$F7E0 PRG:77E0 22 50 24 50 24 50 24 50 24 50 24 50 20 90 20 D0
.byte $20, $10, $21, $50, $21, $90, $21, $D0, $21, $10, $22, $50, $22, $90, $22, $D0 ; CPU:$F7F0 PRG:77F0 20 10 21 50 21 90 21 D0 21 10 22 50 22 90 22 D0
.byte $22, $50, $24, $50, $24, $50, $24, $50, $24, $50, $24, $04, $01, $F8, $4F, $4F ; CPU:$F800 PRG:7800 22 50 24 50 24 50 24 50 24 50 24 04 01 F8 4F 4F
.byte $44, $04, $02, $F8, $41, $4D, $45, $4F, $F9, $45, $52, $03, $01, $55, $55, $55 ; CPU:$F810 PRG:7810 44 04 02 F8 41 4D 45 4F F9 45 52 03 01 55 55 55
.byte $03, $01, $FF, $FF, $FF, $08, $02, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F820 PRG:7820 03 01 FF FF FF 08 02 FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $07, $01, $53, $54, $41, $F8, $45, $FF, $D4 ; CPU:$F830 PRG:7830 FF FF FF FF FF FF FF 07 01 53 54 41 F8 45 FF D4
.byte $05, $01, $3C, $41, $55, $53, $45, $08, $22, $4F, $F8, $E1, $23, $1B, $F8, $08 ; CPU:$F840 PRG:7840 05 01 3C 41 55 53 45 08 22 4F F8 E1 23 1B F8 08
.byte $03, $45, $D5, $44, $FF, $FF, $FF, $FF, $FF, $43, $4F, $D5, $54, $49, $D5, $55 ; CPU:$F850 PRG:7850 03 45 D5 44 FF FF FF FF FF 43 4F D5 54 49 D5 55
.byte $45, $43, $52, $45, $44, $49, $54, $FF, $FF, $08, $22, $25, $F8, $28, $22, $25 ; CPU:$F860 PRG:7860 45 43 52 45 44 49 54 FF FF 08 22 25 F8 28 22 25
.byte $F8, $E1, $23, $20, $F8, $05, $04, $03, $02, $01, $00, $EF, $FF, $0F, $10, $01 ; CPU:$F870 PRG:7870 F8 E1 23 20 F8 05 04 03 02 01 00 EF FF 0F 10 01
.byte $F0, $F1, $FF, $11, $10, $01, $F0, $00, $F0, $04, $F2, $08, $F4, $0C, $F6, $10 ; CPU:$F880 PRG:7880 F0 F1 FF 11 10 01 F0 00 F0 04 F2 08 F4 0C F6 10
.byte $F8, $10, $FC, $10, $00, $10, $04, $10, $08, $0C, $0A, $08, $0C, $04, $0E, $00 ; CPU:$F890 PRG:7890 F8 10 FC 10 00 10 04 10 08 0C 0A 08 0C 04 0E 00
.byte $10, $FC, $0E, $F8, $0C, $F4, $0A, $F0, $08, $F0, $04, $F0, $00, $F0, $FC, $F0 ; CPU:$F8A0 PRG:78A0 10 FC 0E F8 0C F4 0A F0 08 F0 04 F0 00 F0 FC F0
.byte $F8, $F4, $F6, $F8, $F4, $FC, $F2, $04, $01, $55, $55, $55, $55, $E5, $F8, $FA ; CPU:$F8B0 PRG:78B0 F8 F4 F6 F8 F4 FC F2 04 01 55 55 55 55 E5 F8 FA
.byte $F8, $0F, $F9, $24, $F9, $39, $F9, $55, $F9, $71, $F9, $8D, $F9, $A9, $F9, $CC ; CPU:$F8C0 PRG:78C0 F8 0F F9 24 F9 39 F9 55 F9 71 F9 8D F9 A9 F9 CC
.byte $F9, $EF, $F9, $12, $FA, $35, $FA, $5F, $FA, $89, $FA, $B3, $FA, $DD, $FA, $0E ; CPU:$F8D0 PRG:78D0 F9 EF F9 12 FA 35 FA 5F FA 89 FA B3 FA DD FA 0E
.byte $FB, $3F, $FB, $70, $FB, $03, $01, $00, $02, $04, $00, $04, $03, $00, $01, $04 ; CPU:$F8E0 PRG:78E0 FB 3F FB 70 FB 03 01 00 02 04 00 04 03 00 01 04
.byte $00, $03, $02, $00, $04, $03, $00, $02, $01, $00, $04, $03, $00, $01, $02, $00 ; CPU:$F8F0 PRG:78F0 00 03 02 00 04 03 00 02 01 00 04 03 00 01 02 00
.byte $04, $03, $00, $02, $01, $00, $80, $03, $00, $01, $02, $00, $03, $04, $00, $02 ; CPU:$F900 PRG:7900 04 03 00 02 01 00 80 03 00 01 02 00 03 04 00 02
.byte $01, $00, $04, $03, $00, $80, $04, $00, $01, $02, $00, $04, $03, $00, $02, $01 ; CPU:$F910 PRG:7910 01 00 04 03 00 80 04 00 01 02 00 04 03 00 02 01
.byte $00, $04, $02, $00, $03, $02, $00, $04, $01, $00, $02, $03, $00, $04, $01, $00 ; CPU:$F920 PRG:7920 00 04 02 00 03 02 00 04 01 00 02 03 00 04 01 00
.byte $80, $02, $00, $03, $01, $00, $04, $02, $00, $02, $01, $03, $00, $04, $80, $02 ; CPU:$F930 PRG:7930 80 02 00 03 01 00 04 02 00 02 01 03 00 04 80 02
.byte $00, $02, $04, $01, $00, $03, $02, $03, $00, $80, $01, $04, $00, $04, $02, $03 ; CPU:$F940 PRG:7940 00 02 04 01 00 03 02 03 00 80 01 04 00 04 02 03
.byte $00, $03, $01, $04, $00, $02, $03, $01, $00, $01, $04, $02, $00, $02, $04, $01 ; CPU:$F950 PRG:7950 00 03 01 04 00 02 03 01 00 01 04 02 00 02 04 01
.byte $00, $03, $80, $02, $00, $02, $01, $03, $00, $03, $80, $02, $00, $02, $04, $01 ; CPU:$F960 PRG:7960 00 03 80 02 00 02 01 03 00 03 80 02 00 02 04 01
.byte $00, $02, $01, $04, $00, $04, $03, $01, $00, $80, $02, $04, $00, $01, $03, $01 ; CPU:$F970 PRG:7970 00 02 01 04 00 04 03 01 00 80 02 04 00 01 03 01
.byte $00, $02, $80, $04, $00, $04, $03, $01, $00, $01, $02, $04, $00, $02, $04, $03 ; CPU:$F980 PRG:7980 00 02 80 04 00 04 03 01 00 01 02 04 00 02 04 03
.byte $00, $01, $80, $01, $00, $04, $03, $02, $00, $02, $80, $04, $00, $01, $03, $02 ; CPU:$F990 PRG:7990 00 01 80 01 00 04 03 02 00 02 80 04 00 01 03 02
.byte $00, $03, $04, $01, $00, $02, $01, $03, $00, $04, $04, $03, $02, $00, $01, $80 ; CPU:$F9A0 PRG:79A0 00 03 04 01 00 02 01 03 00 04 04 03 02 00 01 80
.byte $02, $04, $00, $04, $03, $01, $02, $00, $02, $80, $04, $03, $00, $03, $01, $02 ; CPU:$F9B0 PRG:79B0 02 04 00 04 03 01 02 00 02 80 04 03 00 03 01 02
.byte $04, $00, $04, $04, $03, $01, $00, $01, $80, $04, $02, $00, $03, $04, $03, $02 ; CPU:$F9C0 PRG:79C0 04 00 04 04 03 01 00 01 80 04 02 00 03 04 03 02
.byte $00, $02, $01, $80, $04, $00, $01, $80, $03, $02, $00, $03, $02, $01, $04, $00 ; CPU:$F9D0 PRG:79D0 00 02 01 80 04 00 01 80 03 02 00 03 02 01 04 00
.byte $04, $01, $03, $02, $00, $80, $02, $04, $01, $00, $03, $01, $03, $02, $00, $01 ; CPU:$F9E0 PRG:79E0 04 01 03 02 00 80 02 04 01 00 03 01 03 02 00 01
.byte $02, $04, $03, $00, $03, $04, $01, $02, $00, $80, $80, $03, $04, $00, $04, $01 ; CPU:$F9F0 PRG:79F0 02 04 03 00 03 04 01 02 00 80 80 03 04 00 04 01
.byte $02, $01, $00, $03, $01, $80, $03, $00, $03, $02, $01, $04, $00, $01, $04, $02 ; CPU:$FA00 PRG:7A00 02 01 00 03 01 80 03 00 03 02 01 04 00 01 04 02
.byte $03, $00, $01, $01, $02, $04, $00, $04, $03, $01, $03, $00, $03, $02, $04, $02 ; CPU:$FA10 PRG:7A10 03 00 01 01 02 04 00 04 03 01 03 00 03 02 04 02
.byte $00, $01, $80, $03, $01, $00, $02, $80, $02, $04, $00, $04, $01, $03, $04, $00 ; CPU:$FA20 PRG:7A20 00 01 80 03 01 00 02 80 02 04 00 04 01 03 04 00
.byte $03, $02, $80, $02, $00, $04, $02, $01, $02, $03, $00, $03, $80, $04, $04, $01 ; CPU:$FA30 PRG:7A30 03 02 80 02 00 04 02 01 02 03 00 03 80 04 04 01
.byte $00, $04, $02, $03, $80, $02, $00, $03, $01, $04, $01, $03, $00, $02, $80, $80 ; CPU:$FA40 PRG:7A40 00 04 02 03 80 02 00 03 01 04 01 03 00 02 80 80
.byte $02, $04, $00, $01, $04, $02, $03, $02, $00, $03, $80, $01, $01, $04, $00, $04 ; CPU:$FA50 PRG:7A50 02 04 00 01 04 02 03 02 00 03 80 01 01 04 00 04
.byte $01, $02, $03, $01, $00, $02, $03, $01, $80, $02, $00, $01, $80, $04, $03, $04 ; CPU:$FA60 PRG:7A60 01 02 03 01 00 02 03 01 80 02 00 01 80 04 03 04
.byte $00, $04, $02, $01, $80, $02, $00, $03, $01, $03, $04, $01, $00, $04, $02, $80 ; CPU:$FA70 PRG:7A70 00 04 02 01 80 02 00 03 01 03 04 01 00 04 02 80
.byte $02, $03, $00, $01, $03, $80, $04, $02, $00, $02, $01, $03, $04, $01, $00, $03 ; CPU:$FA80 PRG:7A80 02 03 00 01 03 80 04 02 00 02 01 03 04 01 00 03
.byte $80, $04, $02, $03, $00, $02, $02, $03, $01, $04, $00, $01, $04, $80, $02, $03 ; CPU:$FA90 PRG:7A90 80 04 02 03 00 02 02 03 01 04 00 01 04 80 02 03
.byte $00, $02, $80, $03, $04, $01, $00, $03, $01, $02, $80, $02, $00, $02, $04, $03 ; CPU:$FAA0 PRG:7AA0 00 02 80 03 04 01 00 03 01 02 80 02 00 02 04 03
.byte $01, $03, $00, $04, $04, $01, $02, $03, $00, $02, $03, $80, $01, $04, $00, $01 ; CPU:$FAB0 PRG:7AB0 01 03 00 04 04 01 02 03 00 02 03 80 01 04 00 01
.byte $01, $02, $03, $02, $00, $04, $03, $80, $01, $03, $00, $01, $80, $02, $04, $02 ; CPU:$FAC0 PRG:7AC0 01 02 03 02 00 04 03 80 01 03 00 01 80 02 04 02
.byte $00, $03, $02, $01, $80, $01, $00, $04, $01, $03, $02, $04, $00, $01, $02, $03 ; CPU:$FAD0 PRG:7AD0 00 03 02 01 80 01 00 04 01 03 02 04 00 01 02 03
.byte $04, $03, $02, $00, $03, $80, $04, $01, $03, $04, $00, $01, $01, $03, $04, $80 ; CPU:$FAE0 PRG:7AE0 04 03 02 00 03 80 04 01 03 04 00 01 01 03 04 80
.byte $01, $00, $02, $04, $80, $01, $03, $04, $00, $03, $01, $02, $80, $04, $01, $00 ; CPU:$FAF0 PRG:7AF0 01 00 02 04 80 01 03 04 00 03 01 02 80 04 01 00
.byte $02, $04, $03, $01, $02, $03, $00, $03, $01, $80, $03, $04, $01, $00, $04, $02 ; CPU:$FB00 PRG:7B00 02 04 03 01 02 03 00 03 01 80 03 04 01 00 04 02
.byte $01, $03, $04, $04, $00, $01, $03, $04, $80, $02, $03, $00, $04, $02, $01, $80 ; CPU:$FB10 PRG:7B10 01 03 04 04 00 01 03 04 80 02 03 00 04 02 01 80
.byte $03, $01, $00, $01, $04, $02, $80, $02, $01, $00, $04, $03, $01, $80, $03, $04 ; CPU:$FB20 PRG:7B20 03 01 00 01 04 02 80 02 01 00 04 03 01 80 03 04
.byte $00, $01, $02, $03, $80, $02, $01, $00, $02, $04, $01, $04, $03, $04, $00, $03 ; CPU:$FB30 PRG:7B30 00 01 02 03 80 02 01 00 02 04 01 04 03 04 00 03
.byte $01, $80, $01, $04, $03, $00, $02, $80, $04, $03, $02, $01, $00, $02, $04, $02 ; CPU:$FB40 PRG:7B40 01 80 01 04 03 00 02 80 04 03 02 01 00 02 04 02
.byte $01, $04, $02, $00, $03, $01, $03, $02, $03, $01, $00, $02, $80, $04, $80, $04 ; CPU:$FB50 PRG:7B50 01 04 02 00 03 01 03 02 03 01 00 02 80 04 80 04
.byte $02, $00, $03, $01, $02, $80, $03, $01, $00, $02, $03, $04, $02, $04, $03, $00 ; CPU:$FB60 PRG:7B60 02 00 03 01 02 80 03 01 00 02 03 04 02 04 03 00
.byte $03, $01, $02, $04, $01, $04, $00, $02, $04, $01, $03, $02, $03, $00, $03, $03 ; CPU:$FB70 PRG:7B70 03 01 02 04 01 04 00 02 04 01 03 02 03 00 03 03
.byte $02, $01, $04, $01, $00, $01, $80, $04, $03, $02, $03, $00, $80, $80, $02, $01 ; CPU:$FB80 PRG:7B80 02 01 04 01 00 01 80 04 03 02 03 00 80 80 02 01
.byte $04, $02, $00, $02, $04, $03, $80, $80, $01, $00, $03, $01, $02, $01, $04, $03 ; CPU:$FB90 PRG:7B90 04 02 00 02 04 03 80 80 01 00 03 01 02 01 04 03
.byte $00, $04, $01, $30, $30, $30, $30, $06, $01, $30, $30, $30, $30, $30, $30, $0A ; CPU:$FBA0 PRG:7BA0 00 04 01 30 30 30 30 06 01 30 30 30 30 30 30 0A
.byte $02, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBB0 PRG:7BB0 02 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBC0 PRG:7BC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBD0 PRG:7BD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBE0 PRG:7BE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBF0 PRG:7BF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC00 PRG:7C00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC10 PRG:7C10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC20 PRG:7C20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC30 PRG:7C30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC40 PRG:7C40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC50 PRG:7C50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC60 PRG:7C60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC70 PRG:7C70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC80 PRG:7C80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC90 PRG:7C90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCA0 PRG:7CA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCB0 PRG:7CB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCC0 PRG:7CC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCD0 PRG:7CD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCE0 PRG:7CE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCF0 PRG:7CF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD00 PRG:7D00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD10 PRG:7D10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD20 PRG:7D20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD30 PRG:7D30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD40 PRG:7D40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD50 PRG:7D50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD60 PRG:7D60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD70 PRG:7D70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD80 PRG:7D80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD90 PRG:7D90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDA0 PRG:7DA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDB0 PRG:7DB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDC0 PRG:7DC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDD0 PRG:7DD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDE0 PRG:7DE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDF0 PRG:7DF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE00 PRG:7E00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE10 PRG:7E10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE20 PRG:7E20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE30 PRG:7E30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE40 PRG:7E40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE50 PRG:7E50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE60 PRG:7E60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE70 PRG:7E70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE80 PRG:7E80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE90 PRG:7E90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEA0 PRG:7EA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEB0 PRG:7EB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEC0 PRG:7EC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FED0 PRG:7ED0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEE0 PRG:7EE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEF0 PRG:7EF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
; -----------------------------------------------------------------------------
; Routine: Reset
; Global: Power-on entry: sets up the stack, clears the PPU and starts the bank switch.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Reset:
ldx #$FF ; CPU:$FF00 PRG:7F00 A2 FF
txs ; CPU:$FF02 PRG:7F02 9A
sei ; CPU:$FF03 PRG:7F03 78
cld ; CPU:$FF04 PRG:7F04 D8
lda #$00 ; CPU:$FF05 PRG:7F05 A9 00
sta PPUCTRL ; CPU:$FF07 PRG:7F07 8D 00 20
sta PPUMASK ; CPU:$FF0A PRG:7F0A 8D 01 20
lda #$30 ; CPU:$FF0D PRG:7F0D A9 30
jsr WritePrgBankReg ; CPU:$FF0F PRG:7F0F 20 49 FF
jsr WaitForBankSwitch ; CPU:$FF12 PRG:7F12 20 57 FF
bcc SelectChrBanks ; CPU:$FF15 PRG:7F15 90 18
lda #$10 ; CPU:$FF17 PRG:7F17 A9 10
jsr WritePrgBankReg ; CPU:$FF19 PRG:7F19 20 49 FF
lda #$30 ; CPU:$FF1C PRG:7F1C A9 30
jsr WritePrgBankReg ; CPU:$FF1E PRG:7F1E 20 49 FF
jsr DelayOuterLoop ; CPU:$FF21 PRG:7F21 20 4C FF
jsr DelayOuterLoop ; CPU:$FF24 PRG:7F24 20 4C FF
lda #$10 ; CPU:$FF27 PRG:7F27 A9 10
jsr WritePrgBankReg ; CPU:$FF29 PRG:7F29 20 49 FF
jmp StartGame ; CPU:$FF2C PRG:7F2C 4C 3E FF
; -----------------------------------------------------------------------------
; Routine: SelectChrBanks
; Global: Picks the CHR banks for the stage that is about to be drawn.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SelectChrBanks:
lda #$20 ; CPU:$FF2F PRG:7F2F A9 20
jsr WritePrgBankReg ; CPU:$FF31 PRG:7F31 20 49 FF
lda #$30 ; CPU:$FF34 PRG:7F34 A9 30
jsr WritePrgBankReg ; CPU:$FF36 PRG:7F36 20 49 FF
lda #$20 ; CPU:$FF39 PRG:7F39 A9 20
jsr WritePrgBankReg ; CPU:$FF3B PRG:7F3B 20 49 FF
; -----------------------------------------------------------------------------
; Routine: StartGame
; Global: Switches to the first PRG bank and hands over to the game code.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
StartGame:
lda #$30 ; CPU:$FF3E PRG:7F3E A9 30
sta $4100 ; CPU:$FF40 PRG:7F40 8D 00 41
jsr StartBankSwitchDelay ; CPU:$FF43 PRG:7F43 20 62 FF
jmp InitializeGame ; CPU:$FF46 PRG:7F46 4C 36 80
; -----------------------------------------------------------------------------
; Routine: WritePrgBankReg
; Global: Writes the MMC3 PRG bank register at $4100.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
WritePrgBankReg:
sta $4100 ; CPU:$FF49 PRG:7F49 8D 00 41
; -----------------------------------------------------------------------------
; Routine: DelayOuterLoop
; Global: Outer half of the power-on delay loop.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DelayOuterLoop:
ldy #$04 ; CPU:$FF4C PRG:7F4C A0 04
; -----------------------------------------------------------------------------
; Routine: DelayOuterLoop_OnNonzero
; Global: Branch target inside DelayOuterLoop: taken when the tested value is not zero.
; Local: Part of DelayOuterLoop.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DelayOuterLoop_OnNonzero:
ldx #$CE ; CPU:$FF4E PRG:7F4E A2 CE
; -----------------------------------------------------------------------------
; Routine: DelayInnerLoop
; Global: Inner half of the power-on delay loop.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
DelayInnerLoop:
dex ; CPU:$FF50 PRG:7F50 CA
bne DelayInnerLoop ; CPU:$FF51 PRG:7F51 D0 FD
dey ; CPU:$FF53 PRG:7F53 88
bne DelayOuterLoop_OnNonzero ; CPU:$FF54 PRG:7F54 D0 F8
rts ; CPU:$FF56 PRG:7F56 60
; -----------------------------------------------------------------------------
; Routine: WaitForBankSwitch
; Global: Waits for the bank switch counter to run out.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
WaitForBankSwitch:
lda #$41 ; CPU:$FF57 PRG:7F57 A9 41
cmp $07F0 ; CPU:$FF59 PRG:7F59 CD F0 07
bne WaitForBankSwitch_Loop ; CPU:$FF5C PRG:7F5C D0 02
sec ; CPU:$FF5E PRG:7F5E 38
rts ; CPU:$FF5F PRG:7F5F 60
; -----------------------------------------------------------------------------
; Routine: WaitForBankSwitch_Loop
; Global: Branch target inside WaitForBankSwitch: taken when the loop repeats.
; Local: Part of WaitForBankSwitch.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
WaitForBankSwitch_Loop:
clc ; CPU:$FF60 PRG:7F60 18
rts ; CPU:$FF61 PRG:7F61 60
; -----------------------------------------------------------------------------
; Routine: StartBankSwitchDelay
; Global: Starts the bank switch delay counter.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
StartBankSwitchDelay:
lda #$41 ; CPU:$FF62 PRG:7F62 A9 41
sta $07F0 ; CPU:$FF64 PRG:7F64 8D F0 07
rts ; CPU:$FF67 PRG:7F67 60
; ---- data $FF68-$FF6F (8 bytes) ----
.byte $A9, $5A, $8D, $F0, $07, $60, $FF, $FF ; CPU:$FF68 PRG:7F68 A9 5A 8D F0 07 60 FF FF
; -----------------------------------------------------------------------------
; Routine: SwitchPrgBank
; Global: Writes A to the MMC3 PRG bank register with the mode bits forced on.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SwitchPrgBank:
ora #$30 ; CPU:$FF70 PRG:7F70 09 30
sta $4100 ; CPU:$FF72 PRG:7F72 8D 00 41
rts ; CPU:$FF75 PRG:7F75 60
; ---- data $FF76-$FF7F (10 bytes) ----
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF76 PRG:7F76 FF FF FF FF FF FF FF FF FF FF
; -----------------------------------------------------------------------------
; Routine: SwitchPrgBankKeepA
; Global: Writes X to the MMC3 PRG bank register and keeps A.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
SwitchPrgBankKeepA:
pha ; CPU:$FF80 PRG:7F80 48
txa ; CPU:$FF81 PRG:7F81 8A
ora #$30 ; CPU:$FF82 PRG:7F82 09 30
sta $4100 ; CPU:$FF84 PRG:7F84 8D 00 41
pla ; CPU:$FF87 PRG:7F87 68
rts ; CPU:$FF88 PRG:7F88 60
; ---- data $FF89-$FFFF (119 bytes) ----
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF89 PRG:7F89 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF99 PRG:7F99 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFA9 PRG:7FA9 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFB9 PRG:7FB9 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFC9 PRG:7FC9 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFD9 PRG:7FD9 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFE9 PRG:7FE9 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $8F, $80, $00, $FF, $36, $80 ; CPU:$FFF9 PRG:7FF9 FF 8F 80 00 FF 36 80
.segment "PRG4"
.org $8000
; ---- data $8000-$800C (13 bytes) ----
.byte $EA, $EA, $86, $2C, $85, $2D, $A5, $2C, $29, $07, $20, $1B, $80 ; CPU:$8000 PRG:8000 EA EA 86 2C 85 2D A5 2C 29 07 20 1B 80
; -----------------------------------------------------------------------------
; Routine: Bank4_CallBankedHandler
; Global: Switches the PRG bank and dispatches to the handler the caller named.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank4_CallBankedHandler:
jsr Bank4_Sub_8088 ; CPU:$800D PRG:800D 20 88 80
lda PrgBankNumber ; CPU:$8010 PRG:8010 A5 2C
and #$07 ; CPU:$8012 PRG:8012 29 07
jmp Bank4_Sub_801B ; CPU:$8014 PRG:8014 4C 1B 80
; ---- data $8017-$801A (4 bytes) ----
.byte $85, $2C, $09, $08 ; CPU:$8017 PRG:8017 85 2C 09 08
; -----------------------------------------------------------------------------
; Routine: Bank4_Sub_801B
; Global: Branch target inside Bank4_Sub: taken when 801B.
; Local: Part of Bank4_Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank4_Sub_801B:
tax ; CPU:$801B PRG:801B AA
jsr SwitchPrgBank ; CPU:$801C PRG:801C 20 70 FF
lda $8026,x ; CPU:$801F PRG:801F BD 26 80
sta $8026,x ; CPU:$8022 PRG:8022 9D 26 80
rts ; CPU:$8025 PRG:8025 60
; ---- data $8026-$8087 (98 bytes) ----
; referenced by `lda $8026,x` at $801F (operand $8026 falls inside this region)
; referenced by `sta $8026,x` at $8022 (operand $8026 falls inside this region)
.byte $00, $01, $02, $03, $04, $05, $06, $07, $10, $11, $12, $13, $14, $15, $16, $17 ; CPU:$8026 PRG:8026 00 01 02 03 04 05 06 07 10 11 12 13 14 15 16 17
.byte $78, $D8, $AD, $02, $20, $10, $FB, $A9, $00, $8D, $00, $20, $8D, $01, $20, $A2 ; CPU:$8036 PRG:8036 78 D8 AD 02 20 10 FB A9 00 8D 00 20 8D 01 20 A2
.byte $FF, $9A, $A9, $00, $20, $1B, $80, $A9, $00, $85, $00, $85, $01, $A0, $02, $A2 ; CPU:$8046 PRG:8046 FF 9A A9 00 20 1B 80 A9 00 85 00 85 01 A0 02 A2
.byte $06, $91, $00, $C8, $E0, $00, $D0, $04, $C0, $E0, $B0, $09, $C0, $00, $D0, $F1 ; CPU:$8056 PRG:8056 06 91 00 C8 E0 00 D0 04 C0 E0 B0 09 C0 00 D0 F1
.byte $E6, $01, $CA, $10, $EC, $85, $00, $85, $01, $A9, $00, $8D, $15, $40, $A9, $1E ; CPU:$8066 PRG:8066 E6 01 CA 10 EC 85 00 85 01 A9 00 8D 15 40 A9 1E
.byte $85, $02, $A9, $88, $8D, $00, $20, $85, $01, $A9, $01, $85, $6A, $E6, $2F, $4C ; CPU:$8076 PRG:8076 85 02 A9 88 8D 00 20 85 01 A9 01 85 6A E6 2F 4C
.byte $83, $80 ; CPU:$8086 PRG:8086 83 80
; -----------------------------------------------------------------------------
; Routine: Bank4_Sub_8088
; Global: Branch target inside Bank4_Sub: taken when 8088.
; Local: Part of Bank4_Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank4_Sub_8088:
lda HandlerIndex ; CPU:$8088 PRG:8088 A5 2D
asl a ; CPU:$808A PRG:808A 0A
tay ; CPU:$808B PRG:808B A8
lda $8096,y ; CPU:$808C PRG:808C B9 96 80
pha ; CPU:$808F PRG:808F 48
lda $8095,y ; CPU:$8090 PRG:8090 B9 95 80
pha ; CPU:$8093 PRG:8093 48
rts ; CPU:$8094 PRG:8094 60
; ---- data $8095-$80A6 (18 bytes) ----
; referenced by `lda $8096,y` at $808C (operand $8096 falls inside this region)
; referenced by `lda $8095,y` at $8090 (operand $8095 falls inside this region)
.byte $A6, $80, $30, $81, $83, $A7, $19, $A7, $F0, $AA, $25, $A7, $17, $81, $4F, $AB ; CPU:$8095 PRG:8095 A6 80 30 81 83 A7 19 A7 F0 AA 25 A7 17 81 4F AB
.byte $60, $81 ; CPU:$80A5 PRG:80A5 60 81
; -----------------------------------------------------------------------------
; Routine: Bank4_StartVramWrite
; Global: Sets the PPU address for the next VRAM write.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank4_StartVramWrite:
lda Zp2E ; CPU:$80A7 PRG:80A7 A5 2E
asl a ; CPU:$80A9 PRG:80A9 0A
tax ; CPU:$80AA PRG:80AA AA
pha ; CPU:$80AB PRG:80AB 48
lda $839A,x ; CPU:$80AC PRG:80AC BD 9A 83
sta Zp11 ; CPU:$80AF PRG:80AF 85 11
lda $839B,x ; CPU:$80B1 PRG:80B1 BD 9B 83
sta Zp12 ; CPU:$80B4 PRG:80B4 85 12
jsr Bank4_Sub_80C9 ; CPU:$80B6 PRG:80B6 20 C9 80
pla ; CPU:$80B9 PRG:80B9 68
tax ; CPU:$80BA PRG:80BA AA
lda $83C0,x ; CPU:$80BB PRG:80BB BD C0 83
sta Zp11 ; CPU:$80BE PRG:80BE 85 11
lda $83C1,x ; CPU:$80C0 PRG:80C0 BD C1 83
sta Zp12 ; CPU:$80C3 PRG:80C3 85 12
jsr Bank4_Sub_8118 ; CPU:$80C5 PRG:80C5 20 18 81
rts ; CPU:$80C8 PRG:80C8 60
; -----------------------------------------------------------------------------
; Routine: Bank4_Sub_80C9
; Global: Branch target inside Bank4_Sub: taken when 80C9.
; Local: Part of Bank4_Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank4_Sub_80C9:
lda #$00 ; CPU:$80C9 PRG:80C9 A9 00
sta PPUCTRL ; CPU:$80CB PRG:80CB 8D 00 20
sta PPUMASK ; CPU:$80CE PRG:80CE 8D 01 20
ldy #$00 ; CPU:$80D1 PRG:80D1 A0 00
lda PPUSTATUS ; CPU:$80D3 PRG:80D3 AD 02 20
lda (Zp11),y ; CPU:$80D6 PRG:80D6 B1 11
sta PPUADDR ; CPU:$80D8 PRG:80D8 8D 06 20
jsr Bank4_Sub_8111 ; CPU:$80DB PRG:80DB 20 11 81
lda (Zp11),y ; CPU:$80DE PRG:80DE B1 11
sta PPUADDR ; CPU:$80E0 PRG:80E0 8D 06 20
; -----------------------------------------------------------------------------
; Routine: Bank4_Bank4_StartVramWrite_OnZero
; Global: Branch target inside Bank4_Bank4_StartVramWrite: taken when the tested value is zero.
; Local: Part of Bank4_Bank4_StartVramWrite.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank4_Bank4_StartVramWrite_OnZero:
jsr Bank4_Sub_8111 ; CPU:$80E3 PRG:80E3 20 11 81
lda (Zp11),y ; CPU:$80E6 PRG:80E6 B1 11
bpl Bank4_Bank4_StartVramWrite_Loop ; CPU:$80E8 PRG:80E8 10 16
cmp #$FF ; CPU:$80EA PRG:80EA C9 FF
beq Bank4_Bank4_StartVramWrite_Loop2 ; CPU:$80EC PRG:80EC F0 22
and #$7F ; CPU:$80EE PRG:80EE 29 7F
sta ControllerByte ; CPU:$80F0 PRG:80F0 85 07
; -----------------------------------------------------------------------------
; Routine: Bank4_Bank4_StartVramWrite_OnNonzero
; Global: Branch target inside Bank4_Bank4_StartVramWrite: taken when the tested value is not zero.
; Local: Part of Bank4_Bank4_StartVramWrite.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank4_Bank4_StartVramWrite_OnNonzero:
jsr Bank4_Sub_8111 ; CPU:$80F2 PRG:80F2 20 11 81
lda (Zp11),y ; CPU:$80F5 PRG:80F5 B1 11
sta PPUDATA ; CPU:$80F7 PRG:80F7 8D 07 20
dec ControllerByte ; CPU:$80FA PRG:80FA C6 07
bne Bank4_Bank4_StartVramWrite_OnNonzero ; CPU:$80FC PRG:80FC D0 F4
beq Bank4_Bank4_StartVramWrite_OnZero ; CPU:$80FE PRG:80FE F0 E3
; -----------------------------------------------------------------------------
; Routine: Bank4_Bank4_StartVramWrite_Loop
; Global: Branch target inside Bank4_Bank4_StartVramWrite: taken when the loop repeats.
; Local: Part of Bank4_Bank4_StartVramWrite.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank4_Bank4_StartVramWrite_Loop:
sta ControllerByte ; CPU:$8100 PRG:8100 85 07
jsr Bank4_Sub_8111 ; CPU:$8102 PRG:8102 20 11 81
lda (Zp11),y ; CPU:$8105 PRG:8105 B1 11
; -----------------------------------------------------------------------------
; Routine: Bank4_Bank4_StartVramWrite_OnNonzero2
; Global: Branch target inside Bank4_Bank4_StartVramWrite: taken when OnNonzero2.
; Local: Part of Bank4_Bank4_StartVramWrite.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank4_Bank4_StartVramWrite_OnNonzero2:
sta PPUDATA ; CPU:$8107 PRG:8107 8D 07 20
dec ControllerByte ; CPU:$810A PRG:810A C6 07
bne Bank4_Bank4_StartVramWrite_OnNonzero2 ; CPU:$810C PRG:810C D0 F9
beq Bank4_Bank4_StartVramWrite_OnZero ; CPU:$810E PRG:810E F0 D3
; -----------------------------------------------------------------------------
; Routine: Bank4_Bank4_StartVramWrite_Loop2
; Global: Branch target inside Bank4_Bank4_StartVramWrite: taken when Loop2.
; Local: Part of Bank4_Bank4_StartVramWrite.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank4_Bank4_StartVramWrite_Loop2:
rts ; CPU:$8110 PRG:8110 60
; -----------------------------------------------------------------------------
; Routine: Bank4_Sub_8111
; Global: Branch target inside Bank4_Sub: taken when 8111.
; Local: Part of Bank4_Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank4_Sub_8111:
inc Zp11 ; CPU:$8111 PRG:8111 E6 11
bne Bank4_Bank4_StartVramWrite_Loop3 ; CPU:$8113 PRG:8113 D0 02
inc Zp12 ; CPU:$8115 PRG:8115 E6 12
; -----------------------------------------------------------------------------
; Routine: Bank4_Bank4_StartVramWrite_Loop3
; Global: Branch target inside Bank4_Bank4_StartVramWrite: taken when Loop3.
; Local: Part of Bank4_Bank4_StartVramWrite.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank4_Bank4_StartVramWrite_Loop3:
rts ; CPU:$8117 PRG:8117 60
; -----------------------------------------------------------------------------
; Routine: Bank4_Sub_8118
; Global: Branch target inside Bank4_Sub: taken when 8118.
; Local: Part of Bank4_Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank4_Sub_8118:
lda PPUSTATUS ; CPU:$8118 PRG:8118 AD 02 20
lda #$3F ; CPU:$811B PRG:811B A9 3F
sta PPUADDR ; CPU:$811D PRG:811D 8D 06 20
lda #$00 ; CPU:$8120 PRG:8120 A9 00
sta PPUADDR ; CPU:$8122 PRG:8122 8D 06 20
tay ; CPU:$8125 PRG:8125 A8
; -----------------------------------------------------------------------------
; Routine: Bank4_Bank4_StartVramWrite_OnCarryClear
; Global: Branch target inside Bank4_Bank4_StartVramWrite: taken when the addition or subtraction did not carry.
; Local: Part of Bank4_Bank4_StartVramWrite.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank4_Bank4_StartVramWrite_OnCarryClear:
lda (Zp11),y ; CPU:$8126 PRG:8126 B1 11
sta PPUDATA ; CPU:$8128 PRG:8128 8D 07 20
iny ; CPU:$812B PRG:812B C8
cpy #$20 ; CPU:$812C PRG:812C C0 20
bcc Bank4_Bank4_StartVramWrite_OnCarryClear ; CPU:$812E PRG:812E 90 F6
rts ; CPU:$8130 PRG:8130 60
; ---- data $8131-$8160 (48 bytes) ----
.byte $A5, $91, $0A, $AA, $BD, $8A, $81, $85, $11, $BD, $8B, $81, $85, $12, $A4, $92 ; CPU:$8131 PRG:8131 A5 91 0A AA BD 8A 81 85 11 BD 8B 81 85 12 A4 92
.byte $B1, $11, $D0, $06, $A0, $00, $84, $92, $B1, $11, $C5, $75, $B0, $11, $A9, $00 ; CPU:$8141 PRG:8141 B1 11 D0 06 A0 00 84 92 B1 11 C5 75 B0 11 A9 00
.byte $85, $75, $C8, $B1, $11, $85, $93, $C8, $B1, $11, $85, $94, $C8, $84, $92, $60 ; CPU:$8151 PRG:8151 85 75 C8 B1 11 85 93 C8 B1 11 85 94 C8 84 92 60
; -----------------------------------------------------------------------------
; Routine: Bank4_UpdateNametable
; Global: Rewrites the nametable entries that changed.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank4_UpdateNametable:
ldy #$00 ; CPU:$8161 PRG:8161 A0 00
lda Zp94 ; CPU:$8163 PRG:8163 A5 94
beq Bank4_Bank4_UpdateNametable_Loop ; CPU:$8165 PRG:8165 F0 1F
; -----------------------------------------------------------------------------
; Routine: Bank4_Bank4_UpdateNametable_OnZero
; Global: Branch target inside Bank4_Bank4_UpdateNametable: taken when the tested value is zero.
; Local: Part of Bank4_Bank4_UpdateNametable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank4_Bank4_UpdateNametable_OnZero:
lda (Zp93),y ; CPU:$8167 PRG:8167 B1 93
beq Bank4_Bank4_UpdateNametable_Loop ; CPU:$8169 PRG:8169 F0 1B
sta PPUADDR ; CPU:$816B PRG:816B 8D 06 20
iny ; CPU:$816E PRG:816E C8
lda (Zp93),y ; CPU:$816F PRG:816F B1 93
sta PPUADDR ; CPU:$8171 PRG:8171 8D 06 20
iny ; CPU:$8174 PRG:8174 C8
lda (Zp93),y ; CPU:$8175 PRG:8175 B1 93
sta Zp11 ; CPU:$8177 PRG:8177 85 11
iny ; CPU:$8179 PRG:8179 C8
; -----------------------------------------------------------------------------
; Routine: Bank4_Bank4_UpdateNametable_OnNonzero
; Global: Branch target inside Bank4_Bank4_UpdateNametable: taken when the tested value is not zero.
; Local: Part of Bank4_Bank4_UpdateNametable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank4_Bank4_UpdateNametable_OnNonzero:
lda (Zp93),y ; CPU:$817A PRG:817A B1 93
sta PPUDATA ; CPU:$817C PRG:817C 8D 07 20
iny ; CPU:$817F PRG:817F C8
dec Zp11 ; CPU:$8180 PRG:8180 C6 11
bne Bank4_Bank4_UpdateNametable_OnNonzero ; CPU:$8182 PRG:8182 D0 F6
beq Bank4_Bank4_UpdateNametable_OnZero ; CPU:$8184 PRG:8184 F0 E1
; -----------------------------------------------------------------------------
; Routine: Bank4_Bank4_UpdateNametable_Loop
; Global: Branch target inside Bank4_Bank4_UpdateNametable: taken when the loop repeats.
; Local: Part of Bank4_Bank4_UpdateNametable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank4_Bank4_UpdateNametable_Loop:
sta Zp94 ; CPU:$8186 PRG:8186 85 94
rts ; CPU:$8188 PRG:8188 60
; ---- data $8189-$9FFF (7799 bytes) ----
; referenced by `lda $839A,x` at $80AC (operand $839A falls inside this region)
; referenced by `lda $839B,x` at $80B1 (operand $839B falls inside this region)
; referenced by `lda $83C0,x` at $80BB (operand $83C0 falls inside this region)
; referenced by `lda $83C1,x` at $80C0 (operand $83C1 falls inside this region)
.byte $40, $A2, $81, $ED, $81, $04, $82, $37, $82, $5E, $82, $77, $82, $D6, $82, $E7 ; CPU:$8189 PRG:8189 40 A2 81 ED 81 04 82 37 82 5E 82 77 82 D6 82 E7
.byte $82, $FE, $82, $23, $83, $38, $83, $87, $83, $18, $A9, $81, $18, $CB, $81, $00 ; CPU:$8199 PRG:8199 82 FE 82 23 83 38 83 87 83 18 A9 81 18 CB 81 00
.byte $24, $E8, $02, $AF, $B0, $25, $4D, $02, $FF, $FF, $25, $6D, $02, $FF, $FF, $25 ; CPU:$81A9 PRG:81A9 24 E8 02 AF B0 25 4D 02 FF FF 25 6D 02 FF FF 25
.byte $8D, $04, $FF, $B8, $B2, $B3, $25, $AD, $03, $B6, $B9, $B4, $25, $CE, $02, $BA ; CPU:$81B9 PRG:81B9 8D 04 FF B8 B2 B3 25 AD 03 B6 B9 B4 25 CE 02 BA
.byte $B5, $00, $24, $E8, $02, $37, $50, $25, $4D, $02, $7F, $80, $25, $6D, $02, $7E ; CPU:$81C9 PRG:81C9 B5 00 24 E8 02 37 50 25 4D 02 7F 80 25 6D 02 7E
.byte $81, $25, $8D, $04, $7D, $82, $FF, $FF, $25, $AD, $03, $7C, $83, $FF, $25, $CE ; CPU:$81D9 PRG:81D9 81 25 8D 04 7D 82 FF FF 25 AD 03 7C 83 FF 25 CE
.byte $02, $84, $FF, $00, $18, $F4, $81, $18, $FC, $81, $00, $26, $AB, $04, $66, $73 ; CPU:$81E9 PRG:81E9 02 84 FF 00 18 F4 81 18 FC 81 00 26 AB 04 66 73
.byte $7A, $86, $00, $26, $AB, $04, $D5, $D6, $D7, $D8, $00, $18, $0B, $82, $18, $21 ; CPU:$81F9 PRG:81F9 7A 86 00 26 AB 04 D5 D6 D7 D8 00 18 0B 82 18 21
.byte $82, $00, $25, $13, $02, $39, $3E, $27, $16, $02, $D2, $D7, $27, $36, $03, $D3 ; CPU:$8209 PRG:8209 82 00 25 13 02 39 3E 27 16 02 D2 D7 27 36 03 D3
.byte $D6, $D8, $27, $56, $02, $D4, $D5, $00, $25, $13, $02, $D0, $D1, $27, $16, $02 ; CPU:$8219 PRG:8219 D6 D8 27 56 02 D4 D5 00 25 13 02 D0 D1 27 16 02
.byte $72, $77, $27, $36, $03, $73, $76, $85, $27, $56, $02, $74, $75, $00, $18, $3E ; CPU:$8229 PRG:8229 72 77 27 36 03 73 76 85 27 56 02 74 75 00 18 3E
.byte $82, $18, $4E, $82, $00, $24, $ED, $02, $B3, $B4, $25, $0D, $02, $B5, $B8, $25 ; CPU:$8239 PRG:8239 82 18 4E 82 00 24 ED 02 B3 B4 25 0D 02 B5 B8 25
.byte $2D, $02, $B6, $B7, $00, $24, $ED, $02, $86, $8E, $25, $0D, $02, $85, $8F, $25 ; CPU:$8249 PRG:8249 2D 02 B6 B7 00 24 ED 02 86 8E 25 0D 02 85 8F 25
.byte $2D, $02, $84, $90, $00, $18, $65, $82, $18, $6E, $82, $00, $25, $E8, $01, $F7 ; CPU:$8259 PRG:8259 2D 02 84 90 00 18 65 82 18 6E 82 00 25 E8 01 F7
.byte $26, $07, $01, $F8, $00, $25, $E8, $01, $81, $26, $07, $01, $5F, $00, $18, $7E ; CPU:$8269 PRG:8269 26 07 01 F8 00 25 E8 01 81 26 07 01 5F 00 18 7E
.byte $82, $18, $AA, $82, $00, $24, $E9, $02, $F1, $EC, $26, $4B, $04, $E9, $E8, $E7 ; CPU:$8279 PRG:8279 82 18 AA 82 00 24 E9 02 F1 EC 26 4B 04 E9 E8 E7
.byte $E6, $26, $6B, $04, $E0, $E1, $E4, $E5, $26, $8B, $04, $EB, $E2, $E3, $EA, $26 ; CPU:$8289 PRG:8289 E6 26 6B 04 E0 E1 E4 E5 26 8B 04 EB E2 E3 EA 26
.byte $AB, $03, $ED, $EE, $EF, $26, $CB, $03, $92, $92, $F2, $26, $EC, $02, $F0, $92 ; CPU:$8299 PRG:8299 AB 03 ED EE EF 26 CB 03 92 92 F2 26 EC 02 F0 92
.byte $00, $24, $E9, $02, $35, $53, $26, $4B, $04, $63, $FF, $FF, $FF, $26, $6B, $04 ; CPU:$82A9 PRG:82A9 00 24 E9 02 35 53 26 4B 04 63 FF FF FF 26 6B 04
.byte $64, $70, $7F, $87, $26, $8B, $04, $65, $6F, $92, $9A, $26, $AB, $03, $66, $6E ; CPU:$82B9 PRG:82B9 64 70 7F 87 26 8B 04 65 6F 92 9A 26 AB 03 66 6E
.byte $80, $26, $CB, $03, $67, $6D, $81, $26, $EC, $02, $6C, $82, $00, $18, $DD, $82 ; CPU:$82C9 PRG:82C9 80 26 CB 03 67 6D 81 26 EC 02 6C 82 00 18 DD 82
.byte $18, $E2, $82, $00, $25, $26, $01, $EE, $00, $25, $26, $01, $0E, $00, $18, $EE ; CPU:$82D9 PRG:82D9 18 E2 82 00 25 26 01 EE 00 25 26 01 0E 00 18 EE
.byte $82, $18, $F6, $82, $00, $25, $14, $04, $D5, $D6, $D7, $D8, $00, $25, $14, $04 ; CPU:$82E9 PRG:82E9 82 18 F6 82 00 25 14 04 D5 D6 D7 D8 00 25 14 04
.byte $1E, $39, $3E, $5C, $00, $18, $05, $83, $18, $14, $83, $00, $26, $17, $01, $B8 ; CPU:$82F9 PRG:82F9 1E 39 3E 5C 00 18 05 83 18 14 83 00 26 17 01 B8
.byte $26, $36, $02, $B7, $B9, $26, $57, $02, $BA, $BB, $00, $26, $17, $01, $7C, $26 ; CPU:$8309 PRG:8309 26 36 02 B7 B9 26 57 02 BA BB 00 26 17 01 7C 26
.byte $36, $02, $72, $7D, $26, $57, $02, $7E, $89, $00, $18, $2A, $83, $18, $31, $83 ; CPU:$8319 PRG:8319 36 02 72 7D 26 57 02 7E 89 00 18 2A 83 18 31 83
.byte $00, $25, $15, $03, $F2, $F3, $F4, $00, $25, $15, $03, $14, $15, $16, $00, $18 ; CPU:$8329 PRG:8329 00 25 15 03 F2 F3 F4 00 25 15 03 14 15 16 00 18
.byte $3F, $83, $18, $63, $83, $00, $24, $D5, $01, $CF, $25, $71, $02, $DC, $D7, $25 ; CPU:$8339 PRG:8339 3F 83 18 63 83 00 24 D5 01 CF 25 71 02 DC D7 25
.byte $91, $02, $D6, $D8, $25, $B1, $02, $D5, $D9, $25, $D1, $02, $D4, $DA, $25, $F0 ; CPU:$8349 PRG:8349 91 02 D6 D8 25 B1 02 D5 D9 25 D1 02 D4 DA 25 F0
.byte $03, $D2, $D3, $DB, $26, $10, $02, $D0, $D1, $00, $24, $D5, $01, $10, $25, $71 ; CPU:$8359 PRG:8359 03 D2 D3 DB 26 10 02 D0 D1 00 24 D5 01 10 25 71
.byte $02, $FF, $2C, $25, $91, $02, $33, $34, $25, $B1, $02, $3B, $3C, $25, $D1, $02 ; CPU:$8369 PRG:8369 02 FF 2C 25 91 02 33 34 25 B1 02 3B 3C 25 D1 02
.byte $43, $44, $25, $F0, $03, $4A, $4B, $4C, $26, $10, $02, $52, $53, $00, $18, $8E ; CPU:$8379 PRG:8379 43 44 25 F0 03 4A 4B 4C 26 10 02 52 53 00 18 8E
.byte $83, $18, $94, $83, $00, $25, $E8, $02, $F9, $FA, $00, $25, $E8, $02, $81, $91 ; CPU:$8389 PRG:8389 83 18 94 83 00 25 E8 02 F9 FA 00 25 E8 02 81 91
.byte $00, $47, $85, $A1, $87, $8C, $8A, $B1, $8C, $B1, $8D, $51, $8F, $15, $91, $92 ; CPU:$8399 PRG:8399 00 47 85 A1 87 8C 8A B1 8C B1 8D 51 8F 15 91 92
.byte $92, $44, $94, $E6, $95, $81, $97, $23, $99, $D3, $9A, $76, $9C, $DA, $9D, $79 ; CPU:$83A9 PRG:83A9 92 44 94 E6 95 81 97 23 99 D3 9A 76 9C DA 9D 79
.byte $9F, $21, $A1, $E3, $A3, $92, $A5, $E6, $83, $16, $84, $36, $84, $E6, $83, $56 ; CPU:$83B9 PRG:83B9 9F 21 A1 E3 A3 92 A5 E6 83 16 84 36 84 E6 83 56
.byte $84, $76, $84, $86, $84, $96, $84, $A6, $84, $B6, $84, $C6, $84, $D6, $84, $E6 ; CPU:$83C9 PRG:83C9 84 76 84 86 84 96 84 A6 84 B6 84 C6 84 D6 84 E6
.byte $84, $F6, $84, $06, $85, $16, $85, $27, $85, $27, $85, $E6, $83, $0E, $0E, $05 ; CPU:$83D9 PRG:83D9 84 F6 84 06 85 16 85 27 85 27 85 E6 83 0E 0E 05
.byte $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E, $0E ; CPU:$83E9 PRG:83E9 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E 0E
.byte $0E, $0E, $25, $13, $1A, $0E, $21, $25, $1A, $0E, $21, $13, $30, $0E, $3A, $2A ; CPU:$83F9 PRG:83F9 0E 0E 25 13 1A 0E 21 25 1A 0E 21 13 30 0E 3A 2A
.byte $1A, $0E, $32, $27, $07, $0E, $30, $28, $08, $0E, $32, $2C, $12, $0E, $31, $2A ; CPU:$8409 PRG:8409 1A 0E 32 27 07 0E 30 28 08 0E 32 2C 12 0E 31 2A
.byte $28, $0E, $30, $25, $22, $0E, $2B, $28, $30, $0E, $31, $22, $13, $0E, $31, $2A ; CPU:$8419 PRG:8419 28 0E 30 25 22 0E 2B 28 30 0E 31 22 13 0E 31 2A
.byte $28, $0E, $2A, $25, $22, $0E, $21, $28, $30, $0E, $27, $27, $17, $0E, $31, $2A ; CPU:$8429 PRG:8429 28 0E 2A 25 22 0E 21 28 30 0E 27 27 17 0E 31 2A
.byte $28, $0E, $2A, $25, $22, $0E, $21, $28, $30, $0E, $30, $27, $17, $0E, $31, $2A ; CPU:$8439 PRG:8439 28 0E 2A 25 22 0E 21 28 30 0E 30 27 17 0E 31 2A
.byte $28, $0E, $2A, $25, $22, $0E, $21, $28, $30, $0E, $30, $27, $17, $0E, $21, $13 ; CPU:$8449 PRG:8449 28 0E 2A 25 22 0E 21 28 30 0E 30 27 17 0E 21 13
.byte $18, $0E, $27, $18, $1A, $0E, $18, $2B, $1A, $0E, $21, $11, $30, $0E, $25, $1A ; CPU:$8459 PRG:8459 18 0E 27 18 1A 0E 18 2B 1A 0E 21 11 30 0E 25 1A
.byte $0E, $0E, $36, $26, $0E, $0E, $18, $2B, $1A, $0E, $21, $11, $30, $0E, $21, $36 ; CPU:$8469 PRG:8469 0E 0E 36 26 0E 0E 18 2B 1A 0E 21 11 30 0E 21 36
.byte $26, $0E, $25, $13, $1A, $0E, $21, $25, $1A, $0E, $21, $13, $30, $0E, $21, $13 ; CPU:$8479 PRG:8479 26 0E 25 13 1A 0E 21 25 1A 0E 21 13 30 0E 21 13
.byte $1A, $0E, $21, $36, $27, $0E, $21, $01, $36, $0E, $21, $13, $30, $FF, $23, $37 ; CPU:$8489 PRG:8489 1A 0E 21 36 27 0E 21 01 36 0E 21 13 30 FF 23 37
.byte $28, $FF, $23, $37, $2A, $FF, $23, $37, $30, $FF, $23, $25, $20, $FF, $23, $25 ; CPU:$8499 PRG:8499 28 FF 23 37 2A FF 23 37 30 FF 23 25 20 FF 23 25
.byte $30, $FF, $2A, $17, $38, $FF, $37, $17, $30, $FF, $23, $13, $20, $0E, $14, $11 ; CPU:$84A9 PRG:84A9 30 FF 2A 17 38 FF 37 17 30 FF 23 13 20 0E 14 11
.byte $30, $0E, $21, $25, $38, $0E, $37, $27, $11, $0E, $10, $11, $30, $0E, $21, $25 ; CPU:$84B9 PRG:84B9 30 0E 21 25 38 0E 37 27 11 0E 10 11 30 0E 21 25
.byte $1A, $0E, $21, $36, $27, $0E, $21, $36, $26, $0E, $21, $13, $30, $0E, $21, $25 ; CPU:$84C9 PRG:84C9 1A 0E 21 36 27 0E 21 36 26 0E 21 13 30 0E 21 25
.byte $1A, $0E, $21, $36, $27, $0E, $21, $36, $26, $0E, $21, $03, $30, $FF, $21, $37 ; CPU:$84D9 PRG:84D9 1A 0E 21 36 27 0E 21 36 26 0E 21 03 30 FF 21 37
.byte $30, $FF, $28, $37, $26, $FF, $28, $21, $30, $FF, $25, $21, $30, $0E, $37, $27 ; CPU:$84E9 PRG:84E9 30 FF 28 37 26 FF 28 21 30 FF 25 21 30 0E 37 27
.byte $30, $0E, $37, $27, $1B, $0E, $37, $27, $17, $0E, $1B, $10, $30, $0E, $21, $36 ; CPU:$84F9 PRG:84F9 30 0E 37 27 1B 0E 37 27 17 0E 1B 10 30 0E 21 36
.byte $26, $0E, $21, $25, $2A, $0E, $21, $36, $27, $0E, $21, $13, $30, $FF, $23, $37 ; CPU:$8509 PRG:8509 26 0E 21 25 2A 0E 21 36 27 0E 21 13 30 FF 23 37
.byte $28, $FF, $23, $37, $2A, $FF, $37, $26, $30, $FF, $23, $25, $20, $0E, $0E, $31 ; CPU:$8519 PRG:8519 28 FF 23 37 2A FF 37 26 30 FF 23 25 20 0E 0E 31
.byte $2A, $28, $0E, $30, $2C, $1C, $0E, $36, $31, $17, $0E, $31, $15, $22, $0E, $31 ; CPU:$8529 PRG:8529 2A 28 0E 30 2C 1C 0E 36 31 17 0E 31 15 22 0E 31
.byte $2A, $28, $FF, $30, $25, $22, $FF, $2B, $28, $30, $FF, $31, $15, $22, $20, $00 ; CPU:$8539 PRG:8539 2A 28 FF 30 25 22 FF 2B 28 30 FF 31 15 22 20 00
.byte $44, $FF, $83, $91, $92, $93, $04, $FF, $83, $94, $95, $96, $02, $FF, $87, $97 ; CPU:$8549 PRG:8549 44 FF 83 91 92 93 04 FF 83 94 95 96 02 FF 87 97
.byte $98, $99, $9A, $9B, $9C, $9D, $02, $FF, $82, $9E, $9F, $09, $FF, $98, $A0, $A1 ; CPU:$8559 PRG:8559 98 99 9A 9B 9C 9D 02 FF 82 9E 9F 09 FF 98 A0 A1
.byte $A2, $A3, $A4, $A5, $A6, $A7, $A8, $A9, $AA, $AB, $AC, $AD, $AE, $AF, $B0, $B1 ; CPU:$8569 PRG:8569 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF B0 B1
.byte $B2, $B3, $B4, $B5, $B6, $B7, $08, $FF, $98, $B8, $B9, $BA, $BB, $BC, $BD, $BE ; CPU:$8579 PRG:8579 B2 B3 B4 B5 B6 B7 08 FF 98 B8 B9 BA BB BC BD BE
.byte $BF, $C0, $C1, $C2, $C3, $C4, $FF, $C5, $C6, $C7, $C8, $C9, $CA, $CB, $CC, $CD ; CPU:$8589 PRG:8589 BF C0 C1 C2 C3 C4 FF C5 C6 C7 C8 C9 CA CB CC CD
.byte $CE, $08, $FF, $98, $CF, $D0, $D1, $D2, $D3, $D4, $D5, $D6, $D7, $D8, $D9, $DA ; CPU:$8599 PRG:8599 CE 08 FF 98 CF D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA
.byte $DB, $DC, $DD, $DE, $DF, $E0, $E1, $E2, $E3, $E4, $E5, $E6, $2F, $FF, $86, $54 ; CPU:$85A9 PRG:85A9 DB DC DD DE DF E0 E1 E2 E3 E4 E5 E6 2F FF 86 54
.byte $48, $45, $FF, $52, $49, $02, $44, $82, $4C, $45, $11, $FF, $8F, $4F, $46, $FF ; CPU:$85B9 PRG:85B9 48 45 FF 52 49 02 44 82 4C 45 11 FF 8F 4F 46 FF
.byte $54, $48, $45, $FF, $4D, $41, $47, $49, $43, $FF, $42, $55, $02, $42, $82, $4C ; CPU:$85C9 PRG:85C9 54 48 45 FF 4D 41 47 49 43 FF 42 55 02 42 82 4C
.byte $45, $0C, $FF, $81, $BC, $12, $BE, $81, $BF, $0C, $FF, $81, $BD, $05, $AF, $81 ; CPU:$85D9 PRG:85D9 45 0C FF 81 BC 12 BE 81 BF 0C FF 81 BD 05 AF 81
.byte $E4, $04, $AF, $89, $B7, $B8, $B9, $BA, $BB, $AF, $E4, $AF, $C0, $0C, $FF, $81 ; CPU:$85E9 PRG:85E9 E4 04 AF 89 B7 B8 B9 BA BB AF E4 AF C0 0C FF 81
.byte $BD, $02, $AF, $83, $E4, $AF, $E5, $03, $AF, $88, $E4, $AF, $B6, $B5, $B4, $B3 ; CPU:$85F9 PRG:85F9 BD 02 AF 83 E4 AF E5 03 AF 88 E4 AF B6 B5 B4 B3
.byte $B2, $B1, $02, $AF, $81, $C0, $0C, $FF, $81, $BD, $04, $AF, $81, $B0, $03, $AF ; CPU:$8609 PRG:8609 B2 B1 02 AF 81 C0 0C FF 81 BD 04 AF 81 B0 03 AF
.byte $88, $E5, $AE, $AD, $AC, $AB, $AA, $A9, $A8, $02, $AF, $81, $C0, $0C, $FF, $86 ; CPU:$8619 PRG:8619 88 E5 AE AD AC AB AA A9 A8 02 AF 81 C0 0C FF 86
.byte $BD, $E3, $E2, $E1, $9E, $9F, $02, $AF, $81, $A0, $02, $AF, $89, $A1, $A2, $A3 ; CPU:$8629 PRG:8629 BD E3 E2 E1 9E 9F 02 AF 81 A0 02 AF 89 A1 A2 A3
.byte $A4, $A5, $A6, $A7, $AF, $C0, $0C, $FF, $94, $BD, $DE, $DF, $E0, $9D, $9C, $9B ; CPU:$8639 PRG:8639 A4 A5 A6 A7 AF C0 0C FF 94 BD DE DF E0 9D 9C 9B
.byte $9A, $99, $AF, $E5, $98, $97, $96, $95, $94, $93, $92, $AF, $C0, $0C, $FF, $91 ; CPU:$8649 PRG:8649 9A 99 AF E5 98 97 96 95 94 93 92 AF C0 0C FF 91
.byte $BD, $DB, $DC, $DD, $88, $89, $8A, $8B, $AF, $E5, $AF, $8C, $8D, $8E, $8F, $90 ; CPU:$8659 PRG:8659 BD DB DC DD 88 89 8A 8B AF E5 AF 8C 8D 8E 8F 90
.byte $91, $02, $AF, $81, $C0, $0C, $FF, $91, $BD, $D8, $D9, $DA, $87, $86, $85, $84 ; CPU:$8669 PRG:8669 91 02 AF 81 C0 0C FF 91 BD D8 D9 DA 87 86 85 84
.byte $83, $82, $81, $80, $7F, $7E, $7D, $7C, $7B, $02, $AF, $81, $C0, $0C, $FF, $91 ; CPU:$8679 PRG:8679 83 82 81 80 7F 7E 7D 7C 7B 02 AF 81 C0 0C FF 91
.byte $BD, $D6, $D7, $6D, $6E, $6F, $70, $71, $72, $73, $74, $75, $76, $77, $78, $79 ; CPU:$8689 PRG:8689 BD D6 D7 6D 6E 6F 70 71 72 73 74 75 76 77 78 79
.byte $7A, $02, $AF, $81, $C0, $0C, $FF, $94, $BD, $6C, $6B, $6A, $69, $68, $67, $66 ; CPU:$8699 PRG:8699 7A 02 AF 81 C0 0C FF 94 BD 6C 6B 6A 69 68 67 66
.byte $65, $64, $63, $62, $61, $60, $5F, $5E, $5D, $5C, $5B, $C0, $0C, $FF, $94, $BD ; CPU:$86A9 PRG:86A9 65 64 63 62 61 60 5F 5E 5D 5C 5B C0 0C FF 94 BD
.byte $49, $4A, $4B, $4C, $4D, $4E, $4F, $50, $51, $52, $53, $54, $55, $56, $57, $58 ; CPU:$86B9 PRG:86B9 49 4A 4B 4C 4D 4E 4F 50 51 52 53 54 55 56 57 58
.byte $59, $5A, $C0, $0C, $FF, $94, $BD, $48, $47, $46, $45, $44, $43, $42, $41, $40 ; CPU:$86C9 PRG:86C9 59 5A C0 0C FF 94 BD 48 47 46 45 44 43 42 41 40
.byte $3F, $3E, $3D, $3C, $3B, $3A, $39, $38, $37, $C0, $0C, $FF, $94, $BD, $25, $26 ; CPU:$86D9 PRG:86D9 3F 3E 3D 3C 3B 3A 39 38 37 C0 0C FF 94 BD 25 26
.byte $27, $28, $29, $2A, $2B, $2C, $2D, $2E, $2F, $30, $31, $32, $33, $34, $35, $36 ; CPU:$86E9 PRG:86E9 27 28 29 2A 2B 2C 2D 2E 2F 30 31 32 33 34 35 36
.byte $C0, $0C, $FF, $94, $BD, $24, $23, $22, $21, $20, $1F, $1E, $1D, $1C, $1B, $1A ; CPU:$86F9 PRG:86F9 C0 0C FF 94 BD 24 23 22 21 20 1F 1E 1D 1C 1B 1A
.byte $19, $18, $17, $16, $15, $14, $13, $C0, $0C, $FF, $94, $BD, $01, $02, $03, $04 ; CPU:$8709 PRG:8709 19 18 17 16 15 14 13 C0 0C FF 94 BD 01 02 03 04
.byte $05, $06, $07, $08, $09, $0A, $0B, $0C, $0D, $0E, $0F, $10, $11, $12, $C0, $0C ; CPU:$8719 PRG:8719 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 12 C0 0C
.byte $FF, $81, $C3, $12, $C2, $81, $C1, $09, $FF, $82, $C4, $C5, $02, $C6, $96, $C5 ; CPU:$8729 PRG:8729 FF 81 C3 12 C2 81 C1 09 FF 82 C4 C5 02 C6 96 C5
.byte $FF, $C7, $C8, $C9, $FF, $CA, $CB, $C7, $CC, $FF, $CD, $CA, $C7, $C9, $CB, $CE ; CPU:$8739 PRG:8739 FF C7 C8 C9 FF CA CB C7 CC FF CD CA C7 C9 CB CE
.byte $C9, $D5, $FF, $CF, $D0, $0B, $FF, $8E, $D1, $D2, $C9, $D3, $CA, $C7, $D1, $CB ; CPU:$8749 PRG:8749 C9 D5 FF CF D0 0B FF 8E D1 D2 C9 D3 CA C7 D1 CB
.byte $FF, $D4, $CA, $D5, $C9, $D0, $10, $FF, $92, $C9, $CB, $CF, $C9, $D3, $CF, $D1 ; CPU:$8759 PRG:8759 FF D4 CA D5 C9 D0 10 FF 92 C9 CB CF C9 D3 CF D1
.byte $CA, $CB, $D2, $C9, $CB, $CF, $FF, $CA, $CB, $C7, $CC, $49, $FF, $81, $0F, $07 ; CPU:$8769 PRG:8769 CA CB D2 C9 CB CF FF CA CB C7 CC 49 FF 81 0F 07
.byte $FF, $07, $F0, $81, $FE, $04, $FF, $82, $0F, $CF, $03, $FF, $85, $BB, $AA, $EE ; CPU:$8779 PRG:8779 FF 07 F0 81 FE 04 FF 82 0F CF 03 FF 85 BB AA EE
.byte $00, $C0, $03, $FF, $81, $BB, $02, $AA, $82, $00, $8C, $03, $FF, $85, $77, $D5 ; CPU:$8789 PRG:8789 00 C0 03 FF 81 BB 02 AA 82 00 8C 03 FF 85 77 D5
.byte $F5, $77, $08, $12, $FF, $FF, $FF, $FF, $24, $00, $8A, $1F, $20, $1F, $20, $1F ; CPU:$8799 PRG:8799 F5 77 08 12 FF FF FF FF 24 00 8A 1F 20 1F 20 1F
.byte $20, $1F, $20, $1F, $20, $0C, $FF, $9D, $1F, $20, $1F, $20, $1F, $20, $1F, $20 ; CPU:$87A9 PRG:87A9 20 1F 20 1F 20 0C FF 9D 1F 20 1F 20 1F 20 1F 20
.byte $1F, $20, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $07, $0D, $21, $22 ; CPU:$87B9 PRG:87B9 1F 20 21 22 21 22 21 22 21 22 21 22 07 0D 21 22
.byte $21, $22, $21, $22, $21, $02, $22, $97, $16, $0F, $22, $21, $22, $21, $22, $21 ; CPU:$87C9 PRG:87C9 21 22 21 22 21 02 22 97 16 0F 22 21 22 21 22 21
.byte $22, $21, $22, $1F, $20, $1F, $20, $1F, $20, $1F, $20, $1F, $20, $08, $04, $09 ; CPU:$87D9 PRG:87D9 22 21 22 1F 20 1F 20 1F 20 1F 20 1F 20 08 04 09
.byte $00, $B7, $01, $10, $20, $1F, $20, $1F, $20, $1F, $20, $1F, $20, $21, $22, $21 ; CPU:$87E9 PRG:87E9 00 B7 01 10 20 1F 20 1F 20 1F 20 1F 20 21 22 21
.byte $22, $21, $22, $21, $22, $21, $22, $09, $05, $FF, $4F, $50, $54, $49, $4F, $4E ; CPU:$87F9 PRG:87F9 22 21 22 21 22 21 22 09 05 FF 4F 50 54 49 4F 4E
.byte $53, $FF, $02, $11, $22, $21, $22, $21, $22, $21, $22, $21, $22, $1F, $20, $1F ; CPU:$8809 PRG:8809 53 FF 02 11 22 21 22 21 22 21 22 21 22 1F 20 1F
.byte $20, $1F, $20, $1F, $20, $1F, $20, $0A, $06, $09, $15, $9E, $03, $12, $20, $1F ; CPU:$8819 PRG:8819 20 1F 20 1F 20 1F 20 0A 06 09 15 9E 03 12 20 1F
.byte $20, $1F, $20, $1F, $20, $1F, $20, $21, $22, $21, $22, $21, $22, $21, $22, $21 ; CPU:$8829 PRG:8829 20 1F 20 1F 20 1F 20 21 22 21 22 21 22 21 22 21
.byte $22, $0B, $0C, $21, $22, $21, $22, $21, $22, $21, $02, $22, $90, $17, $13, $22 ; CPU:$8839 PRG:8839 22 0B 0C 21 22 21 22 21 22 21 02 22 90 17 13 22
.byte $21, $22, $21, $22, $21, $22, $21, $22, $1F, $20, $1F, $20, $18, $16, $1E, $93 ; CPU:$8849 PRG:8849 21 22 21 22 21 22 21 22 1F 20 1F 20 18 16 1E 93
.byte $1B, $1F, $20, $1F, $20, $21, $22, $21, $22, $19, $FF, $31, $FF, $50, $4C, $41 ; CPU:$8859 PRG:8859 1B 1F 20 1F 20 21 22 21 22 19 FF 31 FF 50 4C 41
.byte $59, $45, $52, $03, $FF, $94, $32, $FF, $50, $4C, $41, $59, $45, $52, $53, $FF ; CPU:$8869 PRG:8869 59 45 52 03 FF 94 32 FF 50 4C 41 59 45 52 53 FF
.byte $1C, $21, $22, $21, $22, $1F, $20, $1F, $20, $1A, $16, $14, $AA, $1D, $1F, $20 ; CPU:$8879 PRG:8879 1C 21 22 21 22 1F 20 1F 20 1A 16 14 AA 1D 1F 20
.byte $1F, $20, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22 ; CPU:$8889 PRG:8889 1F 20 21 22 21 22 21 22 21 22 21 22 21 22 21 22
.byte $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22 ; CPU:$8899 PRG:8899 21 22 21 22 21 22 21 22 21 22 21 22 21 22 21 22
.byte $21, $22, $1F, $20, $1F, $20, $18, $16, $1E, $90, $1B, $1F, $20, $1F, $20, $21 ; CPU:$88A9 PRG:88A9 21 22 1F 20 1F 20 18 16 1E 90 1B 1F 20 1F 20 21
.byte $22, $21, $22, $19, $FF, $53, $54, $41, $47, $45, $03, $FF, $87, $31, $FF, $32 ; CPU:$88B9 PRG:88B9 22 21 22 19 FF 53 54 41 47 45 03 FF 87 31 FF 32
.byte $FF, $33, $FF, $34, $06, $FF, $8A, $1C, $21, $22, $21, $22, $1F, $20, $1F, $20 ; CPU:$88C9 PRG:88C9 FF 33 FF 34 06 FF 8A 1C 21 22 21 22 1F 20 1F 20
.byte $1A, $16, $14, $AA, $1D, $1F, $20, $1F, $20, $21, $22, $21, $22, $21, $22, $21 ; CPU:$88D9 PRG:88D9 1A 16 14 AA 1D 1F 20 1F 20 21 22 21 22 21 22 21
.byte $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21 ; CPU:$88E9 PRG:88E9 22 21 22 21 22 21 22 21 22 21 22 21 22 21 22 21
.byte $22, $21, $22, $21, $22, $21, $22, $21, $22, $1F, $20, $1F, $20, $18, $16, $1E ; CPU:$88F9 PRG:88F9 22 21 22 21 22 21 22 21 22 1F 20 1F 20 18 16 1E
.byte $8F, $1B, $1F, $20, $1F, $20, $21, $22, $21, $22, $19, $FF, $45, $41, $53, $59 ; CPU:$8909 PRG:8909 8F 1B 1F 20 1F 20 21 22 21 22 19 FF 45 41 53 59
.byte $03, $FF, $84, $48, $41, $52, $44, $02, $FF, $92, $53, $54, $41, $43, $4B, $45 ; CPU:$8919 PRG:8919 03 FF 84 48 41 52 44 02 FF 92 53 54 41 43 4B 45
.byte $44, $FF, $1C, $21, $22, $21, $22, $1F, $20, $1F, $20, $1A, $16, $14, $AA, $1D ; CPU:$8929 PRG:8929 44 FF 1C 21 22 21 22 1F 20 1F 20 1A 16 14 AA 1D
.byte $1F, $20, $1F, $20, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22 ; CPU:$8939 PRG:8939 1F 20 1F 20 21 22 21 22 21 22 21 22 21 22 21 22
.byte $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22 ; CPU:$8949 PRG:8949 21 22 21 22 21 22 21 22 21 22 21 22 21 22 21 22
.byte $21, $22, $21, $22, $1F, $20, $1F, $20, $18, $16, $1E, $90, $1B, $1F, $20, $1F ; CPU:$8959 PRG:8959 21 22 21 22 1F 20 1F 20 18 16 1E 90 1B 1F 20 1F
.byte $20, $21, $22, $21, $22, $19, $FF, $4C, $45, $56, $45, $4C, $03, $FF, $89, $31 ; CPU:$8969 PRG:8969 20 21 22 21 22 19 FF 4C 45 56 45 4C 03 FF 89 31
.byte $FF, $32, $FF, $33, $FF, $34, $FF, $35, $04, $FF, $8A, $1C, $21, $22, $21, $22 ; CPU:$8979 PRG:8979 FF 32 FF 33 FF 34 FF 35 04 FF 8A 1C 21 22 21 22
.byte $1F, $20, $1F, $20, $1A, $16, $14, $AA, $1D, $1F, $20, $1F, $20, $21, $22, $21 ; CPU:$8989 PRG:8989 1F 20 1F 20 1A 16 14 AA 1D 1F 20 1F 20 21 22 21
.byte $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21 ; CPU:$8999 PRG:8999 22 21 22 21 22 21 22 21 22 21 22 21 22 21 22 21
.byte $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $1F, $20, $1F ; CPU:$89A9 PRG:89A9 22 21 22 21 22 21 22 21 22 21 22 21 22 1F 20 1F
.byte $20, $18, $16, $1E, $90, $1B, $1F, $20, $1F, $20, $21, $22, $21, $22, $19, $FF ; CPU:$89B9 PRG:89B9 20 18 16 1E 90 1B 1F 20 1F 20 21 22 21 22 19 FF
.byte $54, $55, $4E, $45, $31, $03, $FF, $85, $54, $55, $4E, $45, $32, $03, $FF, $8F ; CPU:$89C9 PRG:89C9 54 55 4E 45 31 03 FF 85 54 55 4E 45 32 03 FF 8F
.byte $54, $55, $4E, $45, $33, $1C, $21, $22, $21, $22, $1F, $20, $1F, $20, $1A, $16 ; CPU:$89D9 PRG:89D9 54 55 4E 45 33 1C 21 22 21 22 1F 20 1F 20 1A 16
.byte $14, $B2, $1D, $1F, $20, $1F, $20, $21, $22, $21, $22, $21, $22, $21, $22, $21 ; CPU:$89E9 PRG:89E9 14 B2 1D 1F 20 1F 20 21 22 21 22 21 22 21 22 21
.byte $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21 ; CPU:$89F9 PRG:89F9 22 21 22 21 22 21 22 21 22 21 22 21 22 21 22 21
.byte $22, $1F, $20, $21, $22, $21, $22, $1F, $20, $1F, $20, $1F, $20, $1F, $20, $1F ; CPU:$8A09 PRG:8A09 22 1F 20 21 22 21 22 1F 20 1F 20 1F 20 1F 20 1F
.byte $20, $1F, $20, $18, $06, $1E, $9A, $1B, $1F, $20, $1F, $20, $1F, $20, $1F, $20 ; CPU:$8A19 PRG:8A19 20 1F 20 18 06 1E 9A 1B 1F 20 1F 20 1F 20 1F 20
.byte $1F, $20, $1F, $20, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22 ; CPU:$8A29 PRG:8A29 1F 20 1F 20 21 22 21 22 21 22 21 22 21 22 21 22
.byte $19, $06, $FF, $9A, $1C, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21 ; CPU:$8A39 PRG:8A39 19 06 FF 9A 1C 21 22 21 22 21 22 21 22 21 22 21
.byte $22, $1F, $20, $1F, $20, $1F, $20, $1F, $20, $1F, $20, $1F, $20, $1A, $06, $14 ; CPU:$8A49 PRG:8A49 22 1F 20 1F 20 1F 20 1F 20 1F 20 1F 20 1A 06 14
.byte $AD, $1D, $1F, $20, $1F, $20, $1F, $20, $1F, $20, $1F, $20, $1F, $20, $21, $22 ; CPU:$8A59 PRG:8A59 AD 1D 1F 20 1F 20 1F 20 1F 20 1F 20 1F 20 21 22
.byte $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22 ; CPU:$8A69 PRG:8A69 21 22 21 22 21 22 21 22 21 22 21 22 21 22 21 22
.byte $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $40, $FF ; CPU:$8A79 PRG:8A79 21 22 21 22 21 22 21 22 21 22 21 22 21 22 40 FF
.byte $FF, $FF, $FF, $24, $00, $8A, $1F, $20, $1F, $20, $1F, $20, $1F, $20, $1F, $20 ; CPU:$8A89 PRG:8A89 FF FF FF 24 00 8A 1F 20 1F 20 1F 20 1F 20 1F 20
.byte $02, $1F, $89, $20, $1F, $20, $1F, $20, $1F, $20, $1F, $20, $02, $1F, $B4, $20 ; CPU:$8A99 PRG:8A99 02 1F 89 20 1F 20 1F 20 1F 20 1F 20 02 1F B4 20
.byte $1F, $20, $1F, $20, $1F, $20, $1F, $20, $21, $22, $21, $22, $21, $22, $21, $22 ; CPU:$8AA9 PRG:8AA9 1F 20 1F 20 1F 20 1F 20 21 22 21 22 21 22 21 22
.byte $21, $24, $25, $21, $22, $21, $22, $21, $22, $21, $22, $21, $2E, $2F, $21, $22 ; CPU:$8AB9 PRG:8AB9 21 24 25 21 22 21 22 21 22 21 22 21 2E 2F 21 22
.byte $21, $22, $21, $22, $21, $22, $21, $22, $1F, $20, $1F, $20, $1F, $20, $1F, $20 ; CPU:$8AC9 PRG:8AC9 21 22 21 22 21 22 21 22 1F 20 1F 20 1F 20 1F 20
.byte $1F, $26, $27, $09, $0E, $B7, $3A, $3B, $1F, $20, $1F, $20, $1F, $20, $1F, $20 ; CPU:$8AD9 PRG:8AD9 1F 26 27 09 0E B7 3A 3B 1F 20 1F 20 1F 20 1F 20
.byte $1F, $20, $21, $22, $21, $22, $21, $22, $21, $22, $21, $28, $29, $FF, $54, $4F ; CPU:$8AE9 PRG:8AE9 1F 20 21 22 21 22 21 22 21 22 21 28 29 FF 54 4F
.byte $50, $FF, $54, $45, $4E, $FF, $3C, $3D, $21, $22, $21, $22, $21, $22, $21, $22 ; CPU:$8AF9 PRG:8AF9 50 FF 54 45 4E FF 3C 3D 21 22 21 22 21 22 21 22
.byte $21, $22, $1F, $20, $1F, $20, $1F, $20, $1F, $20, $1F, $2A, $2B, $09, $23, $97 ; CPU:$8B09 PRG:8B09 21 22 1F 20 1F 20 1F 20 1F 20 1F 2A 2B 09 23 97
.byte $5B, $5C, $1F, $20, $1F, $20, $1F, $20, $1F, $20, $1F, $20, $21, $22, $21, $22 ; CPU:$8B19 PRG:8B19 5B 5C 1F 20 1F 20 1F 20 1F 20 1F 20 21 22 21 22
.byte $21, $22, $21, $22, $21, $2C, $2D, $09, $FF, $90, $5D, $5E, $21, $22, $21, $22 ; CPU:$8B29 PRG:8B29 21 22 21 22 21 2C 2D 09 FF 90 5D 5E 21 22 21 22
.byte $21, $22, $21, $22, $21, $22, $1F, $20, $64, $65, $05, $63, $81, $6A, $0B, $FF ; CPU:$8B39 PRG:8B39 21 22 21 22 21 22 1F 20 64 65 05 63 81 6A 0B FF
.byte $81, $69, $06, $63, $87, $67, $68, $1F, $20, $21, $22, $66, $03, $FF, $84, $4E ; CPU:$8B49 PRG:8B49 81 69 06 63 87 67 68 1F 20 21 22 66 03 FF 84 4E
.byte $41, $4D, $45, $02, $FF, $82, $42, $55, $02, $42, $82, $4C, $45, $04, $FF, $85 ; CPU:$8B59 PRG:8B59 41 4D 45 02 FF 82 42 55 02 42 82 4C 45 04 FF 85
.byte $53, $43, $4F, $52, $45, $02, $FF, $86, $62, $21, $22, $1F, $20, $5F, $1A, $FF ; CPU:$8B69 PRG:8B69 53 43 4F 52 45 02 FF 86 62 21 22 1F 20 5F 1A FF
.byte $8D, $61, $1F, $20, $21, $22, $60, $FF, $31, $6B, $FF, $59, $45, $48, $13, $FF ; CPU:$8B79 PRG:8B79 8D 61 1F 20 21 22 60 FF 31 6B FF 59 45 48 13 FF
.byte $86, $62, $21, $22, $1F, $20, $5F, $1A, $FF, $8D, $61, $1F, $20, $21, $22, $60 ; CPU:$8B89 PRG:8B89 86 62 21 22 1F 20 5F 1A FF 8D 61 1F 20 21 22 60
.byte $FF, $32, $6B, $FF, $43, $48, $45, $13, $FF, $86, $62, $21, $22, $1F, $20, $5F ; CPU:$8B99 PRG:8B99 FF 32 6B FF 43 48 45 13 FF 86 62 21 22 1F 20 5F
.byte $1A, $FF, $8D, $61, $1F, $20, $21, $22, $60, $FF, $33, $6B, $FF, $54, $52, $49 ; CPU:$8BA9 PRG:8BA9 1A FF 8D 61 1F 20 21 22 60 FF 33 6B FF 54 52 49
.byte $13, $FF, $86, $62, $21, $22, $1F, $20, $5F, $1A, $FF, $8D, $61, $1F, $20, $21 ; CPU:$8BB9 PRG:8BB9 13 FF 86 62 21 22 1F 20 5F 1A FF 8D 61 1F 20 21
.byte $22, $60, $FF, $34, $6B, $FF, $48, $6B, $59, $13, $FF, $86, $62, $21, $22, $1F ; CPU:$8BC9 PRG:8BC9 22 60 FF 34 6B FF 48 6B 59 13 FF 86 62 21 22 1F
.byte $20, $5F, $1A, $FF, $8D, $61, $1F, $20, $21, $22, $60, $FF, $35, $6B, $FF, $59 ; CPU:$8BD9 PRG:8BD9 20 5F 1A FF 8D 61 1F 20 21 22 60 FF 35 6B FF 59
.byte $41, $4E, $13, $FF, $86, $62, $21, $22, $1F, $20, $5F, $1A, $FF, $8D, $61, $1F ; CPU:$8BE9 PRG:8BE9 41 4E 13 FF 86 62 21 22 1F 20 5F 1A FF 8D 61 1F
.byte $20, $21, $22, $60, $FF, $36, $6B, $FF, $4A, $41, $43, $13, $FF, $86, $62, $21 ; CPU:$8BF9 PRG:8BF9 20 21 22 60 FF 36 6B FF 4A 41 43 13 FF 86 62 21
.byte $22, $1F, $20, $5F, $1A, $FF, $8D, $61, $1F, $20, $21, $22, $60, $FF, $37, $6B ; CPU:$8C09 PRG:8C09 22 1F 20 5F 1A FF 8D 61 1F 20 21 22 60 FF 37 6B
.byte $FF, $44, $6B, $48, $13, $FF, $86, $62, $21, $22, $1F, $20, $5F, $1A, $FF, $8D ; CPU:$8C19 PRG:8C19 FF 44 6B 48 13 FF 86 62 21 22 1F 20 5F 1A FF 8D
.byte $61, $1F, $20, $21, $22, $60, $FF, $38, $6B, $FF, $54, $49, $4E, $13, $FF, $86 ; CPU:$8C29 PRG:8C29 61 1F 20 21 22 60 FF 38 6B FF 54 49 4E 13 FF 86
.byte $62, $21, $22, $1F, $20, $5F, $1A, $FF, $8D, $61, $1F, $20, $21, $22, $60, $FF ; CPU:$8C39 PRG:8C39 62 21 22 1F 20 5F 1A FF 8D 61 1F 20 21 22 60 FF
.byte $39, $6B, $FF, $42, $41, $42, $13, $FF, $86, $62, $21, $22, $1F, $20, $5F, $1A ; CPU:$8C49 PRG:8C49 39 6B FF 42 41 42 13 FF 86 62 21 22 1F 20 5F 1A
.byte $FF, $8D, $61, $1F, $20, $21, $22, $60, $FF, $31, $30, $6B, $4B, $41, $54, $13 ; CPU:$8C59 PRG:8C59 FF 8D 61 1F 20 21 22 60 FF 31 30 6B 4B 41 54 13
.byte $FF, $87, $62, $21, $22, $1F, $20, $6E, $6C, $19, $6D, $A3, $6F, $1F, $20, $21 ; CPU:$8C69 PRG:8C69 FF 87 62 21 22 1F 20 6E 6C 19 6D A3 6F 1F 20 21
.byte $22, $60, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22 ; CPU:$8C79 PRG:8C79 22 60 21 22 21 22 21 22 21 22 21 22 21 22 21 22
.byte $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $21, $22, $62, $21, $22, $11 ; CPU:$8C89 PRG:8C89 21 22 21 22 21 22 21 22 21 22 21 22 62 21 22 11
.byte $FF, $06, $5A, $02, $FF, $06, $5A, $02, $FF, $06, $5A, $02, $FF, $06, $5A, $02 ; CPU:$8C99 PRG:8C99 FF 06 5A 02 FF 06 5A 02 FF 06 5A 02 FF 06 5A 02
.byte $FF, $06, $5A, $09, $FF, $FF, $FF, $FF, $20, $00, $46, $FF, $83, $50, $4C, $41 ; CPU:$8CA9 PRG:8CA9 FF 06 5A 09 FF FF FF FF 20 00 46 FF 83 50 4C 41
.byte $02, $4E, $85, $45, $44, $FF, $42, $59, $16, $FF, $8B, $54, $52, $49, $43, $49 ; CPU:$8CB9 PRG:8CB9 02 4E 85 45 44 FF 42 59 16 FF 8B 54 52 49 43 49
.byte $41, $FF, $43, $48, $45, $4E, $35, $FF, $86, $50, $52, $4F, $47, $52, $41, $02 ; CPU:$8CC9 PRG:8CC9 41 FF 43 48 45 4E 35 FF 86 50 52 4F 47 52 41 02
.byte $4D, $85, $45, $44, $FF, $42, $59, $13, $FF, $8B, $53, $49, $4C, $56, $45, $52 ; CPU:$8CD9 PRG:8CD9 4D 85 45 44 FF 42 59 13 FF 8B 53 49 4C 56 45 52
.byte $53, $FF, $4C, $49, $4E, $35, $FF, $8A, $47, $52, $41, $50, $48, $49, $43, $FF ; CPU:$8CE9 PRG:8CE9 53 FF 4C 49 4E 35 FF 8A 47 52 41 50 48 49 43 FF
.byte $42, $59, $16, $FF, $8A, $4B, $41, $54, $48, $59, $FF, $43, $48, $45, $4E, $36 ; CPU:$8CF9 PRG:8CF9 42 59 16 FF 8A 4B 41 54 48 59 FF 43 48 45 4E 36
.byte $FF, $90, $41, $52, $54, $FF, $44, $49, $52, $45, $43, $54, $49, $4F, $4E, $FF ; CPU:$8D09 PRG:8D09 FF 90 41 52 54 FF 44 49 52 45 43 54 49 4F 4E FF
.byte $42, $59, $10, $FF, $8A, $50, $4F, $4E, $59, $FF, $43, $48, $49, $4F, $55, $36 ; CPU:$8D19 PRG:8D19 42 59 10 FF 8A 50 4F 4E 59 FF 43 48 49 4F 55 36
.byte $FF, $88, $4D, $55, $53, $49, $43, $FF, $42, $59, $18, $FF, $82, $4B, $4F, $02 ; CPU:$8D29 PRG:8D29 FF 88 4D 55 53 49 43 FF 42 59 18 FF 82 4B 4F 02
.byte $53, $88, $45, $4C, $FF, $48, $55, $41, $4E, $47, $34, $FF, $89, $54, $48, $41 ; CPU:$8D39 PRG:8D39 53 88 45 4C FF 48 55 41 4E 47 34 FF 89 54 48 41
.byte $4E, $4B, $53, $FF, $54, $4F, $17, $FF, $88, $4A, $41, $43, $4B, $FF, $59, $45 ; CPU:$8D49 PRG:8D49 4E 4B 53 FF 54 4F 17 FF 88 4A 41 43 4B FF 59 45
.byte $48, $38, $FF, $85, $42, $47, $4D, $40, $8E, $1B, $FF, $92, $57, $41, $56, $49 ; CPU:$8D59 PRG:8D59 48 38 FF 85 42 47 4D 40 8E 1B FF 92 57 41 56 49
.byte $4E, $47, $FF, $55, $50, $FF, $41, $4E, $44, $FF, $44, $4F, $57, $4E, $2E, $FF ; CPU:$8D69 PRG:8D69 4E 47 FF 55 50 FF 41 4E 44 FF 44 4F 57 4E 2E FF
.byte $85, $42, $47, $4D, $40, $8F, $1B, $FF, $87, $42, $4C, $4F, $57, $FF, $42, $55 ; CPU:$8D79 PRG:8D79 85 42 47 4D 40 8F 1B FF 87 42 4C 4F 57 FF 42 55
.byte $02, $42, $83, $4C, $45, $53, $34, $FF, $85, $42, $47, $4D, $40, $7C, $1B, $FF ; CPU:$8D89 PRG:8D89 02 42 83 4C 45 53 34 FF 85 42 47 4D 40 7C 1B FF
.byte $90, $57, $4F, $4E, $44, $45, $52, $46, $55, $4C, $FF, $53, $45, $41, $42, $45 ; CPU:$8D99 PRG:8D99 90 57 4F 4E 44 45 52 46 55 4C FF 53 45 41 42 45
.byte $44, $77, $FF, $13, $FF, $FF, $FF, $FF, $24, $00, $66, $FF, $81, $FB, $06, $FA ; CPU:$8DA9 PRG:8DA9 44 77 FF 13 FF FF FF FF 24 00 66 FF 81 FB 06 FA
.byte $83, $01, $02, $03, $03, $FA, $84, $04, $05, $06, $07, $02, $FA, $81, $F9, $0C ; CPU:$8DB9 PRG:8DB9 83 01 02 03 03 FA 84 04 05 06 07 02 FA 81 F9 0C
.byte $FF, $81, $FC, $06, $11, $83, $08, $09, $0A, $03, $11, $84, $0B, $0C, $0D, $0E ; CPU:$8DC9 PRG:8DC9 FF 81 FC 06 11 83 08 09 0A 03 11 84 0B 0C 0D 0E
.byte $02, $11, $81, $FD, $0C, $FF, $84, $FC, $11, $0F, $10, $02, $11, $84, $12, $13 ; CPU:$8DD9 PRG:8DD9 02 11 81 FD 0C FF 84 FC 11 0F 10 02 11 84 12 13
.byte $14, $15, $03, $11, $84, $17, $18, $19, $1A, $02, $11, $81, $FD, $0C, $FF, $8C ; CPU:$8DE9 PRG:8DE9 14 15 03 11 84 17 18 19 1A 02 11 81 FD 0C FF 8C
.byte $FC, $11, $1B, $1C, $1D, $1E, $1F, $20, $21, $22, $23, $24, $02, $11, $82, $26 ; CPU:$8DF9 PRG:8DF9 FC 11 1B 1C 1D 1E 1F 20 21 22 23 24 02 11 82 26
.byte $27, $03, $11, $81, $FD, $0C, $FF, $90, $FC, $28, $29, $2A, $2B, $2C, $2D, $2E ; CPU:$8E09 PRG:8E09 27 03 11 81 FD 0C FF 90 FC 28 29 2A 2B 2C 2D 2E
.byte $2F, $30, $31, $32, $33, $11, $35, $36, $03, $11, $81, $FD, $0C, $FF, $94, $FC ; CPU:$8E19 PRG:8E19 2F 30 31 32 33 11 35 36 03 11 81 FD 0C FF 94 FC
.byte $37, $38, $39, $3A, $3B, $3C, $3D, $3E, $3F, $40, $41, $42, $43, $44, $45, $46 ; CPU:$8E29 PRG:8E29 37 38 39 3A 3B 3C 3D 3E 3F 40 41 42 43 44 45 46
.byte $47, $48, $49, $0C, $FF, $94, $FC, $4B, $4C, $4D, $4E, $4F, $50, $51, $52, $53 ; CPU:$8E39 PRG:8E39 47 48 49 0C FF 94 FC 4B 4C 4D 4E 4F 50 51 52 53
.byte $54, $55, $56, $57, $58, $59, $5A, $5B, $5C, $5D, $0C, $FF, $94, $5E, $5F, $60 ; CPU:$8E49 PRG:8E49 54 55 56 57 58 59 5A 5B 5C 5D 0C FF 94 5E 5F 60
.byte $61, $62, $63, $64, $65, $66, $67, $68, $69, $6A, $6B, $6C, $6D, $6E, $6F, $70 ; CPU:$8E59 PRG:8E59 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70
.byte $71, $0C, $FF, $94, $72, $73, $74, $75, $76, $77, $78, $79, $7A, $7B, $7C, $7D ; CPU:$8E69 PRG:8E69 71 0C FF 94 72 73 74 75 76 77 78 79 7A 7B 7C 7D
.byte $7E, $7F, $80, $81, $82, $83, $84, $85, $0C, $FF, $89, $86, $87, $88, $89, $8A ; CPU:$8E79 PRG:8E79 7E 7F 80 81 82 83 84 85 0C FF 89 86 87 88 89 8A
.byte $8B, $8C, $8D, $8E, $04, $8F, $87, $93, $94, $95, $96, $97, $98, $99, $0C, $FF ; CPU:$8E89 PRG:8E89 8B 8C 8D 8E 04 8F 87 93 94 95 96 97 98 99 0C FF
.byte $89, $9A, $9B, $9C, $9D, $9E, $9F, $A0, $A1, $A2, $03, $8F, $88, $A6, $A7, $A8 ; CPU:$8E99 PRG:8E99 89 9A 9B 9C 9D 9E 9F A0 A1 A2 03 8F 88 A6 A7 A8
.byte $A9, $EF, $F0, $F1, $F8, $0C, $FF, $89, $AA, $AB, $AC, $AD, $AE, $AF, $B0, $B1 ; CPU:$8EA9 PRG:8EA9 A9 EF F0 F1 F8 0C FF 89 AA AB AC AD AE AF B0 B1
.byte $B2, $02, $8F, $83, $B5, $B6, $B7, $05, $16, $81, $F8, $0C, $FF, $8D, $B8, $B9 ; CPU:$8EB9 PRG:8EB9 B2 02 8F 83 B5 B6 B7 05 16 81 F8 0C FF 8D B8 B9
.byte $BA, $BB, $BC, $BD, $BE, $BF, $C0, $8F, $C2, $C3, $C4, $06, $16, $81, $F8, $0C ; CPU:$8EC9 PRG:8EC9 BA BB BC BD BE BF C0 8F C2 C3 C4 06 16 81 F8 0C
.byte $FF, $8C, $C5, $C6, $C7, $C8, $C9, $CA, $CB, $CC, $CD, $CE, $CF, $D0, $07, $16 ; CPU:$8ED9 PRG:8ED9 FF 8C C5 C6 C7 C8 C9 CA CB CC CD CE CF D0 07 16
.byte $81, $F8, $0C, $FF, $8A, $D1, $D2, $D3, $D4, $D5, $D6, $D7, $D8, $F2, $F3, $09 ; CPU:$8EE9 PRG:8EE9 81 F8 0C FF 8A D1 D2 D3 D4 D5 D6 D7 D8 F2 F3 09
.byte $16, $81, $F8, $0C, $FF, $88, $D9, $DA, $DB, $DC, $DD, $DE, $DF, $E0, $0B, $16 ; CPU:$8EF9 PRG:8EF9 16 81 F8 0C FF 88 D9 DA DB DC DD DE DF E0 0B 16
.byte $81, $F8, $0C, $FF, $83, $E1, $E2, $E3, $10, $16, $81, $F8, $0C, $FF, $81, $F5 ; CPU:$8F09 PRG:8F09 81 F8 0C FF 83 E1 E2 E3 10 16 81 F8 0C FF 81 F5
.byte $12, $F6, $81, $F7, $77, $FF, $77, $FF, $3B, $FF, $81, $3F, $06, $FF, $83, $CF ; CPU:$8F19 PRG:8F19 12 F6 81 F7 77 FF 77 FF 3B FF 81 3F 06 FF 83 CF
.byte $03, $0C, $05, $FF, $84, $F3, $A0, $00, $0F, $03, $FF, $86, $BF, $AF, $AB, $56 ; CPU:$8F29 PRG:8F29 03 0C 05 FF 84 F3 A0 00 0F 03 FF 86 BF AF AB 56
.byte $55, $DD, $02, $FF, $82, $7B, $5A, $03, $55, $81, $DD, $02, $FF, $81, $F7, $04 ; CPU:$8F39 PRG:8F39 55 DD 02 FF 82 7B 5A 03 55 81 DD 02 FF 81 F7 04
.byte $F5, $81, $FD, $11, $FF, $FF, $FF, $FF, $24, $00, $66, $FF, $81, $C5, $09, $C0 ; CPU:$8F49 PRG:8F49 F5 81 FD 11 FF FF FF FF 24 00 66 FF 81 C5 09 C0
.byte $82, $01, $02, $03, $C0, $82, $DB, $DC, $02, $C0, $81, $BF, $0C, $FF, $82, $C6 ; CPU:$8F59 PRG:8F59 82 01 02 03 C0 82 DB DC 02 C0 81 BF 0C FF 82 C6
.byte $F9, $06, $76, $85, $D1, $03, $04, $05, $06, $02, $76, $82, $DD, $DE, $02, $76 ; CPU:$8F69 PRG:8F69 F9 06 76 85 D1 03 04 05 06 02 76 82 DD DE 02 76
.byte $81, $BE, $0C, $FF, $83, $C6, $76, $F9, $04, $76, $8D, $C7, $07, $08, $09, $0A ; CPU:$8F79 PRG:8F79 81 BE 0C FF 83 C6 76 F9 04 76 8D C7 07 08 09 0A
.byte $0B, $76, $D9, $DF, $E0, $DA, $76, $BE, $0C, $FF, $81, $C6, $06, $76, $8A, $F9 ; CPU:$8F89 PRG:8F89 0B 76 D9 DF E0 DA 76 BE 0C FF 81 C6 06 76 8A F9
.byte $0C, $0D, $0E, $0F, $10, $76, $E1, $E2, $E3, $02, $76, $81, $BE, $0C, $FF, $85 ; CPU:$8F99 PRG:8F99 0C 0D 0E 0F 10 76 E1 E2 E3 02 76 81 BE 0C FF 85
.byte $C6, $F9, $76, $16, $17, $04, $76, $8B, $11, $12, $13, $14, $15, $E4, $E5, $E6 ; CPU:$8FA9 PRG:8FA9 C6 F9 76 16 17 04 76 8B 11 12 13 14 15 E4 E5 E6
.byte $E7, $76, $BE, $0C, $FF, $81, $C6, $02, $76, $91, $18, $19, $76, $F9, $76, $28 ; CPU:$8FB9 PRG:8FB9 E7 76 BE 0C FF 81 C6 02 76 91 18 19 76 F9 76 28
.byte $29, $2A, $2B, $2C, $2D, $E8, $E9, $EA, $EB, $76, $BE, $0C, $FF, $81, $C6, $02 ; CPU:$8FC9 PRG:8FC9 29 2A 2B 2C 2D E8 E9 EA EB 76 BE 0C FF 81 C6 02
.byte $76, $83, $1A, $1B, $1C, $02, $76, $8C, $35, $36, $37, $38, $39, $3A, $EC, $ED ; CPU:$8FD9 PRG:8FD9 76 83 1A 1B 1C 02 76 8C 35 36 37 38 39 3A EC ED
.byte $EE, $EF, $76, $BE, $0C, $FF, $87, $1D, $1E, $1F, $20, $21, $22, $23, $02, $76 ; CPU:$8FE9 PRG:8FE9 EE EF 76 BE 0C FF 87 1D 1E 1F 20 21 22 23 02 76
.byte $8B, $24, $25, $26, $27, $2E, $76, $F0, $F1, $F2, $76, $BE, $0C, $FF, $94, $2F ; CPU:$8FF9 PRG:8FF9 8B 24 25 26 27 2E 76 F0 F1 F2 76 BE 0C FF 94 2F
.byte $30, $31, $32, $33, $34, $D8, $76, $F5, $3B, $3C, $3D, $3E, $3F, $40, $76, $F3 ; CPU:$9009 PRG:9009 30 31 32 33 34 D8 76 F5 3B 3C 3D 3E 3F 40 76 F3
.byte $F4, $76, $BE, $0C, $FF, $90, $41, $42, $43, $44, $45, $46, $D7, $F6, $47, $48 ; CPU:$9019 PRG:9019 F4 76 BE 0C FF 90 41 42 43 44 45 46 D7 F6 47 48
.byte $49, $4A, $4B, $4C, $4D, $4E, $03, $76, $81, $BE, $0C, $FF, $90, $D3, $4F, $50 ; CPU:$9029 PRG:9029 49 4A 4B 4C 4D 4E 03 76 81 BE 0C FF 90 D3 4F 50
.byte $51, $52, $53, $76, $54, $55, $56, $57, $58, $59, $5A, $5B, $5C, $03, $76, $81 ; CPU:$9039 PRG:9039 51 52 53 76 54 55 56 57 58 59 5A 5B 5C 03 76 81
.byte $BE, $0C, $FF, $91, $C6, $76, $5D, $5E, $5F, $60, $61, $62, $63, $64, $65, $66 ; CPU:$9049 PRG:9049 BE 0C FF 91 C6 76 5D 5E 5F 60 61 62 63 64 65 66
.byte $67, $68, $69, $6A, $6B, $02, $76, $81, $BE, $0C, $FF, $8B, $C6, $76, $6C, $6D ; CPU:$9059 PRG:9059 67 68 69 6A 6B 02 76 81 BE 0C FF 8B C6 76 6C 6D
.byte $6E, $6F, $70, $71, $72, $73, $74, $03, $75, $86, $78, $79, $7A, $7B, $7C, $BE ; CPU:$9069 PRG:9069 6E 6F 70 71 72 73 74 03 75 86 78 79 7A 7B 7C BE
.byte $0C, $FF, $94, $C6, $7D, $7E, $7F, $80, $81, $82, $83, $84, $85, $86, $87, $88 ; CPU:$9079 PRG:9079 0C FF 94 C6 7D 7E 7F 80 81 82 83 84 85 86 87 88
.byte $89, $8A, $8B, $8C, $8D, $8E, $BE, $0C, $FF, $94, $C6, $8F, $90, $91, $92, $93 ; CPU:$9089 PRG:9089 89 8A 8B 8C 8D 8E BE 0C FF 94 C6 8F 90 91 92 93
.byte $94, $95, $96, $97, $98, $99, $9A, $9B, $9C, $9D, $9E, $75, $A0, $A1, $0C, $FF ; CPU:$9099 PRG:9099 94 95 96 97 98 99 9A 9B 9C 9D 9E 75 A0 A1 0C FF
.byte $94, $C6, $A2, $A3, $A4, $A5, $A6, $A7, $A8, $A9, $AA, $AB, $AC, $AD, $AE, $AF ; CPU:$90A9 PRG:90A9 94 C6 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF
.byte $B0, $75, $B3, $B4, $B2, $0C, $FF, $8A, $F7, $B5, $B6, $B7, $B8, $B9, $BA, $BB ; CPU:$90B9 PRG:90B9 B0 75 B3 B4 B2 0C FF 8A F7 B5 B6 B7 B8 B9 BA BB
.byte $BC, $BD, $03, $75, $87, $C1, $C2, $C3, $C4, $B5, $B6, $9F, $0C, $FF, $8A, $D2 ; CPU:$90C9 PRG:90C9 BC BD 03 75 87 C1 C2 C3 C4 B5 B6 9F 0C FF 8A D2
.byte $C8, $C9, $CA, $CB, $CC, $CD, $CE, $CF, $D0, $03, $77, $87, $D4, $D5, $D6, $F8 ; CPU:$90D9 PRG:90D9 C8 C9 CA CB CC CD CE CF D0 03 77 87 D4 D5 D6 F8
.byte $C8, $C9, $B1, $77, $FF, $77, $FF, $3C, $FF, $81, $CF, $05, $FF, $84, $BF, $33 ; CPU:$90E9 PRG:90E9 C8 C9 B1 77 FF 77 FF 3C FF 81 CF 05 FF 84 BF 33
.byte $00, $AA, $04, $FF, $84, $AA, $23, $00, $AA, $04, $FF, $84, $AA, $A7, $52, $DC ; CPU:$90F9 PRG:90F9 00 AA 04 FF 84 AA 23 00 AA 04 FF 84 AA A7 52 DC
.byte $04, $FF, $84, $FE, $F7, $55, $D5, $1A, $FF, $FF, $FF, $FF, $24, $00, $77, $FF ; CPU:$9109 PRG:9109 04 FF 84 FE F7 55 D5 1A FF FF FF FF 24 00 77 FF
.byte $0F, $FF, $81, $D9, $09, $DA, $82, $02, $03, $06, $DA, $81, $DB, $0D, $FF, $81 ; CPU:$9119 PRG:9119 0F FF 81 D9 09 DA 82 02 03 06 DA 81 DB 0D FF 81
.byte $DD, $08, $01, $85, $C5, $04, $05, $01, $D8, $04, $01, $81, $DC, $0D, $FF, $81 ; CPU:$9129 PRG:9129 DD 08 01 85 C5 04 05 01 D8 04 01 81 DC 0D FF 81
.byte $DD, $08, $01, $84, $06, $07, $08, $09, $05, $01, $81, $DC, $0D, $FF, $81, $DD ; CPU:$9139 PRG:9139 DD 08 01 84 06 07 08 09 05 01 81 DC 0D FF 81 DD
.byte $08, $01, $84, $0D, $0C, $0B, $0A, $05, $01, $81, $DC, $0D, $FF, $81, $DD, $08 ; CPU:$9149 PRG:9149 08 01 84 0D 0C 0B 0A 05 01 81 DC 0D FF 81 DD 08
.byte $01, $84, $0E, $0F, $10, $11, $02, $01, $84, $86, $87, $88, $89, $0D, $FF, $81 ; CPU:$9159 PRG:9159 01 84 0E 0F 10 11 02 01 84 86 87 88 89 0D FF 81
.byte $DD, $04, $01, $81, $D8, $02, $01, $85, $16, $15, $14, $13, $12, $02, $01, $84 ; CPU:$9169 PRG:9169 DD 04 01 81 D8 02 01 85 16 15 14 13 12 02 01 84
.byte $8A, $8B, $8C, $8D, $0D, $FF, $81, $DD, $05, $01, $8D, $D8, $23, $17, $18, $19 ; CPU:$9179 PRG:9179 8A 8B 8C 8D 0D FF 81 DD 05 01 8D D8 23 17 18 19
.byte $1A, $1B, $1C, $01, $8E, $8F, $90, $91, $0D, $FF, $83, $DD, $01, $D8, $03, $01 ; CPU:$9189 PRG:9189 1A 1B 1C 01 8E 8F 90 91 0D FF 83 DD 01 D8 03 01
.byte $88, $D8, $24, $22, $21, $20, $1F, $1E, $1D, $02, $01, $83, $92, $93, $DC, $0D ; CPU:$9199 PRG:9199 88 D8 24 22 21 20 1F 1E 1D 02 01 83 92 93 DC 0D
.byte $FF, $83, $DD, $01, $D8, $02, $01, $8E, $37, $25, $26, $27, $28, $29, $2A, $2B ; CPU:$91A9 PRG:91A9 FF 83 DD 01 D8 02 01 8E 37 25 26 27 28 29 2A 2B
.byte $2C, $D8, $01, $95, $94, $DC, $0D, $FF, $93, $DD, $CC, $C9, $C8, $38, $36, $35 ; CPU:$91B9 PRG:91B9 2C D8 01 95 94 DC 0D FF 93 DD CC C9 C8 38 36 35
.byte $34, $33, $32, $31, $30, $2F, $2D, $2E, $96, $97, $98, $99, $0D, $FF, $93, $D1 ; CPU:$91C9 PRG:91C9 34 33 32 31 30 2F 2D 2E 96 97 98 99 0D FF 93 D1
.byte $CD, $CA, $C7, $39, $3A, $3B, $3C, $3D, $3E, $3F, $40, $41, $42, $43, $9D, $9C ; CPU:$91D9 PRG:91D9 CD CA C7 39 3A 3B 3C 3D 3E 3F 40 41 42 43 9D 9C
.byte $9B, $9A, $0D, $FF, $93, $D2, $CE, $CB, $C6, $4E, $4D, $4C, $4B, $4A, $49, $48 ; CPU:$91E9 PRG:91E9 9B 9A 0D FF 93 D2 CE CB C6 4E 4D 4C 4B 4A 49 48
.byte $47, $46, $45, $44, $5B, $5C, $9E, $9F, $0D, $FF, $93, $D3, $D0, $A6, $AD, $4F ; CPU:$91F9 PRG:91F9 47 46 45 44 5B 5C 9E 9F 0D FF 93 D3 D0 A6 AD 4F
.byte $50, $51, $52, $7D, $54, $55, $56, $57, $58, $59, $5A, $5D, $AE, $AF, $0D, $FF ; CPU:$9209 PRG:9209 50 51 52 7D 54 55 56 57 58 59 5A 5D AE AF 0D FF
.byte $93, $D4, $A8, $A4, $A5, $6C, $6B, $6A, $69, $68, $67, $66, $65, $64, $63, $62 ; CPU:$9219 PRG:9219 93 D4 A8 A4 A5 6C 6B 6A 69 68 67 66 65 64 63 62
.byte $5F, $5E, $B0, $B1, $0D, $FF, $93, $D5, $A9, $A3, $A7, $6D, $6E, $6F, $70, $71 ; CPU:$9229 PRG:9229 5F 5E B0 B1 0D FF 93 D5 A9 A3 A7 6D 6E 6F 70 71
.byte $72, $73, $74, $75, $76, $77, $60, $61, $C1, $C2, $0D, $FF, $93, $D6, $AA, $AB ; CPU:$9239 PRG:9239 72 73 74 75 76 77 60 61 C1 C2 0D FF 93 D6 AA AB
.byte $A0, $78, $79, $7A, $7B, $7C, $85, $7E, $7F, $80, $81, $82, $83, $84, $C0, $C3 ; CPU:$9249 PRG:9249 A0 78 79 7A 7B 7C 85 7E 7F 80 81 82 83 84 C0 C3
.byte $0D, $FF, $93, $CF, $AC, $D7, $A1, $B2, $B3, $B4, $B5, $B6, $B7, $B8, $B9, $BA ; CPU:$9259 PRG:9259 0D FF 93 CF AC D7 A1 B2 B3 B4 B5 B6 B7 B8 B9 BA
.byte $BB, $BC, $BD, $BE, $BF, $C4, $77, $FF, $77, $FF, $4E, $FF, $82, $BB, $FE, $03 ; CPU:$9269 PRG:9269 BB BC BD BE BF C4 77 FF 77 FF 4E FF 82 BB FE 03
.byte $FF, $85, $7F, $CC, $FF, $8B, $EF, $02, $FF, $85, $7F, $55, $0F, $FF, $00, $03 ; CPU:$9279 PRG:9279 FF 85 7F CC FF 8B EF 02 FF 85 7F 55 0F FF 00 03
.byte $FF, $82, $F7, $F5, $15, $FF, $FF, $FF, $FF, $24, $00, $77, $FF, $0F, $FF, $81 ; CPU:$9289 PRG:9289 FF 82 F7 F5 15 FF FF FF FF 24 00 77 FF 0F FF 81
.byte $E0, $08, $E1, $83, $84, $85, $9B, $04, $E1, $83, $C1, $D5, $D6, $0D, $FF, $86 ; CPU:$9299 PRG:9299 E0 08 E1 83 84 85 9B 04 E1 83 C1 D5 D6 0D FF 86
.byte $E2, $DE, $17, $36, $37, $E8, $02, $DE, $86, $6C, $83, $86, $9A, $9C, $AE, $02 ; CPU:$92A9 PRG:92A9 E2 DE 17 36 37 E8 02 DE 86 6C 83 86 9A 9C AE 02
.byte $DE, $83, $C2, $D4, $D7, $0D, $FF, $8E, $E2, $DE, $18, $35, $38, $51, $DE, $E8 ; CPU:$92B9 PRG:92B9 DE 83 C2 D4 D7 0D FF 8E E2 DE 18 35 38 51 DE E8
.byte $6D, $82, $87, $99, $9D, $E8, $02, $DE, $83, $C3, $D3, $D8, $0D, $FF, $93, $E2 ; CPU:$92C9 PRG:92C9 6D 82 87 99 9D E8 02 DE 83 C3 D3 D8 0D FF 93 E2
.byte $DE, $19, $34, $39, $50, $DE, $E8, $DE, $81, $88, $98, $9E, $E8, $AF, $C0, $C4 ; CPU:$92D9 PRG:92D9 DE 19 34 39 50 DE E8 DE 81 88 98 9E E8 AF C0 C4
.byte $D2, $E3, $0D, $FF, $93, $E2, $16, $1A, $33, $3A, $E8, $52, $6B, $6E, $80, $89 ; CPU:$92E9 PRG:92E9 D2 E3 0D FF 93 E2 16 1A 33 3A E8 52 6B 6E 80 89
.byte $97, $9F, $E7, $B0, $BF, $C5, $D1, $E3, $0D, $FF, $8B, $01, $15, $1B, $32, $3B ; CPU:$92F9 PRG:92F9 97 9F E7 B0 BF C5 D1 E3 0D FF 8B 01 15 1B 32 3B
.byte $E7, $53, $6A, $6F, $DE, $8A, $02, $DE, $86, $AD, $B1, $BE, $C6, $DE, $E3, $0D ; CPU:$9309 PRG:9309 E7 53 6A 6F DE 8A 02 DE 86 AD B1 BE C6 DE E3 0D
.byte $FF, $8A, $02, $14, $1C, $31, $3C, $E8, $54, $69, $DE, $E8, $03, $DE, $86, $AC ; CPU:$9319 PRG:9319 FF 8A 02 14 1C 31 3C E8 54 69 DE E8 03 DE 86 AC
.byte $B2, $BD, $C7, $D0, $D9, $0D, $FF, $8A, $E2, $13, $1D, $30, $3D, $4F, $55, $68 ; CPU:$9329 PRG:9329 B2 BD C7 D0 D9 0D FF 8A E2 13 1D 30 3D 4F 55 68
.byte $70, $E8, $03, $DE, $86, $AB, $B3, $BC, $C8, $CF, $DA, $0D, $FF, $8E, $E2, $12 ; CPU:$9339 PRG:9339 70 E8 03 DE 86 AB B3 BC C8 CF DA 0D FF 8E E2 12
.byte $1E, $2F, $3E, $4E, $56, $67, $71, $7F, $8B, $96, $A0, $AA, $02, $DE, $83, $C9 ; CPU:$9349 PRG:9349 1E 2F 3E 4E 56 67 71 7F 8B 96 A0 AA 02 DE 83 C9
.byte $CE, $DB, $0D, $FF, $8B, $03, $11, $1F, $2E, $3F, $4D, $57, $66, $72, $7E, $8C ; CPU:$9359 PRG:9359 CE DB 0D FF 8B 03 11 1F 2E 3F 4D 57 66 72 7E 8C
.byte $02, $DE, $81, $E8, $02, $DE, $83, $E8, $DE, $DC, $0D, $FF, $8B, $04, $10, $20 ; CPU:$9369 PRG:9369 02 DE 81 E8 02 DE 83 E8 DE DC 0D FF 8B 04 10 20
.byte $2D, $40, $4C, $58, $65, $73, $7D, $8D, $02, $DE, $81, $E8, $02, $DE, $83, $E8 ; CPU:$9379 PRG:9379 2D 40 4C 58 65 73 7D 8D 02 DE 81 E8 02 DE 83 E8
.byte $DE, $E3, $0D, $FF, $8A, $E2, $0F, $21, $2C, $41, $4B, $59, $64, $74, $E8, $02 ; CPU:$9389 PRG:9389 DE E3 0D FF 8A E2 0F 21 2C 41 4B 59 64 74 E8 02
.byte $DE, $87, $E8, $A9, $B4, $DE, $E8, $DE, $E3, $0D, $FF, $8A, $05, $0E, $22, $2B ; CPU:$9399 PRG:9399 DE 87 E8 A9 B4 DE E8 DE E3 0D FF 8A 05 0E 22 2B
.byte $42, $4A, $5A, $63, $75, $DE, $02, $8E, $87, $E7, $A8, $B5, $DE, $E7, $DE, $E3 ; CPU:$93A9 PRG:93A9 42 4A 5A 63 75 DE 02 8E 87 E7 A8 B5 DE E7 DE E3
.byte $0D, $FF, $93, $06, $0D, $23, $2A, $DE, $49, $5B, $62, $76, $7C, $76, $7C, $A1 ; CPU:$93B9 PRG:93B9 0D FF 93 06 0D 23 2A DE 49 5B 62 76 7C 76 7C A1
.byte $A7, $B6, $BB, $CA, $CD, $DD, $0D, $FF, $8D, $07, $0C, $24, $29, $43, $48, $5C ; CPU:$93C9 PRG:93C9 A7 B6 BB CA CD DD 0D FF 8D 07 0C 24 29 43 48 5C
.byte $61, $77, $7B, $90, $95, $A2, $02, $FF, $82, $BA, $CB, $02, $CC, $0D, $FF, $8F ; CPU:$93D9 PRG:93D9 61 77 7B 90 95 A2 02 FF 82 BA CB 02 CC 0D FF 8F
.byte $08, $0B, $25, $28, $44, $47, $5D, $60, $DF, $7A, $91, $94, $A3, $A6, $B7, $03 ; CPU:$93E9 PRG:93E9 08 0B 25 28 44 47 5D 60 DF 7A 91 94 A3 A6 B7 03
.byte $FF, $81, $EA, $0D, $FF, $90, $09, $0A, $26, $27, $45, $46, $5E, $5F, $78, $79 ; CPU:$93F9 PRG:93F9 FF 81 EA 0D FF 90 09 0A 26 27 45 46 5E 5F 78 79
.byte $92, $93, $A4, $A5, $B8, $B9, $02, $E9, $81, $E4, $77, $FF, $77, $FF, $43, $FF ; CPU:$9409 PRG:9409 92 93 A4 A5 B8 B9 02 E9 81 E4 77 FF 77 FF 43 FF
.byte $81, $0C, $02, $FF, $87, $F7, $DD, $FF, $7F, $53, $98, $AA, $02, $FF, $81, $FC ; CPU:$9419 PRG:9419 81 0C 02 FF 87 F7 DD FF 7F 53 98 AA 02 FF 81 FC
.byte $02, $FF, $84, $F7, $7B, $AA, $EE, $05, $FF, $84, $55, $EA, $AE, $EF, $04, $FF ; CPU:$9429 PRG:9429 02 FF 84 F7 7B AA EE 05 FF 84 55 EA AE EF 04 FF
.byte $81, $F5, $02, $FA, $81, $FE, $12, $FF, $FF, $FF, $FF, $24, $00, $77, $FF, $0F ; CPU:$9439 PRG:9439 81 F5 02 FA 81 FE 12 FF FF FF FF 24 00 77 FF 0F
.byte $FF, $81, $79, $02, $6D, $81, $69, $06, $7A, $89, $19, $1A, $7A, $21, $22, $7A ; CPU:$9449 PRG:9449 FF 81 79 02 6D 81 69 06 7A 89 19 1A 7A 21 22 7A
.byte $6B, $6D, $7B, $0D, $FF, $81, $80, $02, $6C, $81, $68, $05, $84, $8A, $14, $13 ; CPU:$9459 PRG:9459 6B 6D 7B 0D FF 81 80 02 6C 81 68 05 84 8A 14 13
.byte $15, $1B, $20, $23, $84, $6A, $6C, $7C, $0D, $FF, $81, $80, $02, $6C, $90, $68 ; CPU:$9469 PRG:9469 15 1B 20 23 84 6A 6C 7C 0D FF 81 80 02 6C 90 68
.byte $B5, $01, $06, $07, $0C, $0D, $12, $16, $1C, $1F, $24, $84, $6A, $6C, $7C, $0D ; CPU:$9479 PRG:9479 B5 01 06 07 0C 0D 12 16 1C 1F 24 84 6A 6C 7C 0D
.byte $FF, $81, $80, $02, $6C, $90, $68, $B3, $02, $05, $08, $0B, $0E, $11, $17, $1D ; CPU:$9489 PRG:9489 FF 81 80 02 6C 90 68 B3 02 05 08 0B 0E 11 17 1D
.byte $1E, $25, $84, $6A, $6C, $7C, $0D, $FF, $81, $80, $02, $6C, $8B, $68, $B4, $03 ; CPU:$9499 PRG:9499 1E 25 84 6A 6C 7C 0D FF 81 80 02 6C 8B 68 B4 03
.byte $04, $09, $0A, $0F, $10, $18, $84, $BA, $02, $84, $83, $6A, $6C, $7C, $0D, $FF ; CPU:$94A9 PRG:94A9 04 09 0A 0F 10 18 84 BA 02 84 83 6A 6C 7C 0D FF
.byte $81, $80, $02, $6C, $8B, $68, $84, $77, $78, $2A, $26, $27, $28, $29, $82, $83 ; CPU:$94B9 PRG:94B9 81 80 02 6C 8B 68 84 77 78 2A 26 27 28 29 82 83
.byte $02, $84, $83, $6A, $6C, $7C, $0D, $FF, $81, $80, $02, $6C, $81, $68, $02, $84 ; CPU:$94C9 PRG:94C9 02 84 83 6A 6C 7C 0D FF 81 80 02 6C 81 68 02 84
.byte $02, $2E, $85, $2B, $2C, $2D, $2E, $37, $03, $84, $83, $6A, $6C, $7C, $0D, $FF ; CPU:$94D9 PRG:94D9 02 2E 85 2B 2C 2D 2E 37 03 84 83 6A 6C 7C 0D FF
.byte $81, $80, $02, $6C, $81, $34, $02, $6E, $87, $31, $32, $33, $6E, $35, $36, $38 ; CPU:$94E9 PRG:94E9 81 80 02 6C 81 34 02 6E 87 31 32 33 6E 35 36 38
.byte $03, $6E, $83, $6F, $6C, $7C, $0D, $FF, $82, $8D, $97, $02, $95, $8F, $94, $39 ; CPU:$94F9 PRG:94F9 03 6E 83 6F 6C 7C 0D FF 82 8D 97 02 95 8F 94 39
.byte $3A, $3B, $3C, $3D, $3E, $3F, $40, $41, $85, $86, $87, $A3, $B9, $0D, $FF, $93 ; CPU:$9509 PRG:9509 3A 3B 3C 3D 3E 3F 40 41 85 86 87 A3 B9 0D FF 93
.byte $96, $98, $B1, $AB, $93, $4A, $49, $48, $47, $46, $45, $44, $43, $42, $A5, $A6 ; CPU:$9519 PRG:9519 96 98 B1 AB 93 4A 49 48 47 46 45 44 43 42 A5 A6
.byte $8E, $91, $B8, $0D, $FF, $93, $96, $99, $B0, $AC, $92, $4B, $4C, $4D, $4E, $4F ; CPU:$9529 PRG:9529 8E 91 B8 0D FF 93 96 99 B0 AC 92 4B 4C 4D 4E 4F
.byte $50, $51, $52, $53, $A4, $A7, $AA, $8F, $B7, $0D, $FF, $93, $96, $9A, $AF, $AD ; CPU:$9539 PRG:9539 50 51 52 53 A4 A7 AA 8F B7 0D FF 93 96 9A AF AD
.byte $81, $5C, $5B, $5A, $59, $58, $57, $56, $55, $54, $88, $A8, $A9, $90, $B7, $0D ; CPU:$9549 PRG:9549 81 5C 5B 5A 59 58 57 56 55 54 88 A8 A9 90 B7 0D
.byte $FF, $93, $A2, $9B, $AE, $B2, $5D, $5E, $5F, $60, $61, $62, $63, $64, $65, $66 ; CPU:$9559 PRG:9559 FF 93 A2 9B AE B2 5D 5E 5F 60 61 62 63 64 65 66
.byte $89, $8A, $8B, $8C, $30, $0D, $FF, $84, $A1, $67, $9D, $9E, $0A, $67, $82, $9F ; CPU:$9569 PRG:9569 89 8A 8B 8C 30 0D FF 84 A1 67 9D 9E 0A 67 82 9F
.byte $A0, $02, $67, $81, $2F, $0D, $FF, $84, $80, $6C, $71, $72, $0B, $6C, $81, $73 ; CPU:$9579 PRG:9579 A0 02 67 81 2F 0D FF 84 80 6C 71 72 0B 6C 81 73
.byte $02, $6C, $81, $B6, $0D, $FF, $84, $80, $6C, $71, $72, $0B, $6C, $81, $74, $02 ; CPU:$9589 PRG:9589 02 6C 81 B6 0D FF 84 80 6C 71 72 0B 6C 81 74 02
.byte $6C, $81, $B6, $0D, $FF, $84, $7F, $7E, $75, $76, $0B, $7E, $81, $9C, $02, $7E ; CPU:$9599 PRG:9599 6C 81 B6 0D FF 84 7F 7E 75 76 0B 7E 81 9C 02 7E
.byte $81, $7D, $77, $FF, $77, $FF, $3E, $FF, $82, $33, $CC, $02, $FF, $82, $33, $CC ; CPU:$95A9 PRG:95A9 81 7D 77 FF 77 FF 3E FF 82 33 CC 02 FF 82 33 CC
.byte $02, $FF, $82, $33, $CC, $02, $FF, $82, $33, $0C, $02, $0F, $82, $03, $CC, $02 ; CPU:$95B9 PRG:95B9 02 FF 82 33 CC 02 FF 82 33 0C 02 0F 82 03 CC 02
.byte $FF, $81, $BB, $02, $AA, $83, $55, $95, $ED, $02, $FF, $82, $7B, $6A, $03, $5A ; CPU:$95C9 PRG:95C9 FF 81 BB 02 AA 83 55 95 ED 02 FF 82 7B 6A 03 5A
.byte $83, $EE, $FF, $FE, $05, $FA, $81, $FE, $11, $FF, $FF, $FF, $FF, $24, $00, $77 ; CPU:$95D9 PRG:95D9 83 EE FF FE 05 FA 81 FE 11 FF FF FF FF 24 00 77
.byte $FF, $0F, $FF, $81, $A6, $05, $36, $04, $46, $04, $36, $85, $46, $B6, $B7, $B8 ; CPU:$95E9 PRG:95E9 FF 0F FF 81 A6 05 36 04 46 04 36 85 46 B6 B7 B8
.byte $49, $0D, $FF, $81, $9C, $05, $FF, $84, $CA, $C7, $C8, $C9, $04, $FF, $85, $A7 ; CPU:$95F9 PRG:95F9 49 0D FF 81 9C 05 FF 84 CA C7 C8 C9 04 FF 85 A7
.byte $B2, $B3, $B4, $B5, $0D, $FF, $81, $9C, $02, $FF, $81, $AF, $02, $FF, $84, $0C ; CPU:$9609 PRG:9609 B2 B3 B4 B5 0D FF 81 9C 02 FF 81 AF 02 FF 84 0C
.byte $0D, $0E, $0F, $03, $FF, $86, $D0, $B9, $BA, $BB, $BC, $BD, $0D, $FF, $8A, $9C ; CPU:$9619 PRG:9619 0D 0E 0F 03 FF 86 D0 B9 BA BB BC BD 0D FF 8A 9C
.byte $04, $05, $06, $07, $FF, $08, $09, $0A, $0B, $03, $FF, $86, $CF, $CE, $BE, $BF ; CPU:$9629 PRG:9629 04 05 06 07 FF 08 09 0A 0B 03 FF 86 CF CE BE BF
.byte $C0, $C1, $0D, $FF, $8A, $10, $11, $12, $13, $14, $FF, $15, $16, $17, $18, $03 ; CPU:$9639 PRG:9639 C0 C1 0D FF 8A 10 11 12 13 14 FF 15 16 17 18 03
.byte $FF, $86, $CC, $CD, $C2, $C3, $C5, $6D, $0D, $FF, $8B, $19, $1A, $1B, $1C, $1D ; CPU:$9649 PRG:9649 FF 86 CC CD C2 C3 C5 6D 0D FF 8B 19 1A 1B 1C 1D
.byte $CB, $1E, $1F, $20, $21, $22, $02, $FF, $83, $33, $34, $35, $02, $FF, $81, $70 ; CPU:$9659 PRG:9659 CB 1E 1F 20 21 22 02 FF 83 33 34 35 02 FF 81 70
.byte $0D, $FF, $90, $23, $24, $25, $26, $27, $28, $29, $2A, $2B, $2C, $2D, $2E, $2F ; CPU:$9669 PRG:9669 0D FF 90 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F
.byte $30, $31, $32, $02, $FF, $81, $70, $0D, $FF, $90, $C4, $37, $38, $39, $3A, $3B ; CPU:$9679 PRG:9679 30 31 32 02 FF 81 70 0D FF 90 C4 37 38 39 3A 3B
.byte $3C, $3D, $3E, $3F, $40, $41, $42, $43, $44, $45, $02, $FF, $81, $70, $0D, $FF ; CPU:$9689 PRG:9689 3C 3D 3E 3F 40 41 42 43 44 45 02 FF 81 70 0D FF
.byte $8F, $9C, $47, $48, $DC, $4A, $4B, $4C, $4D, $4E, $4F, $50, $51, $52, $53, $54 ; CPU:$9699 PRG:9699 8F 9C 47 48 DC 4A 4B 4C 4D 4E 4F 50 51 52 53 54
.byte $03, $FF, $81, $70, $0D, $FF, $8F, $9C, $FF, $55, $56, $57, $58, $59, $5A, $5B ; CPU:$96A9 PRG:96A9 03 FF 81 70 0D FF 8F 9C FF 55 56 57 58 59 5A 5B
.byte $5C, $5D, $5E, $5F, $60, $61, $03, $FF, $81, $70, $0D, $FF, $8F, $9C, $FF, $62 ; CPU:$96B9 PRG:96B9 5C 5D 5E 5F 60 61 03 FF 81 70 0D FF 8F 9C FF 62
.byte $63, $64, $65, $66, $67, $68, $69, $6A, $6B, $6C, $03, $6E, $03, $FF, $81, $70 ; CPU:$96C9 PRG:96C9 63 64 65 66 67 68 69 6A 6B 6C 03 6E 03 FF 81 70
.byte $0D, $FF, $8F, $9C, $FF, $6F, $03, $71, $72, $73, $74, $75, $76, $77, $03, $79 ; CPU:$96D9 PRG:96D9 0D FF 8F 9C FF 6F 03 71 72 73 74 75 76 77 03 79
.byte $03, $7B, $03, $FF, $81, $70, $0D, $FF, $8F, $9C, $FF, $7C, $7D, $7E, $7F, $80 ; CPU:$96E9 PRG:96E9 03 7B 03 FF 81 70 0D FF 8F 9C FF 7C 7D 7E 7F 80
.byte $81, $82, $83, $84, $03, $86, $87, $88, $03, $FF, $81, $70, $0D, $FF, $81, $9C ; CPU:$96F9 PRG:96F9 81 82 83 84 03 86 87 88 03 FF 81 70 0D FF 81 9C
.byte $02, $FF, $8A, $89, $8A, $8B, $8C, $8D, $8E, $8F, $90, $03, $92, $05, $FF, $81 ; CPU:$9709 PRG:9709 02 FF 8A 89 8A 8B 8C 8D 8E 8F 90 03 92 05 FF 81
.byte $70, $0D, $FF, $81, $9C, $03, $FF, $89, $93, $94, $95, $96, $97, $98, $99, $9A ; CPU:$9719 PRG:9719 70 0D FF 81 9C 03 FF 89 93 94 95 96 97 98 99 9A
.byte $9B, $05, $FF, $81, $70, $0D, $FF, $81, $9C, $03, $FF, $89, $9D, $9E, $9F, $A0 ; CPU:$9729 PRG:9729 9B 05 FF 81 70 0D FF 81 9C 03 FF 89 9D 9E 9F A0
.byte $A1, $A2, $A3, $A4, $A5, $05, $FF, $81, $70, $0D, $FF, $81, $91, $03, $85, $89 ; CPU:$9739 PRG:9739 A1 A2 A3 A4 A5 05 FF 81 70 0D FF 81 91 03 85 89
.byte $A8, $A9, $AA, $AB, $AC, $AD, $AE, $03, $B0, $05, $85, $81, $7A, $77, $FF, $77 ; CPU:$9749 PRG:9749 A8 A9 AA AB AC AD AE 03 B0 05 85 81 7A 77 FF 77
.byte $FF, $43, $FF, $85, $5F, $AA, $BF, $AA, $EE, $02, $FF, $85, $55, $D5, $3A, $BA ; CPU:$9759 PRG:9759 FF 43 FF 85 5F AA BF AA EE 02 FF 85 55 D5 3A BA
.byte $AA, $04, $FF, $84, $FE, $33, $FF, $BB, $04, $FF, $83, $CF, $03, $CF, $06, $FF ; CPU:$9769 PRG:9769 AA 04 FF 84 FE 33 FF BB 04 FF 83 CF 03 CF 06 FF
.byte $82, $F0, $FC, $13, $FF, $FF, $FF, $FF, $24, $00, $77, $FF, $0F, $FF, $84, $EB ; CPU:$9779 PRG:9779 82 F0 FC 13 FF FF FF FF 24 00 77 FF 0F FF 84 EB
.byte $EA, $D0, $D1, $02, $EA, $83, $CA, $C9, $C8, $02, $EA, $81, $B5, $06, $EA, $81 ; CPU:$9789 PRG:9789 EA D0 D1 02 EA 83 CA C9 C8 02 EA 81 B5 06 EA 81
.byte $E9, $0D, $FF, $8D, $EC, $01, $CF, $CC, $D3, $01, $C5, $C6, $C7, $01, $C1, $C0 ; CPU:$9799 PRG:9799 E9 0D FF 8D EC 01 CF CC D3 01 C5 C6 C7 01 C1 C0
.byte $BF, $05, $01, $81, $E8, $0D, $FF, $8D, $EC, $01, $CE, $CB, $D2, $01, $C4, $C3 ; CPU:$97A9 PRG:97A9 BF 05 01 81 E8 0D FF 8D EC 01 CE CB D2 01 C4 C3
.byte $C2, $ED, $BB, $BC, $BD, $05, $01, $81, $E8, $0D, $FF, $81, $EC, $03, $01, $82 ; CPU:$97B9 PRG:97B9 C2 ED BB BC BD 05 01 81 E8 0D FF 81 EC 03 01 82
.byte $90, $91, $04, $01, $89, $BA, $B9, $B8, $AA, $03, $01, $EF, $01, $E8, $0D, $FF ; CPU:$97C9 PRG:97C9 90 91 04 01 89 BA B9 B8 AA 03 01 EF 01 E8 0D FF
.byte $90, $EC, $01, $EE, $8D, $8C, $8A, $8B, $01, $ED, $B4, $B3, $AF, $B7, $05, $06 ; CPU:$97D9 PRG:97D9 90 EC 01 EE 8D 8C 8A 8B 01 ED B4 B3 AF B7 05 06
.byte $07, $02, $01, $81, $E8, $0D, $FF, $81, $EC, $02, $01, $83, $8E, $88, $89, $03 ; CPU:$97E9 PRG:97E9 07 02 01 81 E8 0D FF 81 EC 02 01 83 8E 88 89 03
.byte $01, $8A, $B0, $B1, $B2, $0B, $0A, $09, $08, $AB, $01, $E8, $0D, $FF, $81, $EC ; CPU:$97F9 PRG:97F9 01 8A B0 B1 B2 0B 0A 09 08 AB 01 E8 0D FF 81 EC
.byte $03, $01, $8F, $92, $86, $85, $84, $01, $AD, $AC, $8F, $0D, $0E, $0F, $10, $11 ; CPU:$9809 PRG:9809 03 01 8F 92 86 85 84 01 AD AC 8F 0D 0E 0F 10 11
.byte $01, $E8, $0D, $FF, $81, $EC, $02, $01, $90, $94, $7B, $7C, $7D, $7E, $7F, $04 ; CPU:$9819 PRG:9819 01 E8 0D FF 81 EC 02 01 90 94 7B 7C 7D 7E 7F 04
.byte $4E, $4F, $16, $15, $14, $13, $12, $01, $E8, $0D, $FF, $81, $EC, $02, $01, $90 ; CPU:$9829 PRG:9829 4E 4F 16 15 14 13 12 01 E8 0D FF 81 EC 02 01 90
.byte $95, $72, $71, $70, $6F, $80, $93, $23, $21, $1B, $1A, $19, $18, $17, $01, $E8 ; CPU:$9839 PRG:9839 95 72 71 70 6F 80 93 23 21 1B 1A 19 18 17 01 E8
.byte $0D, $FF, $93, $EC, $ED, $01, $96, $73, $6C, $6D, $6E, $82, $83, $24, $22, $20 ; CPU:$9849 PRG:9849 0D FF 93 EC ED 01 96 73 6C 6D 6E 82 83 24 22 20
.byte $1F, $1E, $1D, $1C, $01, $E8, $0D, $FF, $81, $EC, $02, $01, $90, $97, $74, $6B ; CPU:$9859 PRG:9859 1F 1E 1D 1C 01 E8 0D FF 81 EC 02 01 90 97 74 6B
.byte $6A, $62, $61, $81, $25, $26, $27, $28, $29, $2A, $2B, $01, $E8, $0D, $FF, $93 ; CPU:$9869 PRG:9869 6A 62 61 81 25 26 27 28 29 2A 2B 01 E8 0D FF 93
.byte $E6, $A1, $9D, $9C, $75, $99, $69, $63, $5F, $60, $32, $31, $30, $2F, $2E, $2D ; CPU:$9879 PRG:9879 E6 A1 9D 9C 75 99 69 63 5F 60 32 31 30 2F 2E 2D
.byte $2C, $01, $E8, $0D, $FF, $93, $E1, $A0, $9E, $9B, $76, $79, $68, $64, $5E, $5B ; CPU:$9889 PRG:9889 2C 01 E8 0D FF 93 E1 A0 9E 9B 76 79 68 64 5E 5B
.byte $01, $38, $37, $36, $35, $34, $33, $4D, $E8, $0D, $FF, $93, $DF, $DE, $9F, $9A ; CPU:$9899 PRG:9899 01 38 37 36 35 34 33 4D E8 0D FF 93 DF DE 9F 9A
.byte $77, $78, $67, $65, $5D, $5A, $3F, $3E, $3D, $3C, $3B, $3A, $39, $01, $E8, $0D ; CPU:$98A9 PRG:98A9 77 78 67 65 5D 5A 3F 3E 3D 3C 3B 3A 39 01 E8 0D
.byte $FF, $93, $DC, $DD, $E0, $E2, $7A, $A2, $A3, $A4, $5C, $59, $46, $45, $44, $43 ; CPU:$98B9 PRG:98B9 FF 93 DC DD E0 E2 7A A2 A3 A4 5C 59 46 45 44 43
.byte $42, $41, $40, $01, $E8, $0D, $FF, $93, $DB, $DA, $D9, $D8, $E5, $98, $A6, $A5 ; CPU:$98C9 PRG:98C9 42 41 40 01 E8 0D FF 93 DB DA D9 D8 E5 98 A6 A5
.byte $A9, $58, $4A, $49, $48, $47, $52, $51, $50, $01, $E8, $0D, $FF, $88, $D5, $D4 ; CPU:$98D9 PRG:98D9 A9 58 4A 49 48 47 52 51 50 01 E8 0D FF 88 D5 D4
.byte $D6, $D7, $E3, $E4, $A7, $A8, $02, $E7, $82, $4C, $4B, $02, $02, $85, $53, $54 ; CPU:$98E9 PRG:98E9 D6 D7 E3 E4 A7 A8 02 E7 82 4C 4B 02 02 85 53 54
.byte $55, $56, $57, $77, $FF, $77, $FF, $43, $FF, $81, $BF, $07, $FF, $84, $56, $DD ; CPU:$98F9 PRG:98F9 55 56 57 77 FF 77 FF 43 FF 81 BF 07 FF 84 56 DD
.byte $BB, $9A, $04, $FF, $84, $75, $55, $67, $55, $03, $FF, $85, $33, $CB, $33, $00 ; CPU:$9909 PRG:9909 BB 9A 04 FF 84 75 55 67 55 03 FF 85 33 CB 33 00
.byte $04, $06, $FF, $02, $F0, $12, $FF, $FF, $FF, $FF, $24, $00, $77, $FF, $0F, $FF ; CPU:$9919 PRG:9919 04 06 FF 02 F0 12 FF FF FF FF 24 00 77 FF 0F FF
.byte $86, $DE, $DC, $E6, $87, $88, $89, $05, $DC, $85, $8F, $90, $97, $DB, $E6, $02 ; CPU:$9929 PRG:9929 86 DE DC E6 87 88 89 05 DC 85 8F 90 97 DB E6 02
.byte $DC, $81, $DF, $0D, $FF, $81, $E1, $02, $01, $84, $04, $05, $06, $9C, $03, $01 ; CPU:$9939 PRG:9939 DC 81 DF 0D FF 81 E1 02 01 84 04 05 06 9C 03 01
.byte $84, $83, $84, $85, $86, $02, $01, $83, $4A, $01, $DD, $0D, $FF, $87, $E1, $01 ; CPU:$9949 PRG:9949 84 83 84 85 86 02 01 83 4A 01 DD 0D FF 87 E1 01
.byte $8A, $07, $08, $09, $0A, $02, $01, $86, $99, $82, $81, $80, $7F, $9B, $03, $01 ; CPU:$9959 PRG:9959 8A 07 08 09 0A 02 01 86 99 82 81 80 7F 9B 03 01
.byte $81, $DD, $0D, $FF, $8F, $E1, $01, $0B, $0C, $0D, $0E, $0F, $E5, $01, $96, $7B ; CPU:$9969 PRG:9969 81 DD 0D FF 8F E1 01 0B 0C 0D 0E 0F E5 01 96 7B
.byte $7C, $7D, $7E, $9A, $03, $01, $81, $DD, $0D, $FF, $8F, $E1, $01, $10, $11, $12 ; CPU:$9979 PRG:9979 7C 7D 7E 9A 03 01 81 DD 0D FF 8F E1 01 10 11 12
.byte $13, $14, $01, $DA, $01, $7A, $79, $76, $75, $E0, $03, $01, $81, $DD, $0D, $FF ; CPU:$9989 PRG:9989 13 14 01 DA 01 7A 79 76 75 E0 03 01 81 DD 0D FF
.byte $88, $E1, $01, $15, $16, $17, $18, $19, $E8, $03, $01, $82, $78, $77, $05, $01 ; CPU:$9999 PRG:9999 88 E1 01 15 16 17 18 19 E8 03 01 82 78 77 05 01
.byte $81, $DD, $0D, $FF, $88, $E1, $01, $1A, $1B, $1C, $1D, $1E, $E9, $02, $01, $86 ; CPU:$99A9 PRG:99A9 81 DD 0D FF 88 E1 01 1A 1B 1C 1D 1E E9 02 01 86
.byte $70, $71, $72, $73, $74, $DA, $02, $01, $81, $DD, $0D, $FF, $90, $E1, $01, $1F ; CPU:$99B9 PRG:99B9 70 71 72 73 74 DA 02 01 81 DD 0D FF 90 E1 01 1F
.byte $20, $21, $22, $23, $2A, $01, $95, $6F, $6E, $6D, $6C, $6B, $93, $02, $01, $81 ; CPU:$99C9 PRG:99C9 20 21 22 23 2A 01 95 6F 6E 6D 6C 6B 93 02 01 81
.byte $DD, $0D, $FF, $90, $E1, $E7, $24, $25, $26, $27, $28, $29, $01, $65, $66, $67 ; CPU:$99D9 PRG:99D9 DD 0D FF 90 E1 E7 24 25 26 27 28 29 01 65 66 67
.byte $68, $69, $6A, $91, $02, $01, $81, $DD, $0D, $FF, $81, $E1, $02, $01, $8D, $2B ; CPU:$99E9 PRG:99E9 68 69 6A 91 02 01 81 DD 0D FF 81 E1 02 01 8D 2B
.byte $2C, $2D, $2E, $01, $E7, $64, $63, $62, $61, $60, $5F, $5E, $02, $01, $81, $DD ; CPU:$99F9 PRG:99F9 2C 2D 2E 01 E7 64 63 62 61 60 5F 5E 02 01 81 DD
.byte $0D, $FF, $81, $E3, $02, $01, $84, $2F, $30, $31, $32, $02, $01, $87, $57, $58 ; CPU:$9A09 PRG:9A09 0D FF 81 E3 02 01 84 2F 30 31 32 02 01 87 57 58
.byte $59, $5A, $5B, $5C, $5D, $02, $01, $81, $DD, $0D, $FF, $87, $E3, $BA, $BC, $33 ; CPU:$9A19 PRG:9A19 59 5A 5B 5C 5D 02 01 81 DD 0D FF 87 E3 BA BC 33
.byte $34, $35, $36, $02, $01, $8A, $9D, $55, $54, $53, $52, $51, $94, $C5, $C6, $C7 ; CPU:$9A29 PRG:9A29 34 35 36 02 01 8A 9D 55 54 53 52 51 94 C5 C6 C7
.byte $0D, $FF, $88, $E3, $A9, $BB, $01, $37, $38, $39, $3C, $02, $01, $89, $56, $45 ; CPU:$9A39 PRG:9A39 0D FF 88 E3 A9 BB 01 37 38 39 3C 02 01 89 56 45
.byte $4E, $4F, $50, $AA, $AB, $AC, $AD, $0D, $FF, $93, $E3, $A7, $B8, $B9, $92, $3A ; CPU:$9A49 PRG:9A49 4E 4F 50 AA AB AC AD 0D FF 93 E3 A7 B8 B9 92 3A
.byte $3B, $3D, $3E, $8D, $44, $46, $4D, $C8, $C4, $B1, $B0, $AF, $AE, $0D, $FF, $8C ; CPU:$9A59 PRG:9A59 3B 3D 3E 8D 44 46 4D C8 C4 B1 B0 AF AE 0D FF 8C
.byte $E3, $A5, $B7, $B6, $BF, $01, $3F, $40, $41, $42, $43, $47, $03, $01, $84, $04 ; CPU:$9A69 PRG:9A69 E3 A5 B7 B6 BF 01 3F 40 41 42 43 47 03 01 84 04
.byte $CC, $CD, $CE, $0D, $FF, $86, $A2, $A3, $B4, $B5, $C1, $C3, $04, $01, $89, $49 ; CPU:$9A79 PRG:9A79 CC CD CE 0D FF 86 A2 A3 B4 B5 C1 C3 04 01 89 49
.byte $48, $4B, $01, $D5, $D3, $4C, $C9, $CA, $0D, $FF, $88, $9F, $A0, $A1, $B3, $BD ; CPU:$9A89 PRG:9A89 48 4B 01 D5 D3 4C C9 CA 0D FF 88 9F A0 A1 B3 BD
.byte $BE, $C0, $C2, $03, $E2, $88, $8B, $8C, $D6, $D4, $D2, $D1, $D0, $CF, $77, $FF ; CPU:$9A99 PRG:9A99 BE C0 C2 03 E2 88 8B 8C D6 D4 D2 D1 D0 CF 77 FF
.byte $77, $FF, $43, $FF, $8C, $AA, $EE, $F7, $FE, $33, $FF, $3F, $FF, $55, $DA, $FF ; CPU:$9AA9 PRG:9AA9 77 FF 43 FF 8C AA EE F7 FE 33 FF 3F FF 55 DA FF
.byte $E2, $03, $FF, $83, $3F, $26, $CC, $02, $FF, $81, $33, $02, $FF, $81, $33, $02 ; CPU:$9AB9 PRG:9AB9 E2 03 FF 83 3F 26 CC 02 FF 81 33 02 FF 81 33 02
.byte $00, $83, $0C, $FF, $F3, $19, $FF, $FF, $FF, $FF, $24, $00, $77, $FF, $0F, $FF ; CPU:$9AC9 PRG:9AC9 00 83 0C FF F3 19 FF FF FF FF 24 00 77 FF 0F FF
.byte $81, $B4, $06, $B5, $84, $3C, $3D, $5B, $5C, $07, $B5, $81, $B6, $0D, $FF, $81 ; CPU:$9AD9 PRG:9AD9 81 B4 06 B5 84 3C 3D 5B 5C 07 B5 81 B6 0D FF 81
.byte $BA, $03, $01, $81, $AF, $02, $01, $84, $3B, $B2, $B3, $5D, $07, $01, $81, $B7 ; CPU:$9AE9 PRG:9AE9 BA 03 01 81 AF 02 01 84 3B B2 B3 5D 07 01 81 B7
.byte $0D, $FF, $81, $BA, $04, $01, $87, $AF, $01, $3A, $3E, $5A, $5E, $A4, $03, $01 ; CPU:$9AF9 PRG:9AF9 0D FF 81 BA 04 01 87 AF 01 3A 3E 5A 5E A4 03 01
.byte $81, $AF, $02, $01, $81, $B7, $0D, $FF, $81, $BA, $06, $01, $85, $39, $3F, $59 ; CPU:$9B09 PRG:9B09 81 AF 02 01 81 B7 0D FF 81 BA 06 01 85 39 3F 59
.byte $5F, $79, $06, $01, $81, $B7, $0D, $FF, $81, $BA, $04, $01, $88, $AE, $01, $38 ; CPU:$9B19 PRG:9B19 5F 79 06 01 81 B7 0D FF 81 BA 04 01 88 AE 01 38
.byte $40, $58, $60, $78, $7A, $05, $01, $81, $B7, $0D, $FF, $81, $BA, $03, $01, $8A ; CPU:$9B29 PRG:9B29 40 58 60 78 7A 05 01 81 B7 0D FF 81 BA 03 01 8A
.byte $AD, $AF, $01, $37, $41, $57, $61, $77, $7B, $91, $03, $01, $82, $AF, $B7, $0D ; CPU:$9B39 PRG:9B39 AD AF 01 37 41 57 61 77 7B 91 03 01 82 AF B7 0D
.byte $FF, $81, $BA, $04, $01, $8A, $22, $23, $36, $42, $56, $62, $76, $7C, $90, $92 ; CPU:$9B49 PRG:9B49 FF 81 BA 04 01 8A 22 23 36 42 56 62 76 7C 90 92
.byte $03, $01, $81, $B7, $0D, $FF, $81, $BA, $03, $01, $8C, $0F, $21, $24, $35, $43 ; CPU:$9B59 PRG:9B59 03 01 81 B7 0D FF 81 BA 03 01 8C 0F 21 24 35 43
.byte $55, $63, $75, $7D, $B1, $93, $9E, $02, $01, $81, $B7, $0D, $FF, $81, $BA, $02 ; CPU:$9B69 PRG:9B69 55 63 75 7D B1 93 9E 02 01 81 B7 0D FF 81 BA 02
.byte $01, $90, $0E, $10, $20, $25, $34, $44, $54, $64, $74, $7E, $B1, $94, $9D, $9F ; CPU:$9B79 PRG:9B79 01 90 0E 10 20 25 34 44 54 64 74 7E B1 94 9D 9F
.byte $01, $B7, $0D, $FF, $81, $BA, $02, $01, $90, $0D, $11, $1F, $26, $33, $45, $53 ; CPU:$9B89 PRG:9B89 01 B7 0D FF 81 BA 02 01 90 0D 11 1F 26 33 45 53
.byte $65, $73, $80, $8E, $B0, $7F, $A0, $01, $B7, $0D, $FF, $8E, $BA, $01, $A6, $0C ; CPU:$9B99 PRG:9B99 65 73 80 8E B0 7F A0 01 B7 0D FF 8E BA 01 A6 0C
.byte $12, $1E, $27, $32, $46, $52, $66, $72, $80, $8D, $02, $7F, $83, $A1, $01, $B7 ; CPU:$9BA9 PRG:9BA9 12 1E 27 32 46 52 66 72 80 8D 02 7F 83 A1 01 B7
.byte $0D, $FF, $81, $BA, $02, $01, $8B, $0B, $13, $1D, $28, $31, $47, $51, $67, $71 ; CPU:$9BB9 PRG:9BB9 0D FF 81 BA 02 01 8B 0B 13 1D 28 31 47 51 67 71
.byte $81, $8C, $02, $7F, $83, $A2, $01, $B7, $0D, $FF, $93, $BA, $01, $02, $0A, $14 ; CPU:$9BC9 PRG:9BC9 81 8C 02 7F 83 A2 01 B7 0D FF 93 BA 01 02 0A 14
.byte $1C, $29, $30, $48, $50, $68, $70, $82, $8B, $95, $9C, $A3, $01, $B7, $0D, $FF ; CPU:$9BD9 PRG:9BD9 1C 29 30 48 50 68 70 82 8B 95 9C A3 01 B7 0D FF
.byte $93, $BA, $01, $03, $09, $15, $1B, $2A, $2F, $49, $4F, $69, $6F, $83, $8A, $96 ; CPU:$9BE9 PRG:9BE9 93 BA 01 03 09 15 1B 2A 2F 49 4F 69 6F 83 8A 96
.byte $9B, $01, $AD, $B7, $0D, $FF, $90, $BA, $01, $A5, $08, $16, $1A, $2B, $2E, $4A ; CPU:$9BF9 PRG:9BF9 9B 01 AD B7 0D FF 90 BA 01 A5 08 16 1A 2B 2E 4A
.byte $4E, $8F, $6E, $84, $89, $97, $9A, $02, $01, $81, $B7, $0D, $FF, $93, $BA, $01 ; CPU:$9C09 PRG:9C09 4E 8F 6E 84 89 97 9A 02 01 81 B7 0D FF 93 BA 01
.byte $04, $07, $01, $19, $01, $2D, $01, $4D, $6A, $6D, $85, $88, $98, $99, $AC, $01 ; CPU:$9C19 PRG:9C19 04 07 01 19 01 2D 01 4D 6A 6D 85 88 98 99 AC 01
.byte $B7, $0D, $FF, $93, $B9, $A8, $05, $06, $17, $18, $A7, $2C, $4B, $4C, $6B, $6C ; CPU:$9C29 PRG:9C29 B7 0D FF 93 B9 A8 05 06 17 18 A7 2C 4B 4C 6B 6C
.byte $86, $87, $A9, $AA, $AB, $BB, $B8, $77, $FF, $77, $FF, $42, $FF, $86, $BB, $AA ; CPU:$9C39 PRG:9C39 86 87 A9 AA AB BB B8 77 FF 77 FF 42 FF 86 BB AA
.byte $2A, $8A, $AA, $EE, $02, $FF, $86, $BB, $AF, $66, $98, $FA, $EE, $02, $FF, $86 ; CPU:$9C49 PRG:9C49 2A 8A AA EE 02 FF 86 BB AF 66 98 FA EE 02 FF 86
.byte $BB, $66, $99, $EE, $FF, $EE, $02, $FF, $83, $BB, $46, $59, $02, $FF, $81, $EE ; CPU:$9C59 PRG:9C59 BB 66 99 EE FF EE 02 FF 83 BB 46 59 02 FF 81 EE
.byte $03, $FF, $02, $F0, $02, $FF, $81, $FE, $11, $FF, $FF, $FF, $FF, $24, $00, $77 ; CPU:$9C69 PRG:9C69 03 FF 02 F0 02 FF 81 FE 11 FF FF FF FF 24 00 77
.byte $FF, $0F, $FF, $81, $C0, $12, $BC, $81, $BF, $0C, $FF, $81, $C1, $12, $FF, $81 ; CPU:$9C79 PRG:9C79 FF 0F FF 81 C0 12 BC 81 BF 0C FF 81 C1 12 FF 81
.byte $BE, $0C, $FF, $81, $C1, $12, $FF, $81, $BE, $0C, $FF, $81, $C1, $0E, $FF, $85 ; CPU:$9C89 PRG:9C89 BE 0C FF 81 C1 12 FF 81 BE 0C FF 81 C1 0E FF 85
.byte $A0, $A7, $AE, $FF, $BE, $0C, $FF, $87, $C1, $0D, $0F, $28, $29, $42, $43, $08 ; CPU:$9C99 PRG:9C99 A0 A7 AE FF BE 0C FF 87 C1 0D 0F 28 29 42 43 08
.byte $FF, $85, $A1, $A8, $95, $FF, $BE, $0C, $FF, $8A, $0E, $0C, $10, $27, $2A, $41 ; CPU:$9CA9 PRG:9CA9 FF 85 A1 A8 95 FF BE 0C FF 8A 0E 0C 10 27 2A 41
.byte $44, $5B, $5C, $73, $05, $FF, $85, $E8, $E1, $E3, $FF, $BE, $0C, $FF, $8A, $C1 ; CPU:$9CB9 PRG:9CB9 44 5B 5C 73 05 FF 85 E8 E1 E3 FF BE 0C FF 8A C1
.byte $FF, $11, $26, $2B, $40, $45, $5A, $5D, $72, $05, $FF, $85, $DF, $74, $DE, $B5 ; CPU:$9CC9 PRG:9CC9 FF 11 26 2B 40 45 5A 5D 72 05 FF 85 DF 74 DE B5
.byte $E7, $0C, $FF, $8A, $C1, $FF, $12, $25, $2C, $E5, $46, $59, $5E, $71, $02, $FF ; CPU:$9CD9 PRG:9CD9 E7 0C FF 8A C1 FF 12 25 2C E5 46 59 5E 71 02 FF
.byte $88, $87, $9A, $9B, $A2, $E2, $B2, $B6, $B9, $0C, $FF, $94, $C1, $FF, $13, $24 ; CPU:$9CE9 PRG:9CE9 88 87 9A 9B A2 E2 B2 B6 B9 0C FF 94 C1 FF 13 24
.byte $2D, $3E, $47, $58, $5F, $70, $75, $86, $88, $99, $9C, $A5, $E4, $B3, $B7, $BA ; CPU:$9CF9 PRG:9CF9 2D 3E 47 58 5F 70 75 86 88 99 9C A5 E4 B3 B7 BA
.byte $0C, $FF, $94, $C1, $FF, $14, $23, $2E, $3D, $48, $57, $60, $6F, $76, $85, $89 ; CPU:$9D09 PRG:9D09 0C FF 94 C1 FF 14 23 2E 3D 48 57 60 6F 76 85 89
.byte $98, $9D, $A6, $AD, $B4, $B8, $BB, $0C, $FF, $8F, $C1, $FF, $15, $22, $2F, $3C ; CPU:$9D19 PRG:9D19 98 9D A6 AD B4 B8 BB 0C FF 8F C1 FF 15 22 2F 3C
.byte $49, $56, $61, $6E, $77, $84, $8A, $97, $9E, $04, $FF, $81, $BE, $0C, $FF, $8E ; CPU:$9D29 PRG:9D29 49 56 61 6E 77 84 8A 97 9E 04 FF 81 BE 0C FF 8E
.byte $C1, $0B, $16, $E6, $30, $3B, $4A, $55, $62, $6D, $78, $83, $8B, $96, $05, $FF ; CPU:$9D39 PRG:9D39 C1 0B 16 E6 30 3B 4A 55 62 6D 78 83 8B 96 05 FF
.byte $81, $BE, $0C, $FF, $8D, $01, $0A, $17, $20, $31, $3A, $4B, $54, $63, $6C, $79 ; CPU:$9D49 PRG:9D49 81 BE 0C FF 8D 01 0A 17 20 31 3A 4B 54 63 6C 79
.byte $82, $8C, $06, $FF, $81, $BE, $0C, $FF, $8E, $02, $09, $18, $1F, $32, $39, $4C ; CPU:$9D59 PRG:9D59 82 8C 06 FF 81 BE 0C FF 8E 02 09 18 1F 32 39 4C
.byte $53, $64, $6B, $7A, $81, $8D, $94, $05, $FF, $81, $BE, $0C, $FF, $8E, $03, $08 ; CPU:$9D69 PRG:9D69 53 64 6B 7A 81 8D 94 05 FF 81 BE 0C FF 8E 03 08
.byte $19, $1E, $33, $38, $4D, $52, $65, $6A, $7B, $80, $8E, $93, $05, $FF, $81, $BE ; CPU:$9D79 PRG:9D79 19 1E 33 38 4D 52 65 6A 7B 80 8E 93 05 FF 81 BE
.byte $0C, $FF, $8E, $04, $07, $1A, $1D, $34, $37, $4E, $51, $66, $69, $7C, $7F, $8F ; CPU:$9D89 PRG:9D89 0C FF 8E 04 07 1A 1D 34 37 4E 51 66 69 7C 7F 8F
.byte $92, $05, $FF, $81, $BE, $0C, $FF, $8F, $05, $06, $1B, $1C, $35, $36, $4F, $50 ; CPU:$9D99 PRG:9D99 92 05 FF 81 BE 0C FF 8F 05 06 1B 1C 35 36 4F 50
.byte $67, $68, $7D, $7E, $90, $91, $9F, $04, $C3, $81, $BD, $77, $FF, $77, $FF, $45 ; CPU:$9DA9 PRG:9DA9 67 68 7D 7E 90 91 9F 04 C3 81 BD 77 FF 77 FF 45
.byte $FF, $81, $5F, $03, $FF, $81, $F3, $02, $AA, $83, $FE, $B5, $DF, $03, $FF, $82 ; CPU:$9DB9 PRG:9DB9 FF 81 5F 03 FF 81 F3 02 AA 83 FE B5 DF 03 FF 82
.byte $22, $FA, $02, $FF, $81, $FD, $02, $FF, $83, $B3, $AA, $66, $1C, $FF, $FF, $FF ; CPU:$9DC9 PRG:9DC9 22 FA 02 FF 81 FD 02 FF 83 B3 AA 66 1C FF FF FF
.byte $FF, $24, $00, $66, $FF, $81, $CB, $05, $BF, $81, $93, $0C, $BF, $81, $67, $0C ; CPU:$9DD9 PRG:9DD9 FF 24 00 66 FF 81 CB 05 BF 81 93 0C BF 81 67 0C
.byte $FF, $81, $E2, $06, $A1, $84, $76, $A1, $01, $02, $08, $A1, $81, $4D, $0C, $FF ; CPU:$9DE9 PRG:9DE9 FF 81 E2 06 A1 84 76 A1 01 02 08 A1 81 4D 0C FF
.byte $81, $E2, $03, $A1, $81, $21, $03, $A1, $84, $03, $04, $05, $06, $07, $A1, $81 ; CPU:$9DF9 PRG:9DF9 81 E2 03 A1 81 21 03 A1 84 03 04 05 06 07 A1 81
.byte $4D, $0C, $FF, $8C, $E2, $A1, $16, $17, $18, $A1, $4F, $07, $08, $09, $0A, $0B ; CPU:$9E09 PRG:9E09 4D 0C FF 8C E2 A1 16 17 18 A1 4F 07 08 09 0A 0B
.byte $07, $A1, $81, $4D, $0C, $FF, $8C, $E2, $A1, $19, $1A, $1B, $A1, $41, $0C, $0D ; CPU:$9E19 PRG:9E19 07 A1 81 4D 0C FF 8C E2 A1 19 1A 1B A1 41 0C 0D
.byte $0E, $0F, $10, $07, $A1, $81, $4D, $0C, $FF, $8D, $E2, $1C, $1D, $1E, $1F, $20 ; CPU:$9E29 PRG:9E29 0E 0F 10 07 A1 81 4D 0C FF 8D E2 1C 1D 1E 1F 20
.byte $B4, $A1, $11, $12, $13, $14, $15, $06, $A1, $81, $4D, $0C, $FF, $8D, $E2, $22 ; CPU:$9E39 PRG:9E39 B4 A1 11 12 13 14 15 06 A1 81 4D 0C FF 8D E2 22
.byte $23, $24, $25, $26, $27, $28, $29, $2A, $2B, $2C, $2D, $06, $A1, $81, $4D, $0C ; CPU:$9E49 PRG:9E49 23 24 25 26 27 28 29 2A 2B 2C 2D 06 A1 81 4D 0C
.byte $FF, $8D, $2E, $2F, $30, $31, $32, $33, $34, $35, $36, $37, $38, $39, $3A, $06 ; CPU:$9E59 PRG:9E59 FF 8D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 06
.byte $A1, $81, $4D, $0C, $FF, $8E, $E2, $3C, $3D, $3E, $3F, $40, $A1, $42, $43, $44 ; CPU:$9E69 PRG:9E69 A1 81 4D 0C FF 8E E2 3C 3D 3E 3F 40 A1 42 43 44
.byte $45, $46, $47, $4E, $05, $A1, $81, $4D, $0C, $FF, $86, $E2, $48, $49, $4A, $4B ; CPU:$9E79 PRG:9E79 45 46 47 4E 05 A1 81 4D 0C FF 86 E2 48 49 4A 4B
.byte $4C, $03, $A1, $88, $50, $51, $52, $53, $54, $55, $56, $57, $02, $A1, $81, $4D ; CPU:$9E89 PRG:9E89 4C 03 A1 88 50 51 52 53 54 55 56 57 02 A1 81 4D
.byte $0C, $FF, $87, $E2, $59, $5A, $5B, $5C, $5D, $5E, $02, $A1, $88, $5F, $60, $61 ; CPU:$9E99 PRG:9E99 0C FF 87 E2 59 5A 5B 5C 5D 5E 02 A1 88 5F 60 61
.byte $62, $63, $64, $65, $66, $02, $A1, $81, $4D, $0C, $FF, $86, $E2, $68, $69, $6A ; CPU:$9EA9 PRG:9EA9 62 63 64 65 66 02 A1 81 4D 0C FF 86 E2 68 69 6A
.byte $6B, $6C, $03, $A1, $88, $6E, $6F, $70, $71, $72, $73, $74, $75, $02, $A1, $81 ; CPU:$9EB9 PRG:9EB9 6B 6C 03 A1 88 6E 6F 70 71 72 73 74 75 02 A1 81
.byte $4D, $0C, $FF, $94, $E2, $A1, $78, $79, $7A, $7B, $E0, $7C, $B5, $B6, $80, $81 ; CPU:$9EC9 PRG:9EC9 4D 0C FF 94 E2 A1 78 79 7A 7B E0 7C B5 B6 80 81
.byte $82, $83, $84, $85, $86, $DD, $A1, $4D, $0C, $FF, $81, $E2, $02, $A1, $91, $88 ; CPU:$9ED9 PRG:9ED9 82 83 84 85 86 DD A1 4D 0C FF 81 E2 02 A1 91 88
.byte $89, $7D, $7E, $7F, $B7, $87, $8D, $8E, $8F, $90, $91, $92, $DB, $DC, $A1, $4D ; CPU:$9EE9 PRG:9EE9 89 7D 7E 7F B7 87 8D 8E 8F 90 91 92 DB DC A1 4D
.byte $0C, $FF, $94, $9C, $AA, $BE, $A1, $DF, $8A, $8B, $8C, $E1, $E2, $97, $98, $99 ; CPU:$9EF9 PRG:9EF9 0C FF 94 9C AA BE A1 DF 8A 8B 8C E1 E2 97 98 99
.byte $9A, $9B, $DE, $9D, $9E, $9F, $A0, $0C, $FF, $94, $77, $B8, $BD, $C0, $C5, $94 ; CPU:$9F09 PRG:9F09 9A 9B DE 9D 9E 9F A0 0C FF 94 77 B8 BD C0 C5 94
.byte $95, $96, $CC, $CF, $E3, $A2, $A3, $A4, $A5, $A6, $A7, $A8, $A9, $4D, $0C, $FF ; CPU:$9F19 PRG:9F19 95 96 CC CF E3 A2 A3 A4 A5 A6 A7 A8 A9 4D 0C FF
.byte $94, $6D, $B9, $BC, $C1, $C4, $C6, $E0, $C9, $CD, $D0, $D2, $D4, $A1, $AB, $AC ; CPU:$9F29 PRG:9F29 94 6D B9 BC C1 C4 C6 E0 C9 CD D0 D2 D4 A1 AB AC
.byte $AD, $AE, $AF, $B0, $4D, $0C, $FF, $94, $58, $BA, $BB, $C2, $C3, $C7, $C8, $CA ; CPU:$9F39 PRG:9F39 AD AE AF B0 4D 0C FF 94 58 BA BB C2 C3 C7 C8 CA
.byte $CE, $D1, $D3, $D5, $D6, $D7, $D8, $D9, $DA, $B1, $B2, $B3, $77, $FF, $77, $FF ; CPU:$9F49 PRG:9F49 CE D1 D3 D5 D6 D7 D8 D9 DA B1 B2 B3 77 FF 77 FF
.byte $43, $FF, $82, $33, $CC, $06, $FF, $82, $A0, $AA, $06, $FF, $83, $7B, $DA, $7F ; CPU:$9F59 PRG:9F59 43 FF 82 33 CC 06 FF 82 A0 AA 06 FF 83 7B DA 7F
.byte $05, $FF, $81, $77, $02, $55, $07, $FF, $82, $F7, $FD, $11, $FF, $FF, $FF, $FF ; CPU:$9F69 PRG:9F69 05 FF 81 77 02 55 07 FF 82 F7 FD 11 FF FF FF FF
.byte $24, $00, $77, $FF, $0F, $FF, $81, $D9, $06, $DA, $83, $50, $51, $6C, $08, $DA ; CPU:$9F79 PRG:9F79 24 00 77 FF 0F FF 81 D9 06 DA 83 50 51 6C 08 DA
.byte $81, $DB, $0D, $FF, $83, $DD, $FE, $E3, $03, $FE, $89, $E3, $4F, $52, $6B, $FE ; CPU:$9F89 PRG:9F89 81 DB 0D FF 83 DD FE E3 03 FE 89 E3 4F 52 6B FE
.byte $E3, $84, $9C, $9D, $02, $FE, $82, $E4, $DC, $0D, $FF, $93, $DD, $FE, $E3, $FE ; CPU:$9F99 PRG:9F99 E3 84 9C 9D 02 FE 82 E4 DC 0D FF 93 DD FE E3 FE
.byte $28, $3F, $E3, $DF, $53, $6A, $6D, $FE, $85, $9B, $9E, $FE, $E3, $FE, $DC, $0D ; CPU:$9FA9 PRG:9FA9 28 3F E3 DF 53 6A 6D FE 85 9B 9E FE E3 FE DC 0D
.byte $FF, $93, $DD, $FE, $E4, $FE, $29, $3E, $E4, $4E, $54, $69, $6E, $D4, $86, $9A ; CPU:$9FB9 PRG:9FB9 FF 93 DD FE E4 FE 29 3E E4 4E 54 69 6E D4 86 9A
.byte $9F, $FE, $E3, $FE, $DC, $0D, $FF, $81, $DD, $02, $FE, $90, $E5, $2A, $3D, $FE ; CPU:$9FC9 PRG:9FC9 9F FE E3 FE DC 0D FF 81 DD 02 FE 90 E5 2A 3D FE
.byte $4D, $55, $68, $6F, $D3, $FE, $99, $A0, $B6, $B7, $FE, $DC, $0D, $FF, $93, $DD ; CPU:$9FD9 PRG:9FD9 4D 55 68 6F D3 FE 99 A0 B6 B7 FE DC 0D FF 93 DD
.byte $12, $13, $27, $2B, $3C, $40, $4C, $FE, $67, $70, $D2, $E3, $98, $A1, $B5, $B8 ; CPU:$9FE9 PRG:9FE9 12 13 27 2B 3C 40 4C FE 67 70 D2 E3 98 A1 B5 B8
.byte $CB, $CC, $0D, $FF, $93, $DD, $11 ; CPU:$9FF9 PRG:9FF9 CB CC 0D FF 93 DD 11
.segment "PRG5"
.org $A000
; ---- data $A000-$A719 (1818 bytes) ----
; referenced by `lda $A650,x` at $AA17 (operand $A650 falls inside this region)
; referenced by `lda $A650,x` at $AA1E (operand $A650 falls inside this region)
.byte $14, $26, $2C, $3B, $41, $4B, $FE, $66, $71, $E0, $FE, $97, $A2, $B4, $B9, $CA ; CPU:$A000 PRG:A000 14 26 2C 3B 41 4B FE 66 71 E0 FE 97 A2 B4 B9 CA
.byte $CD, $0D, $FF, $87, $DD, $10, $15, $DE, $2D, $3A, $42, $02, $FE, $8A, $65, $72 ; CPU:$A010 PRG:A010 CD 0D FF 87 DD 10 15 DE 2D 3A 42 02 FE 8A 65 72
.byte $E1, $E3, $96, $A3, $B3, $BA, $C9, $CE, $0D, $FF, $84, $DD, $0F, $16, $25, $02 ; CPU:$A020 PRG:A020 E1 E3 96 A3 B3 BA C9 CE 0D FF 84 DD 0F 16 25 02
.byte $FE, $8D, $E3, $4A, $56, $64, $73, $E2, $FE, $95, $A4, $B2, $BB, $C8, $DC, $0D ; CPU:$A030 PRG:A030 FE 8D E3 4A 56 64 73 E2 FE 95 A4 B2 BB C8 DC 0D
.byte $FF, $93, $01, $0E, $17, $24, $2E, $FE, $E4, $49, $57, $63, $74, $83, $87, $94 ; CPU:$A040 PRG:A040 FF 93 01 0E 17 24 2E FE E4 49 57 63 74 83 87 94
.byte $A5, $B1, $BC, $C7, $DC, $0D, $FF, $93, $02, $0D, $18, $23, $2F, $09, $FE, $06 ; CPU:$A050 PRG:A050 A5 B1 BC C7 DC 0D FF 93 02 0D 18 23 2F 09 FE 06
.byte $58, $62, $75, $82, $88, $93, $A6, $B0, $BD, $C6, $DC, $0D, $FF, $93, $03, $0C ; CPU:$A060 PRG:A060 58 62 75 82 88 93 A6 B0 BD C6 DC 0D FF 93 03 0C
.byte $19, $22, $30, $39, $07, $FE, $81, $89, $76, $81, $89, $92, $A7, $AF, $BE, $C5 ; CPU:$A070 PRG:A070 19 22 30 39 07 FE 81 89 76 81 89 92 A7 AF BE C5
.byte $CF, $0D, $FF, $93, $04, $0B, $1A, $21, $31, $38, $81, $89, $59, $61, $77, $80 ; CPU:$A080 PRG:A080 CF 0D FF 93 04 0B 1A 21 31 38 81 89 59 61 77 80
.byte $8A, $91, $A8, $AE, $BF, $C4, $D0, $0D, $FF, $93, $05, $0A, $1B, $20, $32, $37 ; CPU:$A090 PRG:A090 8A 91 A8 AE BF C4 D0 0D FF 93 05 0A 1B 20 32 37
.byte $43, $48, $5A, $60, $78, $7F, $8B, $90, $A9, $AD, $C0, $C3, $D1, $0D, $FF, $93 ; CPU:$A0A0 PRG:A0A0 43 48 5A 60 78 7F 8B 90 A9 AD C0 C3 D1 0D FF 93
.byte $7E, $79, $1C, $1F, $33, $36, $44, $47, $5B, $5F, $79, $7E, $8C, $8F, $AA, $AC ; CPU:$A0B0 PRG:A0B0 7E 79 1C 1F 33 36 44 47 5B 5F 79 7E 8C 8F AA AC
.byte $C1, $C2, $7E, $0D, $FF, $93, $7E, $79, $FF, $1E, $34, $35, $45, $46, $5C, $5E ; CPU:$A0C0 PRG:A0C0 C1 C2 7E 0D FF 93 7E 79 FF 1E 34 35 45 46 5C 5E
.byte $7A, $7D, $8D, $7E, $D6, $D5, $AB, $D7, $7E, $0D, $FF, $83, $D8, $E6, $8E, $02 ; CPU:$A0D0 PRG:A0D0 7A 7D 8D 7E D6 D5 AB D7 7E 0D FF 83 D8 E6 8E 02
.byte $E6, $03, $8E, $85, $E6, $5D, $7B, $7C, $E6, $03, $8E, $02, $E6, $81, $D8, $77 ; CPU:$A0E0 PRG:A0E0 E6 03 8E 85 E6 5D 7B 7C E6 03 8E 02 E6 81 D8 77
.byte $FF, $77, $FF, $44, $FF, $83, $35, $03, $CC, $04, $FF, $81, $DF, $02, $00, $82 ; CPU:$A0F0 PRG:A0F0 FF 77 FF 44 FF 83 35 03 CC 04 FF 81 DF 02 00 82
.byte $54, $DF, $02, $FF, $85, $B3, $6C, $7F, $F3, $A5, $03, $FF, $86, $BB, $AE, $AB ; CPU:$A100 PRG:A100 54 DF 02 FF 85 B3 6C 7F F3 A5 03 FF 86 BB AE AB
.byte $65, $AA, $EF, $02, $FF, $82, $FB, $FA, $03, $AA, $81, $EE, $11, $FF, $FF, $FF ; CPU:$A110 PRG:A110 65 AA EF 02 FF 82 FB FA 03 AA 81 EE 11 FF FF FF
.byte $FF, $20, $00, $83, $5B, $5C, $5B, $10, $FF, $B1, $5B, $5C, $5B, $5C, $5B, $5C ; CPU:$A120 PRG:A120 FF 20 00 83 5B 5C 5B 10 FF B1 5B 5C 5B 5C 5B 5C
.byte $5B, $5C, $5B, $5C, $5B, $5C, $5B, $5D, $5E, $5D, $1F, $0B, $0C, $0A, $0D, $0B ; CPU:$A130 PRG:A130 5B 5C 5B 5C 5B 5C 5B 5D 5E 5D 1F 0B 0C 0A 0D 0B
.byte $0C, $0A, $0D, $0B, $0C, $0A, $0D, $0B, $0C, $24, $5D, $5E, $5D, $5E, $5D, $5E ; CPU:$A140 PRG:A140 0C 0A 0D 0B 0C 0A 0D 0B 0C 24 5D 5E 5D 5E 5D 5E
.byte $5D, $5E, $5D, $5E, $5D, $5E, $5D, $5B, $5C, $5B, $20, $02, $FF, $82, $00, $09 ; CPU:$A150 PRG:A150 5D 5E 5D 5E 5D 5E 5D 5B 5C 5B 20 02 FF 82 00 09
.byte $02, $FF, $82, $00, $09, $02, $FF, $82, $00, $09, $02, $FF, $92, $21, $5B, $5C ; CPU:$A160 PRG:A160 02 FF 82 00 09 02 FF 82 00 09 02 FF 92 21 5B 5C
.byte $5B, $5C, $5B, $5C, $5B, $5C, $5B, $5C, $5B, $5C, $5B, $5D, $5E, $5D, $1F, $0E ; CPU:$A170 PRG:A170 5B 5C 5B 5C 5B 5C 5B 5C 5B 5C 5B 5D 5E 5D 1F 0E
.byte $FF, $83, $22, $10, $15, $08, $16, $87, $1C, $1B, $5D, $5B, $5C, $5B, $20, $0E ; CPU:$A180 PRG:A180 FF 83 22 10 15 08 16 87 1C 1B 5D 5B 5C 5B 20 0E
.byte $FF, $82, $21, $11, $0A, $FF, $86, $1A, $5B, $5D, $5E, $5D, $1F, $0E, $FF, $82 ; CPU:$A190 PRG:A190 FF 82 21 11 0A FF 86 1A 5B 5D 5E 5D 1F 0E FF 82
.byte $22, $12, $0A, $FF, $86, $19, $5D, $5B, $5C, $5B, $20, $0E, $FF, $83, $21, $13 ; CPU:$A1A0 PRG:A1A0 22 12 0A FF 86 19 5D 5B 5C 5B 20 0E FF 83 21 13
.byte $14, $08, $17, $87, $1D, $18, $5B, $5D, $5E, $5D, $1F, $0E, $FF, $92, $22, $5D ; CPU:$A1B0 PRG:A1B0 14 08 17 87 1D 18 5B 5D 5E 5D 1F 0E FF 92 22 5D
.byte $5E, $5D, $5E, $5D, $5E, $5D, $5E, $5D, $5E, $5D, $5E, $5D, $5B, $5C, $5B, $20 ; CPU:$A1C0 PRG:A1C0 5E 5D 5E 5D 5E 5D 5E 5D 5E 5D 5E 5D 5B 5C 5B 20
.byte $0E, $FF, $84, $21, $5B, $10, $15, $06, $16, $88, $1C, $1B, $5E, $5B, $5D, $5E ; CPU:$A1D0 PRG:A1D0 0E FF 84 21 5B 10 15 06 16 88 1C 1B 5E 5B 5D 5E
.byte $5D, $1F, $0E, $FF, $88, $22, $5D, $11, $53, $54, $41, $2C, $45, $03, $FF, $87 ; CPU:$A1E0 PRG:A1E0 5D 1F 0E FF 88 22 5D 11 53 54 41 2C 45 03 FF 87
.byte $1A, $5C, $5D, $5B, $5C, $5B, $20, $0E, $FF, $85, $21, $5B, $11, $42, $55, $02 ; CPU:$A1F0 PRG:A1F0 1A 5C 5D 5B 5C 5B 20 0E FF 85 21 5B 11 42 55 02
.byte $42, $82, $4C, $45, $02, $FF, $87, $1A, $5E, $5B, $5D, $5E, $5D, $1F, $0E, $FF ; CPU:$A200 PRG:A200 42 82 4C 45 02 FF 87 1A 5E 5B 5D 5E 5D 1F 0E FF
.byte $83, $22, $5D, $11, $04, $FF, $04, $30, $82, $1A, $5C, $02, $5D, $83, $5E, $5D ; CPU:$A210 PRG:A210 83 22 5D 11 04 FF 04 30 82 1A 5C 02 5D 83 5E 5D
.byte $20, $0E, $FF, $88, $21, $5D, $11, $53, $43, $4F, $52, $45, $03, $FF, $87, $1A ; CPU:$A220 PRG:A220 20 0E FF 88 21 5D 11 53 43 4F 52 45 03 FF 87 1A
.byte $5E, $5D, $5B, $5C, $5B, $1F, $0E, $FF, $83, $22, $5B, $11, $04, $FF, $04, $30 ; CPU:$A230 PRG:A230 5E 5D 5B 5C 5B 1F 0E FF 83 22 5B 11 04 FF 04 30
.byte $87, $1A, $5C, $5B, $5D, $5E, $5D, $20, $0E, $FF, $88, $21, $5D, $11, $54, $4F ; CPU:$A240 PRG:A240 87 1A 5C 5B 5D 5E 5D 20 0E FF 88 21 5D 11 54 4F
.byte $54, $41, $4C, $03, $FF, $87, $1A, $5E, $5D, $5B, $5C, $5B, $1F, $0E, $FF, $83 ; CPU:$A250 PRG:A250 54 41 4C 03 FF 87 1A 5E 5D 5B 5C 5B 1F 0E FF 83
.byte $22, $5B, $12, $02, $FF, $06, $30, $87, $19, $5C, $5B, $5D, $5E, $5D, $20, $0E ; CPU:$A260 PRG:A260 22 5B 12 02 FF 06 30 87 19 5C 5B 5D 5E 5D 20 0E
.byte $FF, $84, $21, $5D, $13, $14, $06, $17, $88, $1D, $18, $5E, $5D, $5B, $5C, $5B ; CPU:$A270 PRG:A270 FF 84 21 5D 13 14 06 17 88 1D 18 5E 5D 5B 5C 5B
.byte $1F, $0E, $FF, $92, $22, $5B, $5C, $5B, $5C, $5B, $5C, $5B, $5C, $5B, $5C, $5B ; CPU:$A280 PRG:A280 1F 0E FF 92 22 5B 5C 5B 5C 5B 5C 5B 5C 5B 5C 5B
.byte $5C, $5B, $5D, $5E, $5D, $20, $0E, $FF, $84, $21, $5D, $10, $15, $06, $16, $88 ; CPU:$A290 PRG:A290 5C 5B 5D 5E 5D 20 0E FF 84 21 5D 10 15 06 16 88
.byte $1C, $1B, $5E, $5D, $5B, $5C, $5B, $1F, $0E, $FF, $83, $22, $5B, $11, $08, $FF ; CPU:$A2A0 PRG:A2A0 1C 1B 5E 5D 5B 5C 5B 1F 0E FF 83 22 5B 11 08 FF
.byte $87, $1A, $5C, $5B, $5D, $5E, $5D, $20, $0E, $FF, $83, $21, $5D, $11, $08, $FF ; CPU:$A2B0 PRG:A2B0 87 1A 5C 5B 5D 5E 5D 20 0E FF 83 21 5D 11 08 FF
.byte $82, $1A, $5E, $02, $5D, $83, $5E, $5D, $1F, $0E, $FF, $83, $22, $5D, $11, $08 ; CPU:$A2C0 PRG:A2C0 82 1A 5E 02 5D 83 5E 5D 1F 0E FF 83 22 5D 11 08
.byte $FF, $87, $1A, $5E, $5D, $5B, $5C, $5B, $20, $0E, $FF, $83, $21, $5B, $11, $08 ; CPU:$A2D0 PRG:A2D0 FF 87 1A 5E 5D 5B 5C 5B 20 0E FF 83 21 5B 11 08
.byte $FF, $87, $1A, $5C, $5B, $5D, $5E, $5D, $1F, $0E, $FF, $83, $22, $5D, $11, $08 ; CPU:$A2E0 PRG:A2E0 FF 87 1A 5C 5B 5D 5E 5D 1F 0E FF 83 22 5D 11 08
.byte $FF, $82, $1A, $5E, $02, $5D, $83, $5E, $5D, $20, $02, $FF, $02, $FF, $02, $FF ; CPU:$A2F0 PRG:A2F0 FF 82 1A 5E 02 5D 83 5E 5D 20 02 FF 02 FF 02 FF
.byte $02, $FF, $02, $FF, $02, $FF, $02, $FF, $83, $21, $5D, $11, $08, $FF, $8E, $1A ; CPU:$A300 PRG:A300 02 FF 02 FF 02 FF 02 FF 83 21 5D 11 08 FF 8E 1A
.byte $5E, $5D, $5B, $5C, $5B, $1F, $C9, $CA, $FF, $CC, $61, $62, $5F, $02, $FF, $88 ; CPU:$A310 PRG:A310 5E 5D 5B 5C 5B 1F C9 CA FF CC 61 62 5F 02 FF 88
.byte $66, $67, $68, $FF, $79, $22, $5B, $12, $08, $FF, $98, $19, $5C, $5B, $5D, $5E ; CPU:$A320 PRG:A320 66 67 68 FF 79 22 5B 12 08 FF 98 19 5C 5B 5D 5E
.byte $5D, $20, $C8, $C7, $C6, $C5, $74, $73, $71, $70, $6C, $6B, $6A, $69, $FF, $60 ; CPU:$A330 PRG:A330 5D 20 C8 C7 C6 C5 74 73 71 70 6C 6B 6A 69 FF 60
.byte $21, $5D, $12, $08, $FF, $99, $19, $5E, $5D, $5B, $5C, $5B, $1F, $FF, $C3, $C4 ; CPU:$A340 PRG:A340 21 5D 12 08 FF 99 19 5E 5D 5B 5C 5B 1F FF C3 C4
.byte $7A, $7B, $7D, $7E, $7F, $80, $81, $83, $85, $5F, $75, $22, $5B, $13, $14, $06 ; CPU:$A350 PRG:A350 7A 7B 7D 7E 7F 80 81 83 85 5F 75 22 5B 13 14 06
.byte $17, $B4, $1D, $18, $5C, $5B, $5D, $5E, $5D, $20, $C1, $9F, $98, $97, $96, $95 ; CPU:$A360 PRG:A360 17 B4 1D 18 5C 5B 5D 5E 5D 20 C1 9F 98 97 96 95
.byte $94, $90, $89, $88, $87, $86, $76, $CB, $21, $5D, $5E, $5D, $5E, $5D, $5E, $5D ; CPU:$A370 PRG:A370 94 90 89 88 87 86 76 CB 21 5D 5E 5D 5E 5D 5E 5D
.byte $5E, $5D, $5E, $5D, $5E, $5D, $5B, $5C, $5B, $1F, $A0, $63, $99, $9A, $28, $3A ; CPU:$A380 PRG:A380 5E 5D 5E 5D 5E 5D 5B 5C 5B 1F A0 63 99 9A 28 3A
.byte $3B, $3F, $9B, $9C, $9D, $9E, $02, $C2, $8F, $22, $5B, $5C, $5B, $5C, $5B, $5C ; CPU:$A390 PRG:A390 3B 3F 9B 9C 9D 9E 02 C2 8F 22 5B 5C 5B 5C 5B 5C
.byte $5B, $5C, $5B, $5C, $5B, $5C, $5B, $55, $03, $F5, $81, $75, $04, $55, $03, $FF ; CPU:$A3A0 PRG:A3A0 5B 5C 5B 5C 5B 5C 5B 55 03 F5 81 75 04 55 03 FF
.byte $81, $77, $02, $54, $82, $57, $55, $03, $FF, $81, $77, $04, $55, $03, $FF, $81 ; CPU:$A3B0 PRG:A3B0 81 77 02 54 82 57 55 03 FF 81 77 04 55 03 FF 81
.byte $77, $04, $55, $03, $FF, $81, $77, $04, $55, $03, $FF, $83, $77, $DD, $FF, $02 ; CPU:$A3C0 PRG:A3C0 77 04 55 03 FF 81 77 04 55 03 FF 83 77 DD FF 02
.byte $55, $8C, $FF, $BF, $AA, $66, $5D, $53, $55, $F5, $EF, $BB, $AA, $26, $03, $F5 ; CPU:$A3D0 PRG:A3D0 55 8C FF BF AA 66 5D 53 55 F5 EF BB AA 26 03 F5
.byte $FF, $FF, $FF, $20, $00, $20, $FF, $A2, $24, $1F, $0B, $0C, $0A, $0D, $0B, $0C ; CPU:$A3E0 PRG:A3E0 FF FF FF 20 00 20 FF A2 24 1F 0B 0C 0A 0D 0B 0C
.byte $0A, $0D, $0B, $0C, $0A, $0D, $0B, $0C, $24, $1F, $0B, $0C, $0A, $0D, $0B, $0C ; CPU:$A3F0 PRG:A3F0 0A 0D 0B 0C 0A 0D 0B 0C 24 1F 0B 0C 0A 0D 0B 0C
.byte $0A, $0D, $0B, $0C, $0A, $0D, $0B, $0C, $21, $20, $02, $FF, $82, $00, $09, $02 ; CPU:$A400 PRG:A400 0A 0D 0B 0C 0A 0D 0B 0C 21 20 02 FF 82 00 09 02
.byte $FF, $82, $00, $09, $02, $FF, $82, $00, $09, $02, $FF, $82, $21, $20, $02, $FF ; CPU:$A410 PRG:A410 FF 82 00 09 02 FF 82 00 09 02 FF 82 21 20 02 FF
.byte $82, $00, $09, $02, $FF, $82, $00, $09, $02, $FF, $82, $00, $09, $02, $FF, $82 ; CPU:$A420 PRG:A420 82 00 09 02 FF 82 00 09 02 FF 82 00 09 02 FF 82
.byte $22, $1F, $0E, $FF, $82, $22, $1F, $0E, $FF, $82, $21, $20, $0E, $FF, $82, $21 ; CPU:$A430 PRG:A430 22 1F 0E FF 82 22 1F 0E FF 82 21 20 0E FF 82 21
.byte $20, $0E, $FF, $82, $22, $1F, $0E, $FF, $82, $22, $1F, $0E, $FF, $82, $21, $20 ; CPU:$A440 PRG:A440 20 0E FF 82 22 1F 0E FF 82 22 1F 0E FF 82 21 20
.byte $0E, $FF, $82, $21, $20, $0E, $FF, $82, $22, $1F, $0E, $FF, $82, $22, $1F, $0E ; CPU:$A450 PRG:A450 0E FF 82 21 20 0E FF 82 22 1F 0E FF 82 22 1F 0E
.byte $FF, $82, $21, $20, $0E, $FF, $82, $21, $20, $0E, $FF, $82, $22, $1F, $0E, $FF ; CPU:$A460 PRG:A460 FF 82 21 20 0E FF 82 21 20 0E FF 82 22 1F 0E FF
.byte $82, $22, $1F, $0E, $FF, $82, $21, $20, $0E, $FF, $82, $21, $20, $0E, $FF, $82 ; CPU:$A470 PRG:A470 82 22 1F 0E FF 82 21 20 0E FF 82 21 20 0E FF 82
.byte $22, $1F, $0E, $FF, $82, $22, $1F, $0E, $FF, $82, $21, $20, $0E, $FF, $82, $21 ; CPU:$A480 PRG:A480 22 1F 0E FF 82 22 1F 0E FF 82 21 20 0E FF 82 21
.byte $20, $0E, $FF, $82, $22, $1F, $0E, $FF, $82, $22, $1F, $0E, $FF, $82, $21, $20 ; CPU:$A490 PRG:A490 20 0E FF 82 22 1F 0E FF 82 22 1F 0E FF 82 21 20
.byte $0E, $FF, $82, $21, $20, $0E, $FF, $82, $22, $1F, $0E, $FF, $82, $22, $1F, $0E ; CPU:$A4A0 PRG:A4A0 0E FF 82 21 20 0E FF 82 22 1F 0E FF 82 22 1F 0E
.byte $FF, $82, $21, $20, $0E, $FF, $82, $21, $20, $0E, $FF, $82, $22, $1F, $0E, $FF ; CPU:$A4B0 PRG:A4B0 FF 82 21 20 0E FF 82 21 20 0E FF 82 22 1F 0E FF
.byte $82, $22, $1F, $0E, $FF, $82, $21, $20, $0E, $FF, $82, $21, $20, $0E, $FF, $82 ; CPU:$A4C0 PRG:A4C0 82 22 1F 0E FF 82 21 20 0E FF 82 21 20 0E FF 82
.byte $22, $1F, $0E, $FF, $82, $22, $1F, $0E, $FF, $82, $21, $20, $0E, $FF, $82, $21 ; CPU:$A4D0 PRG:A4D0 22 1F 0E FF 82 22 1F 0E FF 82 21 20 0E FF 82 21
.byte $20, $0E, $FF, $82, $22, $1F, $0E, $FF, $82, $22, $1F, $0E, $FF, $82, $21, $20 ; CPU:$A4E0 PRG:A4E0 20 0E FF 82 22 1F 0E FF 82 22 1F 0E FF 82 21 20
.byte $0E, $FF, $82, $21, $20, $0E, $FF, $82, $22, $1F, $0E, $FF, $82, $22, $1F, $0E ; CPU:$A4F0 PRG:A4F0 0E FF 82 21 20 0E FF 82 22 1F 0E FF 82 22 1F 0E
.byte $FF, $82, $21, $20, $0E, $FF, $82, $21, $20, $0E, $FF, $82, $22, $42, $04, $30 ; CPU:$A500 PRG:A500 FF 82 21 20 0E FF 82 21 20 0E FF 82 22 42 04 30
.byte $03, $FF, $81, $54, $06, $30, $82, $22, $42, $04, $30, $03, $FF, $81, $54, $06 ; CPU:$A510 PRG:A510 03 FF 81 54 06 30 82 22 42 04 30 03 FF 81 54 06
.byte $30, $82, $21, $53, $04, $30, $0A, $FF, $82, $21, $53, $04, $30, $0A, $FF, $82 ; CPU:$A520 PRG:A520 30 82 21 53 04 30 0A FF 82 21 53 04 30 0A FF 82
.byte $22, $1F, $0E, $FF, $82, $22, $1F, $0E, $FF, $82, $21, $20, $0E, $FF, $82, $21 ; CPU:$A530 PRG:A530 22 1F 0E FF 82 22 1F 0E FF 82 21 20 0E FF 82 21
.byte $20, $0E, $FF, $82, $22, $1F, $0E, $FF, $82, $22, $1F, $0E, $FF, $81, $D5, $03 ; CPU:$A540 PRG:A540 20 0E FF 82 22 1F 0E FF 82 22 1F 0E FF 81 D5 03
.byte $F5, $81, $D5, $03, $F5, $81, $DD, $03, $FF, $81, $DD, $03, $FF, $81, $DD, $03 ; CPU:$A550 PRG:A550 F5 81 D5 03 F5 81 DD 03 FF 81 DD 03 FF 81 DD 03
.byte $FF, $81, $DD, $03, $FF, $81, $DD, $03, $FF, $81, $DD, $03, $FF, $81, $DD, $03 ; CPU:$A560 PRG:A560 FF 81 DD 03 FF 81 DD 03 FF 81 DD 03 FF 81 DD 03
.byte $FF, $81, $DD, $03, $FF, $81, $DD, $03, $FF, $81, $DD, $03, $FF, $82, $55, $D5 ; CPU:$A570 PRG:A570 FF 81 DD 03 FF 81 DD 03 FF 81 DD 03 FF 82 55 D5
.byte $02, $F5, $82, $55, $D5, $02, $F5, $81, $FD, $03, $FF, $81, $FD, $03, $FF, $FF ; CPU:$A580 PRG:A580 02 F5 82 55 D5 02 F5 81 FD 03 FF 81 FD 03 FF FF
.byte $FF, $FF, $24, $00, $77, $FF, $2E, $FF, $8F, $47, $41, $4D, $45, $FF, $54, $45 ; CPU:$A590 PRG:A590 FF FF 24 00 77 FF 2E FF 8F 47 41 4D 45 FF 54 45
.byte $53, $54, $49, $4E, $47, $FF, $42, $59, $11, $FF, $86, $46, $52, $45, $44, $FF ; CPU:$A5A0 PRG:A5A0 53 54 49 4E 47 FF 42 59 11 FF 86 46 52 45 44 FF
.byte $48, $02, $4F, $81, $54, $17, $FF, $8C, $44, $45, $42, $4F, $52, $41, $48, $FF ; CPU:$A5B0 PRG:A5B0 48 02 4F 81 54 17 FF 8C 44 45 42 4F 52 41 48 FF
.byte $52, $4F, $53, $45, $54, $FF, $8C, $53, $54, $4F, $52, $59, $FF, $41, $4E, $44 ; CPU:$A5C0 PRG:A5C0 52 4F 53 45 54 FF 8C 53 54 4F 52 59 FF 41 4E 44
.byte $FF, $54, $57, $02, $45, $87, $4B, $49, $4E, $47, $FF, $42, $59, $0B, $FF, $87 ; CPU:$A5D0 PRG:A5D0 FF 54 57 02 45 87 4B 49 4E 47 FF 42 59 0B FF 87
.byte $50, $48, $49, $4C, $FF, $4D, $49, $02, $4B, $85, $45, $4C, $53, $4F, $4E, $52 ; CPU:$A5E0 PRG:A5E0 50 48 49 4C FF 4D 49 02 4B 85 45 4C 53 4F 4E 52
.byte $FF, $97, $4F, $52, $49, $47, $49, $4E, $41, $4C, $FF, $4D, $45, $52, $4D, $41 ; CPU:$A5F0 PRG:A5F0 FF 97 4F 52 49 47 49 4E 41 4C FF 4D 45 52 4D 41
.byte $49, $44, $FF, $41, $52, $54, $FF, $42, $59, $09, $FF, $88, $4D, $41, $52, $54 ; CPU:$A600 PRG:A600 49 44 FF 41 52 54 FF 42 59 09 FF 88 4D 41 52 54
.byte $49, $4E, $FF, $47, $02, $45, $56, $FF, $91, $53, $50, $45, $43, $49, $41, $4C ; CPU:$A610 PRG:A610 49 4E FF 47 02 45 56 FF 91 53 50 45 43 49 41 4C
.byte $FF, $54, $48, $41, $4E, $4B, $53, $FF, $54, $4F, $0F, $FF, $98, $52, $49, $43 ; CPU:$A620 PRG:A620 FF 54 48 41 4E 4B 53 FF 54 4F 0F FF 98 52 49 43
.byte $48, $41, $52, $44, $FF, $FE, $FF, $50, $41, $54, $52, $49, $43, $49, $41, $FF ; CPU:$A630 PRG:A630 48 41 52 44 FF FE FF 50 41 54 52 49 43 49 41 FF
.byte $46, $52, $49, $43, $4B, $77, $FF, $77, $FF, $77, $FF, $1E, $FF, $FF, $FF, $FF ; CPU:$A640 PRG:A640 46 52 49 43 4B 77 FF 77 FF 77 FF 1E FF FF FF FF
.byte $00, $00, $B0, $06, $50, $06, $F4, $05, $A0, $05, $50, $05, $00, $05, $B8, $04 ; CPU:$A650 PRG:A650 00 00 B0 06 50 06 F4 05 A0 05 50 05 00 05 B8 04
.byte $78, $04, $38, $04, $F8, $03, $C0, $03, $88, $03, $58, $03, $28, $03, $FA, $02 ; CPU:$A660 PRG:A660 78 04 38 04 F8 03 C0 03 88 03 58 03 28 03 FA 02
.byte $D0, $02, $A8, $02, $80, $02, $5C, $02, $3C, $02, $1C, $02, $FC, $01, $E0, $01 ; CPU:$A670 PRG:A670 D0 02 A8 02 80 02 5C 02 3C 02 1C 02 FC 01 E0 01
.byte $C4, $01, $AC, $01, $94, $01, $7D, $01, $68, $01, $54, $01, $40, $01, $2E, $01 ; CPU:$A680 PRG:A680 C4 01 AC 01 94 01 7D 01 68 01 54 01 40 01 2E 01
.byte $1E, $01, $0E, $01, $FE, $00, $F0, $00, $E2, $00, $D6, $00, $CA, $00, $BE, $00 ; CPU:$A690 PRG:A690 1E 01 0E 01 FE 00 F0 00 E2 00 D6 00 CA 00 BE 00
.byte $B4, $00, $AA, $00, $A0, $00, $97, $00, $8F, $00, $87, $00, $7F, $00, $78, $00 ; CPU:$A6A0 PRG:A6A0 B4 00 AA 00 A0 00 97 00 8F 00 87 00 7F 00 78 00
.byte $71, $00, $6B, $00, $65, $00, $5F, $00, $5A, $00, $55, $00, $50, $00, $4B, $00 ; CPU:$A6B0 PRG:A6B0 71 00 6B 00 65 00 5F 00 5A 00 55 00 50 00 4B 00
.byte $47, $00, $43, $00, $3F, $00, $3C, $00, $38, $00, $00, $00, $0C, $00, $0C, $00 ; CPU:$A6C0 PRG:A6C0 47 00 43 00 3F 00 3C 00 38 00 00 00 0C 00 0C 00
.byte $0C, $00, $0C, $00, $0D, $00, $0E, $00, $1F, $00, $00, $00, $01, $00, $02, $00 ; CPU:$A6D0 PRG:A6D0 0C 00 0C 00 0D 00 0E 00 1F 00 00 00 01 00 02 00
.byte $03, $00, $04, $00, $05, $00, $06, $00, $07, $00, $08, $00, $09, $00, $0A, $00 ; CPU:$A6E0 PRG:A6E0 03 00 04 00 05 00 06 00 07 00 08 00 09 00 0A 00
.byte $0B, $00, $0C, $00, $0D, $00, $0E, $00, $0F, $00, $80, $00, $81, $00, $82, $00 ; CPU:$A6F0 PRG:A6F0 0B 00 0C 00 0D 00 0E 00 0F 00 80 00 81 00 82 00
.byte $83, $00, $84, $00, $85, $00, $86, $00, $87, $00, $88, $00, $89, $00, $8A, $00 ; CPU:$A700 PRG:A700 83 00 84 00 85 00 86 00 87 00 88 00 89 00 8A 00
.byte $8B, $00, $8C, $00, $8D, $00, $8E, $00, $8F, $00 ; CPU:$A710 PRG:A710 8B 00 8C 00 8D 00 8E 00 8F 00
; -----------------------------------------------------------------------------
; Routine: Bank5_Sub_OnZero
; Global: Branch target inside Bank5_Sub: taken when the tested value is zero.
; Local: Part of Bank5_Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Sub_OnZero:
lda #$00 ; CPU:$A71A PRG:A71A A9 00
sta APUSTATUS ; CPU:$A71C PRG:A71C 8D 15 40
sta $0700 ; CPU:$A71F PRG:A71F 8D 00 07
sta $07A1 ; CPU:$A722 PRG:A722 8D A1 07
rts ; CPU:$A725 PRG:A725 60
; -----------------------------------------------------------------------------
; Routine: Bank5_UpdateSound
; Global: Updates the sound engine of the second half.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_UpdateSound:
lda ZpDD ; CPU:$A726 PRG:A726 A5 DD
beq Bank5_Sub_OnZero ; CPU:$A728 PRG:A728 F0 F0
lda ZpDE ; CPU:$A72A PRG:A72A A5 DE
asl a ; CPU:$A72C PRG:A72C 0A
tax ; CPU:$A72D PRG:A72D AA
lda $AB5B,x ; CPU:$A72E PRG:A72E BD 5B AB
sta ZpDF ; CPU:$A731 PRG:A731 85 DF
lda $AB5C,x ; CPU:$A733 PRG:A733 BD 5C AB
sta ZpE0 ; CPU:$A736 PRG:A736 85 E0
ldx ZpDF ; CPU:$A738 PRG:A738 A6 DF
ldy ZpE0 ; CPU:$A73A PRG:A73A A4 E0
jsr Bank5_Sub_A75B ; CPU:$A73C PRG:A73C 20 5B A7
rts ; CPU:$A73F PRG:A73F 60
; ---- data $A740-$A75A (27 bytes) ----
.byte $A9, $00, $8D, $A1, $07, $A5, $DE, $0A, $AA, $BD, $5B, $AB, $85, $DF, $BD, $5C ; CPU:$A740 PRG:A740 A9 00 8D A1 07 A5 DE 0A AA BD 5B AB 85 DF BD 5C
.byte $AB, $85, $E0, $A6, $DF, $A4, $E0, $20, $A9, $AA, $60 ; CPU:$A750 PRG:A750 AB 85 E0 A6 DF A4 E0 20 A9 AA 60
; -----------------------------------------------------------------------------
; Routine: Bank5_Sub_A75B
; Global: Branch target inside Bank5_Sub: taken when A75B.
; Local: Part of Bank5_Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Sub_A75B:
lda #$00 ; CPU:$A75B PRG:A75B A9 00
sta APUSTATUS ; CPU:$A75D PRG:A75D 8D 15 40
stx ZpD7 ; CPU:$A760 PRG:A760 86 D7
sty ZpD8 ; CPU:$A762 PRG:A762 84 D8
ldx #$3B ; CPU:$A764 PRG:A764 A2 3B
lda #$00 ; CPU:$A766 PRG:A766 A9 00
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_UpdateSound_OnNonnegative
; Global: Branch target inside Bank5_Bank5_UpdateSound: taken when the tested value is not negative.
; Local: Part of Bank5_Bank5_UpdateSound.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_UpdateSound_OnNonnegative:
sta $0711,x ; CPU:$A768 PRG:A768 9D 11 07
dex ; CPU:$A76B PRG:A76B CA
bpl Bank5_Bank5_UpdateSound_OnNonnegative ; CPU:$A76C PRG:A76C 10 FA
sta ZpD6 ; CPU:$A76E PRG:A76E 85 D6
ldy #$08 ; CPU:$A770 PRG:A770 A0 08
lda (ZpD7),y ; CPU:$A772 PRG:A772 B1 D7
sta $0702 ; CPU:$A774 PRG:A774 8D 02 07
sta $0701 ; CPU:$A777 PRG:A777 8D 01 07
iny ; CPU:$A77A PRG:A77A C8
lda (ZpD7),y ; CPU:$A77B PRG:A77B B1 D7
sta $0700 ; CPU:$A77D PRG:A77D 8D 00 07
sta APUSTATUS ; CPU:$A780 PRG:A780 8D 15 40
rts ; CPU:$A783 PRG:A783 60
; -----------------------------------------------------------------------------
; Routine: Bank5_ReadSoundTable
; Global: Reads the sound table of the second half.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_ReadSoundTable:
ldy #$00 ; CPU:$A784 PRG:A784 A0 00
lda (ZpD7),y ; CPU:$A786 PRG:A786 B1 D7
sta ZpD9 ; CPU:$A788 PRG:A788 85 D9
iny ; CPU:$A78A PRG:A78A C8
lda (ZpD7),y ; CPU:$A78B PRG:A78B B1 D7
sta ZpDA ; CPU:$A78D PRG:A78D 85 DA
Sub_A78F:
lda #$01 ; CPU:$A78F PRG:A78F A9 01
sta $0707 ; CPU:$A791 PRG:A791 8D 07 07
lda #$00 ; CPU:$A794 PRG:A794 A9 00
sta $0708 ; CPU:$A796 PRG:A796 8D 08 07
jsr Bank5_Sub_A7FF ; CPU:$A799 PRG:A799 20 FF A7
ldy #$02 ; CPU:$A79C PRG:A79C A0 02
lda (ZpD7),y ; CPU:$A79E PRG:A79E B1 D7
sta ZpD9 ; CPU:$A7A0 PRG:A7A0 85 D9
iny ; CPU:$A7A2 PRG:A7A2 C8
lda (ZpD7),y ; CPU:$A7A3 PRG:A7A3 B1 D7
sta ZpDA ; CPU:$A7A5 PRG:A7A5 85 DA
lda #$02 ; CPU:$A7A7 PRG:A7A7 A9 02
sta $0707 ; CPU:$A7A9 PRG:A7A9 8D 07 07
lda #$01 ; CPU:$A7AC PRG:A7AC A9 01
sta $0708 ; CPU:$A7AE PRG:A7AE 8D 08 07
jsr Bank5_Sub_A7FF ; CPU:$A7B1 PRG:A7B1 20 FF A7
ldy #$04 ; CPU:$A7B4 PRG:A7B4 A0 04
lda (ZpD7),y ; CPU:$A7B6 PRG:A7B6 B1 D7
sta ZpD9 ; CPU:$A7B8 PRG:A7B8 85 D9
iny ; CPU:$A7BA PRG:A7BA C8
lda (ZpD7),y ; CPU:$A7BB PRG:A7BB B1 D7
sta ZpDA ; CPU:$A7BD PRG:A7BD 85 DA
lda #$04 ; CPU:$A7BF PRG:A7BF A9 04
sta $0707 ; CPU:$A7C1 PRG:A7C1 8D 07 07
lda #$02 ; CPU:$A7C4 PRG:A7C4 A9 02
sta $0708 ; CPU:$A7C6 PRG:A7C6 8D 08 07
jsr Bank5_Sub_A7FF ; CPU:$A7C9 PRG:A7C9 20 FF A7
ldy #$06 ; CPU:$A7CC PRG:A7CC A0 06
lda (ZpD7),y ; CPU:$A7CE PRG:A7CE B1 D7
sta ZpD9 ; CPU:$A7D0 PRG:A7D0 85 D9
iny ; CPU:$A7D2 PRG:A7D2 C8
lda (ZpD7),y ; CPU:$A7D3 PRG:A7D3 B1 D7
sta ZpDA ; CPU:$A7D5 PRG:A7D5 85 DA
lda #$08 ; CPU:$A7D7 PRG:A7D7 A9 08
sta $0707 ; CPU:$A7D9 PRG:A7D9 8D 07 07
lda #$03 ; CPU:$A7DC PRG:A7DC A9 03
sta $0708 ; CPU:$A7DE PRG:A7DE 8D 08 07
jsr Bank5_Sub_A7FF ; CPU:$A7E1 PRG:A7E1 20 FF A7
lda $0701 ; CPU:$A7E4 PRG:A7E4 AD 01 07
bne Bank5_Bank5_ReadSoundTable_Loop ; CPU:$A7E7 PRG:A7E7 D0 12
dec $0711 ; CPU:$A7E9 PRG:A7E9 CE 11 07
dec $0712 ; CPU:$A7EC PRG:A7EC CE 12 07
dec $0713 ; CPU:$A7EF PRG:A7EF CE 13 07
dec $0714 ; CPU:$A7F2 PRG:A7F2 CE 14 07
lda $0702 ; CPU:$A7F5 PRG:A7F5 AD 02 07
sta $0701 ; CPU:$A7F8 PRG:A7F8 8D 01 07
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when the loop repeats.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop:
dec $0701 ; CPU:$A7FB PRG:A7FB CE 01 07
rts ; CPU:$A7FE PRG:A7FE 60
; -----------------------------------------------------------------------------
; Routine: Bank5_Sub_A7FF
; Global: Branch target inside Bank5_Sub: taken when A7FF.
; Local: Part of Bank5_Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Sub_A7FF:
lda ZpD6 ; CPU:$A7FF PRG:A7FF A5 D6
and $0707 ; CPU:$A801 PRG:A801 2D 07 07
beq Bank5_Bank5_ReadSoundTable_Loop4 ; CPU:$A804 PRG:A804 F0 22
lda APUSTATUS ; CPU:$A806 PRG:A806 AD 15 40
and $0707 ; CPU:$A809 PRG:A809 2D 07 07
bne Bank5_Bank5_ReadSoundTable_Loop2 ; CPU:$A80C PRG:A80C D0 09
lda $0707 ; CPU:$A80E PRG:A80E AD 07 07
eor #$FF ; CPU:$A811 PRG:A811 49 FF
and ZpD6 ; CPU:$A813 PRG:A813 25 D6
sta ZpD6 ; CPU:$A815 PRG:A815 85 D6
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop2
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop2.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop2:
lda $0700 ; CPU:$A817 PRG:A817 AD 00 07
and $0707 ; CPU:$A81A PRG:A81A 2D 07 07
beq Bank5_Bank5_ReadSoundTable_Loop3 ; CPU:$A81D PRG:A81D F0 08
ldx $0708 ; CPU:$A81F PRG:A81F AE 08 07
lda $0711,x ; CPU:$A822 PRG:A822 BD 11 07
beq Bank5_Bank5_ReadSoundTable_Loop6 ; CPU:$A825 PRG:A825 F0 12
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop3
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop3.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop3:
rts ; CPU:$A827 PRG:A827 60
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop4
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop4.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop4:
lda $0700 ; CPU:$A828 PRG:A828 AD 00 07
and $0707 ; CPU:$A82B PRG:A82B 2D 07 07
bne Bank5_Bank5_ReadSoundTable_Loop5 ; CPU:$A82E PRG:A82E D0 01
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_OnZero
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when the tested value is zero.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_OnZero:
rts ; CPU:$A830 PRG:A830 60
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop5
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop5.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop5:
ldx $0708 ; CPU:$A831 PRG:A831 AE 08 07
lda $0711,x ; CPU:$A834 PRG:A834 BD 11 07
bne Bank5_Bank5_ReadSoundTable_Loop7 ; CPU:$A837 PRG:A837 D0 03
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop6
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop6.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop6:
jmp Bank5_Bank5_ReadSoundTable_OnZero2 ; CPU:$A839 PRG:A839 4C 13 A9
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop7
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop7.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop7:
cpx #$02 ; CPU:$A83C PRG:A83C E0 02
beq Bank5_Bank5_ReadSoundTable_OnZero ; CPU:$A83E PRG:A83E F0 F0
ldy $071D,x ; CPU:$A840 PRG:A840 BC 1D 07
beq Bank5_Bank5_ReadSoundTable_OnZero ; CPU:$A843 PRG:A843 F0 EB
dec $0741,x ; CPU:$A845 PRG:A845 DE 41 07
bne Bank5_Bank5_ReadSoundTable_OnZero ; CPU:$A848 PRG:A848 D0 E6
dey ; CPU:$A84A PRG:A84A 88
beq Bank5_Bank5_ReadSoundTable_Loop8 ; CPU:$A84B PRG:A84B F0 0B
dey ; CPU:$A84D PRG:A84D 88
beq Bank5_Bank5_ReadSoundTable_Loop10 ; CPU:$A84E PRG:A84E F0 2B
dey ; CPU:$A850 PRG:A850 88
beq Bank5_Bank5_ReadSoundTable_Loop12 ; CPU:$A851 PRG:A851 F0 55
dey ; CPU:$A853 PRG:A853 88
beq Bank5_Bank5_ReadSoundTable_Loop13 ; CPU:$A854 PRG:A854 F0 59
bne Bank5_Bank5_ReadSoundTable_OnZero ; CPU:$A856 PRG:A856 D0 D8
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop8
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop8.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop8:
lda $070D,x ; CPU:$A858 PRG:A858 BD 0D 07
clc ; CPU:$A85B PRG:A85B 18
adc $0721,x ; CPU:$A85C PRG:A85C 7D 21 07
sta $0721,x ; CPU:$A85F PRG:A85F 9D 21 07
lda #$0F ; CPU:$A862 PRG:A862 A9 0F
cmp $0721,x ; CPU:$A864 PRG:A864 DD 21 07
beq Bank5_Bank5_ReadSoundTable_Loop15 ; CPU:$A867 PRG:A867 F0 66
bcs Bank5_Bank5_ReadSoundTable_Loop9 ; CPU:$A869 PRG:A869 B0 06
sta $0721,x ; CPU:$A86B PRG:A86B 9D 21 07
jmp Bank5_Bank5_ReadSoundTable_Loop15 ; CPU:$A86E PRG:A86E 4C CF A8
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop9
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop9.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop9:
lda $072D,x ; CPU:$A871 PRG:A871 BD 2D 07
and #$0F ; CPU:$A874 PRG:A874 29 0F
sta $0741,x ; CPU:$A876 PRG:A876 9D 41 07
bne Bank5_Bank5_ReadSoundTable_Loop17 ; CPU:$A879 PRG:A879 D0 61
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop10
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop10.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop10:
lda $0721,x ; CPU:$A87B PRG:A87B BD 21 07
sec ; CPU:$A87E PRG:A87E 38
sbc $070D,x ; CPU:$A87F PRG:A87F FD 0D 07
sta $0721,x ; CPU:$A882 PRG:A882 9D 21 07
bcs Bank5_Bank5_ReadSoundTable_Loop11 ; CPU:$A885 PRG:A885 B0 0B
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_OnCarryClear
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when the addition or subtraction did not carry.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_OnCarryClear:
lda $073D,x ; CPU:$A887 PRG:A887 BD 3D 07
and #$0F ; CPU:$A88A PRG:A88A 29 0F
sta $0721,x ; CPU:$A88C PRG:A88C 9D 21 07
jmp Bank5_Bank5_ReadSoundTable_Loop15 ; CPU:$A88F PRG:A88F 4C CF A8
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop11
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop11.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop11:
lda $073D,x ; CPU:$A892 PRG:A892 BD 3D 07
and #$0F ; CPU:$A895 PRG:A895 29 0F
cmp $0721,x ; CPU:$A897 PRG:A897 DD 21 07
beq Bank5_Bank5_ReadSoundTable_Loop15 ; CPU:$A89A PRG:A89A F0 33
bcc Bank5_Bank5_ReadSoundTable_OnCarryClear ; CPU:$A89C PRG:A89C 90 E9
lda $0731,x ; CPU:$A89E PRG:A89E BD 31 07
and #$0F ; CPU:$A8A1 PRG:A8A1 29 0F
sta $0741,x ; CPU:$A8A3 PRG:A8A3 9D 41 07
bne Bank5_Bank5_ReadSoundTable_Loop17 ; CPU:$A8A6 PRG:A8A6 D0 34
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop12
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop12.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop12:
lda $0741,x ; CPU:$A8A8 PRG:A8A8 BD 41 07
beq Bank5_Bank5_ReadSoundTable_Loop15 ; CPU:$A8AB PRG:A8AB F0 22
bne Bank5_Bank5_ReadSoundTable_Loop17 ; CPU:$A8AD PRG:A8AD D0 2D
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop13
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop13.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop13:
lda $0721,x ; CPU:$A8AF PRG:A8AF BD 21 07
sec ; CPU:$A8B2 PRG:A8B2 38
sbc $070D,x ; CPU:$A8B3 PRG:A8B3 FD 0D 07
sta $0721,x ; CPU:$A8B6 PRG:A8B6 9D 21 07
bcc Bank5_Bank5_ReadSoundTable_Loop14 ; CPU:$A8B9 PRG:A8B9 90 0C
beq Bank5_Bank5_ReadSoundTable_Loop14 ; CPU:$A8BB PRG:A8BB F0 0A
lda $0739,x ; CPU:$A8BD PRG:A8BD BD 39 07
and #$0F ; CPU:$A8C0 PRG:A8C0 29 0F
sta $0741,x ; CPU:$A8C2 PRG:A8C2 9D 41 07
bne Bank5_Bank5_ReadSoundTable_Loop17 ; CPU:$A8C5 PRG:A8C5 D0 15
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop14
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop14.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop14:
ldy #$00 ; CPU:$A8C7 PRG:A8C7 A0 00
tya ; CPU:$A8C9 PRG:A8C9 98
sta $0721,x ; CPU:$A8CA PRG:A8CA 9D 21 07
beq Bank5_Bank5_ReadSoundTable_Loop16 ; CPU:$A8CD PRG:A8CD F0 06
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop15
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop15.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop15:
ldy $071D,x ; CPU:$A8CF PRG:A8CF BC 1D 07
jsr Bank5_Bank5_ReadSoundTable_OnZero4 ; CPU:$A8D2 PRG:A8D2 20 54 AA
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop16
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop16.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop16:
sta $0741,x ; CPU:$A8D5 PRG:A8D5 9D 41 07
tya ; CPU:$A8D8 PRG:A8D8 98
sta $071D,x ; CPU:$A8D9 PRG:A8D9 9D 1D 07
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop17
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop17.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop17:
lda $0721,x ; CPU:$A8DC PRG:A8DC BD 21 07
pha ; CPU:$A8DF PRG:A8DF 48
lda $0709,x ; CPU:$A8E0 PRG:A8E0 BD 09 07
pha ; CPU:$A8E3 PRG:A8E3 48
ldy #$05 ; CPU:$A8E4 PRG:A8E4 A0 05
lda #$00 ; CPU:$A8E6 PRG:A8E6 A9 00
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_OnNonzero
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when the tested value is not zero.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_OnNonzero:
lsr $0709,x ; CPU:$A8E8 PRG:A8E8 5E 09 07
bcc Bank5_Bank5_ReadSoundTable_Loop18 ; CPU:$A8EB PRG:A8EB 90 04
clc ; CPU:$A8ED PRG:A8ED 18
adc $0721,x ; CPU:$A8EE PRG:A8EE 7D 21 07
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop18
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop18.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop18:
asl $0721,x ; CPU:$A8F1 PRG:A8F1 1E 21 07
dey ; CPU:$A8F4 PRG:A8F4 88
bne Bank5_Bank5_ReadSoundTable_OnNonzero ; CPU:$A8F5 PRG:A8F5 D0 F1
tay ; CPU:$A8F7 PRG:A8F7 A8
pla ; CPU:$A8F8 PRG:A8F8 68
sta $0709,x ; CPU:$A8F9 PRG:A8F9 9D 09 07
pla ; CPU:$A8FC PRG:A8FC 68
sta $0721,x ; CPU:$A8FD PRG:A8FD 9D 21 07
tya ; CPU:$A900 PRG:A900 98
lsr a ; CPU:$A901 PRG:A901 4A
lsr a ; CPU:$A902 PRG:A902 4A
lsr a ; CPU:$A903 PRG:A903 4A
lsr a ; CPU:$A904 PRG:A904 4A
ora $0729,x ; CPU:$A905 PRG:A905 1D 29 07
pha ; CPU:$A908 PRG:A908 48
txa ; CPU:$A909 PRG:A909 8A
clc ; CPU:$A90A PRG:A90A 18
rol a ; CPU:$A90B PRG:A90B 2A
rol a ; CPU:$A90C PRG:A90C 2A
tay ; CPU:$A90D PRG:A90D A8
pla ; CPU:$A90E PRG:A90E 68
sta APUPULSE1CTRL,y ; CPU:$A90F PRG:A90F 99 00 40
rts ; CPU:$A912 PRG:A912 60
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_OnZero2
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when OnZero2.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_OnZero2:
lda $0715,x ; CPU:$A913 PRG:A913 BD 15 07
clc ; CPU:$A916 PRG:A916 18
adc ZpD9 ; CPU:$A917 PRG:A917 65 D9
sta ZpDB ; CPU:$A919 PRG:A919 85 DB
lda $0719,x ; CPU:$A91B PRG:A91B BD 19 07
adc ZpDA ; CPU:$A91E PRG:A91E 65 DA
sta ZpDC ; CPU:$A920 PRG:A920 85 DC
ldy #$00 ; CPU:$A922 PRG:A922 A0 00
lda (ZpDB),y ; CPU:$A924 PRG:A924 B1 DB
bmi Bank5_Bank5_ReadSoundTable_Loop19 ; CPU:$A926 PRG:A926 30 03
jmp Bank5_Sub_A9E9 ; CPU:$A928 PRG:A928 4C E9 A9
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop19
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop19.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop19:
cmp #$88 ; CPU:$A92B PRG:A92B C9 88
bcs Bank5_Bank5_ReadSoundTable_Loop20 ; CPU:$A92D PRG:A92D B0 03
jmp Bank5_Sub_A9C3 ; CPU:$A92F PRG:A92F 4C C3 A9
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop20
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop20.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop20:
bne Bank5_Bank5_ReadSoundTable_Loop21 ; CPU:$A932 PRG:A932 D0 0A
lda #$00 ; CPU:$A934 PRG:A934 A9 00
sta $0715,x ; CPU:$A936 PRG:A936 9D 15 07
sta $0719,x ; CPU:$A939 PRG:A939 9D 19 07
beq Bank5_Bank5_ReadSoundTable_OnZero2 ; CPU:$A93C PRG:A93C F0 D5
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop21
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop21.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop21:
cmp #$89 ; CPU:$A93E PRG:A93E C9 89
bne Bank5_Bank5_ReadSoundTable_Loop22 ; CPU:$A940 PRG:A940 D0 12
lda $0707 ; CPU:$A942 PRG:A942 AD 07 07
eor #$FF ; CPU:$A945 PRG:A945 49 FF
and $0700 ; CPU:$A947 PRG:A947 2D 00 07
sta APUSTATUS ; CPU:$A94A PRG:A94A 8D 15 40
sta $0700 ; CPU:$A94D PRG:A94D 8D 00 07
jsr Bank5_Sub_AA7A ; CPU:$A950 PRG:A950 20 7A AA
rts ; CPU:$A953 PRG:A953 60
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop22
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop22.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop22:
cmp #$8A ; CPU:$A954 PRG:A954 C9 8A
bne Bank5_Bank5_ReadSoundTable_Loop23 ; CPU:$A956 PRG:A956 D0 1E
lda $0745,x ; CPU:$A958 PRG:A958 BD 45 07
ora $0749,x ; CPU:$A95B PRG:A95B 1D 49 07
beq Bank5_Bank5_ReadSoundTable_Loop28 ; CPU:$A95E PRG:A95E F0 75
lda $0745,x ; CPU:$A960 PRG:A960 BD 45 07
sta $0715,x ; CPU:$A963 PRG:A963 9D 15 07
lda $0749,x ; CPU:$A966 PRG:A966 BD 49 07
sta $0719,x ; CPU:$A969 PRG:A969 9D 19 07
lda #$00 ; CPU:$A96C PRG:A96C A9 00
sta $0745,x ; CPU:$A96E PRG:A96E 9D 45 07
sta $0749,x ; CPU:$A971 PRG:A971 9D 49 07
beq Bank5_Bank5_ReadSoundTable_OnZero2 ; CPU:$A974 PRG:A974 F0 9D
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop23
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop23.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop23:
cmp #$8B ; CPU:$A976 PRG:A976 C9 8B
bne Bank5_Bank5_ReadSoundTable_Loop24 ; CPU:$A978 PRG:A978 D0 0F
iny ; CPU:$A97A PRG:A97A C8
lda (ZpDB),y ; CPU:$A97B PRG:A97B B1 DB
sta $0745,x ; CPU:$A97D PRG:A97D 9D 45 07
iny ; CPU:$A980 PRG:A980 C8
lda (ZpDB),y ; CPU:$A981 PRG:A981 B1 DB
sta $0749,x ; CPU:$A983 PRG:A983 9D 49 07
jmp Bank5_Bank5_ReadSoundTable_Loop28 ; CPU:$A986 PRG:A986 4C D5 A9
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop24
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop24.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop24:
cmp #$8C ; CPU:$A989 PRG:A989 C9 8C
bne Bank5_Bank5_ReadSoundTable_Loop25 ; CPU:$A98B PRG:A98B D0 0F
iny ; CPU:$A98D PRG:A98D C8
lda (ZpDB),y ; CPU:$A98E PRG:A98E B1 DB
sta $0715,x ; CPU:$A990 PRG:A990 9D 15 07
iny ; CPU:$A993 PRG:A993 C8
lda (ZpDB),y ; CPU:$A994 PRG:A994 B1 DB
sta $0719,x ; CPU:$A996 PRG:A996 9D 19 07
jmp Bank5_Bank5_ReadSoundTable_OnZero2 ; CPU:$A999 PRG:A999 4C 13 A9
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop25
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop25.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop25:
cmp #$8D ; CPU:$A99C PRG:A99C C9 8D
bne Bank5_Bank5_ReadSoundTable_Loop26 ; CPU:$A99E PRG:A99E D0 09
iny ; CPU:$A9A0 PRG:A9A0 C8
lda (ZpDB),y ; CPU:$A9A1 PRG:A9A1 B1 DB
sta $0702 ; CPU:$A9A3 PRG:A9A3 8D 02 07
jmp Bank5_Bank5_ReadSoundTable_Loop28 ; CPU:$A9A6 PRG:A9A6 4C D5 A9
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop26
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop26.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop26:
cmp #$8E ; CPU:$A9A9 PRG:A9A9 C9 8E
bne Bank5_Bank5_ReadSoundTable_Loop27 ; CPU:$A9AB PRG:A9AB D0 09
iny ; CPU:$A9AD PRG:A9AD C8
lda (ZpDB),y ; CPU:$A9AE PRG:A9AE B1 DB
sta $0703,x ; CPU:$A9B0 PRG:A9B0 9D 03 07
jmp Bank5_Bank5_ReadSoundTable_Loop28 ; CPU:$A9B3 PRG:A9B3 4C D5 A9
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop27
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop27.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop27:
cmp #$8F ; CPU:$A9B6 PRG:A9B6 C9 8F
bne Bank5_Bank5_ReadSoundTable_Loop28 ; CPU:$A9B8 PRG:A9B8 D0 1B
iny ; CPU:$A9BA PRG:A9BA C8
lda (ZpDB),y ; CPU:$A9BB PRG:A9BB B1 DB
sta $0709,x ; CPU:$A9BD PRG:A9BD 9D 09 07
jmp Bank5_Bank5_ReadSoundTable_Loop28 ; CPU:$A9C0 PRG:A9C0 4C D5 A9
; -----------------------------------------------------------------------------
; Routine: Bank5_Sub_A9C3
; Global: Branch target inside Bank5_Sub: taken when A9C3.
; Local: Part of Bank5_Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Sub_A9C3:
and #$3F ; CPU:$A9C3 PRG:A9C3 29 3F
clc ; CPU:$A9C5 PRG:A9C5 18
rol a ; CPU:$A9C6 PRG:A9C6 2A
rol a ; CPU:$A9C7 PRG:A9C7 2A
adc $0708 ; CPU:$A9C8 PRG:A9C8 6D 08 07
tax ; CPU:$A9CB PRG:A9CB AA
iny ; CPU:$A9CC PRG:A9CC C8
lda (ZpDB),y ; CPU:$A9CD PRG:A9CD B1 DB
sta $0721,x ; CPU:$A9CF PRG:A9CF 9D 21 07
ldx $0708 ; CPU:$A9D2 PRG:A9D2 AE 08 07
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop28
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop28.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop28:
iny ; CPU:$A9D5 PRG:A9D5 C8
tya ; CPU:$A9D6 PRG:A9D6 98
clc ; CPU:$A9D7 PRG:A9D7 18
adc $0715,x ; CPU:$A9D8 PRG:A9D8 7D 15 07
sta $0715,x ; CPU:$A9DB PRG:A9DB 9D 15 07
lda #$00 ; CPU:$A9DE PRG:A9DE A9 00
adc $0719,x ; CPU:$A9E0 PRG:A9E0 7D 19 07
sta $0719,x ; CPU:$A9E3 PRG:A9E3 9D 19 07
jmp Bank5_Bank5_ReadSoundTable_OnZero2 ; CPU:$A9E6 PRG:A9E6 4C 13 A9
; -----------------------------------------------------------------------------
; Routine: Bank5_Sub_A9E9
; Global: Branch target inside Bank5_Sub: taken when A9E9.
; Local: Part of Bank5_Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Sub_A9E9:
sta $0711,x ; CPU:$A9E9 PRG:A9E9 9D 11 07
clc ; CPU:$A9EC PRG:A9EC 18
lda #$02 ; CPU:$A9ED PRG:A9ED A9 02
adc $0715,x ; CPU:$A9EF PRG:A9EF 7D 15 07
sta $0715,x ; CPU:$A9F2 PRG:A9F2 9D 15 07
lda #$00 ; CPU:$A9F5 PRG:A9F5 A9 00
adc $0719,x ; CPU:$A9F7 PRG:A9F7 7D 19 07
sta $0719,x ; CPU:$A9FA PRG:A9FA 9D 19 07
lda ZpD6 ; CPU:$A9FD PRG:A9FD A5 D6
and $0707 ; CPU:$A9FF PRG:A9FF 2D 07 07
beq Bank5_Bank5_ReadSoundTable_Loop29 ; CPU:$AA02 PRG:AA02 F0 01
rts ; CPU:$AA04 PRG:AA04 60
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop29
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop29.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop29:
iny ; CPU:$AA05 PRG:AA05 C8
lda (ZpDB),y ; CPU:$AA06 PRG:AA06 B1 DB
pha ; CPU:$AA08 PRG:AA08 48
txa ; CPU:$AA09 PRG:AA09 8A
clc ; CPU:$AA0A PRG:AA0A 18
rol a ; CPU:$AA0B PRG:AA0B 2A
rol a ; CPU:$AA0C PRG:AA0C 2A
tay ; CPU:$AA0D PRG:AA0D A8
pla ; CPU:$AA0E PRG:AA0E 68
beq Bank5_Bank5_ReadSoundTable_Loop30 ; CPU:$AA0F PRG:AA0F F0 04
clc ; CPU:$AA11 PRG:AA11 18
adc $0703,x ; CPU:$AA12 PRG:AA12 7D 03 07
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop30
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop30.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop30:
asl a ; CPU:$AA15 PRG:AA15 0A
tax ; CPU:$AA16 PRG:AA16 AA
lda $A650,x ; CPU:$AA17 PRG:AA17 BD 50 A6
sta APUPULSE1TIMERLO,y ; CPU:$AA1A PRG:AA1A 99 02 40
inx ; CPU:$AA1D PRG:AA1D E8
lda $A650,x ; CPU:$AA1E PRG:AA1E BD 50 A6
ora #$08 ; CPU:$AA21 PRG:AA21 09 08
sta APUPULSE1TIMERHI,y ; CPU:$AA23 PRG:AA23 99 03 40
ldx $0708 ; CPU:$AA26 PRG:AA26 AE 08 07
cpx #$02 ; CPU:$AA29 PRG:AA29 E0 02
beq Bank5_Bank5_ReadSoundTable_Loop31 ; CPU:$AA2B PRG:AA2B F0 20
lda $073D,x ; CPU:$AA2D PRG:AA2D BD 3D 07
lsr a ; CPU:$AA30 PRG:AA30 4A
lsr a ; CPU:$AA31 PRG:AA31 4A
lsr a ; CPU:$AA32 PRG:AA32 4A
lsr a ; CPU:$AA33 PRG:AA33 4A
sta $0721,x ; CPU:$AA34 PRG:AA34 9D 21 07
jsr Bank5_Bank5_ReadSoundTable_Loop17 ; CPU:$AA37 PRG:AA37 20 DC A8
lda $0725,x ; CPU:$AA3A PRG:AA3A BD 25 07
sta APUPULSE1SWEEP,y ; CPU:$AA3D PRG:AA3D 99 01 40
ldy #$00 ; CPU:$AA40 PRG:AA40 A0 00
jsr Bank5_Bank5_ReadSoundTable_OnZero4 ; CPU:$AA42 PRG:AA42 20 54 AA
sta $0741,x ; CPU:$AA45 PRG:AA45 9D 41 07
tya ; CPU:$AA48 PRG:AA48 98
sta $071D,x ; CPU:$AA49 PRG:AA49 9D 1D 07
rts ; CPU:$AA4C PRG:AA4C 60
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop31
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop31.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop31:
lda $0729,x ; CPU:$AA4D PRG:AA4D BD 29 07
sta APUPULSE1CTRL,y ; CPU:$AA50 PRG:AA50 99 00 40
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_OnZero3
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when OnZero3.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_OnZero3:
rts ; CPU:$AA53 PRG:AA53 60
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_OnZero4
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when OnZero4.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_OnZero4:
iny ; CPU:$AA54 PRG:AA54 C8
cpy #$05 ; CPU:$AA55 PRG:AA55 C0 05
beq Bank5_Bank5_ReadSoundTable_Loop32 ; CPU:$AA57 PRG:AA57 F0 0D
tya ; CPU:$AA59 PRG:AA59 98
clc ; CPU:$AA5A PRG:AA5A 18
rol a ; CPU:$AA5B PRG:AA5B 2A
rol a ; CPU:$AA5C PRG:AA5C 2A
adc $0708 ; CPU:$AA5D PRG:AA5D 6D 08 07
tax ; CPU:$AA60 PRG:AA60 AA
lda $0729,x ; CPU:$AA61 PRG:AA61 BD 29 07
beq Bank5_Bank5_ReadSoundTable_OnZero4 ; CPU:$AA64 PRG:AA64 F0 EE
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop32
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop32.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop32:
ldx $0708 ; CPU:$AA66 PRG:AA66 AE 08 07
pha ; CPU:$AA69 PRG:AA69 48
lsr a ; CPU:$AA6A PRG:AA6A 4A
lsr a ; CPU:$AA6B PRG:AA6B 4A
lsr a ; CPU:$AA6C PRG:AA6C 4A
lsr a ; CPU:$AA6D PRG:AA6D 4A
sta $070D,x ; CPU:$AA6E PRG:AA6E 9D 0D 07
pla ; CPU:$AA71 PRG:AA71 68
and #$0F ; CPU:$AA72 PRG:AA72 29 0F
rts ; CPU:$AA74 PRG:AA74 60
; ---- data $AA75-$AA79 (5 bytes) ----
.byte $AD, $00, $07, $D0, $D9 ; CPU:$AA75 PRG:AA75 AD 00 07 D0 D9
; -----------------------------------------------------------------------------
; Routine: Bank5_Sub_AA7A
; Global: Branch target inside Bank5_Sub: taken when AA7A.
; Local: Part of Bank5_Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Sub_AA7A:
lda $07A1 ; CPU:$AA7A PRG:AA7A AD A1 07
beq Bank5_Bank5_ReadSoundTable_OnZero3 ; CPU:$AA7D PRG:AA7D F0 D4
ldx #$01 ; CPU:$AA7F PRG:AA7F A2 01
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_OnNonzero2
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when OnNonzero2.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_OnNonzero2:
lda $074D,x ; CPU:$AA81 PRG:AA81 BD 4D 07
sta $0700,x ; CPU:$AA84 PRG:AA84 9D 00 07
inx ; CPU:$AA87 PRG:AA87 E8
cpx #$4E ; CPU:$AA88 PRG:AA88 E0 4E
bne Bank5_Bank5_ReadSoundTable_OnNonzero2 ; CPU:$AA8A PRG:AA8A D0 F5
ldy #$00 ; CPU:$AA8C PRG:AA8C A0 00
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_OnNonzero3
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when OnNonzero3.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_OnNonzero3:
lda $074D,x ; CPU:$AA8E PRG:AA8E BD 4D 07
sta a:$00D7,y ; CPU:$AA91 PRG:AA91 99 D7 00
iny ; CPU:$AA94 PRG:AA94 C8
inx ; CPU:$AA95 PRG:AA95 E8
cpx #$54 ; CPU:$AA96 PRG:AA96 E0 54
bne Bank5_Bank5_ReadSoundTable_OnNonzero3 ; CPU:$AA98 PRG:AA98 D0 F4
lda $074D ; CPU:$AA9A PRG:AA9A AD 4D 07
sta $0700 ; CPU:$AA9D PRG:AA9D 8D 00 07
sta APUSTATUS ; CPU:$AAA0 PRG:AAA0 8D 15 40
lda #$00 ; CPU:$AAA3 PRG:AAA3 A9 00
sta $07A1 ; CPU:$AAA5 PRG:AAA5 8D A1 07
rts ; CPU:$AAA8 PRG:AAA8 60
; ---- data $AAA9-$AAF0 (72 bytes) ----
; referenced by `lda $AAEC,x` at $AB16 (operand $AAEC falls inside this region)
.byte $8E, $A2, $07, $8C, $A3, $07, $AD, $A1, $07, $F0, $01, $60, $AD, $00, $07, $8D ; CPU:$AAA9 PRG:AAA9 8E A2 07 8C A3 07 AD A1 07 F0 01 60 AD 00 07 8D
.byte $4D, $07, $A9, $00, $8D, $00, $07, $8D, $15, $40, $A2, $01, $BD, $00, $07, $9D ; CPU:$AAB9 PRG:AAB9 4D 07 A9 00 8D 00 07 8D 15 40 A2 01 BD 00 07 9D
.byte $4D, $07, $E8, $E0, $4E, $D0, $F5, $A0, $00, $B9, $D7, $00, $9D, $4D, $07, $C8 ; CPU:$AAC9 PRG:AAC9 4D 07 E8 E0 4E D0 F5 A0 00 B9 D7 00 9D 4D 07 C8
.byte $E8, $E0, $54, $D0, $F4, $A9, $FF, $8D, $A1, $07, $AE, $A2, $07, $AC, $A3, $07 ; CPU:$AAD9 PRG:AAD9 E8 E0 54 D0 F4 A9 FF 8D A1 07 AE A2 07 AC A3 07
.byte $4C, $5B, $A7, $01, $02, $04, $08, $10 ; CPU:$AAE9 PRG:AAE9 4C 5B A7 01 02 04 08 10
; -----------------------------------------------------------------------------
; Routine: Bank5_Sub_AAF1
; Global: Branch target inside Bank5_Sub: taken when AAF1.
; Local: Part of Bank5_Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Sub_AAF1:
pha ; CPU:$AAF1 PRG:AAF1 48
txa ; CPU:$AAF2 PRG:AAF2 8A
pha ; CPU:$AAF3 PRG:AAF3 48
tya ; CPU:$AAF4 PRG:AAF4 98
pha ; CPU:$AAF5 PRG:AAF5 48
lda ZpE3 ; CPU:$AAF6 PRG:AAF6 A5 E3
beq Bank5_Bank5_ReadSoundTable_Loop34 ; CPU:$AAF8 PRG:AAF8 F0 4C
lda #$0F ; CPU:$AAFA PRG:AAFA A9 0F
sta APUSTATUS ; CPU:$AAFC PRG:AAFC 8D 15 40
lda #$00 ; CPU:$AAFF PRG:AAFF A9 00
sta ZpD6 ; CPU:$AB01 PRG:AB01 85 D6
lda ZpE2 ; CPU:$AB03 PRG:AB03 A5 E2
asl a ; CPU:$AB05 PRG:AB05 0A
tax ; CPU:$AB06 PRG:AB06 AA
lda $AB6D,x ; CPU:$AB07 PRG:AB07 BD 6D AB
sta ZpDF ; CPU:$AB0A PRG:AB0A 85 DF
lda $AB6E,x ; CPU:$AB0C PRG:AB0C BD 6E AB
sta ZpE0 ; CPU:$AB0F PRG:AB0F 85 E0
; -----------------------------------------------------------------------------
; Routine: Bank5_Sub_AB11
; Global: Branch target inside Bank5_Sub: taken when AB11.
; Local: Part of Bank5_Sub.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Sub_AB11:
ldy #$00 ; CPU:$AB11 PRG:AB11 A0 00
lda (ZpDF),y ; CPU:$AB13 PRG:AB13 B1 DF
tax ; CPU:$AB15 PRG:AB15 AA
lda $AAEC,x ; CPU:$AB16 PRG:AB16 BD EC AA
ora ZpD6 ; CPU:$AB19 PRG:AB19 05 D6
sta ZpD6 ; CPU:$AB1B PRG:AB1B 85 D6
lda #$0F ; CPU:$AB1D PRG:AB1D A9 0F
sta APUSTATUS ; CPU:$AB1F PRG:AB1F 8D 15 40
txa ; CPU:$AB22 PRG:AB22 8A
asl a ; CPU:$AB23 PRG:AB23 0A
asl a ; CPU:$AB24 PRG:AB24 0A
tax ; CPU:$AB25 PRG:AB25 AA
iny ; CPU:$AB26 PRG:AB26 C8
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_OnNonzero4
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when OnNonzero4.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_OnNonzero4:
lda (ZpDF),y ; CPU:$AB27 PRG:AB27 B1 DF
sta APUPULSE1CTRL,x ; CPU:$AB29 PRG:AB29 9D 00 40
inx ; CPU:$AB2C PRG:AB2C E8
iny ; CPU:$AB2D PRG:AB2D C8
cpy #$05 ; CPU:$AB2E PRG:AB2E C0 05
bne Bank5_Bank5_ReadSoundTable_OnNonzero4 ; CPU:$AB30 PRG:AB30 D0 F5
lda (ZpDF),y ; CPU:$AB32 PRG:AB32 B1 DF
cmp #$FF ; CPU:$AB34 PRG:AB34 C9 FF
beq Bank5_Bank5_ReadSoundTable_Loop34 ; CPU:$AB36 PRG:AB36 F0 0E
clc ; CPU:$AB38 PRG:AB38 18
lda ZpDF ; CPU:$AB39 PRG:AB39 A5 DF
adc #$05 ; CPU:$AB3B PRG:AB3B 69 05
sta ZpDF ; CPU:$AB3D PRG:AB3D 85 DF
bcc Bank5_Bank5_ReadSoundTable_Loop33 ; CPU:$AB3F PRG:AB3F 90 02
inc ZpE0 ; CPU:$AB41 PRG:AB41 E6 E0
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop33
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop33.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop33:
jmp Bank5_Sub_AB11 ; CPU:$AB43 PRG:AB43 4C 11 AB
; -----------------------------------------------------------------------------
; Routine: Bank5_Bank5_ReadSoundTable_Loop34
; Global: Branch target inside Bank5_Bank5_ReadSoundTable: taken when Loop34.
; Local: Part of Bank5_Bank5_ReadSoundTable.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_Bank5_ReadSoundTable_Loop34:
lda #$00 ; CPU:$AB46 PRG:AB46 A9 00
sta ZpE3 ; CPU:$AB48 PRG:AB48 85 E3
pla ; CPU:$AB4A PRG:AB4A 68
tay ; CPU:$AB4B PRG:AB4B A8
pla ; CPU:$AB4C PRG:AB4C 68
tax ; CPU:$AB4D PRG:AB4D AA
pla ; CPU:$AB4E PRG:AB4E 68
rts ; CPU:$AB4F PRG:AB4F 60
; -----------------------------------------------------------------------------
; Routine: Bank5_SetSoundMode
; Global: Turns the sound channels on in the second half.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank5_SetSoundMode:
lda #$04 ; CPU:$AB50 PRG:AB50 A9 04
sta ZpE2 ; CPU:$AB52 PRG:AB52 85 E2
lda #$01 ; CPU:$AB54 PRG:AB54 A9 01
sta ZpE3 ; CPU:$AB56 PRG:AB56 85 E3
jmp Bank5_Sub_AAF1 ; CPU:$AB58 PRG:AB58 4C F1 AA
; ---- data $AB5B-$BFFF (5285 bytes) ----
; referenced by `lda $AB5B,x` at $A72E (operand $AB5B falls inside this region)
; referenced by `lda $AB5C,x` at $A733 (operand $AB5C falls inside this region)
; referenced by `lda $AB6D,x` at $AB07 (operand $AB6D falls inside this region)
; referenced by `lda $AB6E,x` at $AB0C (operand $AB6E falls inside this region)
.byte $65, $B0, $32, $B3, $4C, $BB, $9D, $AB, $AC, $B7, $E5, $AE, $52, $B9, $A6, $BA ; CPU:$AB5B PRG:AB5B 65 B0 32 B3 4C BB 9D AB AC B7 E5 AE 52 B9 A6 BA
.byte $56, $C0, $79, $AB, $7F, $AB, $85, $AB, $8B, $AB, $91, $AB, $97, $AB, $01, $44 ; CPU:$AB6B PRG:AB6B 56 C0 79 AB 7F AB 85 AB 8B AB 91 AB 97 AB 01 44
.byte $9C, $C8, $C0, $FF, $01, $09, $AB, $3B, $C1, $FF, $01, $40, $80, $4A, $28, $FF ; CPU:$AB7B PRG:AB7B 9C C8 C0 FF 01 09 AB 3B C1 FF 01 40 80 4A 28 FF
.byte $01, $40, $80, $63, $28, $FF, $01, $5F, $A4, $3D, $C0, $FF, $01, $5E, $DB, $8C ; CPU:$AB8B PRG:AB8B 01 40 80 63 28 FF 01 5F A4 3D C0 FF 01 5E DB 8C
.byte $43, $FF, $A7, $AB, $99, $AC, $65, $AD, $09, $AE, $02, $0F, $82, $04, $84, $18 ; CPU:$AB9B PRG:AB9B 43 FF A7 AB 99 AC 65 AD 09 AE 02 0F 82 04 84 18
.byte $87, $F0, $8F, $0B, $8D, $06, $8E, $02, $18, $00, $02, $00, $02, $1D, $02, $1E ; CPU:$ABAB PRG:ABAB 87 F0 8F 0B 8D 06 8E 02 18 00 02 00 02 1D 02 1E
.byte $02, $1F, $02, $20, $04, $29, $02, $20, $04, $29, $02, $20, $06, $22, $08, $2A ; CPU:$ABBB PRG:ABBB 02 1F 02 20 04 29 02 20 04 29 02 20 06 22 08 2A
.byte $02, $22, $02, $21, $02, $20, $04, $29, $02, $20, $04, $29, $02, $20, $06, $22 ; CPU:$ABCB PRG:ABCB 02 22 02 21 02 20 04 29 02 20 04 29 02 20 06 22
.byte $08, $2A, $02, $22, $02, $21, $02, $20, $04, $29, $02, $20, $04, $29, $04, $20 ; CPU:$ABDB PRG:ABDB 08 2A 02 22 02 21 02 20 04 29 02 20 04 29 04 20
.byte $02, $1E, $04, $27, $02, $1E, $02, $1E, $04, $27, $12, $25, $82, $5A, $8F, $0C ; CPU:$ABEB PRG:ABEB 02 1E 04 27 02 1E 02 1E 04 27 12 25 82 5A 8F 0C
.byte $0C, $00, $02, $20, $02, $21, $03, $22, $01, $24, $02, $25, $06, $25, $02, $24 ; CPU:$ABFB PRG:ABFB 0C 00 02 20 02 21 03 22 01 24 02 25 06 25 02 24
.byte $02, $25, $04, $27, $08, $25, $02, $24, $02, $25, $03, $29, $01, $28, $02, $29 ; CPU:$AC0B PRG:AC0B 02 25 04 27 08 25 02 24 02 25 03 29 01 28 02 29
.byte $04, $2C, $02, $29, $02, $25, $02, $20, $06, $23, $06, $22, $04, $20, $03, $1E ; CPU:$AC1B PRG:AC1B 04 2C 02 29 02 25 02 20 06 23 06 22 04 20 03 1E
.byte $01, $1D, $02, $1E, $02, $20, $02, $22, $04, $2A, $01, $24, $01, $25, $03, $29 ; CPU:$AC2B PRG:AC2B 01 1D 02 1E 02 20 02 22 04 2A 01 24 01 25 03 29
.byte $01, $28, $02, $29, $06, $2E, $81, $95, $03, $29, $01, $00, $81, $00, $10, $27 ; CPU:$AC3B PRG:AC3B 01 28 02 29 06 2E 81 95 03 29 01 00 81 00 10 27
.byte $82, $08, $8F, $0F, $08, $00, $02, $00, $02, $1D, $02, $1E, $02, $1F, $02, $20 ; CPU:$AC4B PRG:AC4B 82 08 8F 0F 08 00 02 00 02 1D 02 1E 02 1F 02 20
.byte $04, $29, $02, $20, $04, $29, $02, $20, $06, $22, $08, $2A, $02, $22, $02, $21 ; CPU:$AC5B PRG:AC5B 04 29 02 20 04 29 02 20 06 22 08 2A 02 22 02 21
.byte $02, $20, $04, $29, $02, $20, $04, $29, $02, $20, $06, $22, $08, $2A, $02, $22 ; CPU:$AC6B PRG:AC6B 02 20 04 29 02 20 04 29 02 20 06 22 08 2A 02 22
.byte $02, $21, $02, $20, $04, $29, $02, $20, $04, $29, $04, $20, $03, $1E, $01, $1D ; CPU:$AC7B PRG:AC7B 02 21 02 20 04 29 02 20 04 29 04 20 03 1E 01 1D
.byte $02, $1E, $06, $27, $14, $25, $8A, $8B, $50, $00, $8C, $50, $00, $89, $82, $04 ; CPU:$AC8B PRG:AC8B 02 1E 06 27 14 25 8A 8B 50 00 8C 50 00 89 82 04
.byte $84, $18, $87, $F0, $8F, $04, $8E, $02, $40, $00, $04, $1D, $04, $00, $04, $19 ; CPU:$AC9B PRG:AC9B 84 18 87 F0 8F 04 8E 02 40 00 04 1D 04 00 04 19
.byte $04, $14, $04, $12, $04, $1B, $08, $00, $04, $1D, $04, $00, $04, $19, $04, $14 ; CPU:$ACAB PRG:ACAB 04 14 04 12 04 1B 08 00 04 1D 04 00 04 19 04 14
.byte $04, $12, $04, $1B, $04, $00, $04, $12, $04, $11, $04, $19, $08, $00, $82, $5A ; CPU:$ACBB PRG:ACBB 04 12 04 1B 04 00 04 12 04 11 04 19 08 00 82 5A
.byte $8F, $0A, $0C, $00, $04, $19, $03, $1E, $01, $20, $02, $22, $06, $1E, $02, $1D ; CPU:$ACCB PRG:ACCB 8F 0A 0C 00 04 19 03 1E 01 20 02 22 06 1E 02 1D
.byte $02, $1E, $04, $1F, $08, $22, $02, $1B, $02, $19, $03, $20, $01, $1F, $02, $20 ; CPU:$ACDB PRG:ACDB 02 1E 04 1F 08 22 02 1B 02 19 03 20 01 1F 02 20
.byte $04, $25, $02, $25, $02, $20, $02, $1D, $04, $20, $02, $1B, $06, $1A, $04, $1D ; CPU:$ACEB PRG:ACEB 04 25 02 25 02 20 02 1D 04 20 02 1B 06 1A 04 1D
.byte $03, $1B, $01, $1D, $02, $1B, $02, $1D, $02, $1E, $04, $22, $01, $21, $01, $22 ; CPU:$ACFB PRG:ACFB 03 1B 01 1D 02 1B 02 1D 02 1E 04 22 01 21 01 22
.byte $08, $25, $04, $1D, $04, $20, $06, $22, $06, $23, $04, $24, $82, $04, $8F, $0D ; CPU:$AD0B PRG:AD0B 08 25 04 1D 04 20 06 22 06 23 04 24 82 04 8F 0D
.byte $08, $00, $02, $00, $02, $1D, $02, $1E, $02, $1F, $02, $1D, $04, $20, $02, $1D ; CPU:$AD1B PRG:AD1B 08 00 02 00 02 1D 02 1E 02 1F 02 1D 04 20 02 1D
.byte $04, $20, $02, $1D, $06, $1E, $08, $22, $02, $22, $02, $21, $02, $1D, $04, $20 ; CPU:$AD2B PRG:AD2B 04 20 02 1D 06 1E 08 22 02 22 02 21 02 1D 04 20
.byte $02, $1D, $04, $20, $02, $1D, $06, $1E, $08, $22, $02, $22, $02, $21, $02, $1D ; CPU:$AD3B PRG:AD3B 02 1D 04 20 02 1D 06 1E 08 22 02 22 02 21 02 1D
.byte $04, $20, $02, $1D, $04, $20, $04, $1D, $03, $16, $01, $15, $02, $16, $06, $1E ; CPU:$AD4B PRG:AD4B 04 20 02 1D 04 20 04 1D 03 16 01 15 02 16 06 1E
.byte $14, $1D, $8A, $8B, $30, $00, $8C, $30, $00, $89, $82, $1E, $8F, $08, $8E, $02 ; CPU:$AD5B PRG:AD5B 14 1D 8A 8B 30 00 8C 30 00 89 82 1E 8F 08 8E 02
.byte $40, $00, $20, $00, $0C, $19, $04, $19, $0C, $14, $04, $14, $10, $19, $0C, $00 ; CPU:$AD6B PRG:AD6B 40 00 20 00 0C 19 04 19 0C 14 04 14 10 19 0C 00
.byte $04, $19, $8F, $0A, $06, $1E, $02, $1E, $06, $1E, $02, $1E, $06, $1F, $02, $1F ; CPU:$AD7B PRG:AD7B 04 19 8F 0A 06 1E 02 1E 06 1E 02 1E 06 1F 02 1F
.byte $06, $1F, $02, $1F, $06, $20, $02, $20, $06, $20, $02, $20, $06, $20, $06, $22 ; CPU:$AD8B PRG:AD8B 06 1F 02 1F 06 20 02 20 06 20 02 20 06 20 06 22
.byte $04, $1D, $06, $1B, $02, $1B, $06, $1B, $02, $1B, $06, $14, $02, $14, $04, $14 ; CPU:$AD9B PRG:AD9B 04 1D 06 1B 02 1B 06 1B 02 1B 06 14 02 14 04 14
.byte $04, $14, $06, $20, $06, $20, $04, $20, $8F, $0E, $0C, $00, $04, $20, $04, $19 ; CPU:$ADAB PRG:ADAB 04 14 06 20 06 20 04 20 8F 0E 0C 00 04 20 04 19
.byte $02, $11, $02, $14, $04, $19, $04, $1D, $04, $1E, $02, $16, $02, $19, $04, $1E ; CPU:$ADBB PRG:ADBB 02 11 02 14 04 19 04 1D 04 1E 02 16 02 19 04 1E
.byte $04, $1E, $04, $19, $02, $11, $02, $14, $04, $19, $04, $1D, $04, $1E, $02, $16 ; CPU:$ADCB PRG:ADCB 04 1E 04 19 02 11 02 14 04 19 04 1D 04 1E 02 16
.byte $02, $19, $04, $1E, $04, $1E, $04, $19, $02, $11, $02, $14, $04, $19, $04, $19 ; CPU:$ADDB PRG:ADDB 02 19 04 1E 04 1E 04 19 02 11 02 14 04 19 04 19
.byte $04, $12, $04, $12, $04, $14, $04, $14, $04, $19, $02, $11, $02, $14, $04, $19 ; CPU:$ADEB PRG:ADEB 04 12 04 12 04 14 04 14 04 19 02 11 02 14 04 19
.byte $04, $14, $0C, $19, $04, $19, $8A, $8B, $18, $00, $8C, $18, $00, $89, $8F, $06 ; CPU:$ADFB PRG:ADFB 04 14 0C 19 04 19 8A 8B 18 00 8C 18 00 89 8F 06
.byte $8E, $03, $04, $44, $04, $44, $04, $44, $04, $44, $02, $3F, $02, $44, $02, $3F ; CPU:$AE0B PRG:AE0B 8E 03 04 44 04 44 04 44 04 44 02 3F 02 44 02 3F
.byte $02, $44, $02, $3F, $02, $44, $02, $3F, $02, $44, $8F, $0B, $02, $3F, $01, $44 ; CPU:$AE1B PRG:AE1B 02 44 02 3F 02 44 02 3F 02 44 8F 0B 02 3F 01 44
.byte $01, $44, $02, $3F, $01, $44, $01, $44, $02, $3F, $01, $44, $01, $44, $02, $3F ; CPU:$AE2B PRG:AE2B 01 44 02 3F 01 44 01 44 02 3F 01 44 01 44 02 3F
.byte $01, $44, $01, $44, $02, $3F, $01, $44, $01, $44, $02, $3F, $01, $44, $01, $44 ; CPU:$AE3B PRG:AE3B 01 44 01 44 02 3F 01 44 01 44 02 3F 01 44 01 44
.byte $02, $3F, $01, $44, $01, $44, $02, $3F, $01, $44, $01, $44, $02, $3F, $01, $44 ; CPU:$AE4B PRG:AE4B 02 3F 01 44 01 44 02 3F 01 44 01 44 02 3F 01 44
.byte $01, $44, $02, $3F, $01, $44, $01, $44, $02, $3F, $01, $44, $01, $44, $02, $3F ; CPU:$AE5B PRG:AE5B 01 44 02 3F 01 44 01 44 02 3F 01 44 01 44 02 3F
.byte $01, $44, $01, $44, $02, $3F, $01, $44, $01, $44, $02, $3F, $01, $44, $01, $44 ; CPU:$AE6B PRG:AE6B 01 44 01 44 02 3F 01 44 01 44 02 3F 01 44 01 44
.byte $02, $3F, $01, $44, $01, $44, $02, $3F, $01, $44, $01, $44, $02, $3F, $01, $44 ; CPU:$AE7B PRG:AE7B 02 3F 01 44 01 44 02 3F 01 44 01 44 02 3F 01 44
.byte $01, $44, $02, $3F, $01, $44, $01, $44, $02, $3F, $01, $44, $01, $44, $02, $3F ; CPU:$AE8B PRG:AE8B 01 44 02 3F 01 44 01 44 02 3F 01 44 01 44 02 3F
.byte $01, $44, $01, $44, $02, $3F, $01, $44, $01, $44, $02, $3F, $01, $44, $01, $44 ; CPU:$AE9B PRG:AE9B 01 44 01 44 02 3F 01 44 01 44 02 3F 01 44 01 44
.byte $02, $3F, $01, $44, $01, $44, $02, $3F, $01, $44, $01, $44, $8F, $0C, $02, $40 ; CPU:$AEAB PRG:AEAB 02 3F 01 44 01 44 02 3F 01 44 01 44 8F 0C 02 40
.byte $02, $40, $02, $44, $02, $40, $02, $40, $02, $40, $02, $44, $02, $40, $02, $40 ; CPU:$AEBB PRG:AEBB 02 40 02 44 02 40 02 40 02 40 02 44 02 40 02 40
.byte $02, $40, $02, $44, $02, $40, $02, $40, $02, $40, $01, $44, $01, $42, $01, $44 ; CPU:$AECB PRG:AECB 02 40 02 44 02 40 02 40 02 40 01 44 01 42 01 44
.byte $01, $42, $8A, $8B, $AE, $00, $8C, $AE, $00, $89, $EF, $AE, $84, $AF, $D6, $AF ; CPU:$AEDB PRG:AEDB 01 42 8A 8B AE 00 8C AE 00 89 EF AE 84 AF D6 AF
.byte $2A, $B0, $02, $0F, $82, $BB, $84, $18, $87, $F0, $8F, $0D, $8E, $05, $8D, $02 ; CPU:$AEEB PRG:AEEB 2A B0 02 0F 82 BB 84 18 87 F0 8F 0D 8E 05 8D 02
.byte $06, $1D, $06, $1B, $06, $19, $12, $1B, $0C, $19, $06, $1D, $06, $1B, $06, $19 ; CPU:$AEFB PRG:AEFB 06 1D 06 1B 06 19 12 1B 0C 19 06 1D 06 1B 06 19
.byte $12, $1B, $0C, $19, $08, $1D, $08, $1B, $08, $19, $08, $1D, $08, $20, $08, $1E ; CPU:$AF0B PRG:AF0B 12 1B 0C 19 08 1D 08 1B 08 19 08 1D 08 20 08 1E
.byte $24, $1D, $06, $1B, $06, $19, $06, $1D, $06, $1B, $06, $19, $12, $1B, $0C, $19 ; CPU:$AF1B PRG:AF1B 24 1D 06 1B 06 19 06 1D 06 1B 06 19 12 1B 0C 19
.byte $06, $1D, $06, $1B, $06, $19, $12, $1B, $0C, $19, $30, $19, $12, $12, $12, $14 ; CPU:$AF2B PRG:AF2B 06 1D 06 1B 06 19 12 1B 0C 19 30 19 12 12 12 14
.byte $0C, $12, $06, $1D, $06, $1B, $06, $19, $12, $1B, $0C, $19, $06, $1D, $06, $1B ; CPU:$AF3B PRG:AF3B 0C 12 06 1D 06 1B 06 19 12 1B 0C 19 06 1D 06 1B
.byte $06, $19, $12, $1B, $0C, $19, $08, $1D, $08, $1B, $08, $19, $08, $1D, $08, $20 ; CPU:$AF4B PRG:AF4B 06 19 12 1B 0C 19 08 1D 08 1B 08 19 08 1D 08 20
.byte $08, $25, $24, $23, $06, $22, $06, $20, $06, $22, $06, $20, $06, $1E, $0C, $19 ; CPU:$AF5B PRG:AF5B 08 25 24 23 06 22 06 20 06 22 06 20 06 1E 0C 19
.byte $0C, $18, $06, $19, $06, $1E, $06, $1D, $06, $1B, $12, $19, $0C, $18, $30, $19 ; CPU:$AF6B PRG:AF6B 0C 18 06 19 06 1E 06 1D 06 1B 12 19 0C 18 30 19
.byte $06, $12, $0C, $14, $0C, $16, $12, $18, $88, $82, $05, $84, $18, $87, $80, $8F ; CPU:$AF7B PRG:AF7B 06 12 0C 14 0C 16 12 18 88 82 05 84 18 87 80 8F
.byte $04, $8E, $05, $12, $14, $06, $14, $12, $14, $06, $14, $12, $15, $06, $15, $12 ; CPU:$AF8B PRG:AF8B 04 8E 05 12 14 06 14 12 14 06 14 12 15 06 15 12
.byte $15, $06, $15, $12, $16, $06, $16, $12, $16, $06, $16, $12, $17, $06, $17, $12 ; CPU:$AF9B PRG:AF9B 15 06 15 12 16 06 16 12 16 06 16 12 17 06 17 12
.byte $17, $06, $17, $12, $16, $06, $16, $12, $16, $06, $16, $12, $15, $06, $15, $12 ; CPU:$AFAB PRG:AFAB 17 06 17 12 16 06 16 12 16 06 16 12 15 06 15 12
.byte $15, $06, $15, $30, $14, $8A, $12, $16, $12, $18, $0C, $16, $8B, $49, $00, $8C ; CPU:$AFBB PRG:AFBB 15 06 15 30 14 8A 12 16 12 18 0C 16 8B 49 00 8C
.byte $0A, $00, $06, $16, $0C, $18, $0C, $19, $12, $1B, $88, $82, $3A, $8F, $0A, $8E ; CPU:$AFCB PRG:AFCB 0A 00 06 16 0C 18 0C 19 12 1B 88 82 3A 8F 0A 8E
.byte $05, $12, $19, $06, $19, $12, $19, $06, $19, $12, $19, $06, $19, $12, $19, $06 ; CPU:$AFDB PRG:AFDB 05 12 19 06 19 12 19 06 19 12 19 06 19 12 19 06
.byte $19, $12, $19, $06, $19, $12, $19, $06, $19, $12, $19, $06, $19, $12, $19, $06 ; CPU:$AFEB PRG:AFEB 19 12 19 06 19 12 19 06 19 12 19 06 19 12 19 06
.byte $19, $12, $1E, $06, $1E, $12, $1E, $06, $1E, $12, $1E, $06, $1E, $12, $1E, $06 ; CPU:$AFFB PRG:AFFB 19 12 1E 06 1E 12 1E 06 1E 12 1E 06 1E 12 1E 06
.byte $1E, $12, $19, $06, $19, $12, $19, $06, $19, $8A, $12, $1E, $12, $20, $0C, $1E ; CPU:$B00B PRG:B00B 1E 12 19 06 19 12 19 06 19 8A 12 1E 12 20 0C 1E
.byte $8B, $4B, $00, $8C, $06, $00, $06, $1E, $0C, $20, $0C, $1E, $12, $20, $88, $8F ; CPU:$B01B PRG:B01B 8B 4B 00 8C 06 00 06 1E 0C 20 0C 1E 12 20 88 8F
.byte $0B, $8E, $05, $06, $41, $06, $41, $06, $41, $0C, $40, $0C, $42, $06, $40, $06 ; CPU:$B02B PRG:B02B 0B 8E 05 06 41 06 41 06 41 0C 40 0C 42 06 40 06
.byte $41, $06, $41, $06, $41, $06, $41, $06, $41, $06, $41, $06, $43, $06, $41, $08 ; CPU:$B03B PRG:B03B 41 06 41 06 41 06 41 06 41 06 41 06 43 06 41 08
.byte $40, $08, $40, $08, $40, $08, $42, $08, $44, $08, $42, $06, $41, $06, $41, $06 ; CPU:$B04B PRG:B04B 40 08 40 08 40 08 42 08 44 08 42 06 41 06 41 06
.byte $41, $0C, $43, $06, $42, $06, $42, $06, $41, $88, $6F, $B0, $6E, $B1, $3F, $B2 ; CPU:$B05B PRG:B05B 41 0C 43 06 42 06 42 06 41 88 6F B0 6E B1 3F B2
.byte $F0, $B2, $02, $0F, $82, $04, $84, $0C, $87, $D0, $8F, $0C, $8E, $03, $8D, $06 ; CPU:$B06B PRG:B06B F0 B2 02 0F 82 04 84 0C 87 D0 8F 0C 8E 03 8D 06
.byte $06, $0D, $06, $16, $04, $14, $06, $0F, $06, $16, $04, $14, $06, $0D, $06, $16 ; CPU:$B07B PRG:B07B 06 0D 06 16 04 14 06 0F 06 16 04 14 06 0D 06 16
.byte $04, $14, $06, $0F, $06, $16, $82, $5A, $02, $1D, $02, $1E, $10, $20, $04, $00 ; CPU:$B08B PRG:B08B 04 14 06 0F 06 16 82 5A 02 1D 02 1E 10 20 04 00
.byte $02, $1E, $02, $1D, $02, $1E, $02, $1D, $02, $1B, $02, $19, $06, $1D, $0A, $20 ; CPU:$B09B PRG:B09B 02 1E 02 1D 02 1E 02 1D 02 1B 02 19 06 1D 0A 20
.byte $04, $00, $02, $1E, $02, $1D, $02, $1E, $02, $1D, $02, $1B, $02, $19, $02, $1B ; CPU:$B0AB PRG:B0AB 04 00 02 1E 02 1D 02 1E 02 1D 02 1B 02 19 02 1B
.byte $02, $1D, $0C, $19, $04, $00, $02, $1E, $02, $1D, $02, $1E, $02, $1D, $02, $1B ; CPU:$B0BB PRG:B0BB 02 1D 0C 19 04 00 02 1E 02 1D 02 1E 02 1D 02 1B
.byte $02, $19, $10, $00, $0C, $00, $8A, $8B, $69, $00, $8C, $22, $00, $8E, $05, $8A ; CPU:$B0CB PRG:B0CB 02 19 10 00 0C 00 8A 8B 69 00 8C 22 00 8E 05 8A
.byte $8B, $72, $00, $8C, $22, $00, $8E, $07, $8A, $8B, $7B, $00, $8C, $22, $00, $04 ; CPU:$B0DB PRG:B0DB 8B 72 00 8C 22 00 8E 07 8A 8B 7B 00 8C 22 00 04
.byte $14, $10, $1D, $04, $00, $03, $1E, $01, $1D, $02, $1E, $04, $22, $12, $20, $04 ; CPU:$B0EB PRG:B0EB 14 10 1D 04 00 03 1E 01 1D 02 1E 04 22 12 20 04
.byte $00, $03, $1E, $01, $1D, $03, $1E, $01, $1D, $02, $1B, $02, $19, $10, $1D, $04 ; CPU:$B0FB PRG:B0FB 00 03 1E 01 1D 03 1E 01 1D 02 1B 02 19 10 1D 04
.byte $00, $04, $1E, $03, $1D, $01, $1E, $02, $1B, $12, $19, $04, $00, $04, $25, $03 ; CPU:$B10B PRG:B10B 00 04 1E 03 1D 01 1E 02 1B 12 19 04 00 04 25 03
.byte $24, $01, $25, $02, $22, $12, $20, $04, $00, $04, $25, $03, $24, $01, $25, $02 ; CPU:$B11B PRG:B11B 24 01 25 02 22 12 20 04 00 04 25 03 24 01 25 02
.byte $22, $12, $20, $04, $00, $03, $1E, $01, $1D, $02, $1E, $04, $22, $12, $20, $04 ; CPU:$B12B PRG:B12B 22 12 20 04 00 03 1E 01 1D 02 1E 04 22 12 20 04
.byte $00, $04, $1E, $03, $1D, $01, $1E, $02, $1B, $1E, $19, $8E, $08, $8A, $8B, $E0 ; CPU:$B13B PRG:B13B 00 04 1E 03 1D 01 1E 02 1B 1E 19 8E 08 8A 8B E0
.byte $00, $8C, $7B, $00, $04, $00, $8E, $03, $03, $29, $01, $28, $03, $29, $01, $2D ; CPU:$B14B PRG:B14B 00 8C 7B 00 04 00 8E 03 03 29 01 28 03 29 01 2D
.byte $03, $26, $01, $25, $03, $26, $01, $2B, $03, $25, $01, $24, $02, $25, $06, $2C ; CPU:$B15B PRG:B15B 03 26 01 25 03 26 01 2B 03 25 01 24 02 25 06 2C
.byte $04, $00, $88, $82, $04, $84, $02, $87, $18, $8F, $09, $8E, $03, $3C, $00, $04 ; CPU:$B16B PRG:B16B 04 00 88 82 04 84 02 87 18 8F 09 8E 03 3C 00 04
.byte $14, $02, $00, $06, $25, $04, $22, $02, $1D, $02, $1E, $04, $20, $0C, $00, $04 ; CPU:$B17B PRG:B17B 14 02 00 06 25 04 22 02 1D 02 1E 04 20 0C 00 04
.byte $00, $02, $1D, $02, $1B, $02, $1D, $04, $22, $02, $20, $10, $00, $04, $00, $02 ; CPU:$B18B PRG:B18B 00 02 1D 02 1B 02 1D 04 22 02 20 10 00 04 00 02
.byte $1D, $02, $1B, $02, $1D, $04, $20, $02, $20, $10, $00, $04, $00, $02, $1E, $02 ; CPU:$B19B PRG:B19B 1D 02 1B 02 1D 04 20 02 20 10 00 04 00 02 1E 02
.byte $1D, $02, $1E, $02, $1D, $02, $1B, $02, $19, $06, $1D, $06, $1B, $04, $00, $8A ; CPU:$B1AB PRG:B1AB 1D 02 1E 02 1D 02 1B 02 19 06 1D 06 1B 04 00 8A
.byte $8B, $53, $00, $8C, $0E, $00, $8E, $05, $8A, $8B, $5C, $00, $8C, $0E, $00, $8E ; CPU:$B1BB PRG:B1BB 8B 53 00 8C 0E 00 8E 05 8A 8B 5C 00 8C 0E 00 8E
.byte $07, $8A, $8B, $65, $00, $8C, $0E, $00, $04, $00, $04, $19, $03, $18, $01, $19 ; CPU:$B1CB PRG:B1CB 07 8A 8B 65 00 8C 0E 00 04 00 04 19 03 18 01 19
.byte $02, $16, $12, $14, $04, $00, $04, $19, $03, $18, $01, $19, $02, $16, $12, $14 ; CPU:$B1DB PRG:B1DB 02 16 12 14 04 00 04 19 03 18 01 19 02 16 12 14
.byte $04, $00, $03, $11, $01, $0F, $02, $11, $04, $16, $12, $14, $04, $00, $04, $19 ; CPU:$B1EB PRG:B1EB 04 00 03 11 01 0F 02 11 04 16 12 14 04 00 04 19
.byte $03, $18, $01, $19, $02, $16, $12, $14, $04, $00, $03, $11, $01, $0F, $02, $11 ; CPU:$B1FB PRG:B1FB 03 18 01 19 02 16 12 14 04 00 03 11 01 0F 02 11
.byte $04, $16, $12, $14, $04, $00, $03, $11, $01, $0F, $02, $11, $04, $16, $12, $14 ; CPU:$B20B PRG:B20B 04 16 12 14 04 00 03 11 01 0F 02 11 04 16 12 14
.byte $04, $00, $04, $19, $03, $18, $01, $19, $02, $16, $12, $14, $04, $00, $04, $1D ; CPU:$B21B PRG:B21B 04 00 04 19 03 18 01 19 02 16 12 14 04 00 04 1D
.byte $02, $1C, $06, $1B, $0C, $19, $04, $00, $8E, $08, $8A, $8B, $CE, $00, $8C, $65 ; CPU:$B22B PRG:B22B 02 1C 06 1B 0C 19 04 00 8E 08 8A 8B CE 00 8C 65
.byte $00, $20, $00, $88, $82, $44, $8F, $0A, $8E, $03, $40, $00, $06, $19, $06, $16 ; CPU:$B23B PRG:B23B 00 20 00 88 82 44 8F 0A 8E 03 40 00 06 19 06 16
.byte $04, $0F, $10, $14, $06, $19, $06, $16, $04, $0F, $10, $14, $06, $19, $06, $16 ; CPU:$B24B PRG:B24B 04 0F 10 14 06 19 06 16 04 0F 10 14 06 19 06 16
.byte $04, $0F, $10, $14, $06, $19, $06, $16, $04, $0F, $0C, $14, $04, $00, $8A, $8B ; CPU:$B25B PRG:B25B 04 0F 10 14 06 19 06 16 04 0F 0C 14 04 00 8A 8B
.byte $31, $00, $8C, $08, $00, $8E, $05, $8A, $8B, $3A, $00, $8C, $08, $00, $8E, $07 ; CPU:$B26B PRG:B26B 31 00 8C 08 00 8E 05 8A 8B 3A 00 8C 08 00 8E 07
.byte $8A, $8B, $43, $00, $8C, $08, $00, $06, $19, $06, $16, $04, $0F, $10, $14, $06 ; CPU:$B27B PRG:B27B 8A 8B 43 00 8C 08 00 06 19 06 16 04 0F 10 14 06
.byte $19, $06, $16, $04, $0F, $10, $14, $06, $19, $06, $16, $04, $0F, $10, $14, $06 ; CPU:$B28B PRG:B28B 19 06 16 04 0F 10 14 06 19 06 16 04 0F 10 14 06
.byte $19, $06, $16, $04, $0F, $10, $14, $06, $19, $06, $16, $04, $0F, $10, $14, $06 ; CPU:$B29B PRG:B29B 19 06 16 04 0F 10 14 06 19 06 16 04 0F 10 14 06
.byte $19, $06, $16, $04, $0F, $10, $14, $06, $19, $06, $16, $04, $0F, $10, $14, $04 ; CPU:$B2AB PRG:B2AB 19 06 16 04 0F 10 14 06 19 06 16 04 0F 10 14 04
.byte $00, $04, $14, $02, $17, $06, $18, $10, $19, $8E, $08, $8A, $8B, $8E, $00, $8C ; CPU:$B2BB PRG:B2BB 00 04 14 02 17 06 18 10 19 8E 08 8A 8B 8E 00 8C
.byte $43, $00, $8E, $03, $02, $15, $02, $00, $02, $15, $02, $00, $02, $13, $02, $00 ; CPU:$B2CB PRG:B2CB 43 00 8E 03 02 15 02 00 02 15 02 00 02 13 02 00
.byte $02, $13, $02, $00, $02, $14, $02, $00, $02, $14, $06, $00, $01, $14, $01, $15 ; CPU:$B2DB PRG:B2DB 02 13 02 00 02 14 02 00 02 14 06 00 01 14 01 15
.byte $01, $16, $01, $18, $88, $8F, $0A, $8E, $06, $06, $3D, $06, $3D, $04, $3D, $06 ; CPU:$B2EB PRG:B2EB 01 16 01 18 88 8F 0A 8E 06 06 3D 06 3D 04 3D 06
.byte $3D, $06, $3D, $04, $3D, $06, $3D, $06, $3D, $04, $3D, $06, $3D, $06, $3D, $04 ; CPU:$B2FB PRG:B2FB 3D 06 3D 04 3D 06 3D 06 3D 04 3D 06 3D 06 3D 04
.byte $3D, $04, $3E, $02, $3F, $04, $3F, $02, $3F, $02, $3F, $02, $3F, $02, $3E, $02 ; CPU:$B30B PRG:B30B 3D 04 3E 02 3F 04 3F 02 3F 02 3F 02 3F 02 3E 02
.byte $3E, $02, $41, $02, $3E, $02, $3F, $02, $3F, $01, $41, $01, $41, $02, $3F, $8A ; CPU:$B31B PRG:B31B 3E 02 41 02 3E 02 3F 02 3F 01 41 01 41 02 3F 8A
.byte $8B, $1C, $00, $8C, $1C, $00, $89, $3C, $B3, $20, $B5, $DE, $B6, $66, $B7, $02 ; CPU:$B32B PRG:B32B 8B 1C 00 8C 1C 00 89 3C B3 20 B5 DE B6 66 B7 02
.byte $0F, $82, $96, $84, $18, $87, $F0, $8E, $09, $8D, $06, $8F, $0D, $08, $0D, $08 ; CPU:$B33B PRG:B33B 0F 82 96 84 18 87 F0 8E 09 8D 06 8F 0D 08 0D 08
.byte $0A, $06, $0F, $04, $08, $02, $08, $02, $0A, $02, $0C, $04, $0D, $04, $0D, $04 ; CPU:$B34B PRG:B34B 0A 06 0F 04 08 02 08 02 0A 02 0C 04 0D 04 0D 04
.byte $0A, $04, $0A, $04, $0F, $02, $0F, $04, $08, $02, $08, $02, $0A, $02, $0C, $82 ; CPU:$B35B PRG:B35B 0A 04 0A 04 0F 02 0F 04 08 02 08 02 0A 02 0C 82
.byte $08, $01, $1C, $03, $1D, $04, $1D, $08, $1D, $02, $00, $02, $1B, $02, $1D, $02 ; CPU:$B36B PRG:B36B 08 01 1C 03 1D 04 1D 08 1D 02 00 02 1B 02 1D 02
.byte $1E, $04, $1D, $04, $1B, $06, $19, $0A, $14, $02, $00, $02, $1B, $02, $1D, $02 ; CPU:$B37B PRG:B37B 1E 04 1D 04 1B 06 19 0A 14 02 00 02 1B 02 1D 02
.byte $1E, $04, $1D, $04, $1B, $06, $1D, $0A, $20, $02, $00, $02, $1B, $02, $1D, $02 ; CPU:$B38B PRG:B38B 1E 04 1D 04 1B 06 1D 0A 20 02 00 02 1B 02 1D 02
.byte $1E, $04, $1D, $04, $1B, $10, $19, $10, $00, $01, $1F, $03, $20, $04, $20, $08 ; CPU:$B39B PRG:B39B 1E 04 1D 04 1B 10 19 10 00 01 1F 03 20 04 20 08
.byte $20, $02, $00, $02, $22, $02, $24, $02, $25, $04, $24, $04, $22, $02, $1F, $04 ; CPU:$B3AB PRG:B3AB 20 02 00 02 22 02 24 02 25 04 24 04 22 02 1F 04
.byte $20, $0A, $1D, $02, $00, $02, $22, $02, $24, $02, $25, $04, $24, $04, $22, $02 ; CPU:$B3BB PRG:B3BB 20 0A 1D 02 00 02 22 02 24 02 25 04 24 04 22 02
.byte $1F, $04, $20, $0A, $19, $02, $00, $02, $1B, $02, $1D, $02, $1E, $04, $1D, $04 ; CPU:$B3CB PRG:B3CB 1F 04 20 0A 19 02 00 02 1B 02 1D 02 1E 04 1D 04
.byte $1B, $10, $19, $10, $00, $04, $00, $03, $1D, $01, $1E, $02, $20, $06, $25, $02 ; CPU:$B3DB PRG:B3DB 1B 10 19 10 00 04 00 03 1D 01 1E 02 20 06 25 02
.byte $00, $02, $1E, $02, $20, $02, $22, $04, $20, $04, $1E, $06, $20, $0A, $19, $02 ; CPU:$B3EB PRG:B3EB 00 02 1E 02 20 02 22 04 20 04 1E 06 20 0A 19 02
.byte $00, $02, $1E, $02, $20, $02, $22, $04, $20, $04, $1E, $03, $1D, $01, $1E, $02 ; CPU:$B3FB PRG:B3FB 00 02 1E 02 20 02 22 04 20 04 1E 03 1D 01 1E 02
.byte $20, $0A, $25, $02, $00, $02, $22, $02, $24, $02, $25, $02, $28, $04, $27, $12 ; CPU:$B40B PRG:B40B 20 0A 25 02 00 02 22 02 24 02 25 02 28 04 27 12
.byte $25, $10, $00, $04, $00, $03, $1D, $01, $1E, $02, $20, $06, $25, $04, $00, $02 ; CPU:$B41B PRG:B41B 25 10 00 04 00 03 1D 01 1E 02 20 06 25 04 00 02
.byte $1E, $02, $1D, $02, $1E, $02, $1D, $02, $1E, $02, $22, $06, $20, $0A, $1D, $02 ; CPU:$B42B PRG:B42B 1E 02 1D 02 1E 02 1D 02 1E 02 22 06 20 0A 1D 02
.byte $00, $02, $1B, $02, $1D, $02, $1E, $02, $22, $02, $21, $02, $22, $02, $21, $06 ; CPU:$B43B PRG:B43B 00 02 1B 02 1D 02 1E 02 22 02 21 02 22 02 21 06
.byte $20, $06, $25, $04, $19, $02, $00, $02, $1B, $02, $1D, $02, $1E, $04, $1D, $04 ; CPU:$B44B PRG:B44B 20 06 25 04 19 02 00 02 1B 02 1D 02 1E 04 1D 04
.byte $1B, $10, $19, $10, $00, $04, $00, $03, $1D, $01, $1E, $02, $20, $06, $25, $02 ; CPU:$B45B PRG:B45B 1B 10 19 10 00 04 00 03 1D 01 1E 02 20 06 25 02
.byte $00, $02, $27, $02, $29, $02, $2A, $04, $28, $04, $27, $06, $25, $0A, $20, $02 ; CPU:$B46B PRG:B46B 00 02 27 02 29 02 2A 04 28 04 27 06 25 0A 20 02
.byte $00, $02, $27, $02, $29, $02, $2A, $04, $28, $04, $27, $06, $25, $0A, $20, $02 ; CPU:$B47B PRG:B47B 00 02 27 02 29 02 2A 04 28 04 27 06 25 0A 20 02
.byte $00, $02, $1B, $02, $1D, $02, $1E, $04, $1D, $04, $1B, $10, $19, $10, $00, $04 ; CPU:$B48B PRG:B48B 00 02 1B 02 1D 02 1E 04 1D 04 1B 10 19 10 00 04
.byte $1D, $04, $1D, $08, $1D, $02, $00, $02, $1B, $02, $1D, $02, $1E, $04, $1D, $04 ; CPU:$B49B PRG:B49B 1D 04 1D 08 1D 02 00 02 1B 02 1D 02 1E 04 1D 04
.byte $1B, $06, $19, $0A, $14, $02, $00, $02, $1B, $02, $1D, $02, $1E, $02, $1D, $02 ; CPU:$B4AB PRG:B4AB 1B 06 19 0A 14 02 00 02 1B 02 1D 02 1E 02 1D 02
.byte $1C, $02, $1D, $02, $1C, $02, $1D, $02, $1C, $02, $1D, $02, $1C, $02, $1D, $06 ; CPU:$B4BB PRG:B4BB 1C 02 1D 02 1C 02 1D 02 1C 02 1D 02 1C 02 1D 06
.byte $25, $02, $00, $02, $22, $02, $24, $02, $25, $04, $29, $04, $27, $10, $25, $10 ; CPU:$B4CB PRG:B4CB 25 02 00 02 22 02 24 02 25 04 29 04 27 10 25 10
.byte $00, $01, $1F, $03, $20, $04, $20, $08, $20, $02, $00, $02, $22, $02, $24, $02 ; CPU:$B4DB PRG:B4DB 00 01 1F 03 20 04 20 08 20 02 00 02 22 02 24 02
.byte $25, $04, $24, $04, $22, $02, $1F, $04, $20, $0A, $1D, $02, $00, $02, $22, $02 ; CPU:$B4EB PRG:B4EB 25 04 24 04 22 02 1F 04 20 0A 1D 02 00 02 22 02
.byte $24, $02, $25, $04, $24, $04, $22, $02, $1F, $04, $20, $0A, $19, $02, $00, $02 ; CPU:$B4FB PRG:B4FB 24 02 25 04 24 04 22 02 1F 04 20 0A 19 02 00 02
.byte $1B, $02, $1D, $02, $1E, $04, $1D, $04, $1B, $10, $19, $10, $00, $8A, $8B, $2E ; CPU:$B50B PRG:B50B 1B 02 1D 02 1E 04 1D 04 1B 10 19 10 00 8A 8B 2E
.byte $00, $8C, $2E, $00, $89, $82, $04, $87, $18, $87, $F0, $8E, $09, $8F, $0C, $40 ; CPU:$B51B PRG:B51B 00 8C 2E 00 89 82 04 87 18 87 F0 8E 09 8F 0C 40
.byte $00, $01, $13, $03, $14, $04, $14, $08, $14, $02, $00, $02, $12, $02, $14, $02 ; CPU:$B52B PRG:B52B 00 01 13 03 14 04 14 08 14 02 00 02 12 02 14 02
.byte $16, $04, $14, $04, $12, $06, $14, $0A, $11, $02, $00, $02, $12, $02, $14, $02 ; CPU:$B53B PRG:B53B 16 04 14 04 12 06 14 0A 11 02 00 02 12 02 14 02
.byte $16, $04, $14, $04, $12, $06, $14, $0A, $1D, $02, $00, $02, $12, $02, $14, $02 ; CPU:$B54B PRG:B54B 16 04 14 04 12 06 14 0A 1D 02 00 02 12 02 14 02
.byte $16, $04, $14, $04, $12, $10, $11, $10, $00, $01, $1C, $03, $1D, $04, $1D, $08 ; CPU:$B55B PRG:B55B 16 04 14 04 12 10 11 10 00 01 1C 03 1D 04 1D 08
.byte $1D, $02, $00, $02, $1E, $02, $20, $02, $22, $04, $20, $04, $1E, $02, $1C, $04 ; CPU:$B56B PRG:B56B 1D 02 00 02 1E 02 20 02 22 04 20 04 1E 02 1C 04
.byte $1D, $0A, $19, $02, $00, $02, $1E, $02, $20, $02, $22, $04, $20, $04, $1E, $06 ; CPU:$B57B PRG:B57B 1D 0A 19 02 00 02 1E 02 20 02 22 04 20 04 1E 06
.byte $1D, $0A, $22, $02, $00, $02, $12, $02, $14, $02, $16, $04, $14, $04, $12, $10 ; CPU:$B58B PRG:B58B 1D 0A 22 02 00 02 12 02 14 02 16 04 14 04 12 10
.byte $11, $10, $00, $04, $00, $03, $19, $01, $1B, $02, $1D, $06, $22, $02, $00, $02 ; CPU:$B59B PRG:B59B 11 10 00 04 00 03 19 01 1B 02 1D 06 22 02 00 02
.byte $16, $02, $18, $02, $19, $04, $18, $04, $16, $06, $14, $0A, $11, $02, $00, $02 ; CPU:$B5AB PRG:B5AB 16 02 18 02 19 04 18 04 16 06 14 0A 11 02 00 02
.byte $16, $02, $18, $02, $19, $04, $18, $04, $16, $03, $14, $01, $16, $02, $18, $06 ; CPU:$B5BB PRG:B5BB 16 02 18 02 19 04 18 04 16 03 14 01 16 02 18 06
.byte $16, $04, $19, $02, $00, $02, $1E, $02, $20, $02, $22, $04, $20, $04, $1E, $10 ; CPU:$B5CB PRG:B5CB 16 04 19 02 00 02 1E 02 20 02 22 04 20 04 1E 10
.byte $1D, $10, $00, $04, $00, $03, $19, $01, $1B, $02, $1D, $06, $22, $04, $00, $02 ; CPU:$B5DB PRG:B5DB 1D 10 00 04 00 03 19 01 1B 02 1D 06 22 04 00 02
.byte $16, $02, $15, $02, $16, $02, $15, $02, $16, $02, $19, $06, $1D, $0A, $19, $02 ; CPU:$B5EB PRG:B5EB 16 02 15 02 16 02 15 02 16 02 19 06 1D 0A 19 02
.byte $00, $02, $12, $02, $14, $02, $16, $02, $19, $02, $18, $02, $19, $02, $18, $06 ; CPU:$B5FB PRG:B5FB 00 02 12 02 14 02 16 02 19 02 18 02 19 02 18 06
.byte $1D, $06, $22, $04, $11, $02, $00, $02, $12, $02, $14, $02, $16, $04, $14, $04 ; CPU:$B60B PRG:B60B 1D 06 22 04 11 02 00 02 12 02 14 02 16 04 14 04
.byte $12, $10, $11, $10, $00, $04, $00, $03, $19, $01, $1B, $02, $1D, $06, $22, $02 ; CPU:$B61B PRG:B61B 12 10 11 10 00 04 00 03 19 01 1B 02 1D 06 22 02
.byte $00, $02, $1E, $02, $20, $02, $22, $04, $23, $04, $22, $06, $20, $0A, $1D, $02 ; CPU:$B62B PRG:B62B 00 02 1E 02 20 02 22 04 23 04 22 06 20 0A 1D 02
.byte $00, $02, $1E, $02, $20, $02, $22, $04, $23, $04, $22, $06, $20, $0A, $1D, $02 ; CPU:$B63B PRG:B63B 00 02 1E 02 20 02 22 04 23 04 22 06 20 0A 1D 02
.byte $00, $02, $12, $02, $14, $02, $16, $04, $14, $04, $12, $10, $11, $10, $00, $04 ; CPU:$B64B PRG:B64B 00 02 12 02 14 02 16 04 14 04 12 10 11 10 00 04
.byte $14, $04, $14, $08, $14, $02, $00, $02, $12, $02, $14, $02, $16, $04, $14, $04 ; CPU:$B65B PRG:B65B 14 04 14 08 14 02 00 02 12 02 14 02 16 04 14 04
.byte $12, $06, $14, $0A, $11, $02, $00, $02, $12, $02, $14, $02, $16, $02, $14, $02 ; CPU:$B66B PRG:B66B 12 06 14 0A 11 02 00 02 12 02 14 02 16 02 14 02
.byte $13, $02, $14, $02, $13, $02, $14, $02, $13, $02, $14, $02, $13, $02, $14, $06 ; CPU:$B67B PRG:B67B 13 02 14 02 13 02 14 02 13 02 14 02 13 02 14 06
.byte $1D, $02, $00, $02, $1E, $02, $20, $02, $22, $04, $20, $04, $1E, $10, $1D, $10 ; CPU:$B68B PRG:B68B 1D 02 00 02 1E 02 20 02 22 04 20 04 1E 10 1D 10
.byte $00, $01, $1C, $03, $1D, $04, $1D, $08, $1D, $02, $00, $02, $1E, $02, $20, $02 ; CPU:$B69B PRG:B69B 00 01 1C 03 1D 04 1D 08 1D 02 00 02 1E 02 20 02
.byte $22, $04, $20, $04, $1E, $02, $1C, $04, $1D, $0A, $19, $02, $00, $02, $1E, $02 ; CPU:$B6AB PRG:B6AB 22 04 20 04 1E 02 1C 04 1D 0A 19 02 00 02 1E 02
.byte $20, $02, $22, $04, $20, $04, $1E, $06, $1D, $0A, $22, $02, $00, $02, $12, $02 ; CPU:$B6BB PRG:B6BB 20 02 22 04 20 04 1E 06 1D 0A 22 02 00 02 12 02
.byte $14, $02, $16, $04, $15, $04, $12, $10, $11, $10, $00, $8A, $8B, $0C, $00, $8C ; CPU:$B6CB PRG:B6CB 14 02 16 04 15 04 12 10 11 10 00 8A 8B 0C 00 8C
.byte $0C, $00, $89, $82, $20, $84, $18, $87, $F0, $8E, $09, $8D, $06, $8F, $0D, $08 ; CPU:$B6DB PRG:B6DB 0C 00 89 82 20 84 18 87 F0 8E 09 8D 06 8F 0D 08
.byte $19, $08, $16, $06, $1B, $04, $14, $02, $14, $02, $16, $02, $18, $04, $19, $04 ; CPU:$B6EB PRG:B6EB 19 08 16 06 1B 04 14 02 14 02 16 02 18 04 19 04
.byte $19, $04, $16, $04, $16, $04, $1B, $02, $1B, $04, $14, $02, $14, $02, $16, $02 ; CPU:$B6FB PRG:B6FB 19 04 16 04 16 04 1B 02 1B 04 14 02 14 02 16 02
.byte $18, $04, $19, $04, $19, $04, $16, $04, $16, $04, $1B, $02, $1B, $04, $14, $02 ; CPU:$B70B PRG:B70B 18 04 19 04 19 04 16 04 16 04 1B 02 1B 04 14 02
.byte $14, $02, $16, $02, $18, $04, $19, $04, $19, $04, $16, $04, $16, $06, $1B, $04 ; CPU:$B71B PRG:B71B 14 02 16 02 18 04 19 04 19 04 16 04 16 06 1B 04
.byte $14, $02, $14, $02, $16, $02, $18, $04, $19, $04, $19, $04, $16, $02, $16, $04 ; CPU:$B72B PRG:B72B 14 02 14 02 16 02 18 04 19 04 19 04 16 02 16 04
.byte $1B, $04, $1B, $02, $1B, $02, $14, $02, $14, $02, $16, $02, $18, $04, $19, $04 ; CPU:$B73B PRG:B73B 1B 04 1B 02 1B 02 14 02 14 02 16 02 18 04 19 04
.byte $19, $04, $16, $04, $16, $03, $1B, $01, $1A, $02, $1B, $04, $14, $02, $14, $02 ; CPU:$B74B PRG:B74B 19 04 16 04 16 03 1B 01 1A 02 1B 04 14 02 14 02
.byte $16, $02, $18, $8A, $8B, $2E, $00, $8C, $2E, $00, $89, $8F, $01, $8E, $45, $20 ; CPU:$B75B PRG:B75B 16 02 18 8A 8B 2E 00 8C 2E 00 89 8F 01 8E 45 20
.byte $3E, $8F, $09, $8E, $04, $04, $42, $04, $42, $04, $42, $04, $42, $04, $3E, $03 ; CPU:$B76B PRG:B76B 3E 8F 09 8E 04 04 42 04 42 04 42 04 42 04 3E 03
.byte $42, $01, $40, $03, $3E, $01, $41, $02, $44, $02, $42, $04, $3D, $01, $41, $03 ; CPU:$B77B PRG:B77B 42 01 40 03 3E 01 41 02 44 02 42 04 3D 01 41 03
.byte $42, $04, $3D, $01, $41, $03, $43, $03, $3D, $01, $41, $02, $44, $02, $42, $02 ; CPU:$B78B PRG:B78B 42 04 3D 01 41 03 43 03 3D 01 41 02 44 02 42 02
.byte $3D, $01, $41, $01, $41, $02, $44, $02, $42, $8A, $8B, $20, $00, $8C, $20, $00 ; CPU:$B79B PRG:B79B 3D 01 41 01 41 02 44 02 42 8A 8B 20 00 8C 20 00
.byte $89, $B6, $B7, $47, $B8, $D4, $B8, $3F, $B9, $02, $0F, $84, $14, $87, $B4, $8F ; CPU:$B7AB PRG:B7AB 89 B6 B7 47 B8 D4 B8 3F B9 02 0F 84 14 87 B4 8F
.byte $0D, $8D, $06, $82, $CD, $8E, $0C, $03, $1D, $01, $1C, $02, $1D, $06, $20, $04 ; CPU:$B7BB PRG:B7BB 0D 8D 06 82 CD 8E 0C 03 1D 01 1C 02 1D 06 20 04
.byte $25, $0C, $25, $03, $24, $01, $25, $03, $27, $01, $25, $02, $24, $06, $25, $04 ; CPU:$B7CB PRG:B7CB 25 0C 25 03 24 01 25 03 27 01 25 02 24 06 25 04
.byte $22, $0C, $1E, $03, $1D, $01, $1C, $03, $1D, $01, $1C, $02, $1D, $06, $25, $04 ; CPU:$B7DB PRG:B7DB 22 0C 1E 03 1D 01 1C 03 1D 01 1C 02 1D 06 25 04
.byte $1D, $03, $1B, $01, $1A, $02, $1B, $06, $22, $04, $19, $03, $18, $01, $17, $02 ; CPU:$B7EB PRG:B7EB 1D 03 1B 01 1A 02 1B 06 22 04 19 03 18 01 17 02
.byte $18, $0A, $20, $03, $1E, $01, $1D, $02, $1E, $06, $1D, $04, $1B, $03, $1D, $01 ; CPU:$B7FB PRG:B7FB 18 0A 20 03 1E 01 1D 02 1E 06 1D 04 1B 03 1D 01
.byte $1C, $02, $1D, $06, $20, $04, $25, $0C, $25, $03, $24, $01, $25, $03, $27, $01 ; CPU:$B80B PRG:B80B 1C 02 1D 06 20 04 25 0C 25 03 24 01 25 03 27 01
.byte $25, $02, $24, $06, $25, $04, $22, $0C, $1E, $03, $1D, $01, $1C, $03, $1D, $01 ; CPU:$B81B PRG:B81B 25 02 24 06 25 04 22 0C 1E 03 1D 01 1C 03 1D 01
.byte $1C, $02, $1D, $06, $25, $04, $1D, $03, $1B, $01, $1D, $02, $1E, $06, $1D, $04 ; CPU:$B82B PRG:B82B 1C 02 1D 06 25 04 1D 03 1B 01 1D 02 1E 06 1D 04
.byte $1B, $10, $19, $02, $21, $04, $20, $02, $21, $08, $20, $88, $82, $BB, $84, $14 ; CPU:$B83B PRG:B83B 1B 10 19 02 21 04 20 02 21 08 20 88 82 BB 84 14
.byte $87, $B4, $8F, $0D, $8E, $00, $04, $00, $02, $1D, $02, $1C, $04, $1D, $04, $25 ; CPU:$B84B PRG:B84B 87 B4 8F 0D 8E 00 04 00 02 1D 02 1C 04 1D 04 25
.byte $0C, $23, $02, $20, $02, $1E, $04, $22, $04, $20, $04, $1E, $04, $19, $0C, $21 ; CPU:$B85B PRG:B85B 0C 23 02 20 02 1E 04 22 04 20 04 1E 04 19 0C 21
.byte $04, $00, $04, $00, $03, $1D, $01, $1C, $02, $1D, $06, $25, $04, $00, $03, $1F ; CPU:$B86B PRG:B86B 04 00 04 00 03 1D 01 1C 02 1D 06 25 04 00 03 1F
.byte $01, $20, $04, $22, $04, $25, $04, $20, $02, $1F, $02, $20, $04, $22, $04, $25 ; CPU:$B87B PRG:B87B 01 20 04 22 04 25 04 20 02 1F 02 20 04 22 04 25
.byte $03, $24, $01, $22, $02, $24, $06, $22, $04, $20, $04, $00, $02, $1D, $02, $1C ; CPU:$B88B PRG:B88B 03 24 01 22 02 24 06 22 04 20 04 00 02 1D 02 1C
.byte $04, $1D, $04, $25, $0C, $23, $02, $20, $02, $1E, $04, $22, $04, $20, $04, $1E ; CPU:$B89B PRG:B89B 04 1D 04 25 0C 23 02 20 02 1E 04 22 04 20 04 1E
.byte $04, $19, $0C, $21, $04, $00, $04, $00, $03, $1D, $01, $1C, $02, $1D, $06, $25 ; CPU:$B8AB PRG:B8AB 04 19 0C 21 04 00 04 00 03 1D 01 1C 02 1D 06 25
.byte $04, $22, $02, $12, $02, $14, $02, $16, $02, $18, $02, $19, $02, $1B, $10, $1D ; CPU:$B8BB PRG:B8BB 04 22 02 12 02 14 02 16 02 18 02 19 02 1B 10 1D
.byte $02, $1E, $04, $20, $02, $1E, $08, $20, $88, $8F, $0C, $8E, $00, $82, $5A, $06 ; CPU:$B8CB PRG:B8CB 02 1E 04 20 02 1E 08 20 88 8F 0C 8E 00 82 5A 06
.byte $25, $06, $1D, $04, $20, $06, $25, $06, $1D, $04, $20, $06, $1E, $06, $16, $04 ; CPU:$B8DB PRG:B8DB 25 06 1D 04 20 06 25 06 1D 04 20 06 1E 06 16 04
.byte $19, $06, $1E, $06, $21, $04, $19, $06, $1D, $06, $14, $04, $19, $06, $1B, $06 ; CPU:$B8EB PRG:B8EB 19 06 1E 06 21 04 19 06 1D 06 14 04 19 06 1B 06
.byte $1F, $04, $22, $06, $20, $06, $18, $04, $1B, $04, $20, $04, $1E, $04, $1D, $04 ; CPU:$B8FB PRG:B8FB 1F 04 22 06 20 06 18 04 1B 04 20 04 1E 04 1D 04
.byte $1B, $06, $25, $06, $1D, $04, $20, $06, $25, $06, $1D, $04, $20, $06, $1E, $06 ; CPU:$B90B PRG:B90B 1B 06 25 06 1D 04 20 06 25 06 1D 04 20 06 1E 06
.byte $16, $04, $19, $06, $1E, $06, $21, $04, $19, $06, $1D, $06, $14, $04, $19, $06 ; CPU:$B91B PRG:B91B 16 04 19 06 1E 06 21 04 19 06 1D 06 14 04 19 06
.byte $20, $06, $20, $04, $20, $06, $19, $06, $14, $04, $19, $02, $21, $04, $20, $02 ; CPU:$B92B PRG:B92B 20 06 20 04 20 06 19 06 14 04 19 02 21 04 20 02
.byte $21, $08, $20, $88, $8F, $0D, $8E, $04, $04, $3E, $02, $44, $02, $42, $02, $3F ; CPU:$B93B PRG:B93B 21 08 20 88 8F 0D 8E 04 04 3E 02 44 02 42 02 3F
.byte $02, $3F, $02, $44, $02, $3F, $88, $5C, $B9, $AD, $B9, $F0, $B9, $33, $BA, $02 ; CPU:$B94B PRG:B94B 02 3F 02 44 02 3F 88 5C B9 AD B9 F0 B9 33 BA 02
.byte $0F, $82, $02, $84, $18, $87, $78, $8F, $0D, $8E, $13, $8D, $05, $04, $1D, $04 ; CPU:$B95B PRG:B95B 0F 82 02 84 18 87 78 8F 0D 8E 13 8D 05 04 1D 04
.byte $00, $04, $20, $04, $00, $03, $1B, $01, $1A, $02, $1B, $06, $20, $04, $00, $04 ; CPU:$B96B PRG:B96B 00 04 20 04 00 03 1B 01 1A 02 1B 06 20 04 00 04
.byte $1D, $04, $00, $04, $20, $04, $00, $03, $22, $01, $21, $02, $22, $06, $1B, $04 ; CPU:$B97B PRG:B97B 1D 04 00 04 20 04 00 03 22 01 21 02 22 06 1B 04
.byte $00, $04, $1D, $04, $00, $04, $20, $04, $00, $03, $1B, $01, $1A, $02, $1B, $06 ; CPU:$B98B PRG:B98B 00 04 1D 04 00 04 20 04 00 03 1B 01 1A 02 1B 06
.byte $20, $04, $1D, $04, $19, $04, $00, $04, $17, $04, $00, $06, $15, $06, $14, $04 ; CPU:$B99B PRG:B99B 20 04 1D 04 19 04 00 04 17 04 00 06 15 06 14 04
.byte $00, $88, $82, $04, $8F, $0D, $8E, $07, $04, $19, $04, $11, $04, $1D, $04, $0D ; CPU:$B9AB PRG:B9AB 00 88 82 04 8F 0D 8E 07 04 19 04 11 04 1D 04 0D
.byte $04, $00, $02, $13, $06, $00, $04, $18, $04, $19, $04, $11, $04, $1D, $04, $0D ; CPU:$B9BB PRG:B9BB 04 00 02 13 06 00 04 18 04 19 04 11 04 1D 04 0D
.byte $04, $00, $04, $13, $04, $00, $04, $18, $04, $19, $04, $11, $04, $1D, $04, $0D ; CPU:$B9CB PRG:B9CB 04 00 04 13 04 00 04 18 04 19 04 11 04 1D 04 0D
.byte $04, $00, $02, $13, $06, $00, $04, $18, $04, $00, $04, $19, $08, $1B, $06, $19 ; CPU:$B9DB PRG:B9DB 04 00 02 13 06 00 04 18 04 00 04 19 08 1B 06 19
.byte $06, $18, $04, $00, $88, $82, $24, $8F, $0C, $8E, $07, $04, $00, $04, $19, $04 ; CPU:$B9EB PRG:B9EB 06 18 04 00 88 82 24 8F 0C 8E 07 04 00 04 19 04
.byte $00, $04, $16, $04, $00, $04, $1B, $04, $00, $04, $14, $04, $00, $04, $19, $04 ; CPU:$B9FB PRG:B9FB 00 04 16 04 00 04 1B 04 00 04 14 04 00 04 19 04
.byte $00, $04, $16, $04, $00, $04, $1B, $04, $00, $04, $14, $04, $00, $04, $19, $04 ; CPU:$BA0B PRG:BA0B 00 04 16 04 00 04 1B 04 00 04 14 04 00 04 19 04
.byte $00, $04, $16, $04, $00, $04, $1B, $04, $00, $04, $14, $04, $00, $04, $19, $08 ; CPU:$BA1B PRG:BA1B 00 04 16 04 00 04 1B 04 00 04 14 04 00 04 19 08
.byte $17, $06, $15, $06, $14, $04, $00, $88, $8F, $0D, $8E, $03, $04, $40, $02, $44 ; CPU:$BA2B PRG:BA2B 17 06 15 06 14 04 00 88 8F 0D 8E 03 04 40 02 44
.byte $02, $41, $04, $40, $02, $44, $02, $41, $02, $40, $02, $40, $02, $44, $04, $40 ; CPU:$BA3B PRG:BA3B 02 41 04 40 02 44 02 41 02 40 02 40 02 44 04 40
.byte $02, $41, $02, $44, $02, $41, $04, $40, $02, $44, $02, $41, $02, $40, $02, $40 ; CPU:$BA4B PRG:BA4B 02 41 02 44 02 41 04 40 02 44 02 41 02 40 02 40
.byte $02, $44, $02, $41, $04, $40, $02, $40, $04, $44, $02, $44, $02, $44, $02, $44 ; CPU:$BA5B PRG:BA5B 02 44 02 41 04 40 02 40 04 44 02 44 02 44 02 44
.byte $04, $40, $02, $44, $02, $41, $04, $40, $02, $44, $02, $41, $04, $40, $02, $40 ; CPU:$BA6B PRG:BA6B 04 40 02 44 02 41 04 40 02 44 02 41 04 40 02 40
.byte $04, $44, $02, $44, $02, $44, $02, $44, $02, $43, $01, $43, $01, $43, $02, $43 ; CPU:$BA7B PRG:BA7B 04 44 02 44 02 44 02 44 02 43 01 43 01 43 02 43
.byte $04, $41, $02, $43, $02, $43, $02, $43, $02, $43, $01, $43, $01, $43, $02, $43 ; CPU:$BA8B PRG:BA8B 04 41 02 43 02 43 02 43 02 43 01 43 01 43 02 43
.byte $04, $40, $01, $42, $01, $42, $02, $42, $02, $42, $88, $B0, $BA, $DB, $BA, $02 ; CPU:$BA9B PRG:BA9B 04 40 01 42 01 42 02 42 02 42 88 B0 BA DB BA 02
.byte $BB, $27, $BB, $02, $0F, $82, $49, $84, $18, $87, $F0, $8E, $07, $8D, $06, $8F ; CPU:$BAAB PRG:BAAB BB 27 BB 02 0F 82 49 84 18 87 F0 8E 07 8D 06 8F
.byte $0E, $01, $19, $02, $19, $01, $19, $02, $18, $02, $18, $02, $16, $02, $16, $02 ; CPU:$BABB PRG:BABB 0E 01 19 02 19 01 19 02 18 02 18 02 16 02 16 02
.byte $18, $02, $18, $01, $19, $02, $19, $01, $19, $02, $1B, $02, $1B, $10, $1D, $89 ; CPU:$BACB PRG:BACB 18 02 18 01 19 02 19 01 19 02 1B 02 1B 10 1D 89
.byte $82, $49, $84, $18, $87, $F0, $8E, $07, $01, $16, $02, $16, $01, $16, $02, $14 ; CPU:$BADB PRG:BADB 82 49 84 18 87 F0 8E 07 01 16 02 16 01 16 02 14
.byte $02, $14, $02, $12, $02, $12, $02, $14, $02, $14, $01, $16, $02, $16, $01, $16 ; CPU:$BAEB PRG:BAEB 02 14 02 12 02 12 02 14 02 14 01 16 02 16 01 16
.byte $02, $18, $02, $18, $10, $1A, $89, $82, $2A, $8E, $07, $01, $16, $02, $16, $01 ; CPU:$BAFB PRG:BAFB 02 18 02 18 10 1A 89 82 2A 8E 07 01 16 02 16 01
.byte $16, $02, $14, $02, $14, $02, $12, $02, $12, $02, $14, $02, $14, $01, $12, $02 ; CPU:$BB0B PRG:BB0B 16 02 14 02 14 02 12 02 12 02 14 02 14 01 12 02
.byte $12, $01, $12, $02, $14, $02, $14, $82, $78, $10, $16, $89, $8F, $0D, $8E, $03 ; CPU:$BB1B PRG:BB1B 12 01 12 02 14 02 14 82 78 10 16 89 8F 0D 8E 03
.byte $01, $43, $02, $43, $01, $43, $02, $41, $02, $41, $01, $43, $02, $43, $01, $43 ; CPU:$BB2B PRG:BB2B 01 43 02 43 01 43 02 41 02 41 01 43 02 43 01 43
.byte $02, $41, $02, $41, $01, $43, $02, $43, $01, $43, $02, $41, $02, $41, $10, $44 ; CPU:$BB3B PRG:BB3B 02 41 02 41 01 43 02 43 01 43 02 41 02 41 10 44
.byte $89, $56, $BB, $1F, $BD, $EA, $BE, $47, $C0, $02, $0F, $82, $CD, $84, $18, $87 ; CPU:$BB4B PRG:BB4B 89 56 BB 1F BD EA BE 47 C0 02 0F 82 CD 84 18 87
.byte $F0, $8E, $0C, $8D, $06, $8F, $0F, $03, $22, $01, $20, $02, $1D, $06, $22, $04 ; CPU:$BB5B PRG:BB5B F0 8E 0C 8D 06 8F 0F 03 22 01 20 02 1D 06 22 04
.byte $20, $0C, $20, $04, $00, $03, $22, $01, $20, $02, $1D, $04, $22, $02, $24, $02 ; CPU:$BB6B PRG:BB6B 20 0C 20 04 00 03 22 01 20 02 1D 04 22 02 24 02
.byte $22, $06, $20, $02, $00, $02, $1D, $02, $20, $02, $1D, $02, $1B, $02, $19, $06 ; CPU:$BB7B PRG:BB7B 22 06 20 02 00 02 1D 02 20 02 1D 02 1B 02 19 06
.byte $1C, $06, $1B, $08, $19, $02, $00, $02, $19, $02, $1E, $02, $1C, $02, $1B, $02 ; CPU:$BB8B PRG:BB8B 1C 06 1B 08 19 02 00 02 19 02 1E 02 1C 02 1B 02
.byte $19, $03, $1D, $01, $1B, $02, $1D, $06, $20, $04, $20, $0C, $20, $02, $1B, $02 ; CPU:$BB9B PRG:BB9B 19 03 1D 01 1B 02 1D 06 20 04 20 0C 20 02 1B 02
.byte $1D, $03, $1E, $01, $1C, $02, $19, $06, $16, $04, $19, $08, $20, $02, $20, $04 ; CPU:$BBAB PRG:BBAB 1D 03 1E 01 1C 02 19 06 16 04 19 08 20 02 20 04
.byte $1F, $0A, $1E, $02, $1C, $04, $1B, $22, $19, $82, $08, $8E, $00, $02, $23, $02 ; CPU:$BBBB PRG:BBBB 1F 0A 1E 02 1C 04 1B 22 19 82 08 8E 00 02 23 02
.byte $23, $02, $23, $02, $23, $02, $23, $02, $23, $02, $23, $04, $22, $02, $22, $02 ; CPU:$BBCB PRG:BBCB 23 02 23 02 23 02 23 02 23 02 23 04 22 02 22 02
.byte $22, $02, $22, $02, $22, $02, $22, $02, $22, $06, $25, $02, $00, $02, $20, $03 ; CPU:$BBDB PRG:BBDB 22 02 22 02 22 02 22 02 22 06 25 02 00 02 20 03
.byte $22, $01, $20, $02, $22, $02, $20, $02, $22, $04, $25, $02, $20, $02, $22, $04 ; CPU:$BBEB PRG:BBEB 22 01 20 02 22 02 20 02 22 04 25 02 20 02 22 04
.byte $25, $02, $20, $02, $23, $02, $23, $02, $23, $02, $23, $02, $23, $02, $23, $02 ; CPU:$BBFB PRG:BBFB 25 02 20 02 23 02 23 02 23 02 23 02 23 02 23 02
.byte $23, $04, $22, $02, $22, $02, $22, $02, $22, $02, $22, $02, $22, $02, $22, $06 ; CPU:$BC0B PRG:BC0B 23 04 22 02 22 02 22 02 22 02 22 02 22 02 22 06
.byte $25, $02, $00, $02, $20, $03, $22, $01, $20, $02, $22, $02, $20, $02, $22, $04 ; CPU:$BC1B PRG:BC1B 25 02 00 02 20 03 22 01 20 02 22 02 20 02 22 04
.byte $25, $02, $20, $02, $22, $04, $25, $02, $20, $8A, $82, $CD, $8B, $E7, $00, $8C ; CPU:$BC2B PRG:BC2B 25 02 20 02 22 04 25 02 20 8A 82 CD 8B E7 00 8C
.byte $0C, $00, $8E, $11, $82, $CD, $06, $14, $02, $14, $03, $16, $01, $14, $02, $16 ; CPU:$BC3B PRG:BC3B 0C 00 8E 11 82 CD 06 14 02 14 03 16 01 14 02 16
.byte $02, $14, $03, $10, $01, $11, $02, $16, $04, $19, $02, $1C, $02, $1B, $02, $19 ; CPU:$BC4B PRG:BC4B 02 14 03 10 01 11 02 16 04 19 02 1C 02 1B 02 19
.byte $03, $1D, $01, $1C, $02, $1D, $06, $20, $04, $1D, $03, $1C, $01, $1B, $02, $1C ; CPU:$BC5B PRG:BC5B 03 1D 01 1C 02 1D 06 20 04 1D 03 1C 01 1B 02 1C
.byte $06, $20, $04, $1C, $03, $1D, $01, $1C, $02, $1D, $06, $20, $04, $1D, $03, $1C ; CPU:$BC6B PRG:BC6B 06 20 04 1C 03 1D 01 1C 02 1D 06 20 04 1D 03 1C
.byte $01, $1B, $02, $1C, $06, $20, $04, $20, $03, $1F, $01, $1E, $02, $1F, $06, $25 ; CPU:$BC7B PRG:BC7B 01 1B 02 1C 06 20 04 20 03 1F 01 1E 02 1F 06 25
.byte $04, $1F, $03, $20, $01, $1F, $02, $20, $04, $23, $01, $22, $01, $23, $02, $22 ; CPU:$BC8B PRG:BC8B 04 1F 03 20 01 1F 02 20 04 23 01 22 01 23 02 22
.byte $02, $20, $03, $22, $01, $21, $02, $22, $1A, $27, $8A, $8B, $56, $01, $8C, $05 ; CPU:$BC9B PRG:BC9B 02 20 03 22 01 21 02 22 1A 27 8A 8B 56 01 8C 05
.byte $01, $8E, $0C, $08, $00, $02, $20, $04, $1F, $0A, $1E, $02, $1C, $04, $1B, $22 ; CPU:$BCAB PRG:BCAB 01 8E 0C 08 00 02 20 04 1F 0A 1E 02 1C 04 1B 22
.byte $19, $03, $22, $01, $20, $02, $1D, $06, $22, $04, $20, $0C, $20, $04, $00, $03 ; CPU:$BCBB PRG:BCBB 19 03 22 01 20 02 1D 06 22 04 20 0C 20 04 00 03
.byte $22, $01, $20, $02, $1D, $04, $22, $02, $24, $02, $22, $06, $20, $02, $00, $02 ; CPU:$BCCB PRG:BCCB 22 01 20 02 1D 04 22 02 24 02 22 06 20 02 00 02
.byte $1D, $02, $20, $02, $1D, $02, $1B, $02, $19, $06, $1C, $06, $1B, $08, $19, $02 ; CPU:$BCDB PRG:BCDB 1D 02 20 02 1D 02 1B 02 19 06 1C 06 1B 08 19 02
.byte $00, $02, $19, $02, $1E, $02, $1C, $02, $1B, $02, $19, $03, $1D, $01, $1B, $02 ; CPU:$BCEB PRG:BCEB 00 02 19 02 1E 02 1C 02 1B 02 19 03 1D 01 1B 02
.byte $1D, $06, $20, $04, $20, $0C, $20, $02, $1B, $02, $1D, $03, $1E, $01, $1C, $02 ; CPU:$BCFB PRG:BCFB 1D 06 20 04 20 0C 20 02 1B 02 1D 03 1E 01 1C 02
.byte $19, $06, $16, $04, $19, $08, $20, $02, $20, $04, $1F, $0A, $1E, $02, $1C, $04 ; CPU:$BD0B PRG:BD0B 19 06 16 04 19 08 20 02 20 04 1F 0A 1E 02 1C 04
.byte $1B, $22, $19, $88, $82, $B8, $84, $18, $87, $F0, $8F, $0A, $8E, $00, $04, $00 ; CPU:$BD1B PRG:BD1B 1B 22 19 88 82 B8 84 18 87 F0 8F 0A 8E 00 04 00
.byte $04, $16, $04, $00, $04, $16, $04, $00, $04, $16, $04, $00, $04, $16, $04, $00 ; CPU:$BD2B PRG:BD2B 04 16 04 00 04 16 04 00 04 16 04 00 04 16 04 00
.byte $04, $16, $04, $00, $04, $16, $04, $00, $04, $17, $04, $00, $04, $17, $04, $00 ; CPU:$BD3B PRG:BD3B 04 16 04 00 04 16 04 00 04 17 04 00 04 17 04 00
.byte $04, $1C, $04, $00, $04, $1C, $04, $00, $04, $1C, $04, $00, $04, $1C, $04, $00 ; CPU:$BD4B PRG:BD4B 04 1C 04 00 04 1C 04 00 04 1C 04 00 04 1C 04 00
.byte $04, $16, $04, $00, $04, $16, $04, $00, $04, $18, $04, $00, $04, $18, $04, $00 ; CPU:$BD5B PRG:BD5B 04 16 04 00 04 16 04 00 04 18 04 00 04 18 04 00
.byte $04, $1C, $04, $00, $04, $1C, $02, $00, $02, $0F, $02, $14, $02, $18, $08, $1B ; CPU:$BD6B PRG:BD6B 04 1C 04 00 04 1C 02 00 02 0F 02 14 02 18 08 1B
.byte $02, $00, $02, $0D, $02, $12, $02, $16, $08, $19, $06, $00, $02, $0F, $02, $10 ; CPU:$BD7B PRG:BD7B 02 00 02 0D 02 12 02 16 08 19 06 00 02 0F 02 10
.byte $06, $11, $10, $19, $82, $08, $02, $20, $02, $20, $02, $20, $02, $20, $02, $20 ; CPU:$BD8B PRG:BD8B 06 11 10 19 82 08 02 20 02 20 02 20 02 20 02 20
.byte $02, $20, $02, $20, $04, $1E, $02, $1E, $02, $1E, $02, $1E, $02, $1E, $02, $1E ; CPU:$BD9B PRG:BD9B 02 20 02 20 04 1E 02 1E 02 1E 02 1E 02 1E 02 1E
.byte $02, $1E, $06, $20, $02, $00, $02, $20, $03, $22, $01, $20, $02, $22, $02, $20 ; CPU:$BDAB PRG:BDAB 02 1E 06 20 02 00 02 20 03 22 01 20 02 22 02 20
.byte $02, $22, $04, $25, $02, $20, $02, $22, $04, $25, $02, $20, $02, $20, $02, $20 ; CPU:$BDBB PRG:BDBB 02 22 04 25 02 20 02 22 04 25 02 20 02 20 02 20
.byte $02, $20, $02, $20, $02, $20, $02, $20, $02, $20, $04, $1E, $02, $1E, $02, $1E ; CPU:$BDCB PRG:BDCB 02 20 02 20 02 20 02 20 02 20 04 1E 02 1E 02 1E
.byte $02, $1E, $02, $1E, $02, $1E, $02, $1E, $06, $20, $02, $00, $02, $20, $03, $22 ; CPU:$BDDB PRG:BDDB 02 1E 02 1E 02 1E 02 1E 06 20 02 00 02 20 03 22
.byte $01, $20, $02, $22, $02, $20, $02, $22, $04, $25, $02, $20, $02, $22, $04, $25 ; CPU:$BDEB PRG:BDEB 01 20 02 22 02 20 02 22 04 25 02 20 02 22 04 25
.byte $02, $20, $8A, $82, $B8, $8B, $E7, $00, $8C, $08, $00, $8E, $05, $82, $02, $04 ; CPU:$BDFB PRG:BDFB 02 20 8A 82 B8 8B E7 00 8C 08 00 8E 05 82 02 04
.byte $11, $04, $11, $04, $11, $04, $11, $04, $10, $04, $10, $04, $10, $04, $10, $82 ; CPU:$BE0B PRG:BE0B 11 04 11 04 11 04 11 04 10 04 10 04 10 04 10 82
.byte $B8, $04, $00, $04, $17, $04, $00, $04, $17, $04, $00, $04, $12, $04, $00, $04 ; CPU:$BE1B PRG:BE1B B8 04 00 04 17 04 00 04 17 04 00 04 12 04 00 04
.byte $12, $04, $00, $04, $17, $04, $00, $04, $17, $04, $00, $04, $12, $04, $00, $04 ; CPU:$BE2B PRG:BE2B 12 04 00 04 17 04 00 04 17 04 00 04 12 04 00 04
.byte $12, $04, $00, $04, $19, $04, $00, $04, $19, $04, $00, $04, $17, $04, $00, $04 ; CPU:$BE3B PRG:BE3B 12 04 00 04 19 04 00 04 19 04 00 04 17 04 00 04
.byte $17, $04, $00, $04, $1B, $04, $00, $04, $1B, $04, $00, $04, $19, $04, $00, $04 ; CPU:$BE4B PRG:BE4B 17 04 00 04 1B 04 00 04 1B 04 00 04 19 04 00 04
.byte $19, $8A, $8B, $44, $01, $8C, $FD, $00, $8E, $00, $02, $00, $02, $0F, $02, $14 ; CPU:$BE5B PRG:BE5B 19 8A 8B 44 01 8C FD 00 8E 00 02 00 02 0F 02 14
.byte $02, $18, $08, $1B, $02, $00, $02, $0D, $02, $12, $02, $16, $08, $19, $06, $00 ; CPU:$BE6B PRG:BE6B 02 18 08 1B 02 00 02 0D 02 12 02 16 08 19 06 00
.byte $02, $0F, $02, $10, $06, $11, $10, $19, $04, $00, $04, $16, $04, $00, $04, $16 ; CPU:$BE7B PRG:BE7B 02 0F 02 10 06 11 10 19 04 00 04 16 04 00 04 16
.byte $04, $00, $04, $16, $04, $00, $04, $16, $04, $00, $04, $16, $04, $00, $04, $16 ; CPU:$BE8B PRG:BE8B 04 00 04 16 04 00 04 16 04 00 04 16 04 00 04 16
.byte $04, $00, $04, $17, $04, $00, $04, $17, $04, $00, $04, $1C, $04, $00, $04, $1C ; CPU:$BE9B PRG:BE9B 04 00 04 17 04 00 04 17 04 00 04 1C 04 00 04 1C
.byte $04, $00, $04, $1C, $04, $00, $04, $1C, $04, $00, $04, $16, $04, $00, $04, $16 ; CPU:$BEAB PRG:BEAB 04 00 04 1C 04 00 04 1C 04 00 04 16 04 00 04 16
.byte $04, $00, $04, $18, $04, $00, $04, $18, $04, $00, $04, $1C, $04, $00, $04, $1C ; CPU:$BEBB PRG:BEBB 04 00 04 18 04 00 04 18 04 00 04 1C 04 00 04 1C
.byte $02, $00, $02, $0F, $02, $14, $02, $18, $08, $1B, $02, $00, $02, $0D, $02, $12 ; CPU:$BECB PRG:BECB 02 00 02 0F 02 14 02 18 08 1B 02 00 02 0D 02 12
.byte $02, $16, $08, $19, $06, $00, $02, $0F, $02, $10, $06, $11, $10, $19, $88, $82 ; CPU:$BEDB PRG:BEDB 02 16 08 19 06 00 02 0F 02 10 06 11 10 19 88 82
.byte $43, $8F, $0A, $8E, $00, $04, $19, $04, $20, $04, $19, $04, $20, $04, $19, $04 ; CPU:$BEEB PRG:BEEB 43 8F 0A 8E 00 04 19 04 20 04 19 04 20 04 19 04
.byte $20, $04, $19, $04, $20, $04, $19, $04, $20, $04, $19, $04, $20, $04, $19, $04 ; CPU:$BEFB PRG:BEFB 20 04 19 04 20 04 19 04 20 04 19 04 20 04 19 04
.byte $20, $04, $19, $04, $20, $04, $1E, $04, $25, $04, $1E, $04, $25, $04, $1E, $04 ; CPU:$BF0B PRG:BF0B 20 04 19 04 20 04 1E 04 25 04 1E 04 25 04 1E 04
.byte $25, $04, $1E, $04, $25, $04, $19, $04, $20, $04, $19, $04, $20, $04, $14, $04 ; CPU:$BF1B PRG:BF1B 25 04 1E 04 25 04 19 04 20 04 19 04 20 04 14 04
.byte $20, $04, $14, $04, $20, $04, $1E, $04, $25, $04, $1E, $04, $25, $10, $14, $10 ; CPU:$BF2B PRG:BF2B 20 04 14 04 20 04 1E 04 25 04 1E 04 25 10 14 10
.byte $12, $02, $0D, $02, $14, $1C, $19, $8E, $0C, $82, $0C, $02, $1D, $02, $1D, $02 ; CPU:$BF3B PRG:BF3B 12 02 0D 02 14 1C 19 8E 0C 82 0C 02 1D 02 1D 02
.byte $1D, $02, $1D, $02, $1D, $02, $1D, $02, $1D, $04, $1C, $02, $1C, $02, $1C, $02 ; CPU:$BF4B PRG:BF4B 1D 02 1D 02 1D 02 1D 02 1D 04 1C 02 1C 02 1C 02
.byte $1C, $02, $1C, $02, $1C, $02, $1C, $22, $1D, $02, $1D, $02, $1D, $02, $1D, $02 ; CPU:$BF5B PRG:BF5B 1C 02 1C 02 1C 02 1C 22 1D 02 1D 02 1D 02 1D 02
.byte $1D, $02, $1D, $02, $1D, $02, $1D, $04, $1C, $02, $1C, $02, $1C, $02, $1C, $02 ; CPU:$BF6B PRG:BF6B 1D 02 1D 02 1D 02 1D 04 1C 02 1C 02 1C 02 1C 02
.byte $1C, $02, $1C, $02, $1C, $22, $1D, $8A, $8E, $00, $82, $43, $8B, $A3, $00, $8C ; CPU:$BF7B PRG:BF7B 1C 02 1C 02 1C 22 1D 8A 8E 00 82 43 8B A3 00 8C
.byte $04, $00, $8E, $05, $04, $19, $04, $19, $04, $19, $04, $19, $04, $12, $04, $14 ; CPU:$BF8B PRG:BF8B 04 00 8E 05 04 19 04 19 04 19 04 19 04 12 04 14
.byte $04, $16, $04, $12, $82, $43, $04, $19, $04, $20, $04, $19, $04, $20, $04, $12 ; CPU:$BF9B PRG:BF9B 04 16 04 12 82 43 04 19 04 20 04 19 04 20 04 12
.byte $04, $1C, $04, $12, $04, $1C, $04, $19, $04, $20, $04, $19, $04, $20, $04, $12 ; CPU:$BFAB PRG:BFAB 04 1C 04 12 04 1C 04 19 04 20 04 19 04 20 04 12
.byte $04, $1C, $04, $12, $04, $1C, $04, $1F, $04, $22, $04, $1F, $04, $22, $04, $19 ; CPU:$BFBB PRG:BFBB 04 1C 04 12 04 1C 04 1F 04 22 04 1F 04 22 04 19
.byte $04, $20, $04, $19, $04, $20, $04, $1B, $04, $22, $04, $1B, $04, $22, $04, $1B ; CPU:$BFCB PRG:BFCB 04 20 04 19 04 20 04 1B 04 22 04 1B 04 22 04 1B
.byte $04, $22, $04, $1B, $04, $22, $8A, $8B, $FE, $00, $8C, $B7, $00, $8E, $00, $10 ; CPU:$BFDB PRG:BFDB 04 22 04 1B 04 22 8A 8B FE 00 8C B7 00 8E 00 10
.byte $14, $10, $12, $02, $0D, $02, $14, $1C, $19, $04, $19, $04, $20, $04, $19, $04 ; CPU:$BFEB PRG:BFEB 14 10 12 02 0D 02 14 1C 19 04 19 04 20 04 19 04
.byte $20, $04, $19, $04, $20 ; CPU:$BFFB PRG:BFFB 20 04 19 04 20
.segment "PRG6"
.org $C000
; ---- data $C000-$DFFF (8192 bytes) ----
.byte $04, $19, $04, $20, $04, $19, $04, $20, $04, $19, $04, $20, $04, $19, $04, $20 ; CPU:$C000 PRG:C000 04 19 04 20 04 19 04 20 04 19 04 20 04 19 04 20
.byte $04, $19, $04, $20, $04, $1E, $04, $25, $04, $1E, $04, $25, $04, $1E, $04, $25 ; CPU:$C010 PRG:C010 04 19 04 20 04 1E 04 25 04 1E 04 25 04 1E 04 25
.byte $04, $1E, $04, $25, $04, $19, $04, $20, $04, $19, $04, $20, $04, $14, $04, $20 ; CPU:$C020 PRG:C020 04 1E 04 25 04 19 04 20 04 19 04 20 04 14 04 20
.byte $04, $14, $04, $20, $04, $1E, $04, $25, $04, $1E, $04, $25, $10, $14, $10, $12 ; CPU:$C030 PRG:C030 04 14 04 20 04 1E 04 25 04 1E 04 25 10 14 10 12
.byte $02, $0D, $02, $14, $1C, $19, $88, $8E, $03, $8F, $0D, $04, $3F, $04, $44, $04 ; CPU:$C040 PRG:C040 02 0D 02 14 1C 19 88 8E 03 8F 0D 04 3F 04 44 04
.byte $3F, $03, $44, $01, $43, $88, $60, $C0, $CF, $C0, $64, $C1, $11, $C2, $02, $0F ; CPU:$C050 PRG:C050 3F 03 44 01 43 88 60 C0 CF C0 64 C1 11 C2 02 0F
.byte $82, $89, $84, $14, $87, $78, $8E, $0C, $8F, $0C, $8D, $08, $02, $14, $01, $19 ; CPU:$C060 PRG:C060 82 89 84 14 87 78 8E 0C 8F 0C 8D 08 02 14 01 19
.byte $01, $19, $02, $19, $02, $1B, $04, $1D, $02, $1B, $02, $1D, $04, $1E, $02, $1D ; CPU:$C070 PRG:C070 01 19 02 19 02 1B 04 1D 02 1B 02 1D 04 1E 02 1D
.byte $02, $1B, $02, $1B, $06, $1D, $02, $14, $01, $19, $01, $19, $02, $19, $02, $1B ; CPU:$C080 PRG:C080 02 1B 02 1B 06 1D 02 14 01 19 01 19 02 19 02 1B
.byte $04, $1D, $02, $1B, $02, $1D, $04, $1E, $04, $1D, $08, $1B, $8E, $0F, $02, $14 ; CPU:$C090 PRG:C090 04 1D 02 1B 02 1D 04 1E 04 1D 08 1B 8E 0F 02 14
.byte $01, $19, $01, $19, $02, $19, $02, $1B, $04, $1D, $02, $1B, $02, $1D, $04, $1E ; CPU:$C0A0 PRG:C0A0 01 19 01 19 02 19 02 1B 04 1D 02 1B 02 1D 04 1E
.byte $02, $1D, $02, $1B, $02, $1B, $06, $1D, $02, $14, $01, $19, $01, $19, $02, $19 ; CPU:$C0B0 PRG:C0B0 02 1D 02 1B 02 1B 06 1D 02 14 01 19 01 19 02 19
.byte $02, $1B, $04, $1D, $02, $1B, $02, $1D, $04, $1E, $04, $1D, $08, $1B, $88, $82 ; CPU:$C0C0 PRG:C0C0 02 1B 04 1D 02 1B 02 1D 04 1E 04 1D 08 1B 88 82
.byte $5A, $84, $0C, $87, $78, $8E, $00, $8F, $0A, $02, $1E, $01, $1D, $01, $1D, $02 ; CPU:$C0D0 PRG:C0D0 5A 84 0C 87 78 8E 00 8F 0A 02 1E 01 1D 01 1D 02
.byte $1D, $02, $1E, $04, $20, $02, $1E, $02, $1D, $04, $22, $02, $20, $02, $1E, $02 ; CPU:$C0E0 PRG:C0E0 1D 02 1E 04 20 02 1E 02 1D 04 22 02 20 02 1E 02
.byte $1E, $06, $20, $02, $1E, $01, $1D, $01, $1D, $02, $1D, $02, $1E, $04, $20, $02 ; CPU:$C0F0 PRG:C0F0 1E 06 20 02 1E 01 1D 01 1D 02 1D 02 1E 04 20 02
.byte $1E, $02, $1D, $01, $2A, $01, $25, $01, $22, $01, $1E, $01, $1D, $01, $20, $01 ; CPU:$C100 PRG:C100 1E 02 1D 01 2A 01 25 01 22 01 1E 01 1D 01 20 01
.byte $25, $01, $29, $01, $27, $01, $25, $01, $24, $01, $22, $04, $20, $8E, $03, $02 ; CPU:$C110 PRG:C110 25 01 29 01 27 01 25 01 24 01 22 04 20 8E 03 02
.byte $1E, $01, $1D, $01, $1D, $02, $1D, $02, $1E, $04, $20, $02, $1E, $02, $1D, $04 ; CPU:$C120 PRG:C120 1E 01 1D 01 1D 02 1D 02 1E 04 20 02 1E 02 1D 04
.byte $22, $02, $20, $02, $1E, $02, $1E, $06, $20, $02, $1E, $01, $1D, $01, $1D, $02 ; CPU:$C130 PRG:C130 22 02 20 02 1E 02 1E 06 20 02 1E 01 1D 01 1D 02
.byte $1D, $02, $1E, $04, $20, $02, $1E, $02, $1D, $01, $2A, $01, $25, $01, $22, $01 ; CPU:$C140 PRG:C140 1D 02 1E 04 20 02 1E 02 1D 01 2A 01 25 01 22 01
.byte $1E, $01, $1D, $01, $20, $01, $25, $01, $29, $01, $27, $01, $25, $01, $24, $01 ; CPU:$C150 PRG:C150 1E 01 1D 01 20 01 25 01 29 01 27 01 25 01 24 01
.byte $22, $04, $20, $88, $82, $4B, $8E, $00, $8F, $0A, $01, $19, $01, $00, $01, $19 ; CPU:$C160 PRG:C160 22 04 20 88 82 4B 8E 00 8F 0A 01 19 01 00 01 19
.byte $01, $19, $02, $19, $02, $14, $04, $19, $02, $14, $01, $19, $01, $00, $82, $14 ; CPU:$C170 PRG:C170 01 19 02 19 02 14 04 19 02 14 01 19 01 00 82 14
.byte $02, $19, $02, $00, $02, $19, $01, $14, $01, $00, $02, $14, $02, $19, $01, $20 ; CPU:$C180 PRG:C180 02 19 02 00 02 19 01 14 01 00 02 14 02 19 01 20
.byte $01, $20, $01, $20, $01, $20, $82, $4B, $01, $19, $01, $00, $01, $19, $01, $19 ; CPU:$C190 PRG:C190 01 20 01 20 01 20 82 4B 01 19 01 00 01 19 01 19
.byte $02, $19, $02, $14, $04, $19, $02, $14, $02, $19, $02, $12, $02, $00, $02, $12 ; CPU:$C1A0 PRG:C1A0 02 19 02 14 04 19 02 14 02 19 02 12 02 00 02 12
.byte $02, $00, $04, $14, $01, $20, $01, $1E, $01, $1D, $01, $1B, $8E, $03, $01, $19 ; CPU:$C1B0 PRG:C1B0 02 00 04 14 01 20 01 1E 01 1D 01 1B 8E 03 01 19
.byte $01, $00, $01, $19, $01, $19, $02, $19, $02, $14, $04, $19, $02, $14, $01, $19 ; CPU:$C1C0 PRG:C1C0 01 00 01 19 01 19 02 19 02 14 04 19 02 14 01 19
.byte $01, $00, $82, $14, $02, $19, $02, $00, $02, $19, $01, $14, $01, $00, $02, $14 ; CPU:$C1D0 PRG:C1D0 01 00 82 14 02 19 02 00 02 19 01 14 01 00 02 14
.byte $02, $19, $01, $20, $01, $20, $01, $20, $01, $20, $82, $4B, $01, $19, $01, $00 ; CPU:$C1E0 PRG:C1E0 02 19 01 20 01 20 01 20 01 20 82 4B 01 19 01 00
.byte $01, $19, $01, $19, $02, $19, $02, $14, $04, $19, $02, $14, $02, $19, $02, $12 ; CPU:$C1F0 PRG:C1F0 01 19 01 19 02 19 02 14 04 19 02 14 02 19 02 12
.byte $02, $00, $02, $12, $02, $00, $04, $14, $01, $20, $01, $1E, $01, $1D, $01, $1B ; CPU:$C200 PRG:C200 02 00 02 12 02 00 04 14 01 20 01 1E 01 1D 01 1B
.byte $88, $8E, $05, $8F, $09, $02, $3E, $01, $44, $01, $44, $02, $44, $02, $44, $02 ; CPU:$C210 PRG:C210 88 8E 05 8F 09 02 3E 01 44 01 44 02 44 02 44 02
.byte $3E, $02, $44, $02, $3E, $02, $44, $88, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C220 PRG:C220 3E 02 44 02 3E 02 44 88 FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C230 PRG:C230 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C240 PRG:C240 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C250 PRG:C250 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C260 PRG:C260 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C270 PRG:C270 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C280 PRG:C280 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C290 PRG:C290 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C2A0 PRG:C2A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C2B0 PRG:C2B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C2C0 PRG:C2C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C2D0 PRG:C2D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C2E0 PRG:C2E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C2F0 PRG:C2F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C300 PRG:C300 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C310 PRG:C310 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C320 PRG:C320 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C330 PRG:C330 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C340 PRG:C340 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C350 PRG:C350 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C360 PRG:C360 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C370 PRG:C370 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C380 PRG:C380 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C390 PRG:C390 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C3A0 PRG:C3A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C3B0 PRG:C3B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C3C0 PRG:C3C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C3D0 PRG:C3D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C3E0 PRG:C3E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C3F0 PRG:C3F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C400 PRG:C400 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C410 PRG:C410 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C420 PRG:C420 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C430 PRG:C430 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C440 PRG:C440 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C450 PRG:C450 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C460 PRG:C460 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C470 PRG:C470 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C480 PRG:C480 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C490 PRG:C490 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C4A0 PRG:C4A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C4B0 PRG:C4B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C4C0 PRG:C4C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C4D0 PRG:C4D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C4E0 PRG:C4E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C4F0 PRG:C4F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C500 PRG:C500 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C510 PRG:C510 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C520 PRG:C520 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C530 PRG:C530 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C540 PRG:C540 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C550 PRG:C550 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C560 PRG:C560 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C570 PRG:C570 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C580 PRG:C580 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C590 PRG:C590 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C5A0 PRG:C5A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C5B0 PRG:C5B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C5C0 PRG:C5C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C5D0 PRG:C5D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C5E0 PRG:C5E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C5F0 PRG:C5F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C600 PRG:C600 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C610 PRG:C610 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C620 PRG:C620 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C630 PRG:C630 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C640 PRG:C640 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C650 PRG:C650 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C660 PRG:C660 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C670 PRG:C670 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C680 PRG:C680 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C690 PRG:C690 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C6A0 PRG:C6A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C6B0 PRG:C6B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C6C0 PRG:C6C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C6D0 PRG:C6D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C6E0 PRG:C6E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C6F0 PRG:C6F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C700 PRG:C700 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C710 PRG:C710 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C720 PRG:C720 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C730 PRG:C730 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C740 PRG:C740 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C750 PRG:C750 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C760 PRG:C760 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C770 PRG:C770 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C780 PRG:C780 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C790 PRG:C790 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C7A0 PRG:C7A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C7B0 PRG:C7B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$C7C0 PRG:C7C0 FF FF FF FF FF FF FF FF FF FF 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:C7D0 FF FF FF FF FF FF FF FF FF FF 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:C7E0 FF FF FF FF FF FF FF FF FF FF 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:C7F0 FF FF FF FF FF FF FF FF FF FF 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:C800 FF FF FF FF FF FF FF FF FF FF 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:C810 FF FF FF FF FF FF FF FF FF FF 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:C820 FF FF FF FF FF FF FF FF FF FF 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:C830 FF FF FF FF FF FF FF FF FF FF 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:C840 FF FF FF FF FF FF FF FF FF FF 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:C850 FF FF FF FF FF FF FF FF FF FF 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:C860 FF FF FF FF FF FF FF FF FF FF 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:C870 FF FF FF FF FF FF FF FF FF FF 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:C880 FF FF FF FF FF FF FF FF FF FF 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:C890 FF FF FF FF FF FF FF FF FF FF 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:C8A0 FF FF FF FF FF FF FF FF FF FF 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:C8B0 FF FF FF FF FF FF FF FF FF FF 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:C8C0 FF FF FF FF FF FF FF FF FF FF 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:C8D0 FF FF FF FF FF FF FF FF FF FF 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:C8E0 FF FF FF FF FF FF FF FF FF FF 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:C8F0 FF FF FF FF FF FF FF FF FF FF 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:C900 FF FF FF FF FF FF FF FF FF FF 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:C910 FF FF FF FF FF FF FF FF FF FF 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:C920 FF FF FF FF FF FF FF FF FF FF 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:C930 FF FF FF FF FF FF FF FF FF FF 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:C940 FF FF FF FF FF FF FF FF FF FF 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:C950 FF FF FF FF FF FF FF FF FF FF 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:C960 FF FF FF FF FF FF FF FF FF FF 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:C970 FF FF FF FF FF FF FF FF FF FF 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:C980 FF FF FF FF FF FF FF FF FF FF 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:C990 FF FF FF FF FF FF FF FF FF FF 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:C9A0 FF FF FF FF FF FF FF FF FF FF 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:C9B0 FF FF FF FF FF FF FF FF FF FF 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:C9C0 FF FF FF FF FF FF FF FF FF FF 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:C9D0 FF FF FF FF FF FF FF FF FF FF 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:C9E0 FF FF FF FF FF FF FF FF FF FF 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:C9F0 FF FF FF FF FF FF FF FF FF FF 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:CA00 FF FF FF FF FF FF FF FF FF FF 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:CA10 FF FF FF FF FF FF FF FF FF FF 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:CA20 FF FF FF FF FF FF FF FF FF FF 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:CA30 FF FF FF FF FF FF FF FF FF FF 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:CA40 FF FF FF FF FF FF FF FF FF FF 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:CA50 FF FF FF FF FF FF FF FF FF FF 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:CA60 FF FF FF FF FF FF FF FF FF FF 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:CA70 FF FF FF FF FF FF FF FF FF FF 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:CA80 FF FF FF FF FF FF FF FF FF FF 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:CA90 FF FF FF FF FF FF FF FF FF FF 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:CAA0 FF FF FF FF FF FF FF FF FF FF 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:CAB0 FF FF FF FF FF FF FF FF FF FF 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:CAC0 FF FF FF FF FF FF FF FF FF FF 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:CAD0 FF FF FF FF FF FF FF FF FF FF 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:CAE0 FF FF FF FF FF FF FF FF FF FF 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:CAF0 FF FF FF FF FF FF FF FF FF FF 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:CB00 FF FF FF FF FF FF FF FF FF FF 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:CB10 FF FF FF FF FF FF FF FF FF FF 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:CB20 FF FF FF FF FF FF FF FF FF FF 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:CB30 FF FF FF FF FF FF FF FF FF FF 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:CB40 FF FF FF FF FF FF FF FF FF FF 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:CB50 FF FF FF FF FF FF FF FF FF FF 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:CB60 FF FF FF FF FF FF FF FF FF FF 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:CB70 FF FF FF FF FF FF FF FF FF FF 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:CB80 FF FF FF FF FF FF FF FF FF FF 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:CB90 FF FF FF FF FF FF FF FF FF FF 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:CBA0 FF FF FF FF FF FF FF FF FF FF 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:CBB0 FF FF FF FF FF FF FF FF FF FF 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:CBC0 FF FF FF FF FF FF FF FF FF FF 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:CBD0 FF FF FF FF FF FF FF FF FF FF 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:CBE0 FF FF FF FF FF FF FF FF FF FF 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:CBF0 FF FF FF FF FF FF FF FF FF FF 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:CC00 FF FF FF FF FF FF FF FF FF FF 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:CC10 FF FF FF FF FF FF FF FF FF FF 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:CC20 FF FF FF FF FF FF FF FF FF FF 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:CC30 FF FF FF FF FF FF FF FF FF FF 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:CC40 FF FF FF FF FF FF FF FF FF FF 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:CC50 FF FF FF FF FF FF FF FF FF FF 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:CC60 FF FF FF FF FF FF FF FF FF FF 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:CC70 FF FF FF FF FF FF FF FF FF FF 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:CC80 FF FF FF FF FF FF FF FF FF FF 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:CC90 FF FF FF FF FF FF FF FF FF FF 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:CCA0 FF FF FF FF FF FF FF FF FF FF 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:CCB0 FF FF FF FF FF FF FF FF FF FF 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:CCC0 FF FF FF FF FF FF FF FF FF FF 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:CCD0 FF FF FF FF FF FF FF FF FF FF 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:CCE0 FF FF FF FF FF FF FF FF FF FF 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:CCF0 FF FF FF FF FF FF FF FF FF FF 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:CD00 FF FF FF FF FF FF FF FF FF FF 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:CD10 FF FF FF FF FF FF FF FF FF FF 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:CD20 FF FF FF FF FF FF FF FF FF FF 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:CD30 FF FF FF FF FF FF FF FF FF FF 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:CD40 FF FF FF FF FF FF FF FF FF FF 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:CD50 FF FF FF FF FF FF FF FF FF FF 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:CD60 FF FF FF FF FF FF FF FF FF FF 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:CD70 FF FF FF FF FF FF FF FF FF FF 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:CD80 FF FF FF FF FF FF FF FF FF FF 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:CD90 FF FF FF FF FF FF FF FF FF FF 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:CDA0 FF FF FF FF FF FF FF FF FF FF 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:CDB0 FF FF FF FF FF FF FF FF FF FF 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:CDC0 FF FF FF FF FF FF FF FF FF FF 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:CDD0 FF FF FF FF FF FF FF FF FF FF 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:CDE0 FF FF FF FF FF FF FF FF FF FF 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:CDF0 FF FF FF FF FF FF FF FF FF FF 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:CE00 FF FF FF FF FF FF FF FF FF FF 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:CE10 FF FF FF FF FF FF FF FF FF FF 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:CE20 FF FF FF FF FF FF FF FF FF FF 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:CE30 FF FF FF FF FF FF FF FF FF FF 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:CE40 FF FF FF FF FF FF FF FF FF FF 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:CE50 FF FF FF FF FF FF FF FF FF FF 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:CE60 FF FF FF FF FF FF FF FF FF FF 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:CE70 FF FF FF FF FF FF FF FF FF FF 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:CE80 FF FF FF FF FF FF FF FF FF FF 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:CE90 FF FF FF FF FF FF FF FF FF FF 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:CEA0 FF FF FF FF FF FF FF FF FF FF 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:CEB0 FF FF FF FF FF FF FF FF FF FF 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:CEC0 FF FF FF FF FF FF FF FF FF FF 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:CED0 FF FF FF FF FF FF FF FF FF FF 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:CEE0 FF FF FF FF FF FF FF FF FF FF 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:CEF0 FF FF FF FF FF FF FF FF FF FF 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:CF00 FF FF FF FF FF FF FF FF FF FF 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:CF10 FF FF FF FF FF FF FF FF FF FF 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:CF20 FF FF FF FF FF FF FF FF FF FF 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:CF30 FF FF FF FF FF FF FF FF FF FF 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:CF40 FF FF FF FF FF FF FF FF FF FF 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:CF50 FF FF FF FF FF FF FF FF FF FF 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:CF60 FF FF FF FF FF FF FF FF FF FF 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:CF70 FF FF FF FF FF FF FF FF FF FF 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:CF80 FF FF FF FF FF FF FF FF FF FF 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:CF90 FF FF FF FF FF FF FF FF FF FF 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:CFA0 FF FF FF FF FF FF FF FF FF FF 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:CFB0 FF FF FF FF FF FF FF FF FF FF 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:CFC0 FF FF FF FF FF FF FF FF FF FF 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:CFD0 FF FF FF FF FF FF FF FF FF FF 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:CFE0 FF FF FF FF FF FF FF FF FF FF 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:CFF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D000 PRG:D000 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$D010 PRG:D010 FF FF FF FF FF FF FF FF FF FF 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:D020 FF FF FF FF FF FF FF FF FF FF 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:D030 FF FF FF FF FF FF FF FF FF FF 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:D040 FF FF FF FF FF FF FF FF FF FF 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:D050 FF FF FF FF FF FF FF FF FF FF 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:D060 FF FF FF FF FF FF FF FF FF FF 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:D070 FF FF FF FF FF FF FF FF FF FF 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:D080 FF FF FF FF FF FF FF FF FF FF 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:D090 FF FF FF FF FF FF FF FF FF FF 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:D0A0 FF FF FF FF FF FF FF FF FF FF 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:D0B0 FF FF FF FF FF FF FF FF FF FF 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:D0C0 FF FF FF FF FF FF FF FF FF FF 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:D0D0 FF FF FF FF FF FF FF FF FF FF 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:D0E0 FF FF FF FF FF FF FF FF FF FF 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:D0F0 FF FF FF FF FF FF FF FF FF FF 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:D100 FF FF FF FF FF FF FF FF FF FF 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:D110 FF FF FF FF FF FF FF FF FF FF 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:D120 FF FF FF FF FF FF FF FF FF FF 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:D130 FF FF FF FF FF FF FF FF FF FF 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:D140 FF FF FF FF FF FF FF FF FF FF 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:D150 FF FF FF FF FF FF FF FF FF FF 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:D160 FF FF FF FF FF FF FF FF FF FF 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:D170 FF FF FF FF FF FF FF FF FF FF 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:D180 FF FF FF FF FF FF FF FF FF FF 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:D190 FF FF FF FF FF FF FF FF FF FF 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:D1A0 FF FF FF FF FF FF FF FF FF FF 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:D1B0 FF FF FF FF FF FF FF FF FF FF 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:D1C0 FF FF FF FF FF FF FF FF FF FF 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:D1D0 FF FF FF FF FF FF FF FF FF FF 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:D1E0 FF FF FF FF FF FF FF FF FF FF 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:D1F0 FF FF FF FF FF FF FF FF FF FF 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:D200 FF FF FF FF FF FF FF FF FF FF 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:D210 FF FF FF FF FF FF FF FF FF FF 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:D220 FF FF FF FF FF FF FF FF FF FF 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:D230 FF FF FF FF FF FF FF FF FF FF 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:D240 FF FF FF FF FF FF FF FF FF FF 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:D250 FF FF FF FF FF FF FF FF FF FF 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:D260 FF FF FF FF FF FF FF FF FF FF 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:D270 FF FF FF FF FF FF FF FF FF FF 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:D280 FF FF FF FF FF FF FF FF FF FF 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:D290 FF FF FF FF FF FF FF FF FF FF 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:D2A0 FF FF FF FF FF FF FF FF FF FF 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:D2B0 FF FF FF FF FF FF FF FF FF FF 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:D2C0 FF FF FF FF FF FF FF FF FF FF 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:D2D0 FF FF FF FF FF FF FF FF FF FF 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:D2E0 FF FF FF FF FF FF FF FF FF FF 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:D2F0 FF FF FF FF FF FF FF FF FF FF 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:D300 FF FF FF FF FF FF FF FF FF FF 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:D310 FF FF FF FF FF FF FF FF FF FF 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:D320 FF FF FF FF FF FF FF FF FF FF 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:D330 FF FF FF FF FF FF FF FF FF FF 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:D340 FF FF FF FF FF FF FF FF FF FF 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:D350 FF FF FF FF FF FF FF FF FF FF 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:D360 FF FF FF FF FF FF FF FF FF FF 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:D370 FF FF FF FF FF FF FF FF FF FF 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:D380 FF FF FF FF FF FF FF FF FF FF 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:D390 FF FF FF FF FF FF FF FF FF FF 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:D3A0 FF FF FF FF FF FF FF FF FF FF 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:D3B0 FF FF FF FF FF FF FF FF FF FF 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:D3C0 FF FF FF FF FF FF FF FF FF FF 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:D3D0 FF FF FF FF FF FF FF FF FF FF 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:D3E0 FF FF FF FF FF FF FF FF FF FF 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:D3F0 FF FF FF FF FF FF FF FF FF FF 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:D400 FF FF FF FF FF FF FF FF FF FF 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:D410 FF FF FF FF FF FF FF FF FF FF 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:D420 FF FF FF FF FF FF FF FF FF FF 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:D430 FF FF FF FF FF FF FF FF FF FF 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:D440 FF FF FF FF FF FF FF FF FF FF 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:D450 FF FF FF FF FF FF FF FF FF FF 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:D460 FF FF FF FF FF FF FF FF FF FF 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:D470 FF FF FF FF FF FF FF FF FF FF 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:D480 FF FF FF FF FF FF FF FF FF FF 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:D490 FF FF FF FF FF FF FF FF FF FF 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:D4A0 FF FF FF FF FF FF FF FF FF FF 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:D4B0 FF FF FF FF FF FF FF FF FF FF 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:D4C0 FF FF FF FF FF FF FF FF FF FF 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:D4D0 FF FF FF FF FF FF FF FF FF FF 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:D4E0 FF FF FF FF FF FF FF FF FF FF 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:D4F0 FF FF FF FF FF FF FF FF FF FF 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:D500 FF FF FF FF FF FF FF FF FF FF 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:D510 FF FF FF FF FF FF FF FF FF FF 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:D520 FF FF FF FF FF FF FF FF FF FF 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:D530 FF FF FF FF FF FF FF FF FF FF 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:D540 FF FF FF FF FF FF FF FF FF FF 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:D550 FF FF FF FF FF FF FF FF FF FF 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:D560 FF FF FF FF FF FF FF FF FF FF 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:D570 FF FF FF FF FF FF FF FF FF FF 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:D580 FF FF FF FF FF FF FF FF FF FF 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:D590 FF FF FF FF FF FF FF FF FF FF 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:D5A0 FF FF FF FF FF FF FF FF FF FF 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:D5B0 FF FF FF FF FF FF FF FF FF FF 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:D5C0 FF FF FF FF FF FF FF FF FF FF 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:D5D0 FF FF FF FF FF FF FF FF FF FF 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:D5E0 FF FF FF FF FF FF FF FF FF FF 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:D5F0 FF FF FF FF FF FF FF FF FF FF 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:D600 FF FF FF FF FF FF FF FF FF FF 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:D610 FF FF FF FF FF FF FF FF FF FF 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:D620 FF FF FF FF FF FF FF FF FF FF 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:D630 FF FF FF FF FF FF FF FF FF FF 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:D640 FF FF FF FF FF FF FF FF FF FF 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:D650 FF FF FF FF FF FF FF FF FF FF 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:D660 FF FF FF FF FF FF FF FF FF FF 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:D670 FF FF FF FF FF FF FF FF FF FF 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:D680 FF FF FF FF FF FF FF FF FF FF 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:D690 FF FF FF FF FF FF FF FF FF FF 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:D6A0 FF FF FF FF FF FF FF FF FF FF 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:D6B0 FF FF FF FF FF FF FF FF FF FF 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:D6C0 FF FF FF FF FF FF FF FF FF FF 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:D6D0 FF FF FF FF FF FF FF FF FF FF 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:D6E0 FF FF FF FF FF FF FF FF FF FF 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:D6F0 FF FF FF FF FF FF FF FF FF FF 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:D700 FF FF FF FF FF FF FF FF FF FF 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:D710 FF FF FF FF FF FF FF FF FF FF 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:D720 FF FF FF FF FF FF FF FF FF FF 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:D730 FF FF FF FF FF FF FF FF FF FF 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:D740 FF FF FF FF FF FF FF FF FF FF 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:D750 FF FF FF FF FF FF FF FF FF FF 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:D760 FF FF FF FF FF FF FF FF FF FF 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:D770 FF FF FF FF FF FF FF FF FF FF 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:D780 FF FF FF FF FF FF FF FF FF FF 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:D790 FF FF FF FF FF FF FF FF FF FF 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:D7A0 FF FF FF FF FF FF FF FF FF FF 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:D7B0 FF FF FF FF FF FF FF FF FF FF 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:D7C0 FF FF FF FF FF FF FF FF FF FF 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:D7D0 FF FF FF FF FF FF FF FF FF FF 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:D7E0 FF FF FF FF FF FF FF FF FF FF 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:D7F0 FF FF FF FF FF FF FF FF FF FF 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:D800 FF FF FF FF FF FF FF FF FF FF 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:D810 FF FF FF FF FF FF FF FF FF FF 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:D820 FF FF FF FF FF FF FF FF FF FF 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:D830 FF FF FF FF FF FF FF FF FF FF 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:D840 FF FF FF FF FF FF FF FF FF FF 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:D850 FF FF FF FF FF FF FF FF FF FF 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:D860 FF FF FF FF FF FF FF FF FF FF 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:D870 FF FF FF FF FF FF FF FF FF FF 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:D880 FF FF FF FF FF FF FF FF FF FF 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:D890 FF FF FF FF FF FF FF FF FF FF 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:D8A0 FF FF FF FF FF FF FF FF FF FF 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:D8B0 FF FF FF FF FF FF FF FF FF FF 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:D8C0 FF FF FF FF FF FF FF FF FF FF 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:D8D0 FF FF FF FF FF FF FF FF FF FF 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:D8E0 FF FF FF FF FF FF FF FF FF FF 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:D8F0 FF FF FF FF FF FF FF FF FF FF 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:D900 FF FF FF FF FF FF FF FF FF FF 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:D910 FF FF FF FF FF FF FF FF FF FF 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:D920 FF FF FF FF FF FF FF FF FF FF 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:D930 FF FF FF FF FF FF FF FF FF FF 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:D940 FF FF FF FF FF FF FF FF FF FF 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:D950 FF FF FF FF FF FF FF FF FF FF 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:D960 FF FF FF FF FF FF FF FF FF FF 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:D970 FF FF FF FF FF FF FF FF FF FF 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:D980 FF FF FF FF FF FF FF FF FF FF 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:D990 FF FF FF FF FF FF FF FF FF FF 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:D9A0 FF FF FF FF FF FF FF FF FF FF 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:D9B0 FF FF FF FF FF FF FF FF FF FF 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:D9C0 FF FF FF FF FF FF FF FF FF FF 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:D9D0 FF FF FF FF FF FF FF FF FF FF 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:D9E0 FF FF FF FF FF FF FF FF FF FF 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:D9F0 FF FF FF FF FF FF FF FF FF FF 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:DA00 FF FF FF FF FF FF FF FF FF FF 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:DA10 FF FF FF FF FF FF FF FF FF FF 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:DA20 FF FF FF FF FF FF FF FF FF FF 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:DA30 FF FF FF FF FF FF FF FF FF FF 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:DA40 FF FF FF FF FF FF FF FF FF FF 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:DA50 FF FF FF FF FF FF FF FF FF FF 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:DA60 FF FF FF FF FF FF FF FF FF FF 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:DA70 FF FF FF FF FF FF FF FF FF FF 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:DA80 FF FF FF FF FF FF FF FF FF FF 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:DA90 FF FF FF FF FF FF FF FF FF FF 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:DAA0 FF FF FF FF FF FF FF FF FF FF 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:DAB0 FF FF FF FF FF FF FF FF FF FF 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:DAC0 FF FF FF FF FF FF FF FF FF FF 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:DAD0 FF FF FF FF FF FF FF FF FF FF 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:DAE0 FF FF FF FF FF FF FF FF FF FF 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:DAF0 FF FF FF FF FF FF FF FF FF FF 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:DB00 FF FF FF FF FF FF FF FF FF FF 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:DB10 FF FF FF FF FF FF FF FF FF FF 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:DB20 FF FF FF FF FF FF FF FF FF FF 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:DB30 FF FF FF FF FF FF FF FF FF FF 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:DB40 FF FF FF FF FF FF FF FF FF FF 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:DB50 FF FF FF FF FF FF FF FF FF FF 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:DB60 FF FF FF FF FF FF FF FF FF FF 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:DB70 FF FF FF FF FF FF FF FF FF FF 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:DB80 FF FF FF FF FF FF FF FF FF FF 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:DB90 FF FF FF FF FF FF FF FF FF FF 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:DBA0 FF FF FF FF FF FF FF FF FF FF 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:DBB0 FF FF FF FF FF FF FF FF FF FF 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:DBC0 FF FF FF FF FF FF FF FF FF FF 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:DBD0 FF FF FF FF FF FF FF FF FF FF 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:DBE0 FF FF FF FF FF FF FF FF FF FF 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:DBF0 FF FF FF FF FF FF FF FF FF FF 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:DC00 FF FF FF FF FF FF FF FF FF FF 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:DC10 FF FF FF FF FF FF FF FF FF FF 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:DC20 FF FF FF FF FF FF FF FF FF FF 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:DC30 FF FF FF FF FF FF FF FF FF FF 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:DC40 FF FF FF FF FF FF FF FF FF FF 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:DC50 FF FF FF FF FF FF FF FF FF FF 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:DC60 FF FF FF FF FF FF FF FF FF FF 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:DC70 FF FF FF FF FF FF FF FF FF FF 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:DC80 FF FF FF FF FF FF FF FF FF FF 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:DC90 FF FF FF FF FF FF FF FF FF FF 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:DCA0 FF FF FF FF FF FF FF FF FF FF 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:DCB0 FF FF FF FF FF FF FF FF FF FF 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:DCC0 FF FF FF FF FF FF FF FF FF FF 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:DCD0 FF FF FF FF FF FF FF FF FF FF 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:DCE0 FF FF FF FF FF FF FF FF FF FF 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:DCF0 FF FF FF FF FF FF FF FF FF FF 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:DD00 FF FF FF FF FF FF FF FF FF FF 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:DD10 FF FF FF FF FF FF FF FF FF FF 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:DD20 FF FF FF FF FF FF FF FF FF FF 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:DD30 FF FF FF FF FF FF FF FF FF FF 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:DD40 FF FF FF FF FF FF FF FF FF FF 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:DD50 FF FF FF FF FF FF FF FF FF FF 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:DD60 FF FF FF FF FF FF FF FF FF FF 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:DD70 FF FF FF FF FF FF FF FF FF FF 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:DD80 FF FF FF FF FF FF FF FF FF FF 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:DD90 FF FF FF FF FF FF FF FF FF FF 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:DDA0 FF FF FF FF FF FF FF FF FF FF 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:DDB0 FF FF FF FF FF FF FF FF FF FF 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:DDC0 FF FF FF FF FF FF FF FF FF FF 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:DDD0 FF FF FF FF FF FF FF FF FF FF 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:DDE0 FF FF FF FF FF FF FF FF FF FF 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:DDF0 FF FF FF FF FF FF FF FF FF FF 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:DE00 FF FF FF FF FF FF FF FF FF FF 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:DE10 FF FF FF FF FF FF FF FF FF FF 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:DE20 FF FF FF FF FF FF FF FF FF FF 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:DE30 FF FF FF FF FF FF FF FF FF FF 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:DE40 FF FF FF FF FF FF FF FF FF FF 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:DE50 FF FF FF FF FF FF FF FF FF FF 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:DE60 FF FF FF FF FF FF FF FF FF FF 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:DE70 FF FF FF FF FF FF FF FF FF FF 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:DE80 FF FF FF FF FF FF FF FF FF FF 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:DE90 FF FF FF FF FF FF FF FF FF FF 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:DEA0 FF FF FF FF FF FF FF FF FF FF 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:DEB0 FF FF FF FF FF FF FF FF FF FF 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:DEC0 FF FF FF FF FF FF FF FF FF FF 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:DED0 FF FF FF FF FF FF FF FF FF FF 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:DEE0 FF FF FF FF FF FF FF FF FF FF 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:DEF0 FF FF FF FF FF FF FF FF FF FF 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:DF00 FF FF FF FF FF FF FF FF FF FF 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:DF10 FF FF FF FF FF FF FF FF FF FF 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:DF20 FF FF FF FF FF FF FF FF FF FF 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:DF30 FF FF FF FF FF FF FF FF FF FF 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:DF40 FF FF FF FF FF FF FF FF FF FF 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:DF50 FF FF FF FF FF FF FF FF FF FF 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:DF60 FF FF FF FF FF FF FF FF FF FF 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:DF70 FF FF FF FF FF FF FF FF FF FF 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:DF80 FF FF FF FF FF FF FF FF FF FF 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:DF90 FF FF FF FF FF FF FF FF FF FF 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:DFA0 FF FF FF FF FF FF FF FF FF FF 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:DFB0 FF FF FF FF FF FF FF FF FF FF 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:DFC0 FF FF FF FF FF FF FF FF FF FF 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:DFD0 FF FF FF FF FF FF FF FF FF FF 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:DFE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$DFF0 PRG:DFF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.segment "PRG7"
.org $E000
; ---- data $E000-$FF6F (8048 bytes) ----
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E000 PRG:E000 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E010 PRG:E010 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E020 PRG:E020 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E030 PRG:E030 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E040 PRG:E040 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E050 PRG:E050 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E060 PRG:E060 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E070 PRG:E070 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E080 PRG:E080 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E090 PRG:E090 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0A0 PRG:E0A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0B0 PRG:E0B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0C0 PRG:E0C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0D0 PRG:E0D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0E0 PRG:E0E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E0F0 PRG:E0F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E100 PRG:E100 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E110 PRG:E110 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E120 PRG:E120 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E130 PRG:E130 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E140 PRG:E140 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E150 PRG:E150 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E160 PRG:E160 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E170 PRG:E170 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E180 PRG:E180 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E190 PRG:E190 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1A0 PRG:E1A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1B0 PRG:E1B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1C0 PRG:E1C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1D0 PRG:E1D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1E0 PRG:E1E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E1F0 PRG:E1F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E200 PRG:E200 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E210 PRG:E210 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E220 PRG:E220 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E230 PRG:E230 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E240 PRG:E240 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E250 PRG:E250 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E260 PRG:E260 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E270 PRG:E270 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E280 PRG:E280 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E290 PRG:E290 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2A0 PRG:E2A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2B0 PRG:E2B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2C0 PRG:E2C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2D0 PRG:E2D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2E0 PRG:E2E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E2F0 PRG:E2F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E300 PRG:E300 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E310 PRG:E310 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E320 PRG:E320 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E330 PRG:E330 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E340 PRG:E340 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E350 PRG:E350 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E360 PRG:E360 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E370 PRG:E370 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E380 PRG:E380 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E390 PRG:E390 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3A0 PRG:E3A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3B0 PRG:E3B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3C0 PRG:E3C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3D0 PRG:E3D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3E0 PRG:E3E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E3F0 PRG:E3F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E400 PRG:E400 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E410 PRG:E410 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E420 PRG:E420 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E430 PRG:E430 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E440 PRG:E440 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E450 PRG:E450 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E460 PRG:E460 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E470 PRG:E470 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E480 PRG:E480 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E490 PRG:E490 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4A0 PRG:E4A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4B0 PRG:E4B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4C0 PRG:E4C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4D0 PRG:E4D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4E0 PRG:E4E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E4F0 PRG:E4F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E500 PRG:E500 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E510 PRG:E510 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E520 PRG:E520 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E530 PRG:E530 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E540 PRG:E540 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E550 PRG:E550 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E560 PRG:E560 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E570 PRG:E570 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E580 PRG:E580 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E590 PRG:E590 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5A0 PRG:E5A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5B0 PRG:E5B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5C0 PRG:E5C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5D0 PRG:E5D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5E0 PRG:E5E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E5F0 PRG:E5F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E600 PRG:E600 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E610 PRG:E610 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E620 PRG:E620 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E630 PRG:E630 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E640 PRG:E640 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E650 PRG:E650 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E660 PRG:E660 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E670 PRG:E670 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E680 PRG:E680 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E690 PRG:E690 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6A0 PRG:E6A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6B0 PRG:E6B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6C0 PRG:E6C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6D0 PRG:E6D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6E0 PRG:E6E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E6F0 PRG:E6F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E700 PRG:E700 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E710 PRG:E710 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E720 PRG:E720 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E730 PRG:E730 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E740 PRG:E740 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E750 PRG:E750 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E760 PRG:E760 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E770 PRG:E770 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E780 PRG:E780 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E790 PRG:E790 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7A0 PRG:E7A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7B0 PRG:E7B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7C0 PRG:E7C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7D0 PRG:E7D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7E0 PRG:E7E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E7F0 PRG:E7F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E800 PRG:E800 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E810 PRG:E810 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E820 PRG:E820 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E830 PRG:E830 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E840 PRG:E840 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E850 PRG:E850 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E860 PRG:E860 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E870 PRG:E870 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E880 PRG:E880 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E890 PRG:E890 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8A0 PRG:E8A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8B0 PRG:E8B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8C0 PRG:E8C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8D0 PRG:E8D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8E0 PRG:E8E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E8F0 PRG:E8F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E900 PRG:E900 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E910 PRG:E910 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E920 PRG:E920 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E930 PRG:E930 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E940 PRG:E940 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E950 PRG:E950 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E960 PRG:E960 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E970 PRG:E970 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E980 PRG:E980 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E990 PRG:E990 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9A0 PRG:E9A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9B0 PRG:E9B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9C0 PRG:E9C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9D0 PRG:E9D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9E0 PRG:E9E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$E9F0 PRG:E9F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA00 PRG:EA00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA10 PRG:EA10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA20 PRG:EA20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA30 PRG:EA30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA40 PRG:EA40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA50 PRG:EA50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA60 PRG:EA60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA70 PRG:EA70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA80 PRG:EA80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EA90 PRG:EA90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAA0 PRG:EAA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAB0 PRG:EAB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAC0 PRG:EAC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAD0 PRG:EAD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAE0 PRG:EAE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EAF0 PRG:EAF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB00 PRG:EB00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB10 PRG:EB10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB20 PRG:EB20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB30 PRG:EB30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB40 PRG:EB40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB50 PRG:EB50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB60 PRG:EB60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB70 PRG:EB70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB80 PRG:EB80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EB90 PRG:EB90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBA0 PRG:EBA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBB0 PRG:EBB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBC0 PRG:EBC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBD0 PRG:EBD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBE0 PRG:EBE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EBF0 PRG:EBF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC00 PRG:EC00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC10 PRG:EC10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC20 PRG:EC20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC30 PRG:EC30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC40 PRG:EC40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC50 PRG:EC50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC60 PRG:EC60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC70 PRG:EC70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC80 PRG:EC80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EC90 PRG:EC90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECA0 PRG:ECA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECB0 PRG:ECB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECC0 PRG:ECC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECD0 PRG:ECD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECE0 PRG:ECE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ECF0 PRG:ECF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED00 PRG:ED00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED10 PRG:ED10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED20 PRG:ED20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED30 PRG:ED30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED40 PRG:ED40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED50 PRG:ED50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED60 PRG:ED60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED70 PRG:ED70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED80 PRG:ED80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$ED90 PRG:ED90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDA0 PRG:EDA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDB0 PRG:EDB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDC0 PRG:EDC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDD0 PRG:EDD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDE0 PRG:EDE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EDF0 PRG:EDF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE00 PRG:EE00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE10 PRG:EE10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE20 PRG:EE20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE30 PRG:EE30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE40 PRG:EE40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE50 PRG:EE50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE60 PRG:EE60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE70 PRG:EE70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE80 PRG:EE80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EE90 PRG:EE90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEA0 PRG:EEA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEB0 PRG:EEB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEC0 PRG:EEC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EED0 PRG:EED0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEE0 PRG:EEE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EEF0 PRG:EEF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF00 PRG:EF00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF10 PRG:EF10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF20 PRG:EF20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF30 PRG:EF30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF40 PRG:EF40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF50 PRG:EF50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF60 PRG:EF60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF70 PRG:EF70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF80 PRG:EF80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EF90 PRG:EF90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFA0 PRG:EFA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFB0 PRG:EFB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFC0 PRG:EFC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFD0 PRG:EFD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFE0 PRG:EFE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$EFF0 PRG:EFF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F000 PRG:F000 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F010 PRG:F010 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F020 PRG:F020 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F030 PRG:F030 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F040 PRG:F040 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F050 PRG:F050 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F060 PRG:F060 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F070 PRG:F070 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F080 PRG:F080 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F090 PRG:F090 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0A0 PRG:F0A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0B0 PRG:F0B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0C0 PRG:F0C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0D0 PRG:F0D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0E0 PRG:F0E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F0F0 PRG:F0F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F100 PRG:F100 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F110 PRG:F110 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F120 PRG:F120 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F130 PRG:F130 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F140 PRG:F140 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F150 PRG:F150 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F160 PRG:F160 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F170 PRG:F170 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F180 PRG:F180 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F190 PRG:F190 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1A0 PRG:F1A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1B0 PRG:F1B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1C0 PRG:F1C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1D0 PRG:F1D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1E0 PRG:F1E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F1F0 PRG:F1F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F200 PRG:F200 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F210 PRG:F210 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F220 PRG:F220 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F230 PRG:F230 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F240 PRG:F240 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F250 PRG:F250 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F260 PRG:F260 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F270 PRG:F270 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F280 PRG:F280 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F290 PRG:F290 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2A0 PRG:F2A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2B0 PRG:F2B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2C0 PRG:F2C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2D0 PRG:F2D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2E0 PRG:F2E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F2F0 PRG:F2F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F300 PRG:F300 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F310 PRG:F310 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F320 PRG:F320 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F330 PRG:F330 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F340 PRG:F340 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F350 PRG:F350 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F360 PRG:F360 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F370 PRG:F370 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F380 PRG:F380 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F390 PRG:F390 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3A0 PRG:F3A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3B0 PRG:F3B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3C0 PRG:F3C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3D0 PRG:F3D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3E0 PRG:F3E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F3F0 PRG:F3F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F400 PRG:F400 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F410 PRG:F410 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F420 PRG:F420 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F430 PRG:F430 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F440 PRG:F440 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F450 PRG:F450 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F460 PRG:F460 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F470 PRG:F470 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F480 PRG:F480 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F490 PRG:F490 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4A0 PRG:F4A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4B0 PRG:F4B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4C0 PRG:F4C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4D0 PRG:F4D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4E0 PRG:F4E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F4F0 PRG:F4F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F500 PRG:F500 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F510 PRG:F510 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F520 PRG:F520 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F530 PRG:F530 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F540 PRG:F540 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F550 PRG:F550 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F560 PRG:F560 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F570 PRG:F570 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F580 PRG:F580 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F590 PRG:F590 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5A0 PRG:F5A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5B0 PRG:F5B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5C0 PRG:F5C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5D0 PRG:F5D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5E0 PRG:F5E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F5F0 PRG:F5F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F600 PRG:F600 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F610 PRG:F610 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F620 PRG:F620 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F630 PRG:F630 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F640 PRG:F640 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F650 PRG:F650 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F660 PRG:F660 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F670 PRG:F670 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F680 PRG:F680 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F690 PRG:F690 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6A0 PRG:F6A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6B0 PRG:F6B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6C0 PRG:F6C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6D0 PRG:F6D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6E0 PRG:F6E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F6F0 PRG:F6F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F700 PRG:F700 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F710 PRG:F710 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F720 PRG:F720 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F730 PRG:F730 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F740 PRG:F740 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F750 PRG:F750 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F760 PRG:F760 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F770 PRG:F770 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F780 PRG:F780 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F790 PRG:F790 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7A0 PRG:F7A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7B0 PRG:F7B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7C0 PRG:F7C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7D0 PRG:F7D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7E0 PRG:F7E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F7F0 PRG:F7F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F800 PRG:F800 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F810 PRG:F810 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F820 PRG:F820 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F830 PRG:F830 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F840 PRG:F840 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F850 PRG:F850 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F860 PRG:F860 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F870 PRG:F870 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F880 PRG:F880 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F890 PRG:F890 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8A0 PRG:F8A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8B0 PRG:F8B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8C0 PRG:F8C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8D0 PRG:F8D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8E0 PRG:F8E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F8F0 PRG:F8F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F900 PRG:F900 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F910 PRG:F910 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F920 PRG:F920 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F930 PRG:F930 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F940 PRG:F940 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F950 PRG:F950 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F960 PRG:F960 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F970 PRG:F970 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F980 PRG:F980 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F990 PRG:F990 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9A0 PRG:F9A0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9B0 PRG:F9B0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9C0 PRG:F9C0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9D0 PRG:F9D0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9E0 PRG:F9E0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$F9F0 PRG:F9F0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA00 PRG:FA00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA10 PRG:FA10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA20 PRG:FA20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA30 PRG:FA30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA40 PRG:FA40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA50 PRG:FA50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA60 PRG:FA60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA70 PRG:FA70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA80 PRG:FA80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FA90 PRG:FA90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FAA0 PRG:FAA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FAB0 PRG:FAB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FAC0 PRG:FAC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FAD0 PRG:FAD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FAE0 PRG:FAE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FAF0 PRG:FAF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB00 PRG:FB00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB10 PRG:FB10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB20 PRG:FB20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB30 PRG:FB30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB40 PRG:FB40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB50 PRG:FB50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB60 PRG:FB60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB70 PRG:FB70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB80 PRG:FB80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FB90 PRG:FB90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBA0 PRG:FBA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBB0 PRG:FBB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBC0 PRG:FBC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBD0 PRG:FBD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBE0 PRG:FBE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FBF0 PRG:FBF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC00 PRG:FC00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC10 PRG:FC10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC20 PRG:FC20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC30 PRG:FC30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC40 PRG:FC40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC50 PRG:FC50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC60 PRG:FC60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC70 PRG:FC70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC80 PRG:FC80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FC90 PRG:FC90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCA0 PRG:FCA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCB0 PRG:FCB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCC0 PRG:FCC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCD0 PRG:FCD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCE0 PRG:FCE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FCF0 PRG:FCF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD00 PRG:FD00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD10 PRG:FD10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD20 PRG:FD20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD30 PRG:FD30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD40 PRG:FD40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD50 PRG:FD50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD60 PRG:FD60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD70 PRG:FD70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD80 PRG:FD80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FD90 PRG:FD90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDA0 PRG:FDA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDB0 PRG:FDB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDC0 PRG:FDC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDD0 PRG:FDD0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDE0 PRG:FDE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FDF0 PRG:FDF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE00 PRG:FE00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE10 PRG:FE10 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE20 PRG:FE20 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE30 PRG:FE30 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE40 PRG:FE40 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE50 PRG:FE50 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE60 PRG:FE60 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE70 PRG:FE70 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE80 PRG:FE80 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FE90 PRG:FE90 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEA0 PRG:FEA0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEB0 PRG:FEB0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEC0 PRG:FEC0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FED0 PRG:FED0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEE0 PRG:FEE0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FEF0 PRG:FEF0 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $A2, $FF, $9A, $78, $D8, $A9, $00, $8D, $00, $20, $8D, $01, $20, $A9, $30, $20 ; CPU:$FF00 PRG:FF00 A2 FF 9A 78 D8 A9 00 8D 00 20 8D 01 20 A9 30 20
.byte $49, $FF, $20, $57, $FF, $90, $18, $A9, $10, $20, $49, $FF, $A9, $30, $20, $49 ; CPU:$FF10 PRG:FF10 49 FF 20 57 FF 90 18 A9 10 20 49 FF A9 30 20 49
.byte $FF, $20, $4C, $FF, $20, $4C, $FF, $A9, $10, $20, $49, $FF, $4C, $3E, $FF, $A9 ; CPU:$FF20 PRG:FF20 FF 20 4C FF 20 4C FF A9 10 20 49 FF 4C 3E FF A9
.byte $20, $20, $49, $FF, $A9, $30, $20, $49, $FF, $A9, $20, $20, $49, $FF, $A9, $30 ; CPU:$FF30 PRG:FF30 20 20 49 FF A9 30 20 49 FF A9 20 20 49 FF A9 30
.byte $8D, $00, $41, $20, $62, $FF, $4C, $36, $80, $8D, $00, $41, $A0, $04, $A2, $CE ; CPU:$FF40 PRG:FF40 8D 00 41 20 62 FF 4C 36 80 8D 00 41 A0 04 A2 CE
.byte $CA, $D0, $FD, $88, $D0, $F8, $60, $A9, $41, $CD, $F0, $07, $D0, $02, $38, $60 ; CPU:$FF50 PRG:FF50 CA D0 FD 88 D0 F8 60 A9 41 CD F0 07 D0 02 38 60
.byte $18, $60, $A9, $41, $8D, $F0, $07, $60, $A9, $5A, $8D, $F0, $07, $60, $FF, $FF ; CPU:$FF60 PRG:FF60 18 60 A9 41 8D F0 07 60 A9 5A 8D F0 07 60 FF FF
; -----------------------------------------------------------------------------
; Routine: Bank7_SwitchPrgBank
; Global: The copy of the bank switch the last bank of the image carries.
; Local: Called from the routine that owns it; its state lives in the zero page.
; Parameters: none - the routine reads its state from the zero page.
; Returns: none - the result is left in the registers the caller reads.
; Clobbers: A, X, Y and the zero-page scratch it uses.
; -----------------------------------------------------------------------------
Bank7_SwitchPrgBank:
ora #$30 ; CPU:$FF70 PRG:FF70 09 30
sta $4100 ; CPU:$FF72 PRG:FF72 8D 00 41
rts ; CPU:$FF75 PRG:FF75 60
; ---- data $FF76-$FFFF (138 bytes) ----
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF76 PRG:FF76 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF86 PRG:FF86 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FF96 PRG:FF96 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFA6 PRG:FFA6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFB6 PRG:FFB6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFC6 PRG:FFC6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFD6 PRG:FFD6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF ; CPU:$FFE6 PRG:FFE6 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF
.byte $FF, $FF, $FF, $FF, $89, $81, $00, $FF, $36, $80 ; CPU:$FFF6 PRG:FFF6 FF FF FF FF 89 81 00 FF 36 80