Files
disasm/NROM/Xevious (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

15859 lines
1.1 MiB
Plaintext

; Xevious (U) NES disassembly - Pass 1
; Byte-oriented ca65 source generated from the supplied PRG image.
; Recursively reachable instructions are emitted explicitly with address/byte comments.
; Unreached bytes remain explicit .byte blocks; no ROM byte is deleted or reformatted.
; Pass 2 replaces address-derived labels, RAM aliases, and table names while
; preserving byte identity.
;
; Vectors: NMI=$FC4E RESET=$FAF6 IRQ=$FF1D
; PRG mapped at $8000-$FFFF (NROM, mirrored to the upper half)
;
; Pass 1 trace provenance (the audit trail behind every classification below):
; dispatch table $BA8B, 16 x 16-bit entries, seeded as routine entries
; dispatch table $CA0A, 64 x 16-bit entries, seeded as routine entries
; 5 further routine entries recovered from table references elsewhere in the image:
; $A6A3, $C022, $C7C4, $C7C6, $E308
; entries seeded by hand after inspecting code-shaped but unreferenced blocks:
; $D833, $D8E0, $D909, $D987, $DA2D, $DA5C, $DA91, $DB1A, $DB5A, $DBA2, $DBB3, $DBF2, $DC19, $DC36, $DC7B, $DCBA, $DD28, $DEE0, $DFBB, $E332, $EB30, $E341, $E40A, $E465, $E4E4, $E520, $E549, $E59A, $E648, $E718, $E7F6, $E82B, $E845, $E853, $E873, $E883, $E8A9, $E8C0, $E983, $E98B, $E9B0, $E9EE, $EA3B, $EA5A, $EA82, $EA9F, $EAE3, $EB1E, $EC96, $ECA0, $ECC3, $ECD9, $ECE4, $ED17, $EE28, $EE3C, $EE50, $EE6C, $EE73, $EE7C, $EE8D, $EE9E, $EED1, $EF09, $EF2B, $EF35, $EFC6, $EFFE, $F018, $F02A, $F03A, $F054, $F0E2, $A53A, $C305, $C455, $C49A, $C4D2, $C4F4, $C4FF, $C50B, $C53B, $C626, $C658, $C6D4, $C711, $C720, $C8B4, $C8BE, $C8D2, $C90F, $C920, $CD45, $CE03, $CECF, $CF22, $CF95, $CFCF, $D024, $D24A, $D2C4, $D2E9, $D2F4, $D343, $D351, $D367, $D372, $D385, $D3BA, $D3D6, $D3FD, $D446, $D498, $D4C1, $D4E3, $D55E, $D56B, $D58A, $D59A, $D5CF, $D608, $D617, $D62C, $D63E, $D6F9, $D7A7, $E084, $E100, $E178
; indirect dispatch through zero page (not followed statically):
; jmp ($00FE) at $BA88
; jmp ($0004) at $CA07
;
.setcpu "6502"
.include "symbols.inc"
.include "locals.inc"
.segment "PRG"
; ---- data $8000-$A2BF (8896 bytes) ----
PatternData:
; referenced by `bit $8481` at $CD84 (operand $8481 falls inside this region)
; referenced by `jsr $9848` at $DC7B (operand $9848 falls inside this region)
; referenced by `lda $A1EE,x` at $F44C (operand $A1EE falls inside this region)
; referenced by `lda $A1EE,x` at $F47A (operand $A1EE falls inside this region)
; referenced by `lda $A000,x` at $F4AF (operand $A000 falls inside this region)
; referenced by `lda $A0F7,x` at $F4B6 (operand $A0F7 falls inside this region)
; ... and 2 further references from decoded code
.byte $6F, $70, $6F, $71, $72, $6F, $71, $72, $70, $71, $6F, $72, $70, $71, $6F, $71 ; CPU:$8000 PRG:0000 6F 70 6F 71 72 6F 71 72 70 71 6F 72 70 71 6F 71
.byte $72, $6F, $71, $70, $72, $72, $6F, $70, $72, $70, $6F, $71, $71, $6F, $6F, $72 ; CPU:$8010 PRG:0010 72 6F 71 70 72 72 6F 70 72 70 6F 71 71 6F 6F 72
.byte $70, $71, $70, $6F, $70, $72, $6F, $70, $71, $6F, $72, $70, $71, $6F, $72, $6F ; CPU:$8020 PRG:0020 70 71 70 6F 70 72 6F 70 71 6F 72 70 71 6F 72 6F
.byte $71, $6F, $70, $71, $72, $72, $71, $70, $6F, $71, $72, $70, $71, $6F, $71, $70 ; CPU:$8030 PRG:0030 71 6F 70 71 72 72 71 70 6F 71 72 70 71 6F 71 70
.byte $71, $6F, $71, $70, $6F, $70, $70, $71, $72, $6F, $70, $71, $70, $70, $71, $6F ; CPU:$8040 PRG:0040 71 6F 71 70 6F 70 70 71 72 6F 70 71 70 70 71 6F
.byte $70, $71, $72, $70, $71, $72, $70, $71, $6F, $72, $71, $6F, $71, $6F, $6F, $72 ; CPU:$8050 PRG:0050 70 71 72 70 71 72 70 71 6F 72 71 6F 71 6F 6F 72
.byte $72, $72, $70, $71, $72, $6F, $70, $71, $6F, $70, $71, $72, $72, $71, $70, $6F ; CPU:$8060 PRG:0060 72 72 70 71 72 6F 70 71 6F 70 71 72 72 71 70 6F
.byte $72, $6F, $71, $70, $70, $71, $6F, $71, $72, $6F, $70, $71, $70, $72, $6F, $71 ; CPU:$8070 PRG:0070 72 6F 71 70 70 71 6F 71 72 6F 70 71 70 72 6F 71
.byte $70, $6F, $71, $72, $70, $71, $72, $6F, $70, $71, $72, $71, $71, $72, $70, $6F ; CPU:$8080 PRG:0080 70 6F 71 72 70 71 72 6F 70 71 72 71 71 72 70 6F
.byte $70, $72, $70, $6F, $72, $70, $71, $70, $71, $70, $70, $6F, $72, $70, $72, $70 ; CPU:$8090 PRG:0090 70 72 70 6F 72 70 71 70 71 70 70 6F 72 70 72 70
.byte $72, $6F, $71, $72, $70, $72, $70, $6F, $72, $70, $71, $70, $6F, $6F, $71, $6F ; CPU:$80A0 PRG:00A0 72 6F 71 72 70 72 70 6F 72 70 71 70 6F 6F 71 6F
.byte $71, $6F, $71, $71, $71, $70, $71, $72, $71, $70, $71, $72, $6F, $71, $70, $72 ; CPU:$80B0 PRG:00B0 71 6F 71 71 71 70 71 72 71 70 71 72 6F 71 70 72
.byte $70, $71, $6F, $70, $72, $71, $70, $71, $70, $6F, $72, $49, $4A, $62, $47, $48 ; CPU:$80C0 PRG:00C0 70 71 6F 70 72 71 70 71 70 6F 72 49 4A 62 47 48
.byte $70, $6F, $71, $72, $70, $70, $71, $72, $6F, $71, $70, $72, $70, $72, $70, $6F ; CPU:$80D0 PRG:00D0 70 6F 71 72 70 70 71 72 6F 71 70 72 70 72 70 6F
.byte $6F, $71, $70, $70, $72, $6F, $71, $70, $70, $71, $72, $6F, $70, $6F, $70, $71 ; CPU:$80E0 PRG:00E0 6F 71 70 70 72 6F 71 70 70 71 72 6F 70 6F 70 71
.byte $72, $70, $71, $71, $72, $71, $6F, $71, $71, $6F, $72, $70, $71, $6F, $71, $70 ; CPU:$80F0 PRG:00F0 72 70 71 71 72 71 6F 71 71 6F 72 70 71 6F 71 70
.byte $4C, $45, $4C, $45, $4C, $0D, $45, $46, $62, $4B, $4C, $0D, $0D, $0D, $0D, $0D ; CPU:$8100 PRG:0100 4C 45 4C 45 4C 0D 45 46 62 4B 4C 0D 0D 0D 0D 0D
.byte $45, $46, $47, $48, $70, $71, $6F, $72, $70, $71, $72, $70, $6F, $71, $72, $6F ; CPU:$8110 PRG:0110 45 46 47 48 70 71 6F 72 70 71 72 70 6F 71 72 6F
.byte $71, $70, $6F, $71, $70, $71, $6F, $70, $70, $71, $6F, $71, $70, $6F, $71, $70 ; CPU:$8120 PRG:0120 71 70 6F 71 70 71 6F 70 70 71 6F 71 70 6F 71 70
.byte $6F, $71, $70, $6F, $70, $6F, $6F, $6F, $71, $71, $70, $72, $70, $6F, $71, $6F ; CPU:$8130 PRG:0130 6F 71 70 6F 70 6F 6F 6F 71 71 70 72 70 6F 71 6F
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8140 PRG:0140 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $46, $47, $48, $49, $6F, $71, $70, $72, $70, $6F, $70, $71 ; CPU:$8150 PRG:0150 0D 0D 0D 0D 46 47 48 49 6F 71 70 72 70 6F 70 71
.byte $70, $71, $6F, $71, $70, $71, $40, $45, $4C, $0D, $45, $46, $62, $4B, $4C, $0D ; CPU:$8160 PRG:0160 70 71 6F 71 70 71 40 45 4C 0D 45 46 62 4B 4C 0D
.byte $59, $91, $69, $70, $71, $6F, $72, $6F, $70, $71, $71, $70, $6F, $71, $6F, $71 ; CPU:$8170 PRG:0170 59 91 69 70 71 6F 72 6F 70 71 71 70 6F 71 6F 71
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8180 PRG:0180 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $55, $70, $71, $6F, $71, $70, $71, $6F ; CPU:$8190 PRG:0190 0D 0D 0D 0D 0D 0D 0D 0D 55 70 71 6F 71 70 71 6F
.byte $71, $70, $6F, $6F, $71, $72, $44, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$81A0 PRG:01A0 71 70 6F 6F 71 72 44 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0C, $2F, $45, $46, $47, $48, $71, $6F, $72, $49, $48, $71, $70, $6F, $72 ; CPU:$81B0 PRG:01B0 0D 0C 2F 45 46 47 48 71 6F 72 49 48 71 70 6F 72
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$81C0 PRG:01C0 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $45, $4C, $55, $70 ; CPU:$81D0 PRG:01D0 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 45 4C 55 70
.byte $6F, $71, $6F, $71, $72, $56, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$81E0 PRG:01E0 6F 71 6F 71 72 56 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $45, $4C, $0D, $0D, $5D, $71, $70, $6F ; CPU:$81F0 PRG:01F0 0D 0C 2F 0D 0D 0D 0D 0D 45 4C 0D 0D 5D 71 70 6F
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8200 PRG:0200 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $5D ; CPU:$8210 PRG:0210 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 5D
.byte $71, $49, $6A, $91, $4C, $07, $30, $0B, $0C, $0C, $26, $27, $0D, $0D, $0D, $0D ; CPU:$8220 PRG:0220 71 49 6A 91 4C 07 30 0B 0C 0C 26 27 0D 0D 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $2E, $65, $71, $70 ; CPU:$8230 PRG:0230 0D 0C 2F 0D 0D 0D 0D 0D 0D 0D 0D 0D 2E 65 71 70
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8240 PRG:0240 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $2E ; CPU:$8250 PRG:0250 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 2E
.byte $0D, $0D, $17, $09, $0D, $0B, $0C, $0C, $0C, $0C, $0C, $0C, $0D, $0D, $0D, $0D ; CPU:$8260 PRG:0260 0D 0D 17 09 0D 0B 0C 0C 0C 0C 0C 0C 0D 0D 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $55, $6F ; CPU:$8270 PRG:0270 0D 0C 2F 0D 0D 0D 0D 0D 0D 0D 0D 0D 2E 0C 55 6F
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8280 PRG:0280 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $2E ; CPU:$8290 PRG:0290 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 2E
.byte $0D, $0D, $1B, $2F, $0D, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0D, $0D, $0D, $0D ; CPU:$82A0 PRG:02A0 0D 0D 1B 2F 0D 0C 0C 0C 0C 0C 0C 0C 0D 0D 0D 0D
.byte $0D, $0C, $0A, $06, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $45 ; CPU:$82B0 PRG:02B0 0D 0C 0A 06 0D 0D 0D 0D 0D 0D 0D 0D 2E 0C 0D 45
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$82C0 PRG:02C0 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $04 ; CPU:$82D0 PRG:02D0 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 04
.byte $33, $0D, $0C, $2F, $0D, $08, $0C, $0C, $0C, $0C, $0C, $01, $0D, $0D, $0D, $0D ; CPU:$82E0 PRG:02E0 33 0D 0C 2F 0D 08 0C 0C 0C 0C 0C 01 0D 0D 0D 0D
.byte $0D, $0C, $0C, $0A, $06, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$82F0 PRG:02F0 0D 0C 0C 0A 06 0D 0D 0D 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8300 PRG:0300 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8310 PRG:0310 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $04, $33, $0C, $2F, $61, $2E, $01, $04, $31, $31, $05, $0D, $0D, $0D, $0D, $0D ; CPU:$8320 PRG:0320 04 33 0C 2F 61 2E 01 04 31 31 05 0D 0D 0D 0D 0D
.byte $0D, $0C, $09, $08, $0A, $06, $0D, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8330 PRG:0330 0D 0C 09 08 0A 06 0D 0D 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8340 PRG:0340 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8350 PRG:0350 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $04, $0C, $2F, $61, $2E, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8360 PRG:0360 0D 04 0C 2F 61 2E 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0C, $2F, $04, $08, $0A, $06, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8370 PRG:0370 0D 0C 2F 04 08 0A 06 0D 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8380 PRG:0380 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8390 PRG:0390 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $08, $0A, $06, $2E, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$83A0 PRG:03A0 0D 0D 08 0A 06 2E 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0C, $2F, $0D, $04, $08, $0A, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$83B0 PRG:03B0 0D 0C 2F 0D 04 08 0A 0D 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$83C0 PRG:03C0 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$83D0 PRG:03D0 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $04, $08, $0A, $0B, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$83E0 PRG:03E0 0D 0D 04 08 0A 0B 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $2E, $0C, $0D, $0D, $0D, $0D, $07, $0B, $0C, $0D, $0D ; CPU:$83F0 PRG:03F0 0D 0C 2F 0D 0D 2E 0C 0D 0D 0D 0D 07 0B 0C 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8400 PRG:0400 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8410 PRG:0410 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $04, $21, $0C, $02, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8420 PRG:0420 0D 0D 0D 04 21 0C 02 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $2E, $0C, $0D, $0D, $0D, $07, $0B, $0C, $0C, $0D, $0D ; CPU:$8430 PRG:0430 0D 0C 2F 0D 0D 2E 0C 0D 0D 0D 07 0B 0C 0C 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8440 PRG:0440 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8450 PRG:0450 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $00, $0C, $02, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8460 PRG:0460 0D 0D 0D 0D 0D 00 0C 02 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $2E, $0C, $0D, $0D, $07, $0B, $09, $08, $0C, $0D, $0D ; CPU:$8470 PRG:0470 0D 0C 2F 0D 0D 2E 0C 0D 0D 07 0B 09 08 0C 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $D0, $D3, $D3, $D3, $D3, $D3, $D3, $D3 ; CPU:$8480 PRG:0480 0D 0D 0D 0D 0D 0D 0D 0D D0 D3 D3 D3 D3 D3 D3 D3
.byte $D3, $D3, $D3, $D3, $D3, $D3, $D3, $D3, $D3, $D3, $D3, $D3, $E7, $E5, $0D, $0D ; CPU:$8490 PRG:0490 D3 D3 D3 D3 D3 D3 D3 D3 D3 D3 D3 D3 E7 E5 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $00, $0C, $F5, $F6, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$84A0 PRG:04A0 0D 0D 0D 0D 0D 0D 00 0C F5 F6 0D 0D 0D 0D 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $2E, $0C, $0D, $07, $0B, $09, $05, $2E, $0C, $0D, $0D ; CPU:$84B0 PRG:04B0 0D 0C 2F 0D 0D 2E 0C 0D 07 0B 09 05 2E 0C 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $D1, $D2, $D2, $D4, $D5, $E5, $E5, $E5 ; CPU:$84C0 PRG:04C0 0D 0D 0D 0D 0D 0D 0D 0D D1 D2 D2 D4 D5 E5 E5 E5
.byte $E5, $E3, $D3, $D3, $D3, $D3, $D3, $D3, $DC, $DD, $E5, $E6, $E5, $E5, $0D, $0D ; CPU:$84D0 PRG:04D0 E5 E3 D3 D3 D3 D3 D3 D3 DC DD E5 E6 E5 E5 0D 0D
.byte $51, $52, $60, $5F, $4F, $0D, $0D, $00, $0C, $0C, $F5, $F6, $0D, $0D, $0D, $0D ; CPU:$84E0 PRG:04E0 51 52 60 5F 4F 0D 0D 00 0C 0C F5 F6 0D 0D 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $2E, $0C, $07, $0B, $09, $05, $0D, $2E, $0C, $0D, $0D ; CPU:$84F0 PRG:04F0 0D 0C 2F 0D 0D 2E 0C 07 0B 09 05 0D 2E 0C 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $E5, $E5, $D7, $D6, $E5, $E5, $E5, $E5 ; CPU:$8500 PRG:0500 0D 0D 0D 0D 0D 0D 0D 0D E5 E5 D7 D6 E5 E5 E5 E5
.byte $E2, $E1, $E5, $DB, $E5, $E5, $E5, $E5, $DE, $DF, $DD, $E6, $E5, $E5, $0D, $0D ; CPU:$8510 PRG:0510 E2 E1 E5 DB E5 E5 E5 E5 DE DF DD E6 E5 E5 0D 0D
.byte $71, $6F, $72, $70, $5E, $0D, $0D, $0D, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0A ; CPU:$8520 PRG:0520 71 6F 72 70 5E 0D 0D 0D 0C 0C 0C 0C 0C 0C 0C 0A
.byte $06, $0C, $2F, $0D, $0D, $2E, $0C, $0C, $09, $05, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8530 PRG:0530 06 0C 2F 0D 0D 2E 0C 0C 09 05 0D 0D 2E 0C 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $E5, $D7, $D6, $E5, $E5, $E5, $E5, $D7 ; CPU:$8540 PRG:0540 0D 0D 0D 0D 0D 0D 0D 0D E5 D7 D6 E5 E5 E5 E5 D7
.byte $E1, $E5, $E5, $DB, $E5, $E5, $E5, $E5, $E5, $DE, $DF, $E0, $E5, $E5, $0D, $36 ; CPU:$8550 PRG:0550 E1 E5 E5 DB E5 E5 E5 E5 E5 DE DF E0 E5 E5 0D 36
.byte $70, $6F, $72, $71, $5A, $0D, $0D, $0D, $0C, $0C, $23, $31, $31, $31, $20, $0C ; CPU:$8560 PRG:0560 70 6F 72 71 5A 0D 0D 0D 0C 0C 23 31 31 31 20 0C
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $09, $05, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8570 PRG:0570 0C 0C 0C 0C 0C 0C 0C 09 05 0D 0D 0D 2E 0C 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $D8, $D9, $D9, $D9, $D9, $D9, $D9, $D9 ; CPU:$8580 PRG:0580 0D 0D 0D 0D 0D 0D 0D 0D D8 D9 D9 D9 D9 D9 D9 D9
.byte $D9, $D9, $D9, $D9, $D9, $D9, $D9, $D9, $D9, $D9, $D9, $D9, $D9, $E5, $0D, $3A ; CPU:$8590 PRG:0590 D9 D9 D9 D9 D9 D9 D9 D9 D9 D9 D9 D9 D9 E5 0D 3A
.byte $6F, $72, $71, $6F, $35, $0D, $0D, $0F, $0C, $01, $0D, $0D, $0D, $0D, $0D, $0C ; CPU:$85A0 PRG:05A0 6F 72 71 6F 35 0D 0D 0F 0C 01 0D 0D 0D 0D 0D 0C
.byte $09, $31, $31, $31, $31, $31, $0C, $2F, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$85B0 PRG:05B0 09 31 31 31 31 31 0C 2F 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $D8, $D9, $D9, $D9, $D9, $D9, $D9, $D9 ; CPU:$85C0 PRG:05C0 0D 0D 0D 0D 0D 0D 0D 0D D8 D9 D9 D9 D9 D9 D9 D9
.byte $D9, $D9, $D9, $D9, $D9, $D9, $D9, $D9, $D9, $D9, $D9, $D9, $D9, $E5, $0D, $3E ; CPU:$85D0 PRG:05D0 D9 D9 D9 D9 D9 D9 D9 D9 D9 D9 D9 D9 D9 E5 0D 3E
.byte $71, $72, $6F, $70, $44, $0D, $0D, $13, $0C, $0D, $0D, $0D, $0D, $0D, $0D, $0C ; CPU:$85E0 PRG:05E0 71 72 6F 70 44 0D 0D 13 0C 0D 0D 0D 0D 0D 0D 0C
.byte $2F, $0D, $0D, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$85F0 PRG:05F0 2F 0D 0D 0D 0D 0D 0C 2F 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $D8, $D9, $D9, $D9, $D9, $D9, $D9, $D9 ; CPU:$8600 PRG:0600 0D 0D 0D 0D 0D 0D 0D 0D D8 D9 D9 D9 D9 D9 D9 D9
.byte $D9, $D9, $D9, $D9, $D9, $D9, $D9, $D9, $D9, $D9, $D9, $D9, $D9, $E5, $0D, $42 ; CPU:$8610 PRG:0610 D9 D9 D9 D9 D9 D9 D9 D9 D9 D9 D9 D9 D9 E5 0D 42
.byte $6F, $72, $6F, $71, $4E, $0D, $0D, $17, $0C, $0D, $0D, $0D, $0D, $0D, $0D, $0C ; CPU:$8620 PRG:0620 6F 72 6F 71 4E 0D 0D 17 0C 0D 0D 0D 0D 0D 0D 0C
.byte $2F, $0D, $0D, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8630 PRG:0630 2F 0D 0D 0D 0D 0D 0C 2F 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $E5, $E5, $E5, $E5, $E5, $E5, $E5, $E5 ; CPU:$8640 PRG:0640 0D 0D 0D 0D 0D 0D 0D 0D E5 E5 E5 E5 E5 E5 E5 E5
.byte $E5, $DA, $E4, $E4, $E4, $E4, $E4, $E4, $E4, $D6, $E5, $E5, $E4, $DB, $0D, $72 ; CPU:$8650 PRG:0650 E5 DA E4 E4 E4 E4 E4 E4 E4 D6 E5 E5 E4 DB 0D 72
.byte $71, $70, $72, $72, $56, $07, $2D, $0C, $0C, $0D, $0D, $0D, $0D, $0D, $0D, $0C ; CPU:$8660 PRG:0660 71 70 72 72 56 07 2D 0C 0C 0D 0D 0D 0D 0D 0D 0C
.byte $2F, $0D, $0D, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8670 PRG:0670 2F 0D 0D 0D 0D 0D 0C 2F 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $E5, $E5, $E5, $E5, $E5, $E5, $E5, $E5 ; CPU:$8680 PRG:0680 0D 0D 0D 0D 0D 0D 0D 0D E5 E5 E5 E5 E5 E5 E5 E5
.byte $E5, $E5, $E5, $E5, $E5, $E5, $E5, $E5, $E5, $E5, $E5, $E5, $E5, $E5, $0D, $5D ; CPU:$8690 PRG:0690 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 E5 0D 5D
.byte $72, $71, $5E, $4C, $07, $0B, $09, $24, $25, $0D, $0D, $0D, $0D, $0D, $0D, $0C ; CPU:$86A0 PRG:06A0 72 71 5E 4C 07 0B 09 24 25 0D 0D 0D 0D 0D 0D 0C
.byte $2F, $0D, $0D, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$86B0 PRG:06B0 2F 0D 0D 0D 0D 0D 0C 2F 0D 0D 0D 0D 2E 0C 0D 0D
.byte $2B, $2C, $2D, $26, $28, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$86C0 PRG:06C0 2B 2C 2D 26 28 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $5C, $63, $63, $63, $63, $60 ; CPU:$86D0 PRG:06D0 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 5C 63 63 63 63 60
.byte $70, $70, $40, $07, $0B, $09, $05, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0C ; CPU:$86E0 PRG:06E0 70 70 40 07 0B 09 05 0D 0D 0D 0D 0D 0D 0D 0D 0C
.byte $0A, $30, $30, $30, $28, $29, $0C, $2F, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$86F0 PRG:06F0 0A 30 30 30 28 29 0C 2F 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $26, $28, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8700 PRG:0700 0C 0C 0C 0C 0C 0C 26 28 0D 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $5C, $60, $72, $70, $72, $71, $6F, $71 ; CPU:$8710 PRG:0710 0D 0D 0D 0D 0D 0D 0D 0D 5C 60 72 70 72 71 6F 71
.byte $71, $72, $44, $2E, $0C, $05, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0C ; CPU:$8720 PRG:0720 71 72 44 2E 0C 05 0D 0D 0D 0D 0D 0D 0D 0D 0D 0C
.byte $2F, $0D, $0D, $04, $31, $31, $0C, $2F, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8730 PRG:0730 2F 0D 0D 04 31 31 0C 2F 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0A, $28, $29, $0D, $0D, $0D, $0D, $0D ; CPU:$8740 PRG:0740 0C 0C 0C 0C 0C 0C 0C 0C 0A 28 29 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $58, $70, $6F, $72, $6F, $71, $6F, $70, $72 ; CPU:$8750 PRG:0750 0D 0D 0D 0D 0D 0D 0D 58 70 6F 72 6F 71 6F 70 72
.byte $49, $4A, $0D, $2E, $0C, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0C ; CPU:$8760 PRG:0760 49 4A 0D 2E 0C 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0C
.byte $2F, $0D, $0D, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8770 PRG:0770 2F 0D 0D 0D 0D 0D 0C 2F 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0A, $28, $29, $0D, $0D ; CPU:$8780 PRG:0780 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0A 28 29 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $58, $70, $6F, $70, $6F, $70, $70, $71, $71, $56 ; CPU:$8790 PRG:0790 0D 0D 0D 0D 0D 0D 58 70 6F 70 6F 70 70 71 71 56
.byte $0D, $0D, $0D, $2E, $0C, $30, $30, $30, $30, $30, $30, $30, $30, $30, $30, $0C ; CPU:$87A0 PRG:07A0 0D 0D 0D 2E 0C 30 30 30 30 30 30 30 30 30 30 0C
.byte $2F, $0D, $0D, $C9, $CA, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$87B0 PRG:07B0 2F 0D 0D C9 CA CD CD CD CD CD CD CD CD CD CD CD
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0A ; CPU:$87C0 PRG:07C0 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0A
.byte $06, $0D, $0D, $0D, $0D, $0D, $5D, $6F, $6F, $6F, $5E, $4B, $4C, $0D, $0D, $0D ; CPU:$87D0 PRG:07D0 06 0D 0D 0D 0D 0D 5D 6F 6F 6F 5E 4B 4C 0D 0D 0D
.byte $0D, $0D, $0D, $2E, $0C, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0C ; CPU:$87E0 PRG:07E0 0D 0D 0D 2E 0C 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0C
.byte $2F, $C9, $CA, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$87F0 PRG:07F0 2F C9 CA CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C ; CPU:$8800 PRG:0800 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
.byte $0A, $28, $29, $0D, $0D, $0D, $3F, $6F, $71, $71, $41, $0D, $BD, $C1, $CD, $CD ; CPU:$8810 PRG:0810 0A 28 29 0D 0D 0D 3F 6F 71 71 41 0D BD C1 CD CD
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$8820 PRG:0820 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $CB, $CC, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8830 PRG:0830 CD CD CD CB CC 0D 0C 2F 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C ; CPU:$8840 PRG:0840 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
.byte $0C, $0C, $0C, $02, $0D, $0D, $0D, $45, $46, $5D, $5E, $BD, $C1, $CD, $CD, $CD ; CPU:$8850 PRG:0850 0C 0C 0C 02 0D 0D 0D 45 46 5D 5E BD C1 CD CD CD
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$8860 PRG:0860 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CB, $CC, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8870 PRG:0870 CD CB CC 0D 0D 0D 0C 2F 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C ; CPU:$8880 PRG:0880 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
.byte $0C, $0C, $0C, $0C, $0E, $0D, $0D, $0D, $0D, $A3, $A4, $C1, $CD, $B7, $0D, $07 ; CPU:$8890 PRG:0890 0C 0C 0C 0C 0E 0D 0D 0D 0D A3 A4 C1 CD B7 0D 07
.byte $30, $30, $30, $0B, $0C, $30, $30, $30, $30, $30, $30, $30, $30, $30, $30, $0C ; CPU:$88A0 PRG:08A0 30 30 30 0B 0C 30 30 30 30 30 30 30 30 30 30 0C
.byte $2F, $0D, $0D, $2E, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0D, $0D ; CPU:$88B0 PRG:08B0 2F 0D 0D 2E 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C ; CPU:$88C0 PRG:08C0 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
.byte $0C, $0C, $0C, $0C, $12, $0D, $0D, $0D, $B9, $CD, $CD, $CD, $B7, $0D, $0D, $17 ; CPU:$88D0 PRG:08D0 0C 0C 0C 0C 12 0D 0D 0D B9 CD CD CD B7 0D 0D 17
.byte $0D, $0D, $00, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C ; CPU:$88E0 PRG:08E0 0D 0D 00 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
.byte $2F, $0D, $0D, $2E, $0C, $31, $31, $08, $31, $31, $31, $31, $08, $0C, $0D, $0D ; CPU:$88F0 PRG:08F0 2F 0D 0D 2E 0C 31 31 08 31 31 31 31 08 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C ; CPU:$8900 PRG:0900 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
.byte $0C, $0C, $0C, $0C, $19, $0D, $0D, $B9, $CD, $BF, $9D, $9E, $50, $0D, $0D, $15 ; CPU:$8910 PRG:0910 0C 0C 0C 0C 19 0D 0D B9 CD BF 9D 9E 50 0D 0D 15
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8920 PRG:0920 0D 0D 0D 0D 0D 0D 0D 0D 0C 2F 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $2E, $0C, $0D, $0D, $2E, $0D, $0D, $0D, $0D, $17, $0C, $0D, $0D ; CPU:$8930 PRG:0930 0D 0D 0D 2E 0C 0D 0D 2E 0D 0D 0D 0D 17 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C ; CPU:$8940 PRG:0940 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
.byte $0C, $0C, $0C, $0C, $1D, $0D, $0D, $CD, $BF, $BB, $3A, $72, $6F, $4D, $4E, $2F ; CPU:$8950 PRG:0950 0C 0C 0C 0C 1D 0D 0D CD BF BB 3A 72 6F 4D 4E 2F
.byte $0D, $0D, $0D, $0D, $0D, $0D, $61, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8960 PRG:0960 0D 0D 0D 0D 0D 0D 61 0D 0C 2F 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $07, $0B, $0C, $02, $0D, $2E, $0D, $0D, $0D, $03, $0C, $0C, $0D, $0D ; CPU:$8970 PRG:0970 0D 0D 07 0B 0C 02 0D 2E 0D 0D 0D 03 0C 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C ; CPU:$8980 PRG:0980 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
.byte $0C, $0C, $0C, $0C, $0D, $0D, $0D, $CD, $C6, $5C, $60, $70, $72, $6F, $6A, $90 ; CPU:$8990 PRG:0990 0C 0C 0C 0C 0D 0D 0D CD C6 5C 60 70 72 6F 6A 90
.byte $57, $0D, $0D, $0D, $0D, $0D, $61, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$89A0 PRG:09A0 57 0D 0D 0D 0D 0D 61 0D 0C 2F 0D 0D 0D 0D 0D 0D
.byte $0D, $07, $0B, $0C, $0C, $0C, $02, $2E, $0D, $0D, $03, $0C, $0C, $0C, $0D, $0D ; CPU:$89B0 PRG:09B0 0D 07 0B 0C 0C 0C 02 2E 0D 0D 03 0C 0C 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C ; CPU:$89C0 PRG:09C0 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
.byte $0C, $0C, $0C, $0C, $0E, $0D, $0D, $A8, $AE, $3F, $71, $72, $72, $95, $92, $68 ; CPU:$89D0 PRG:09D0 0C 0C 0C 0C 0E 0D 0D A8 AE 3F 71 72 72 95 92 68
.byte $72, $4D, $5B, $0D, $0D, $0D, $61, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$89E0 PRG:09E0 72 4D 5B 0D 0D 0D 61 0D 0C 2F 0D 0D 0D 0D 0D 0D
.byte $0D, $2E, $0C, $09, $31, $08, $0C, $0C, $0D, $03, $0C, $0C, $0C, $0C, $0D, $0D ; CPU:$89F0 PRG:09F0 0D 2E 0C 09 31 08 0C 0C 0D 03 0C 0C 0C 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C ; CPU:$8A00 PRG:0A00 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
.byte $0C, $0C, $0C, $0C, $1D, $0D, $0D, $AC, $B2, $43, $6F, $70, $71, $90, $72, $72 ; CPU:$8A10 PRG:0A10 0C 0C 0C 0C 1D 0D 0D AC B2 43 6F 70 71 90 72 72
.byte $6F, $70, $5F, $5B, $0D, $0D, $61, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8A20 PRG:0A20 6F 70 5F 5B 0D 0D 61 0D 0C 2F 0D 0D 0D 0D 0D 0D
.byte $0D, $2E, $0C, $05, $0D, $04, $08, $0C, $03, $0C, $0C, $09, $08, $0C, $0D, $0D ; CPU:$8A30 PRG:0A30 0D 2E 0C 05 0D 04 08 0C 03 0C 0C 09 08 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C ; CPU:$8A40 PRG:0A40 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
.byte $0C, $0C, $0C, $11, $0D, $0D, $BD, $C1, $BF, $5C, $71, $6F, $95, $68, $71, $6F ; CPU:$8A50 PRG:0A50 0C 0C 0C 11 0D 0D BD C1 BF 5C 71 6F 95 68 71 6F
.byte $6F, $6F, $71, $5F, $0D, $0D, $61, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8A60 PRG:0A60 6F 6F 71 5F 0D 0D 61 0D 0C 2F 0D 0D 0D 0D 0D 0D
.byte $0D, $2E, $0C, $0D, $2A, $2B, $0B, $0C, $0C, $0C, $09, $05, $2E, $0C, $0D, $0D ; CPU:$8A70 PRG:0A70 0D 2E 0C 0D 2A 2B 0B 0C 0C 0C 09 05 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C ; CPU:$8A80 PRG:0A80 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
.byte $0C, $0C, $0C, $15, $0D, $0D, $C1, $CD, $B1, $3E, $71, $72, $90, $6F, $71, $6F ; CPU:$8A90 PRG:0A90 0C 0C 0C 15 0D 0D C1 CD B1 3E 71 72 90 6F 71 6F
.byte $71, $71, $70, $6F, $35, $0D, $61, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8AA0 PRG:0AA0 71 71 70 6F 35 0D 61 0D 0C 2F 0D 0D 0D 0D 0D 0D
.byte $0D, $2E, $0C, $2D, $0C, $0C, $0C, $0C, $22, $23, $05, $0D, $2E, $0C, $0D, $0D ; CPU:$8AB0 PRG:0AB0 0D 2E 0C 2D 0C 0C 0C 0C 22 23 05 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C ; CPU:$8AC0 PRG:0AC0 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
.byte $0C, $0C, $0C, $19, $0D, $BD, $CD, $CD, $B5, $42, $6F, $72, $96, $7C, $7D, $70 ; CPU:$8AD0 PRG:0AD0 0C 0C 0C 19 0D BD CD CD B5 42 6F 72 96 7C 7D 70
.byte $6F, $70, $71, $72, $39, $0D, $61, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8AE0 PRG:0AE0 6F 70 71 72 39 0D 61 0D 0C 2F 0D 0D 0D 0D 0D 0D
.byte $0D, $0B, $0C, $0C, $22, $23, $24, $25, $0D, $5C, $60, $0D, $2E, $0C, $0D, $0D ; CPU:$8AF0 PRG:0AF0 0D 0B 0C 0C 22 23 24 25 0D 5C 60 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C ; CPU:$8B00 PRG:0B00 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
.byte $0C, $0C, $0C, $1D, $0D, $C1, $CD, $A9, $0D, $71, $6F, $72, $6F, $73, $74, $94 ; CPU:$8B10 PRG:0B10 0C 0C 0C 1D 0D C1 CD A9 0D 71 6F 72 6F 73 74 94
.byte $6F, $71, $72, $71, $5F, $0D, $61, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8B20 PRG:0B20 6F 71 72 71 5F 0D 61 0D 0C 2F 0D 0D 0D 0D 0D 0D
.byte $0F, $0C, $0C, $01, $0D, $0D, $61, $61, $0D, $60, $6F, $35, $2E, $0C, $0D, $0D ; CPU:$8B30 PRG:0B30 0F 0C 0C 01 0D 0D 61 61 0D 60 6F 35 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C ; CPU:$8B40 PRG:0B40 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
.byte $0C, $0C, $01, $0D, $0D, $CD, $CD, $AD, $0D, $72, $6F, $71, $6F, $72, $72, $8F ; CPU:$8B50 PRG:0B50 0C 0C 01 0D 0D CD CD AD 0D 72 6F 71 6F 72 72 8F
.byte $70, $72, $6F, $71, $70, $39, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $2A, $2B ; CPU:$8B60 PRG:0B60 70 72 6F 71 70 39 0D 0D 0C 2F 0D 0D 0D 0D 2A 2B
.byte $0B, $0C, $01, $0D, $0D, $0D, $0D, $0D, $58, $6F, $72, $39, $2E, $0C, $0D, $0D ; CPU:$8B70 PRG:0B70 0B 0C 01 0D 0D 0D 0D 0D 58 6F 72 39 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C ; CPU:$8B80 PRG:0B80 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
.byte $0C, $11, $0D, $0D, $A7, $CD, $CD, $B1, $0D, $5D, $72, $72, $6F, $72, $72, $8F ; CPU:$8B90 PRG:0B90 0C 11 0D 0D A7 CD CD B1 0D 5D 72 72 6F 72 72 8F
.byte $70, $72, $6F, $70, $6F, $3D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $03, $0C, $0C ; CPU:$8BA0 PRG:0BA0 70 72 6F 70 6F 3D 0D 0D 0C 2F 0D 0D 0D 03 0C 0C
.byte $0C, $0C, $0E, $0D, $0D, $0D, $0D, $0D, $70, $72, $71, $3D, $2E, $0C, $0D, $0D ; CPU:$8BB0 PRG:0BB0 0C 0C 0E 0D 0D 0D 0D 0D 70 72 71 3D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C ; CPU:$8BC0 PRG:0BC0 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
.byte $0C, $15, $0D, $0D, $AB, $CD, $CD, $B5, $0D, $0D, $0D, $0D, $55, $72, $6F, $8F ; CPU:$8BD0 PRG:0BD0 0C 15 0D 0D AB CD CD B5 0D 0D 0D 0D 55 72 6F 8F
.byte $72, $70, $71, $6F, $72, $41, $0D, $0D, $0C, $2F, $0D, $0D, $03, $0C, $09, $31 ; CPU:$8BE0 PRG:0BE0 72 70 71 6F 72 41 0D 0D 0C 2F 0D 0D 03 0C 09 31
.byte $04, $0C, $12, $0D, $0D, $0D, $0D, $0D, $5D, $72, $5E, $5A, $2E, $0C, $0D, $0D ; CPU:$8BF0 PRG:0BF0 04 0C 12 0D 0D 0D 0D 0D 5D 72 5E 5A 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C ; CPU:$8C00 PRG:0C00 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
.byte $0C, $19, $0D, $0D, $C1, $CD, $CD, $F1, $F1, $F1, $F1, $F1, $F1, $55, $72, $8F ; CPU:$8C10 PRG:0C10 0C 19 0D 0D C1 CD CD F1 F1 F1 F1 F1 F1 55 72 8F
.byte $70, $70, $71, $72, $71, $70, $0D, $0D, $08, $0C, $0C, $0C, $0C, $09, $05, $0D ; CPU:$8C20 PRG:0C20 70 70 71 72 71 70 0D 0D 08 0C 0C 0C 0C 09 05 0D
.byte $0D, $10, $16, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8C30 PRG:0C30 0D 10 16 0D 0D 0D 0D 0D 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C ; CPU:$8C40 PRG:0C40 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
.byte $0C, $1D, $0D, $BD, $CD, $CD, $CD, $F1, $F1, $F1, $F1, $F1, $F1, $F1, $37, $8F ; CPU:$8C50 PRG:0C50 0C 1D 0D BD CD CD CD F1 F1 F1 F1 F1 F1 F1 37 8F
.byte $70, $6F, $70, $71, $71, $71, $5B, $0D, $2E, $0C, $23, $31, $31, $05, $0D, $0D ; CPU:$8C60 PRG:0C60 70 6F 70 71 71 71 5B 0D 2E 0C 23 31 31 05 0D 0D
.byte $0D, $14, $1A, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8C70 PRG:0C70 0D 14 1A 0D 0D 0D 0D 0D 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C ; CPU:$8C80 PRG:0C80 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C
.byte $01, $0D, $BD, $C1, $CD, $CD, $CD, $F1, $F1, $F1, $F1, $F1, $F1, $F1, $3B, $89 ; CPU:$8C90 PRG:0C90 01 0D BD C1 CD CD CD F1 F1 F1 F1 F1 F1 F1 3B 89
.byte $69, $6A, $91, $71, $72, $72, $5F, $0D, $0B, $0C, $06, $0D, $0D, $0D, $0D, $0D ; CPU:$8CA0 PRG:0CA0 69 6A 91 71 72 72 5F 0D 0B 0C 06 0D 0D 0D 0D 0D
.byte $0D, $18, $0C, $02, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8CB0 PRG:0CB0 0D 18 0C 02 0D 0D 0D 0D 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $01 ; CPU:$8CC0 PRG:0CC0 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 01
.byte $0D, $0D, $C1, $CD, $CD, $CD, $CD, $F1, $F1, $F1, $F1, $F1, $F1, $F1, $59, $70 ; CPU:$8CD0 PRG:0CD0 0D 0D C1 CD CD CD CD F1 F1 F1 F1 F1 F1 F1 59 70
.byte $96, $93, $67, $94, $71, $72, $72, $57, $08, $0C, $19, $0D, $0D, $0D, $0D, $0D ; CPU:$8CE0 PRG:0CE0 96 93 67 94 71 72 72 57 08 0C 19 0D 0D 0D 0D 0D
.byte $0D, $0D, $00, $0C, $02, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8CF0 PRG:0CF0 0D 0D 00 0C 02 0D 0D 0D 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $11, $0D ; CPU:$8D00 PRG:0D00 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 11 0D
.byte $0D, $A7, $CD, $CD, $CD, $CD, $CD, $F1, $F1, $F1, $F1, $F1, $F1, $F1, $0D, $70 ; CPU:$8D10 PRG:0D10 0D A7 CD CD CD CD CD F1 F1 F1 F1 F1 F1 F1 0D 70
.byte $6F, $72, $70, $88, $72, $6F, $70, $72, $57, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8D20 PRG:0D20 6F 72 70 88 72 6F 70 72 57 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $00, $0C, $02, $0D, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8D30 PRG:0D30 0D 0D 0D 00 0C 02 0D 0D 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $15, $0D ; CPU:$8D40 PRG:0D40 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 15 0D
.byte $0D, $AB, $CD, $CD, $CD, $CD, $CD, $F1, $F1, $F1, $F1, $F1, $F1, $F1, $0D, $55 ; CPU:$8D50 PRG:0D50 0D AB CD CD CD CD CD F1 F1 F1 F1 F1 F1 F1 0D 55
.byte $70, $72, $71, $86, $6F, $70, $71, $70, $72, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8D60 PRG:0D60 70 72 71 86 6F 70 71 70 72 0D 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $00, $0C, $02, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8D70 PRG:0D70 0D 0D 0D 0D 00 0C 02 0D 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $09, $05, $0D ; CPU:$8D80 PRG:0D80 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 09 05 0D
.byte $0D, $C1, $CD, $CD, $CD, $CD, $CD, $F1, $F1, $F1, $F1, $F1, $F1, $F1, $0D, $0D ; CPU:$8D90 PRG:0D90 0D C1 CD CD CD CD CD F1 F1 F1 F1 F1 F1 F1 0D 0D
.byte $55, $70, $70, $90, $71, $71, $72, $6F, $70, $35, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8DA0 PRG:0DA0 55 70 70 90 71 71 72 6F 70 35 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0C, $0C, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8DB0 PRG:0DB0 0D 0D 0D 0D 0D 0C 0C 0D 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $19, $0D, $0D ; CPU:$8DC0 PRG:0DC0 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 19 0D 0D
.byte $A7, $CD, $CD, $CD, $CD, $CD, $CD, $F0, $F1, $F0, $F1, $F1, $F0, $F0, $BC, $0D ; CPU:$8DD0 PRG:0DD0 A7 CD CD CD CD CD CD F0 F1 F0 F1 F1 F0 F0 BC 0D
.byte $0D, $55, $72, $6D, $72, $70, $72, $72, $70, $39, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8DE0 PRG:0DE0 0D 55 72 6D 72 70 72 72 70 39 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0C, $0C, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8DF0 PRG:0DF0 0D 0D 0D 0D 0D 0C 0C 0D 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $1D, $0D, $0D ; CPU:$8E00 PRG:0E00 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 1D 0D 0D
.byte $AB, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $F1, $EA, $F1, $F0, $EA, $CD, $C0, $C7 ; CPU:$8E10 PRG:0E10 AB CD CD CD CD CD CD CD F1 EA F1 F0 EA CD C0 C7
.byte $BC, $0D, $70, $6B, $70, $70, $6F, $72, $72, $5F, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8E20 PRG:0E20 BC 0D 70 6B 70 70 6F 72 72 5F 0D 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $08, $0C, $02, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8E30 PRG:0E30 0D 0D 0D 0D 0D 08 0C 02 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $11, $0D, $0D, $0D ; CPU:$8E40 PRG:0E40 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 11 0D 0D 0D
.byte $AF, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $F2, $EA, $F1, $EA, $CD, $CD, $CD, $CD ; CPU:$8E50 PRG:0E50 AF CD CD CD CD CD CD CD F2 EA F1 EA CD CD CD CD
.byte $CD, $A6, $72, $8F, $69, $6F, $6F, $71, $72, $72, $5B, $0D, $0D, $0D, $0D, $0D ; CPU:$8E60 PRG:0E60 CD A6 72 8F 69 6F 6F 71 72 72 5B 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $04, $08, $0C, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8E70 PRG:0E70 0D 0D 0D 0D 0D 04 08 0C 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $15, $0D, $0D, $0D ; CPU:$8E80 PRG:0E80 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 15 0D 0D 0D
.byte $B3, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $EE, $EF, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$8E90 PRG:0E90 B3 CD CD CD CD CD CD CD EE EF CD CD CD CD CD CD
.byte $CD, $AA, $5D, $8D, $6D, $6E, $0C, $0C, $65, $70, $5F, $5B, $0D, $0D, $0D, $0D ; CPU:$8EA0 PRG:0EA0 CD AA 5D 8D 6D 6E 0C 0C 65 70 5F 5B 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8EB0 PRG:0EB0 0D 0D 0D 0D 0D 0D 2E 0C 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $09, $05, $0D, $0D, $0D ; CPU:$8EC0 PRG:0EC0 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 09 05 0D 0D 0D
.byte $A8, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$8ED0 PRG:0ED0 A8 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $C0, $BC, $5D, $74, $6B, $0C, $0C, $0C, $70, $72, $3C, $0D, $0D, $0D, $0D ; CPU:$8EE0 PRG:0EE0 CD C0 BC 5D 74 6B 0C 0C 0C 70 72 3C 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8EF0 PRG:0EF0 0D 0D 0D 0D 0D 0D 2E 0C 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $09, $05, $0D, $0D, $0D, $0D ; CPU:$8F00 PRG:0F00 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 09 05 0D 0D 0D 0D
.byte $AC, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$8F10 PRG:0F10 AC CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $C0, $BC, $55, $8F, $0C, $0C, $0C, $72, $5E, $5A, $0D, $0D, $0D, $0D ; CPU:$8F20 PRG:0F20 CD CD C0 BC 55 8F 0C 0C 0C 72 5E 5A 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8F30 PRG:0F30 0D 0D 0D 0D 0D 0D 2E 0C 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $09, $05, $0D, $0D, $0D, $0D, $0D ; CPU:$8F40 PRG:0F40 0C 0C 0C 0C 0C 0C 0C 0C 0C 09 05 0D 0D 0D 0D 0D
.byte $B0, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$8F50 PRG:0F50 B0 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $CD, $AA, $67, $6B, $0C, $0C, $65, $39, $0D, $0D, $0D, $0D, $0D ; CPU:$8F60 PRG:0F60 CD CD CD CD AA 67 6B 0C 0C 65 39 0D 0D 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8F70 PRG:0F70 0D 0D 0D 0D 0D 0D 2E 0C 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $09, $05, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8F80 PRG:0F80 0C 0C 0C 0C 0C 0C 0C 0C 09 05 0D 0D 0D 0D 0D 0D
.byte $AB, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$8F90 PRG:0F90 AB CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $CD, $C0, $A1, $55, $6F, $67, $92, $75, $21, $0C, $02, $0D, $0D ; CPU:$8FA0 PRG:0FA0 CD CD CD CD C0 A1 55 6F 67 92 75 21 0C 02 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8FB0 PRG:0FB0 0D 0D 0D 0D 0D 0D 2E 0C 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $19, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$8FC0 PRG:0FC0 0C 0C 0C 0C 0C 0C 0C 0C 19 0D 0D 0D 0D 0D 0D 0D
.byte $C1, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$8FD0 PRG:0FD0 C1 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $CD, $CD, $CD, $9F, $A0, $A5, $A0, $A1, $A2, $04, $31, $31, $31 ; CPU:$8FE0 PRG:0FE0 CD CD CD CD CD CD 9F A0 A5 A0 A1 A2 04 31 31 31
.byte $20, $27, $28, $29, $0D, $0D, $2E, $0C, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$8FF0 PRG:0FF0 20 27 28 29 0D 0D 2E 0C 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $09, $05, $0D, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$9000 PRG:1000 0C 0C 0C 0C 0C 0C 0C 09 05 0D 0D 0D 0D 0D 0D 0D
.byte $BE, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9010 PRG:1010 BE CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $CD, $CD, $9E, $97, $C8, $BE, $CD, $CD, $CD, $C0, $C7, $A1, $A2 ; CPU:$9020 PRG:1020 CD CD CD CD CD 9E 97 C8 BE CD CD CD C0 C7 A1 A2
.byte $0D, $0D, $1E, $1F, $20, $27, $0B, $0C, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$9030 PRG:1030 0D 0D 1E 1F 20 27 0B 0C 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $19, $0D, $0D, $B9, $9F, $F4, $AE, $0D, $0D ; CPU:$9040 PRG:1040 0C 0C 0C 0C 0C 0C 0C 19 0D 0D B9 9F F4 AE 0D 0D
.byte $BA, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9050 PRG:1050 BA CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $CD, $A9, $42, $4D, $4E, $5B, $97, $98, $99, $9A, $CD, $CD, $CD ; CPU:$9060 PRG:1060 CD CD CD CD A9 42 4D 4E 5B 97 98 99 9A CD CD CD
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9070 PRG:1070 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $1D, $0D, $A7, $CD, $CD, $CD, $AD, $0D, $0D ; CPU:$9080 PRG:1080 0C 0C 0C 0C 0C 0C 0C 1D 0D A7 CD CD CD AD 0D 0D
.byte $0D, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9090 PRG:1090 0D CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $CD, $B2, $70, $72, $71, $70, $4D, $54, $4D, $54, $5F, $97, $98 ; CPU:$90A0 PRG:10A0 CD CD CD CD B2 70 72 71 70 4D 54 4D 54 5F 97 98
.byte $99, $9A, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$90B0 PRG:10B0 99 9A CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0D, $0D, $AB, $CD, $CD, $CD, $C0, $BC, $0D ; CPU:$90C0 PRG:10C0 0C 0C 0C 0C 0C 0C 0C 0D 0D AB CD CD CD C0 BC 0D
.byte $B9, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$90D0 PRG:10D0 B9 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $CD, $CD, $37, $6F, $71, $6F, $72, $72, $6F, $70, $71, $0D, $0D ; CPU:$90E0 PRG:10E0 CD CD CD CD CD 37 6F 71 6F 72 72 6F 70 71 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$90F0 PRG:10F0 0D 0D 0D 0D 0D 0D 2E 0C 0D 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0D, $BD, $C1, $CD, $CD, $CD, $CD, $BF, $C8 ; CPU:$9100 PRG:1100 0C 0C 0C 0C 0C 0C 0C 0D BD C1 CD CD CD CD BF C8
.byte $BE, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9110 PRG:1110 BE CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $CD, $CD, $3B, $6F, $71, $71, $70, $71, $71, $71, $70, $35, $0D ; CPU:$9120 PRG:1120 CD CD CD CD CD 3B 6F 71 71 70 71 71 71 70 35 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $18, $0C, $0E, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$9130 PRG:1130 0D 0D 0D 0D 0D 0D 18 0C 0E 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $11, $0D, $C1, $CD, $CD, $CD, $CD, $CD, $BB, $0D ; CPU:$9140 PRG:1140 0C 0C 0C 0C 0C 0C 11 0D C1 CD CD CD CD CD BB 0D
.byte $BA, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9150 PRG:1150 BA CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $CD, $A9, $59, $6F, $70, $70, $71, $72, $6F, $6F, $71, $5F, $50 ; CPU:$9160 PRG:1160 CD CD CD CD A9 59 6F 70 70 71 72 6F 6F 71 5F 50
.byte $0D, $0D, $0D, $0D, $0D, $0D, $1C, $0C, $12, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$9170 PRG:1170 0D 0D 0D 0D 0D 0D 1C 0C 12 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $15, $0D, $BE, $CD, $CD, $CD, $CD, $A9, $0D, $0D ; CPU:$9180 PRG:1180 0C 0C 0C 0C 0C 0C 15 0D BE CD CD CD CD A9 0D 0D
.byte $0D, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9190 PRG:1190 0D CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $CD, $AD, $0D, $37, $6F, $72, $71, $71, $71, $70, $6F, $70, $72 ; CPU:$91A0 PRG:11A0 CD CD CD CD AD 0D 37 6F 72 71 71 71 70 6F 70 72
.byte $57, $0D, $0D, $0D, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$91B0 PRG:11B0 57 0D 0D 0D 0D 0D 0D 0C 2F 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $09, $05, $0D, $BA, $BE, $CD, $CD, $CD, $B2, $0D, $0D ; CPU:$91C0 PRG:11C0 0C 0C 0C 0C 0C 09 05 0D BA BE CD CD CD B2 0D 0D
.byte $BD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$91D0 PRG:11D0 BD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $CD, $C0, $0D, $42, $6F, $6F, $70, $6F, $70, $72, $71, $70, $70 ; CPU:$91E0 PRG:11E0 CD CD CD CD C0 0D 42 6F 6F 70 6F 70 72 71 70 70
.byte $6F, $57, $0D, $0D, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$91F0 PRG:11F0 6F 57 0D 0D 0D 0D 0D 0C 2F 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $09, $05, $0D, $0D, $0D, $BA, $99, $9A, $9B, $9C, $0D, $0D ; CPU:$9200 PRG:1200 0C 0C 0C 0C 09 05 0D 0D 0D BA 99 9A 9B 9C 0D 0D
.byte $AF, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9210 PRG:1210 AF CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $CD, $CD, $36, $70, $72, $71, $6F, $72, $70, $71, $70, $70, $6F ; CPU:$9220 PRG:1220 CD CD CD CD CD 36 70 72 71 6F 72 70 71 70 70 6F
.byte $72, $6F, $5B, $0D, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$9230 PRG:1230 72 6F 5B 0D 0D 0D 0D 0C 2F 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $19, $0D, $17, $0A, $28, $29, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$9240 PRG:1240 0C 0C 0C 0C 19 0D 17 0A 28 29 0D 0D 0D 0D 0D 0D
.byte $B3, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9250 PRG:1250 B3 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $CD, $A9, $59, $5D, $70, $70, $72, $70, $6F, $6F, $70, $72, $70 ; CPU:$9260 PRG:1260 CD CD CD CD A9 59 5D 70 70 72 70 6F 6F 70 72 70
.byte $71, $70, $5F, $5B, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$9270 PRG:1270 71 70 5F 5B 0D 0D 0D 0C 2F 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $1D, $0D, $1B, $0C, $0C, $0C, $0A, $28, $2B, $0B, $0E, $A7 ; CPU:$9280 PRG:1280 0C 0C 0C 0C 1D 0D 1B 0C 0C 0C 0A 28 2B 0B 0E A7
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9290 PRG:1290 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $CD, $AD, $0D, $60, $6F, $6F, $70, $70, $71, $6F, $72, $72, $6F ; CPU:$92A0 PRG:12A0 CD CD CD CD AD 0D 60 6F 6F 70 70 71 6F 72 72 6F
.byte $70, $6F, $70, $5F, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$92B0 PRG:12B0 70 6F 70 5F 0D 0D 0D 0C 2F 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $01, $0D, $0D, $08, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $12, $AB ; CPU:$92C0 PRG:12C0 0C 0C 0C 01 0D 0D 08 0C 0C 0C 0C 0C 0C 0C 12 AB
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$92D0 PRG:12D0 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $CD, $B1, $36, $70, $6F, $71, $72, $6F, $72, $70, $72, $72, $6F ; CPU:$92E0 PRG:12E0 CD CD CD CD B1 36 70 6F 71 72 6F 72 70 72 72 6F
.byte $6F, $6F, $72, $38, $0D, $0D, $34, $0C, $2F, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$92F0 PRG:12F0 6F 6F 72 38 0D 0D 34 0C 2F 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $11, $0D, $0D, $0D, $04, $08, $0C, $0C, $0C, $0C, $0C, $0C, $05, $C1 ; CPU:$9300 PRG:1300 0C 0C 11 0D 0D 0D 04 08 0C 0C 0C 0C 0C 0C 05 C1
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9310 PRG:1310 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $CD, $B5, $3A, $6F, $71, $71, $6F, $72, $72, $6F, $71, $72, $70 ; CPU:$9320 PRG:1320 CD CD CD CD B5 3A 6F 71 71 6F 72 72 6F 71 72 70
.byte $71, $72, $6F, $3C, $0D, $34, $05, $0C, $2F, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$9330 PRG:1330 71 72 6F 3C 0D 34 05 0C 2F 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $15, $0D, $0D, $0D, $0D, $17, $0C, $0C, $0C, $0C, $0C, $11, $0D, $BE ; CPU:$9340 PRG:1340 0C 0C 15 0D 0D 0D 0D 17 0C 0C 0C 0C 0C 11 0D BE
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9350 PRG:1350 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $BF, $0D, $60, $71, $71, $6A, $7C, $7E, $69, $6F, $70, $72, $6F ; CPU:$9360 PRG:1360 CD CD CD BF 0D 60 71 71 6A 7C 7E 69 6F 70 72 6F
.byte $70, $71, $70, $5A, $0F, $19, $0F, $0C, $2F, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$9370 PRG:1370 70 71 70 5A 0F 19 0F 0C 2F 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $19, $0D, $0D, $0D, $0D, $1B, $0C, $0C, $0C, $0C, $0C, $15, $BD, $C1 ; CPU:$9380 PRG:1380 0C 0C 19 0D 0D 0D 0D 1B 0C 0C 0C 0C 0C 15 BD C1
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9390 PRG:1390 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $B1, $36, $70, $6F, $6F, $89, $0C, $0C, $87, $72, $72, $72, $6F ; CPU:$93A0 PRG:13A0 CD CD CD B1 36 70 6F 6F 89 0C 0C 87 72 72 72 6F
.byte $71, $6F, $38, $0D, $13, $1D, $13, $0C, $0A, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$93B0 PRG:13B0 71 6F 38 0D 13 1D 13 0C 0A 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $1D, $0D, $0D, $0D, $03, $0C, $0C, $0C, $0C, $0C, $0C, $05, $AF, $CD ; CPU:$93C0 PRG:13C0 0C 0C 1D 0D 0D 0D 03 0C 0C 0C 0C 0C 0C 05 AF CD
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$93D0 PRG:13D0 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $B5, $3A, $70, $71, $70, $8D, $0C, $0C, $8B, $72, $6F, $72, $70 ; CPU:$93E0 PRG:13E0 CD CD CD B5 3A 70 71 70 8D 0C 0C 8B 72 6F 72 70
.byte $71, $70, $3C, $07, $32, $07, $0B, $0C, $0C, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$93F0 PRG:13F0 71 70 3C 07 32 07 0B 0C 0C 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $01, $0D, $0D, $0D, $03, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0D, $B3, $CD ; CPU:$9400 PRG:1400 0C 01 0D 0D 0D 03 0C 0C 0C 0C 0C 0C 0C 0D B3 CD
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9410 PRG:1410 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $A6, $3E, $71, $6F, $72, $6F, $74, $79, $7A, $6F, $71, $70, $6F ; CPU:$9420 PRG:1420 CD CD CD A6 3E 71 6F 72 6F 74 79 7A 6F 71 70 6F
.byte $70, $6F, $40, $17, $0D, $17, $0C, $08, $0C, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$9430 PRG:1430 70 6F 40 17 0D 17 0C 08 0C 0D 0D 0D 2E 0C 0D 0D
.byte $01, $0D, $0D, $0D, $03, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $11, $0D, $CD, $CD ; CPU:$9440 PRG:1440 01 0D 0D 0D 03 0C 0C 0C 0C 0C 0C 0C 11 0D CD CD
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9450 PRG:1450 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $AA, $3B, $71, $70, $71, $72, $72, $70, $72, $70, $70, $71, $6F ; CPU:$9460 PRG:1460 CD CD CD AA 3B 71 70 71 72 72 70 72 70 70 71 6F
.byte $6F, $70, $07, $11, $0D, $1B, $11, $2E, $0C, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$9470 PRG:1470 6F 70 07 11 0D 1B 11 2E 0C 0D 0D 0D 2E 0C 0D 0D
.byte $0D, $0D, $0D, $0D, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $15, $0D, $CD, $CD ; CPU:$9480 PRG:1480 0D 0D 0D 0D 0C 0C 0C 0C 0C 0C 0C 0C 15 0D CD CD
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9490 PRG:1490 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $AE, $3F, $72, $6F, $72, $70, $70, $72, $72, $70, $72, $70, $71 ; CPU:$94A0 PRG:14A0 CD CD CD AE 3F 72 6F 72 70 70 72 72 70 72 70 71
.byte $71, $56, $17, $15, $0F, $0C, $15, $2E, $0C, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$94B0 PRG:14B0 71 56 17 15 0F 0C 15 2E 0C 0D 0D 0D 2E 0C 0D 0D
.byte $0D, $0D, $0D, $0F, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $05, $A7, $CD, $CD ; CPU:$94C0 PRG:14C0 0D 0D 0D 0F 0C 0C 0C 0C 0C 0C 0C 0C 05 A7 CD CD
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$94D0 PRG:14D0 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $B2, $43, $72, $6F, $72, $6A, $91, $69, $6F, $71, $6F, $71, $6F ; CPU:$94E0 PRG:14E0 CD CD CD B2 43 72 6F 72 6A 91 69 6F 71 6F 71 6F
.byte $56, $0D, $1B, $05, $13, $0C, $19, $2E, $0C, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$94F0 PRG:14F0 56 0D 1B 05 13 0C 19 2E 0C 0D 0D 0D 2E 0C 0D 0D
.byte $0D, $0D, $0D, $13, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0E, $AB, $CD, $CD ; CPU:$9500 PRG:1500 0D 0D 0D 13 0C 0C 0C 0C 0C 0C 0C 0C 0E AB CD CD
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9510 PRG:1510 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $CD, $0D, $72, $6F, $70, $8C, $0C, $87, $72, $71, $70, $70, $56 ; CPU:$9520 PRG:1520 CD CD CD CD 0D 72 6F 70 8C 0C 87 72 71 70 70 56
.byte $0D, $03, $01, $07, $0B, $0C, $1D, $2E, $0C, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$9530 PRG:1530 0D 03 01 07 0B 0C 1D 2E 0C 0D 0D 0D 2E 0C 0D 0D
.byte $0D, $0D, $0D, $0B, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $1D, $C1, $CD, $CD ; CPU:$9540 PRG:1540 0D 0D 0D 0B 0C 0C 0C 0C 0C 0C 0C 0C 1D C1 CD CD
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9550 PRG:1550 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $CD, $0D, $70, $72, $81, $0C, $0C, $8B, $6F, $70, $71, $56, $2B ; CPU:$9560 PRG:1560 CD CD CD CD 0D 70 72 81 0C 0C 8B 6F 70 71 56 2B
.byte $0B, $01, $0D, $0B, $0C, $01, $0D, $2E, $0C, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$9570 PRG:1570 0B 01 0D 0B 0C 01 0D 2E 0C 0D 0D 0D 2E 0C 0D 0D
.byte $0D, $0D, $03, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $11, $0D, $A8, $CD, $CD ; CPU:$9580 PRG:1580 0D 0D 03 0C 0C 0C 0C 0C 0C 0C 0C 11 0D A8 CD CD
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9590 PRG:1590 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $A9, $0D, $71, $70, $8D, $77, $76, $64, $6F, $72, $56, $13, $09 ; CPU:$95A0 PRG:15A0 CD CD CD A9 0D 71 70 8D 77 76 64 6F 72 56 13 09
.byte $05, $0D, $03, $0C, $09, $0D, $0D, $2E, $0C, $30, $30, $30, $0B, $0C, $0D, $0D ; CPU:$95B0 PRG:15B0 05 0D 03 0C 09 0D 0D 2E 0C 30 30 30 0B 0C 0D 0D
.byte $0D, $03, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $1A, $0D, $BA, $BE, $CD ; CPU:$95C0 PRG:15C0 0D 03 0C 0C 0C 0C 0C 0C 0C 0C 0C 1A 0D BA BE CD
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$95D0 PRG:15D0 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $AD, $36, $72, $6F, $70, $70, $72, $71, $70, $56, $0D, $17, $1D ; CPU:$95E0 PRG:15E0 CD CD CD AD 36 72 6F 70 70 72 71 70 56 0D 17 1D
.byte $0D, $03, $0C, $09, $05, $0D, $0D, $2E, $0C, $0C, $0C, $0C, $0C, $0C, $0D, $0D ; CPU:$95F0 PRG:15F0 0D 03 0C 09 05 0D 0D 2E 0C 0C 0C 0C 0C 0C 0D 0D
.byte $0D, $08, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $02, $0D, $0D, $A8 ; CPU:$9600 PRG:1600 0D 08 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 02 0D 0D A8
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9610 PRG:1610 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $C0, $43, $72, $6F, $72, $72, $71, $6F, $56, $0D, $0D, $1B, $0D ; CPU:$9620 PRG:1620 CD CD CD C0 43 72 6F 72 72 71 6F 56 0D 0D 1B 0D
.byte $0D, $0C, $09, $05, $0D, $0D, $0D, $2E, $0C, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$9630 PRG:1630 0D 0C 09 05 0D 0D 0D 2E 0C 0D 0D 0D 2E 0C 0D 0D
.byte $0D, $17, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $02, $0D, $AC ; CPU:$9640 PRG:1640 0D 17 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 02 0D AC
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9650 PRG:1650 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $A9, $3A, $84, $7B, $7F, $83, $70, $38, $0D, $0D, $03, $01, $0D ; CPU:$9660 PRG:1660 CD CD CD A9 3A 84 7B 7F 83 70 38 0D 0D 03 01 0D
.byte $0D, $0C, $2F, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$9670 PRG:1670 0D 0C 2F 0D 0D 0D 0D 2E 0C 0D 0D 0D 2E 0C 0D 0D
.byte $0D, $1B, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0E, $BA ; CPU:$9680 PRG:1680 0D 1B 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0E BA
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9690 PRG:1690 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $CD, $AD, $3E, $8F, $0C, $0C, $6D, $71, $3C, $0D, $03, $01, $0D, $0D ; CPU:$96A0 PRG:16A0 CD CD CD AD 3E 8F 0C 0C 6D 71 3C 0D 03 01 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$96B0 PRG:16B0 0D 0C 2F 0D 0D 0D 0D 2E 0C 0D 0D 0D 2E 0C 0D 0D
.byte $0F, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $12, $A7 ; CPU:$96C0 PRG:16C0 0F 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 12 A7
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$96D0 PRG:16D0 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $BF, $BB, $42, $67, $6B, $0C, $6C, $72, $5A, $03, $01, $0D, $0D, $0D ; CPU:$96E0 PRG:16E0 CD CD BF BB 42 67 6B 0C 6C 72 5A 03 01 0D 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$96F0 PRG:16F0 0D 0C 2F 0D 0D 0D 0D 2E 0C 0D 0D 0D 2E 0C 0D 0D
.byte $13, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $09, $05, $B4 ; CPU:$9700 PRG:1700 13 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 09 05 B4
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9710 PRG:1710 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $CD, $BB, $5C, $72, $6F, $6F, $70, $70, $72, $35, $1A, $0D, $0D, $0D, $0D ; CPU:$9720 PRG:1720 CD CD BB 5C 72 6F 6F 70 70 72 35 1A 0D 0D 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$9730 PRG:1730 0D 0C 2F 0D 0D 0D 0D 2E 0C 0D 0D 0D 2E 0C 0D 0D
.byte $0B, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $2F, $61, $A7 ; CPU:$9740 PRG:1740 0B 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 2F 61 A7
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9750 PRG:1750 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $A9, $0D, $3E, $70, $72, $70, $71, $6F, $71, $39, $10, $06, $0D, $0D, $0D ; CPU:$9760 PRG:1760 CD A9 0D 3E 70 72 70 71 6F 71 39 10 06 0D 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$9770 PRG:1770 0D 0C 2F 0D 0D 0D 0D 2E 0C 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $2F, $61, $AB ; CPU:$9780 PRG:1780 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 2F 61 AB
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9790 PRG:1790 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $AD, $0D, $42, $71, $71, $71, $71, $70, $72, $5F, $04, $2F, $0D, $0D, $0D ; CPU:$97A0 PRG:17A0 CD AD 0D 42 71 71 71 71 70 72 5F 04 2F 0D 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$97B0 PRG:17B0 0D 0C 2F 0D 0D 0D 0D 2E 0C 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $19, $61, $AF ; CPU:$97C0 PRG:17C0 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 19 61 AF
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$97D0 PRG:17D0 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $B1, $36, $71, $6F, $72, $70, $71, $6F, $70, $70, $35, $16, $0D, $0D, $0D ; CPU:$97E0 PRG:17E0 CD B1 36 71 6F 72 70 71 6F 70 70 35 16 0D 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $0D, $0D, $2E, $0C, $0D, $0D, $0D, $2E, $0C, $0D, $0D ; CPU:$97F0 PRG:17F0 0D 0C 2F 0D 0D 0D 0D 2E 0C 0D 0D 0D 2E 0C 0D 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $1D, $61, $AC ; CPU:$9800 PRG:1800 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 1D 61 AC
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9810 PRG:1810 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $AA, $43, $6F, $72, $72, $70, $6F, $70, $72, $70, $39, $14, $0D, $0D, $0D ; CPU:$9820 PRG:1820 CD AA 43 6F 72 72 70 6F 70 72 70 39 14 0D 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $0D, $0D, $17, $0C, $0D, $0D, $0D, $04, $08, $02, $0D ; CPU:$9830 PRG:1830 0D 0C 2F 0D 0D 0D 0D 17 0C 0D 0D 0D 04 08 02 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0D, $61, $B0 ; CPU:$9840 PRG:1840 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0D 61 B0
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9850 PRG:1850 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $AE, $36, $72, $71, $70, $71, $72, $71, $72, $6F, $40, $18, $0E, $0D, $0D ; CPU:$9860 PRG:1860 CD AE 36 72 71 70 71 72 71 72 6F 40 18 0E 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $0D, $0D, $1B, $09, $0D, $0D, $0D, $0D, $2E, $0C, $0D ; CPU:$9870 PRG:1870 0D 0C 2F 0D 0D 0D 0D 1B 09 0D 0D 0D 0D 2E 0C 0D
.byte $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0E, $0D, $A7 ; CPU:$9880 PRG:1880 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0E 0D A7
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9890 PRG:1890 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $AD, $3A, $6F, $6F, $6F, $71, $6F, $70, $72, $71, $39, $13, $12, $0D, $0D ; CPU:$98A0 PRG:18A0 CD AD 3A 6F 6F 6F 71 6F 70 72 71 39 13 12 0D 0D
.byte $0D, $0C, $09, $31, $08, $02, $07, $0C, $19, $0D, $0D, $0D, $0D, $2E, $0C, $0D ; CPU:$98B0 PRG:18B0 0D 0C 09 31 08 02 07 0C 19 0D 0D 0D 0D 2E 0C 0D
.byte $00, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $1D, $61, $AB ; CPU:$98C0 PRG:18C0 00 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 1D 61 AB
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$98D0 PRG:18D0 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $B1, $3E, $6F, $71, $71, $6F, $6F, $72, $71, $72, $40, $17, $19, $0D, $0D ; CPU:$98E0 PRG:18E0 CD B1 3E 6F 71 71 6F 6F 72 71 72 40 17 19 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $00, $0C, $0C, $1D, $0D, $0D, $0D, $0D, $2E, $0C, $0D ; CPU:$98F0 PRG:18F0 0D 0C 2F 0D 0D 00 0C 0C 1D 0D 0D 0D 0D 2E 0C 0D
.byte $0D, $10, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $06, $61, $B0 ; CPU:$9900 PRG:1900 0D 10 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 0C 06 61 B0
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9910 PRG:1910 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $CD, $B5, $42, $70, $70, $70, $70, $72, $70, $72, $71, $44, $1B, $1D, $0D, $0D ; CPU:$9920 PRG:1920 CD B5 42 70 70 70 70 72 70 72 71 44 1B 1D 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $0D, $0C, $11, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D ; CPU:$9930 PRG:1930 0D 0C 2F 0D 0D 0D 0C 11 0D 0D 0D 0D 0D 2E 0C 0D
.byte $0D, $14, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $22, $21, $0A, $29, $B4 ; CPU:$9940 PRG:1940 0D 14 0C 0C 0C 0C 0C 0C 0C 0C 0C 22 21 0A 29 B4
.byte $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9950 PRG:1950 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $AD, $36, $70, $6F, $71, $70, $6F, $71, $72, $70, $38, $07, $11, $0D, $0D, $0D ; CPU:$9960 PRG:1960 AD 36 70 6F 71 70 6F 71 72 70 38 07 11 0D 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $0D, $0C, $15, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D ; CPU:$9970 PRG:1970 0D 0C 2F 0D 0D 0D 0C 15 0D 0D 0D 0D 0D 2E 0C 0D
.byte $5B, $04, $08, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $01, $0D, $0D, $0D, $00, $02 ; CPU:$9980 PRG:1980 5B 04 08 0C 0C 0C 0C 0C 0C 0C 01 0D 0D 0D 00 02
.byte $B6, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD ; CPU:$9990 PRG:1990 B6 CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
.byte $B1, $3A, $6F, $72, $70, $71, $6F, $6F, $71, $70, $3C, $17, $15, $0D, $0D, $0D ; CPU:$99A0 PRG:19A0 B1 3A 6F 72 70 71 6F 6F 71 70 3C 17 15 0D 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D ; CPU:$99B0 PRG:19B0 0D 0C 2F 0D 0D 0D 0C 2F 0D 0D 0D 0D 0D 2E 0C 0D
.byte $5F, $5B, $04, $08, $0C, $0C, $0C, $0C, $0C, $11, $0D, $58, $5F, $5B, $0D, $10 ; CPU:$99C0 PRG:19C0 5F 5B 04 08 0C 0C 0C 0C 0C 11 0D 58 5F 5B 0D 10
.byte $12, $A8, $CD, $CD, $CD, $E8, $E9, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $CD, $A9 ; CPU:$99D0 PRG:19D0 12 A8 CD CD CD E8 E9 CD CD CD CD CD CD CD CD A9
.byte $5C, $60, $70, $72, $6F, $71, $70, $6F, $71, $70, $5A, $1B, $05, $0D, $0D, $0D ; CPU:$99E0 PRG:19E0 5C 60 70 72 6F 71 70 6F 71 70 5A 1B 05 0D 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D ; CPU:$99F0 PRG:19F0 0D 0C 2F 0D 0D 0D 0C 2F 0D 0D 0D 0D 0D 2E 0C 0D
.byte $72, $5F, $5B, $04, $20, $21, $0C, $0C, $09, $05, $3A, $72, $72, $3D, $0D, $14 ; CPU:$9A00 PRG:1A00 72 5F 5B 04 20 21 0C 0C 09 05 3A 72 72 3D 0D 14
.byte $16, $AC, $CD, $CD, $CD, $F1, $EA, $CD, $EB, $CD, $CD, $CD, $CD, $CD, $CD, $AD ; CPU:$9A10 PRG:1A10 16 AC CD CD CD F1 EA CD EB CD CD CD CD CD CD AD
.byte $42, $70, $72, $66, $7B, $7F, $6D, $71, $6F, $72, $0F, $11, $0D, $0D, $0D, $0D ; CPU:$9A20 PRG:1A20 42 70 72 66 7B 7F 6D 71 6F 72 0F 11 0D 0D 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D ; CPU:$9A30 PRG:1A30 0D 0C 2F 0D 0D 0D 0C 2F 0D 0D 0D 0D 0D 2E 0C 0D
.byte $6F, $70, $5F, $4F, $50, $0D, $1F, $25, $0D, $5C, $60, $71, $6F, $41, $0D, $18 ; CPU:$9A40 PRG:1A40 6F 70 5F 4F 50 0D 1F 25 0D 5C 60 71 6F 41 0D 18
.byte $1A, $BA, $BE, $CD, $CD, $F1, $F1, $EA, $EB, $CD, $CD, $CD, $CD, $CD, $CD, $B1 ; CPU:$9A50 PRG:1A50 1A BA BE CD CD F1 F1 EA EB CD CD CD CD CD CD B1
.byte $6F, $72, $71, $82, $0C, $0C, $0C, $80, $70, $38, $13, $15, $0D, $0D, $0D, $0D ; CPU:$9A60 PRG:1A60 6F 72 71 82 0C 0C 0C 80 70 38 13 15 0D 0D 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D ; CPU:$9A70 PRG:1A70 0D 0C 2F 0D 0D 0D 0C 2F 0D 0D 0D 0D 0D 2E 0C 0D
.byte $71, $72, $70, $72, $72, $4D, $4E, $4F, $52, $60, $71, $70, $71, $70, $0D, $1C ; CPU:$9A80 PRG:1A80 71 72 70 72 72 4D 4E 4F 52 60 71 70 71 70 0D 1C
.byte $0C, $0E, $B0, $CD, $E8, $F1, $F1, $ED, $F3, $E8, $E8, $E9, $CD, $CD, $CD, $3A ; CPU:$9A90 PRG:1A90 0C 0E B0 CD E8 F1 F1 ED F3 E8 E8 E9 CD CD CD 3A
.byte $71, $70, $72, $85, $0C, $0C, $0C, $8E, $71, $3C, $17, $05, $0D, $0D, $0D, $0D ; CPU:$9AA0 PRG:1AA0 71 70 72 85 0C 0C 0C 8E 71 3C 17 05 0D 0D 0D 0D
.byte $0D, $0C, $2F, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D ; CPU:$9AB0 PRG:1AB0 0D 0C 2F 0D 0D 0D 0C 2F 0D 0D 0D 0D 0D 2E 0C 0D
.byte $71, $70, $70, $71, $72, $71, $6F, $70, $70, $72, $6F, $70, $70, $71, $5B, $0D ; CPU:$9AC0 PRG:1AC0 71 70 70 71 72 71 6F 70 70 72 6F 70 70 71 5B 0D
.byte $10, $12, $B4, $CD, $F1, $F1, $F1, $F1, $F1, $F1, $F1, $EA, $CD, $CD, $B7, $60 ; CPU:$9AD0 PRG:1AD0 10 12 B4 CD F1 F1 F1 F1 F1 F1 F1 EA CD CD B7 60
.byte $6F, $70, $71, $67, $75, $78, $79, $72, $72, $5A, $1B, $0D, $0D, $0D, $0D, $0D ; CPU:$9AE0 PRG:1AE0 6F 70 71 67 75 78 79 72 72 5A 1B 0D 0D 0D 0D 0D
.byte $03, $0C, $2F, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D ; CPU:$9AF0 PRG:1AF0 03 0C 2F 0D 0D 0D 0C 2F 0D 0D 0D 0D 0D 2E 0C 0D
.byte $70, $71, $72, $70, $6F, $6F, $71, $71, $71, $6F, $6F, $72, $71, $71, $3D, $0D ; CPU:$9B00 PRG:1B00 70 71 72 70 6F 6F 71 71 71 6F 6F 72 71 71 3D 0D
.byte $14, $16, $0D, $B6, $F1, $F1, $F1, $F1, $F1, $F1, $F1, $EA, $CD, $B7, $07, $69 ; CPU:$9B10 PRG:1B10 14 16 0D B6 F1 F1 F1 F1 F1 F1 F1 EA CD B7 07 69
.byte $72, $70, $70, $72, $72, $71, $71, $6F, $38, $0F, $11, $0D, $0D, $0D, $0D, $03 ; CPU:$9B20 PRG:1B20 72 70 70 72 72 71 71 6F 38 0F 11 0D 0D 0D 0D 03
.byte $0C, $09, $05, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D ; CPU:$9B30 PRG:1B30 0C 09 05 0D 0D 0D 0C 2F 0D 0D 0D 0D 0D 2E 0C 0D
.byte $6F, $70, $71, $72, $71, $70, $6F, $70, $6F, $6F, $70, $71, $70, $70, $3C, $0D ; CPU:$9B40 PRG:1B40 6F 70 71 72 71 70 6F 70 6F 6F 70 71 70 70 3C 0D
.byte $04, $1A, $0D, $0D, $F1, $F1, $F1, $F1, $F1, $F1, $F1, $EA, $B7, $0D, $17, $87 ; CPU:$9B50 PRG:1B50 04 1A 0D 0D F1 F1 F1 F1 F1 F1 F1 EA B7 0D 17 87
.byte $72, $70, $6F, $70, $72, $71, $70, $72, $3C, $13, $15, $0D, $0D, $0D, $0D, $0C ; CPU:$9B60 PRG:1B60 72 70 6F 70 72 71 70 72 3C 13 15 0D 0D 0D 0D 0C
.byte $09, $05, $0D, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D ; CPU:$9B70 PRG:1B70 09 05 0D 0D 0D 0D 0C 2F 0D 0D 0D 0D 0D 2E 0C 0D
.byte $70, $6F, $70, $71, $6F, $72, $72, $70, $6F, $72, $70, $71, $71, $71, $40, $0D ; CPU:$9B80 PRG:1B80 70 6F 70 71 6F 72 72 70 6F 72 70 71 71 71 40 0D
.byte $0D, $00, $02, $0D, $F1, $F1, $F1, $F1, $F1, $F1, $F1, $0D, $0D, $03, $15, $8B ; CPU:$9B90 PRG:1B90 0D 00 02 0D F1 F1 F1 F1 F1 F1 F1 0D 0D 03 15 8B
.byte $72, $70, $71, $70, $71, $72, $71, $70, $40, $17, $19, $0D, $0D, $0D, $0D, $0C ; CPU:$9BA0 PRG:1BA0 72 70 71 70 71 72 71 70 40 17 19 0D 0D 0D 0D 0C
.byte $2F, $0D, $0D, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D ; CPU:$9BB0 PRG:1BB0 2F 0D 0D 0D 0D 0D 0C 2F 0D 0D 0D 0D 0D 2E 0C 0D
.byte $72, $70, $71, $72, $71, $70, $70, $71, $72, $70, $6F, $72, $71, $72, $44, $0D ; CPU:$9BC0 PRG:1BC0 72 70 71 72 71 70 70 71 72 70 6F 72 71 72 44 0D
.byte $0D, $07, $0C, $02, $F1, $F1, $F1, $F1, $F1, $F1, $F1, $0D, $03, $09, $05, $10 ; CPU:$9BD0 PRG:1BD0 0D 07 0C 02 F1 F1 F1 F1 F1 F1 F1 0D 03 09 05 10
.byte $70, $6F, $6F, $70, $72, $6F, $70, $6F, $44, $1B, $1D, $0D, $0D, $0D, $0D, $0C ; CPU:$9BE0 PRG:1BE0 70 6F 6F 70 72 6F 70 6F 44 1B 1D 0D 0D 0D 0D 0C
.byte $2F, $0D, $0D, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D ; CPU:$9BF0 PRG:1BF0 2F 0D 0D 0D 0D 0D 0C 2F 0D 0D 0D 0D 0D 2E 0C 0D
.byte $6F, $6F, $70, $70, $6F, $70, $72, $6F, $71, $70, $6F, $6F, $6F, $38, $0D, $0D ; CPU:$9C00 PRG:1C00 6F 6F 70 70 6F 70 72 6F 71 70 6F 6F 6F 38 0D 0D
.byte $07, $0B, $23, $08, $02, $0D, $0D, $0D, $0D, $0D, $0D, $03, $09, $05, $0D, $1B ; CPU:$9C10 PRG:1C10 07 0B 23 08 02 0D 0D 0D 0D 0D 0D 03 09 05 0D 1B
.byte $6F, $71, $72, $71, $70, $6F, $71, $38, $0F, $11, $0D, $0D, $0D, $0D, $0D, $0C ; CPU:$9C20 PRG:1C20 6F 71 72 71 70 6F 71 38 0F 11 0D 0D 0D 0D 0D 0C
.byte $2F, $0D, $0D, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D ; CPU:$9C30 PRG:1C30 2F 0D 0D 0D 0D 0D 0C 2F 0D 0D 0D 0D 0D 2E 0C 0D
.byte $71, $72, $6F, $70, $71, $71, $6F, $72, $72, $72, $70, $70, $70, $40, $0D, $07 ; CPU:$9C40 PRG:1C40 71 72 6F 70 71 71 6F 72 72 72 70 70 70 40 0D 07
.byte $0B, $1D, $0D, $18, $0C, $02, $0D, $0D, $0D, $0D, $0F, $09, $05, $0D, $0F, $0C ; CPU:$9C50 PRG:1C50 0B 1D 0D 18 0C 02 0D 0D 0D 0D 0F 09 05 0D 0F 0C
.byte $71, $6F, $70, $71, $72, $71, $70, $3C, $13, $15, $0D, $0D, $0D, $0D, $0D, $0C ; CPU:$9C60 PRG:1C60 71 6F 70 71 72 71 70 3C 13 15 0D 0D 0D 0D 0D 0C
.byte $2F, $0D, $0D, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D ; CPU:$9C70 PRG:1C70 2F 0D 0D 0D 0D 0D 0C 2F 0D 0D 0D 0D 0D 2E 0C 0D
.byte $6F, $70, $71, $70, $72, $72, $6F, $72, $72, $5E, $4B, $4C, $0D, $0D, $07, $09 ; CPU:$9C80 PRG:1C80 6F 70 71 70 72 72 6F 72 72 5E 4B 4C 0D 0D 07 09
.byte $24, $0D, $0D, $1C, $0A, $00, $0C, $0C, $22, $23, $20, $05, $0D, $0D, $1C, $11 ; CPU:$9C90 PRG:1C90 24 0D 0D 1C 0A 00 0C 0C 22 23 20 05 0D 0D 1C 11
.byte $55, $71, $70, $71, $72, $70, $72, $40, $1B, $1D, $0D, $0D, $0D, $0D, $0D, $0C ; CPU:$9CA0 PRG:1CA0 55 71 70 71 72 70 72 40 1B 1D 0D 0D 0D 0D 0D 0C
.byte $2F, $0D, $0D, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D ; CPU:$9CB0 PRG:1CB0 2F 0D 0D 0D 0D 0D 0C 2F 0D 0D 0D 0D 0D 2E 0C 0D
.byte $72, $71, $6F, $6F, $70, $5E, $4B, $4C, $2B, $30, $30, $2C, $2D, $23, $09, $05 ; CPU:$9CC0 PRG:1CC0 72 71 6F 6F 70 5E 4B 4C 2B 30 30 2C 2D 23 09 05
.byte $0D, $0D, $0D, $0D, $10, $0D, $1E, $25, $0D, $0D, $0D, $0D, $0D, $0D, $0F, $15 ; CPU:$9CD0 PRG:1CD0 0D 0D 0D 0D 10 0D 1E 25 0D 0D 0D 0D 0D 0D 0F 15
.byte $0D, $37, $72, $71, $70, $71, $38, $0F, $15, $0D, $0D, $0D, $0D, $0D, $0D, $0C ; CPU:$9CE0 PRG:1CE0 0D 37 72 71 70 71 38 0F 15 0D 0D 0D 0D 0D 0D 0C
.byte $2F, $0D, $0D, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D ; CPU:$9CF0 PRG:1CF0 2F 0D 0D 0D 0D 0D 0C 2F 0D 0D 0D 0D 0D 2E 0C 0D
.byte $49, $4A, $4B, $4C, $0D, $0D, $0D, $03, $09, $05, $0D, $0D, $0D, $0F, $19, $0D ; CPU:$9D00 PRG:1D00 49 4A 4B 4C 0D 0D 0D 03 09 05 0D 0D 0D 0F 19 0D
.byte $0D, $0D, $0D, $0D, $14, $0E, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $13, $19 ; CPU:$9D10 PRG:1D10 0D 0D 0D 0D 14 0E 0D 0D 0D 0D 0D 0D 0D 0D 13 19
.byte $0D, $3B, $72, $70, $71, $71, $5A, $13, $1D, $0D, $0D, $0D, $0D, $0D, $0D, $0C ; CPU:$9D20 PRG:1D20 0D 3B 72 70 71 71 5A 13 1D 0D 0D 0D 0D 0D 0D 0C
.byte $2F, $0D, $0D, $0D, $0D, $0D, $0C, $2F, $0D, $0D, $0D, $0D, $0D, $2E, $0C, $0D ; CPU:$9D30 PRG:1D30 2F 0D 0D 0D 0D 0D 0C 2F 0D 0D 0D 0D 0D 2E 0C 0D
.byte $28, $2B, $2C, $27, $2C, $2D, $23, $25, $0D, $0D, $0D, $0D, $0D, $17, $1D, $0D ; CPU:$9D40 PRG:1D40 28 2B 2C 27 2C 2D 23 25 0D 0D 0D 0D 0D 17 1D 0D
.byte $0D, $0D, $0D, $0D, $04, $16, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0B, $1D ; CPU:$9D50 PRG:1D50 0D 0D 0D 0D 04 16 0D 0D 0D 0D 0D 0D 0D 0D 0B 1D
.byte $0D, $59, $5D, $72, $71, $56, $07, $32, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0C ; CPU:$9D60 PRG:1D60 0D 59 5D 72 71 56 07 32 0D 0D 0D 0D 0D 0D 0D 0C
.byte $2F, $0D, $0D, $0D, $0D, $0D, $0C, $0A, $06, $0D, $0D, $0D, $0D, $2E, $0C, $0D ; CPU:$9D70 PRG:1D70 2F 0D 0D 0D 0D 0D 0C 0A 06 0D 0D 0D 0D 2E 0C 0D
.byte $23, $24, $25, $2A, $0B, $05, $0D, $0D, $0D, $0D, $0D, $0D, $03, $11, $0D, $0D ; CPU:$9D80 PRG:1D80 23 24 25 2A 0B 05 0D 0D 0D 0D 0D 0D 03 11 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $10, $0E, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $11, $0D ; CPU:$9D90 PRG:1D90 0D 0D 0D 0D 0D 10 0E 0D 0D 0D 0D 0D 0D 0D 11 0D
.byte $0D, $0D, $59, $4B, $2A, $2B, $32, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0C ; CPU:$9DA0 PRG:1DA0 0D 0D 59 4B 2A 2B 32 0D 0D 0D 0D 0D 0D 0D 0D 0C
.byte $2F, $0D, $0D, $0D, $0D, $0D, $0C, $0C, $0A, $30, $30, $30, $30, $0B, $0C, $30 ; CPU:$9DB0 PRG:1DB0 2F 0D 0D 0D 0D 0D 0C 0C 0A 30 30 30 30 0B 0C 30
.byte $5F, $5B, $03, $23, $25, $0D, $0D, $0D, $0D, $0D, $0D, $0F, $09, $05, $0D, $0D ; CPU:$9DC0 PRG:1DC0 5F 5B 03 23 25 0D 0D 0D 0D 0D 0D 0F 09 05 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $04, $20, $02, $0D, $0D, $0D, $0D, $0D, $0D, $1A, $2A ; CPU:$9DD0 PRG:1DD0 0D 0D 0D 0D 0D 04 20 02 0D 0D 0D 0D 0D 0D 1A 2A
.byte $2B, $2C, $2D, $22, $23, $05, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0C ; CPU:$9DE0 PRG:1DE0 2B 2C 2D 22 23 05 0D 0D 0D 0D 0D 0D 0D 0D 0D 0C
.byte $2F, $0D, $0D, $0D, $0D, $0D, $00, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C, $0C ; CPU:$9DF0 PRG:1DF0 2F 0D 0D 0D 0D 0D 00 0C 0C 0C 0C 0C 0C 0C 0C 0C
.byte $6F, $6F, $71, $57, $0D, $0D, $0D, $0D, $0D, $0D, $03, $23, $05, $0D, $0D, $0D ; CPU:$9E00 PRG:1E00 6F 6F 71 57 0D 0D 0D 0D 0D 0D 03 23 05 0D 0D 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $00, $12, $0D, $0D, $0D, $0D, $0D, $10, $23 ; CPU:$9E10 PRG:1E10 0D 0D 0D 0D 0D 0D 0D 00 12 0D 0D 0D 0D 0D 10 23
.byte $24, $25, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0C ; CPU:$9E20 PRG:1E20 24 25 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0D 0C
.byte $2F, $0D, $0D, $0D, $0D, $0D, $0D, $00, $0C, $02, $0D, $0D, $0D, $0D, $0D, $0D ; CPU:$9E30 PRG:1E30 2F 0D 0D 0D 0D 0D 0D 00 0C 02 0D 0D 0D 0D 0D 0D
.byte $72, $71, $6F, $71, $57, $0D, $0D, $0D, $0D, $03, $01, $0D, $0D, $0D, $0D, $51 ; CPU:$9E40 PRG:1E40 72 71 6F 71 57 0D 0D 0D 0D 03 01 0D 0D 0D 0D 51
.byte $52, $5B, $0D, $0D, $0D, $0D, $0D, $0D, $16, $0D, $0D, $51, $50, $0D, $1B, $0D ; CPU:$9E50 PRG:1E50 52 5B 0D 0D 0D 0D 0D 0D 16 0D 0D 51 50 0D 1B 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $0D, $5C, $4F, $50, $0D, $0D, $0D, $0D, $0C ; CPU:$9E60 PRG:1E60 0D 0D 0D 0D 0D 0D 0D 0D 5C 4F 50 0D 0D 0D 0D 0C
.byte $2F, $0D, $0D, $0D, $0D, $0D, $51, $50, $00, $0C, $02, $0D, $0D, $0D, $0D, $0D ; CPU:$9E70 PRG:1E70 2F 0D 0D 0D 0D 0D 51 50 00 0C 02 0D 0D 0D 0D 0D
.byte $70, $71, $70, $6F, $71, $4D, $4E, $5B, $03, $01, $0D, $51, $52, $53, $54, $6F ; CPU:$9E80 PRG:1E80 70 71 70 6F 71 4D 4E 5B 03 01 0D 51 52 53 54 6F
.byte $72, $71, $4D, $4E, $5B, $0D, $0D, $0D, $1A, $5C, $60, $72, $70, $57, $11, $0D ; CPU:$9E90 PRG:1E90 72 71 4D 4E 5B 0D 0D 0D 1A 5C 60 72 70 57 11 0D
.byte $0D, $0D, $0D, $0D, $0D, $0D, $0D, $5C, $60, $6F, $71, $4D, $4E, $4F, $50, $0C ; CPU:$9EA0 PRG:1EA0 0D 0D 0D 0D 0D 0D 0D 5C 60 6F 71 4D 4E 4F 50 0C
.byte $2F, $0D, $0D, $0D, $0D, $58, $6F, $71, $70, $72, $70, $70, $4D, $54, $4D, $54 ; CPU:$9EB0 PRG:1EB0 2F 0D 0D 0D 0D 58 6F 71 70 72 70 70 4D 54 4D 54
.byte $71, $70, $70, $6F, $6F, $70, $72, $71, $70, $70, $71, $70, $70, $71, $70, $71 ; CPU:$9EC0 PRG:1EC0 71 70 70 6F 6F 70 72 71 70 70 71 70 70 71 70 71
.byte $71, $6F, $71, $70, $72, $4D, $4E, $54, $72, $6F, $71, $72, $72, $71, $71, $4D ; CPU:$9ED0 PRG:1ED0 71 6F 71 70 72 4D 4E 54 72 6F 71 72 72 71 71 4D
.byte $4E, $4F, $50, $51, $52, $53, $54, $71, $6F, $70, $6F, $71, $70, $71, $72, $70 ; CPU:$9EE0 PRG:1EE0 4E 4F 50 51 52 53 54 71 6F 70 6F 71 70 71 72 70
.byte $70, $4D, $4E, $53, $54, $71, $71, $72, $70, $71, $6F, $6F, $72, $70, $71, $70 ; CPU:$9EF0 PRG:1EF0 70 4D 4E 53 54 71 71 72 70 71 6F 6F 72 70 71 70
.byte $70, $70, $71, $72, $6F, $72, $71, $70, $70, $6F, $71, $70, $6F, $72, $72, $72 ; CPU:$9F00 PRG:1F00 70 70 71 72 6F 72 71 70 70 6F 71 70 6F 72 72 72
.byte $70, $72, $71, $6F, $6F, $6F, $70, $71, $70, $6F, $71, $70, $6F, $72, $72, $72 ; CPU:$9F10 PRG:1F10 70 72 71 6F 6F 6F 70 71 70 6F 71 70 6F 72 72 72
.byte $72, $6F, $6F, $6F, $71, $6F, $6F, $71, $70, $72, $71, $6F, $71, $71, $6F, $71 ; CPU:$9F20 PRG:1F20 72 6F 6F 6F 71 6F 6F 71 70 72 71 6F 71 71 6F 71
.byte $70, $71, $72, $72, $70, $70, $72, $6F, $71, $70, $72, $72, $70, $72, $71, $6F ; CPU:$9F30 PRG:1F30 70 71 72 72 70 70 72 6F 71 70 72 72 70 72 71 6F
.byte $71, $71, $70, $71, $71, $6F, $70, $70, $72, $72, $71, $6F, $70, $72, $71, $70 ; CPU:$9F40 PRG:1F40 71 71 70 71 71 6F 70 70 72 72 71 6F 70 72 71 70
.byte $70, $71, $70, $70, $72, $72, $70, $71, $72, $72, $72, $70, $70, $70, $6F, $6F ; CPU:$9F50 PRG:1F50 70 71 70 70 72 72 70 71 72 72 72 70 70 70 6F 6F
.byte $72, $72, $6F, $72, $71, $72, $6F, $6F, $70, $72, $70, $71, $72, $6F, $72, $70 ; CPU:$9F60 PRG:1F60 72 72 6F 72 71 72 6F 6F 70 72 70 71 72 6F 72 70
.byte $71, $71, $6F, $6F, $72, $6F, $6F, $70, $72, $72, $72, $70, $71, $72, $72, $71 ; CPU:$9F70 PRG:1F70 71 71 6F 6F 72 6F 6F 70 72 72 72 70 71 72 72 71
.byte $72, $70, $71, $6F, $6F, $70, $6F, $6F, $70, $6F, $70, $71, $72, $72, $71, $71 ; CPU:$9F80 PRG:1F80 72 70 71 6F 6F 70 6F 6F 70 6F 70 71 72 72 71 71
.byte $71, $71, $6F, $71, $70, $6F, $71, $72, $70, $72, $70, $6F, $70, $71, $70, $6F ; CPU:$9F90 PRG:1F90 71 71 6F 71 70 6F 71 72 70 72 70 6F 70 71 70 6F
.byte $72, $70, $6F, $71, $70, $70, $6F, $70, $70, $6F, $71, $70, $71, $71, $70, $71 ; CPU:$9FA0 PRG:1FA0 72 70 6F 71 70 70 6F 70 70 6F 71 70 71 71 70 71
.byte $6F, $72, $70, $72, $71, $72, $71, $6F, $70, $6F, $70, $72, $6F, $70, $6F, $70 ; CPU:$9FB0 PRG:1FB0 6F 72 70 72 71 72 71 6F 70 6F 70 72 6F 70 6F 70
.byte $70, $72, $71, $72, $72, $70, $6F, $70, $72, $70, $71, $70, $71, $72, $70, $72 ; CPU:$9FC0 PRG:1FC0 70 72 71 72 72 70 6F 70 72 70 71 70 71 72 70 72
.byte $70, $72, $70, $72, $70, $6F, $72, $71, $6F, $71, $6F, $72, $72, $70, $6F, $72 ; CPU:$9FD0 PRG:1FD0 70 72 70 72 70 6F 72 71 6F 71 6F 72 72 70 6F 72
.byte $6F, $72, $6F, $72, $72, $71, $71, $71, $6F, $6F, $72, $72, $6F, $70, $70, $72 ; CPU:$9FE0 PRG:1FE0 6F 72 6F 72 72 71 71 71 6F 6F 72 72 6F 70 70 72
.byte $71, $70, $6F, $71, $72, $72, $71, $72, $6F, $71, $72, $6F, $70, $71, $70, $72 ; CPU:$9FF0 PRG:1FF0 71 70 6F 71 72 72 71 72 6F 71 72 6F 70 71 70 72
.byte $02, $2D, $01, $2C, $2C, $03, $2C, $2C, $2D, $2D, $2D, $00, $2D, $2C, $05, $2C ; CPU:$A000 PRG:2000 02 2D 01 2C 2C 03 2C 2C 2D 2D 2D 00 2D 2C 05 2C
.byte $12, $2D, $0D, $2C, $0A, $2D, $2D, $04, $2C, $13, $2D, $0C, $2C, $0B, $16, $1E ; CPU:$A010 PRG:2010 12 2D 0D 2C 0A 2D 2D 04 2C 13 2D 0C 2C 0B 16 1E
.byte $2D, $2D, $2D, $2D, $23, $1B, $21, $19, $2C, $2C, $2C, $2C, $14, $1C, $2C, $2D ; CPU:$A020 PRG:2020 2D 2D 2D 2D 23 1B 21 19 2C 2C 2C 2C 14 1C 2C 2D
.byte $2C, $2D, $00, $01, $2C, $3E, $2D, $31, $54, $36, $2D, $39, $57, $57, $3F, $2D ; CPU:$A030 PRG:2030 2C 2D 00 01 2C 3E 2D 31 54 36 2D 39 57 57 3F 2D
.byte $30, $55, $37, $2D, $38, $4D, $45, $57, $56, $54, $56, $40, $48, $42, $4A, $2D ; CPU:$A040 PRG:2040 30 55 37 2D 38 4D 45 57 56 54 56 40 48 42 4A 2D
.byte $2D, $2D, $2D, $4F, $47, $59, $55, $5A, $2D, $2D, $58, $2D, $2D, $54, $56, $57 ; CPU:$A050 PRG:2050 2D 2D 2D 4F 47 59 55 5A 2D 2D 58 2D 2D 54 56 57
.byte $5B, $50, $54, $2D, $2D, $59, $54, $55, $5B, $54, $54, $2D, $2D, $2D, $58, $54 ; CPU:$A060 PRG:2060 5B 50 54 2D 2D 59 54 55 5B 54 54 2D 2D 2D 58 54
.byte $55, $56, $57, $42, $4A, $2D, $2D, $2D, $2D, $4F, $47, $4D, $54, $54, $57, $48 ; CPU:$A070 PRG:2070 55 56 57 42 4A 2D 2D 2D 2D 4F 47 4D 54 54 57 48
.byte $31, $56, $3E, $39, $57, $36, $2D, $2D, $30, $57, $3F, $2D, $38, $54, $37, $54 ; CPU:$A080 PRG:2080 31 56 3E 39 57 36 2D 2D 30 57 3F 2D 38 54 37 54
.byte $2D, $57, $2D, $58, $59, $56, $5A, $21, $19, $2C, $2C, $2C, $2C, $14, $1C, $16 ; CPU:$A090 PRG:2090 2D 57 2D 58 59 56 5A 21 19 2C 2C 2C 2C 14 1C 16
.byte $1E, $2D, $2D, $2D, $2D, $23, $12, $2D, $05, $2C, $0A, $2D, $0D, $2C, $2C, $13 ; CPU:$A0A0 PRG:20A0 1E 2D 2D 2D 2D 23 12 2D 05 2C 0A 2D 0D 2C 2C 13
.byte $2D, $04, $2C, $0B, $2D, $0C, $01, $2C, $02, $2D, $2D, $00, $2D, $2D, $2C, $2C ; CPU:$A0B0 PRG:20B0 2D 04 2C 0B 2D 0C 01 2C 02 2D 2D 00 2D 2D 2C 2C
.byte $2C, $03, $5C, $2D, $2C, $2C, $2C, $2D, $2C, $2D, $2B, $2C, $24, $2C, $5C, $2C ; CPU:$A0C0 PRG:20C0 2C 03 5C 2D 2C 2C 2C 2D 2C 2D 2B 2C 24 2C 5C 2C
.byte $2C, $2C, $2D, $2C, $2D, $2D, $2D, $2C, $2C, $2D, $02, $2D, $2C, $2C, $2C, $2D ; CPU:$A0D0 PRG:20D0 2C 2C 2D 2C 2D 2D 2D 2C 2C 2D 02 2D 2C 2C 2C 2D
.byte $2C, $03, $2C, $2C, $2D, $2C, $2C, $2C, $2C, $2C, $2F, $2D, $2C, $2F, $2C, $2F ; CPU:$A0E0 PRG:20E0 2C 03 2C 2C 2D 2C 2C 2C 2C 2C 2F 2D 2C 2F 2C 2F
.byte $2D, $2D, $2C, $2D, $1B, $29, $2C, $2D, $03, $2C, $00, $02, $2C, $2C, $2C, $2D ; CPU:$A0F0 PRG:20F0 2D 2D 2C 2D 1B 29 2C 2D 03 2C 00 02 2C 2C 2C 2D
.byte $2D, $01, $2D, $2D, $2C, $2C, $04, $2D, $13, $2C, $0C, $2D, $0B, $05, $2D, $12 ; CPU:$A100 PRG:2100 2D 01 2D 2D 2C 2C 04 2D 13 2C 0C 2D 0B 05 2D 12
.byte $2C, $0D, $2D, $0A, $2C, $1A, $22, $2D, $2D, $2D, $2D, $1F, $17, $1D, $15, $2C ; CPU:$A110 PRG:2110 2C 0D 2D 0A 2C 1A 22 2D 2D 2D 2D 1F 17 1D 15 2C
.byte $2C, $2C, $2C, $18, $20, $2D, $2C, $2C, $2D, $03, $2C, $00, $2D, $3F, $56, $30 ; CPU:$A120 PRG:2120 2C 2C 2C 18 20 2D 2C 2C 2D 03 2C 00 2D 3F 56 30
.byte $2D, $37, $57, $38, $3E, $54, $31, $2D, $36, $55, $39, $2D, $49, $41, $56, $57 ; CPU:$A130 PRG:2130 2D 37 57 38 3E 54 31 2D 36 55 39 2D 49 41 56 57
.byte $54, $55, $44, $4C, $46, $4E, $2D, $2D, $2D, $2D, $4B, $43, $56, $58, $2D, $5B ; CPU:$A140 PRG:2140 54 55 44 4C 46 4E 2D 2D 2D 2D 4B 43 56 58 2D 5B
.byte $59, $2D, $2D, $2D, $55, $57, $5A, $54, $51, $56, $2D, $5B, $55, $58, $5A, $54 ; CPU:$A150 PRG:2150 59 2D 2D 2D 55 57 5A 54 51 56 2D 5B 55 58 5A 54
.byte $55, $57, $2D, $2D, $59, $2D, $55, $54, $57, $56, $46, $4E, $2D, $2D, $2D, $2D ; CPU:$A160 PRG:2160 55 57 2D 2D 59 2D 55 54 57 56 46 4E 2D 2D 2D 2D
.byte $4B, $43, $49, $55, $55, $55, $4C, $55, $30, $2D, $54, $38, $2D, $37, $31, $2D ; CPU:$A170 PRG:2170 4B 43 49 55 55 55 4C 55 30 2D 54 38 2D 37 31 2D
.byte $3E, $57, $39, $2D, $36, $54, $2D, $56, $55, $2D, $5B, $55, $58, $59, $1D, $15 ; CPU:$A180 PRG:2180 3E 57 39 2D 36 54 2D 56 55 2D 5B 55 58 59 1D 15
.byte $2C, $2C, $2C, $2C, $18, $20, $1A, $22, $2D, $2D, $2D, $2D, $1F, $2D, $13, $2C ; CPU:$A190 PRG:2190 2C 2C 2C 2C 18 20 1A 22 2D 2D 2D 2D 1F 2D 13 2C
.byte $04, $2D, $0B, $2C, $0C, $12, $2C, $05, $2D, $0A, $2C, $0D, $2D, $2C, $00, $2D ; CPU:$A1A0 PRG:21A0 04 2D 0B 2C 0C 12 2C 05 2D 0A 2C 0D 2D 2C 00 2D
.byte $03, $01, $2D, $2D, $2D, $2C, $2C, $02, $2C, $2D, $5C, $2C, $2C, $2D, $2D, $2C ; CPU:$A1B0 PRG:21B0 03 01 2D 2D 2D 2C 2C 02 2C 2D 5C 2C 2C 2D 2D 2C
.byte $2D, $27, $2C, $28, $2C, $5C, $2C, $2C, $2D, $2D, $2C, $2D, $2D, $03, $00, $2D ; CPU:$A1C0 PRG:21C0 2D 27 2C 28 2C 5C 2C 2C 2D 2D 2C 2D 2D 03 00 2D
.byte $2D, $2D, $2C, $2D, $2C, $02, $01, $2D, $2C, $00, $2C, $2D, $2C, $2D, $2C, $2C ; CPU:$A1D0 PRG:21D0 2D 2D 2C 2D 2C 02 01 2D 2C 00 2C 2D 2C 2D 2C 2C
.byte $2C, $2C, $2F, $2C, $2C, $2D, $2C, $2D, $2D, $2D, $2F, $17, $25, $2C, $2C, $03 ; CPU:$A1E0 PRG:21E0 2C 2C 2F 2C 2C 2D 2C 2D 2D 2D 2F 17 25 2C 2C 03
.byte $2D, $00, $2C, $2C, $01, $2C, $02, $2D, $2D, $2D, $2D, $2C, $09, $2C, $0E, $2D ; CPU:$A1F0 PRG:21F0 2D 00 2C 2C 01 2C 02 2D 2D 2D 2D 2C 09 2C 0E 2D
.byte $11, $2C, $06, $2D, $2D, $08, $2C, $0F, $2D, $10, $2C, $07, $2C, $2C, $16, $1E ; CPU:$A200 PRG:2200 11 2C 06 2D 2D 08 2C 0F 2D 10 2C 07 2C 2C 16 1E
.byte $23, $1B, $2C, $2C, $2D, $2D, $21, $19, $14, $1C, $2D, $2D, $2C, $2D, $2D, $2C ; CPU:$A210 PRG:2210 23 1B 2C 2C 2D 2D 21 19 14 1C 2D 2D 2C 2D 2D 2C
.byte $03, $02, $00, $3A, $2D, $35, $56, $32, $2D, $3D, $55, $57, $3B, $2D, $34, $55 ; CPU:$A220 PRG:2220 03 02 00 3A 2D 35 56 32 2D 3D 55 57 3B 2D 34 55
.byte $33, $2D, $3C, $2D, $2D, $4D, $45, $40, $48, $2D, $2D, $55, $57, $42, $4A, $4F ; CPU:$A230 PRG:2230 33 2D 3C 2D 2D 4D 45 40 48 2D 2D 55 57 42 4A 4F
.byte $47, $54, $56, $2D, $58, $56, $5B, $2D, $2D, $5A, $2D, $59, $54, $55, $57, $52 ; CPU:$A240 PRG:2240 47 54 56 2D 58 56 5B 2D 2D 5A 2D 59 54 55 57 52
.byte $2D, $55, $5B, $2D, $58, $54, $57, $59, $57, $5A, $2D, $2D, $2D, $56, $57, $55 ; CPU:$A250 PRG:2250 2D 55 5B 2D 58 54 57 59 57 5A 2D 2D 2D 56 57 55
.byte $54, $54, $56, $42, $4A, $4F, $47, $57, $54, $2D, $4D, $45, $48, $2D, $35, $56 ; CPU:$A260 PRG:2260 54 54 56 42 4A 4F 47 57 54 2D 4D 45 48 2D 35 56
.byte $3A, $3D, $55, $32, $2D, $2D, $34, $55, $3B, $2D, $3C, $56, $33, $57, $2D, $2D ; CPU:$A270 PRG:2270 3A 3D 55 32 2D 2D 34 55 3B 2D 3C 56 33 57 2D 2D
.byte $56, $5B, $5A, $58, $57, $2D, $2D, $21, $19, $14, $1C, $2D, $2D, $2C, $2C, $16 ; CPU:$A280 PRG:2280 56 5B 5A 58 57 2D 2D 21 19 14 1C 2D 2D 2C 2C 16
.byte $1E, $23, $1B, $2C, $0E, $2D, $09, $2C, $06, $2D, $11, $2C, $2C, $0F, $2D, $08 ; CPU:$A290 PRG:2290 1E 23 1B 2C 0E 2D 09 2C 06 2D 11 2C 2C 0F 2D 08
.byte $2C, $07, $2D, $10, $2D, $00, $2C, $03, $2D, $2D, $02, $2D, $01, $2C, $2C, $2C ; CPU:$A2A0 PRG:22A0 2C 07 2D 10 2D 00 2C 03 2D 2D 02 2D 01 2C 2C 2C
.byte $2C, $2C, $2D, $5C, $2C, $2C, $2D, $2B, $2C, $24, $2D, $2C, $2C, $5C, $2C, $2C ; CPU:$A2B0 PRG:22B0 2C 2C 2D 5C 2C 2C 2D 2B 2C 24 2D 2C 2C 5C 2C 2C
; -----------------------------------------------------------------------------
; Routine: Sub_A2C0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A2C0:
bit a:$002D ; CPU:$A2C0 PRG:22C0 2C 2D 00
; referenced by `lda $A3F1,x` at $F214 (operand $A3F1 falls inside this region)
; referenced by `lda $A3F0,x` at $F218 (operand $A3F0 falls inside this region)
; referenced by `lda $A2E5,x` at $F453 (operand $A2E5 falls inside this region)
; referenced by `lda $A2E5,x` at $F481 (operand $A2E5 falls inside this region)
; referenced by `cmp $A3DC,x` at $F52E (operand $A3DC falls inside this region)
; referenced by `lda $A3DD,x` at $F538 (operand $A3DD falls inside this region)
; ---- data $A2C3-$A405 (323 bytes) ----
.byte $03, $03, $00, $2C, $2E, $2C, $2D, $2D, $01, $2C, $02, $01, $2C, $00, $00, $2D ; CPU:$A2C3 PRG:22C3 03 03 00 2C 2E 2C 2D 2D 01 2C 02 01 2C 00 00 2D
.byte $2C, $2C, $2D, $2D, $2F, $2F, $2D, $2D, $2D, $2C, $2C, $2F, $2D, $2C, $2D, $2C ; CPU:$A2D3 PRG:22D3 2C 2C 2D 2D 2F 2F 2D 2D 2D 2C 2C 2F 2D 2C 2D 2C
.byte $2D, $29, $02, $2C, $01, $2D, $2C, $2C, $2C, $00, $2D, $03, $2D, $2D, $2D, $2C ; CPU:$A2E3 PRG:22E3 2D 29 02 2C 01 2D 2C 2C 2C 00 2D 03 2D 2D 2D 2C
.byte $2C, $08, $2D, $0F, $2C, $10, $2D, $07, $09, $2D, $0E, $2C, $11, $2D, $06, $2C ; CPU:$A2F3 PRG:22F3 2C 08 2D 0F 2C 10 2D 07 09 2D 0E 2C 11 2D 06 2C
.byte $2C, $2C, $1A, $22, $1F, $17, $2C, $2C, $2D, $2D, $1D, $15, $18, $20, $2D, $2D ; CPU:$A303 PRG:2303 2C 2C 1A 22 1F 17 2C 2C 2D 2D 1D 15 18 20 2D 2D
.byte $2D, $2C, $2D, $2C, $2C, $01, $03, $2D, $3B, $56, $34, $2D, $33, $54, $3C, $3A ; CPU:$A313 PRG:2313 2D 2C 2D 2C 2C 01 03 2D 3B 56 34 2D 33 54 3C 3A
.byte $57, $35, $2D, $32, $55, $3D, $2D, $2D, $2D, $49, $41, $44, $4C, $2D, $2D, $54 ; CPU:$A323 PRG:2323 57 35 2D 32 55 3D 2D 2D 2D 49 41 44 4C 2D 2D 54
.byte $56, $46, $4E, $4B, $43, $55, $57, $59, $2D, $5A, $57, $2D, $2D, $2D, $5B, $57 ; CPU:$A333 PRG:2333 56 46 4E 4B 43 55 57 59 2D 5A 57 2D 2D 2D 5B 57
.byte $58, $54, $55, $53, $2D, $57, $57, $59, $2D, $56, $55, $54, $58, $2D, $5B, $2D ; CPU:$A343 PRG:2343 58 54 55 53 2D 57 57 59 2D 56 55 54 58 2D 5B 2D
.byte $2D, $57, $56, $54, $55, $55, $57, $46, $4E, $4B, $43, $55, $56, $2D, $49, $41 ; CPU:$A353 PRG:2353 2D 57 56 54 55 55 57 46 4E 4B 43 55 56 2D 49 41
.byte $4C, $2D, $57, $34, $2D, $54, $3C, $2D, $33, $35, $2D, $3A, $55, $3D, $2D, $32 ; CPU:$A363 PRG:2363 4C 2D 57 34 2D 54 3C 2D 33 35 2D 3A 55 3D 2D 32
.byte $56, $2D, $55, $2D, $54, $54, $59, $5B, $5A, $2D, $2D, $1D, $15, $18, $20, $2D ; CPU:$A373 PRG:2373 56 2D 55 2D 54 54 59 5B 5A 2D 2D 1D 15 18 20 2D
.byte $2D, $2C, $2C, $1A, $22, $1F, $17, $2C, $2D, $0F, $2C, $08, $2D, $07, $2C, $10 ; CPU:$A383 PRG:2383 2D 2C 2C 1A 22 1F 17 2C 2D 0F 2C 08 2D 07 2C 10
.byte $0E, $2C, $09, $2D, $06, $2C, $11, $2D, $01, $2D, $02, $2C, $2D, $2D, $2D, $03 ; CPU:$A393 PRG:2393 0E 2C 09 2D 06 2C 11 2D 01 2D 02 2C 2D 2D 2D 03
.byte $2C, $00, $2C, $2C, $2C, $2C, $5C, $2D, $2D, $2C, $2D, $27, $2C, $28, $2D, $2C ; CPU:$A3A3 PRG:23A3 2C 00 2C 2C 2C 2C 5C 2D 2D 2C 2D 27 2C 28 2D 2C
.byte $2C, $5C, $2D, $2C, $2C, $2D, $2D, $2C, $2C, $2D, $2E, $2E, $02, $2C, $2D, $2C ; CPU:$A3B3 PRG:23B3 2C 5C 2D 2C 2C 2D 2D 2C 2C 2D 2E 2E 02 2C 2D 2C
.byte $2C, $2D, $2D, $2C, $03, $2D, $2D, $2C, $2D, $2C, $2D, $2C, $2C, $2F, $2F, $2D ; CPU:$A3C3 PRG:23C3 2C 2D 2D 2C 03 2D 2D 2C 2D 2C 2D 2C 2C 2F 2F 2D
.byte $2C, $2C, $2F, $2D, $2D, $2D, $2C, $2D, $25, $35, $00, $64, $55, $97, $00, $C2 ; CPU:$A3D3 PRG:23D3 2C 2C 2F 2D 2D 2D 2C 2D 25 35 00 64 55 97 00 C2
.byte $55, $C6, $AA, $CE, $55, $E8, $AA, $F4, $FF, $F5, $55, $FF, $00, $05, $A4, $85 ; CPU:$A3E3 PRG:23E3 55 C6 AA CE 55 E8 AA F4 FF F5 55 FF 00 05 A4 85
.byte $A4, $53, $A4, $1A, $A5, $50, $A5, $6A, $A6, $59, $A6, $05, $A4, $85, $A4, $53 ; CPU:$A3F3 PRG:23F3 A4 53 A4 1A A5 50 A5 6A A6 59 A6 05 A4 85 A4 53
.byte $A4, $22, $A5 ; CPU:$A403 PRG:2403 A4 22 A5
ldy #$00 ; CPU:$A406 PRG:2406 A0 00
lda #$3F ; CPU:$A408 PRG:2408 A9 3F
sta $0208,y ; CPU:$A40A PRG:240A 99 08 02
iny ; CPU:$A40D PRG:240D C8
lda #$00 ; CPU:$A40E PRG:240E A9 00
sta $0208,y ; CPU:$A410 PRG:2410 99 08 02
iny ; CPU:$A413 PRG:2413 C8
lda #$14 ; CPU:$A414 PRG:2414 A9 14
sta $0208,y ; CPU:$A416 PRG:2416 99 08 02
iny ; CPU:$A419 PRG:2419 C8
ldx #$00 ; CPU:$A41A PRG:241A A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_A41C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A41C:
lda $A7AC,x ; CPU:$A41C PRG:241C BD AC A7
sta $0208,y ; CPU:$A41F PRG:241F 99 08 02
iny ; CPU:$A422 PRG:2422 C8
inx ; CPU:$A423 PRG:2423 E8
cpx #$14 ; CPU:$A424 PRG:2424 E0 14
bne Sub_A41C ; CPU:$A426 PRG:2426 D0 F4
lda #$00 ; CPU:$A428 PRG:2428 A9 00
sta $0208,y ; CPU:$A42A PRG:242A 99 08 02
sty Joypad1Press2 ; CPU:$A42D PRG:242D 84 1A
lda #$06 ; CPU:$A42F PRG:242F A9 06
sta PPUMASKShadow ; CPU:$A431 PRG:2431 85 01
sta $2001 ; CPU:$A433 PRG:2433 8D 01 20
inc Zp42 ; CPU:$A436 PRG:2436 E6 42
lda ResetHi ; CPU:$A438 PRG:2438 A5 3C
and #$01 ; CPU:$A43A PRG:243A 29 01
beq Sub_A441 ; CPU:$A43C PRG:243C F0 03
; ---- data $A43E-$A440 (3 bytes) ----
.byte $20, $7F, $F8 ; CPU:$A43E PRG:243E 20 7F F8
; -----------------------------------------------------------------------------
; Routine: Sub_A441
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A441:
lda #$00 ; CPU:$A441 PRG:2441 A9 00
sta ResetHi ; CPU:$A443 PRG:2443 85 3C
sta $5C ; CPU:$A445 PRG:2445 85 5C
sta Zp5D ; CPU:$A447 PRG:2447 85 5D
sta Zp60 ; CPU:$A449 PRG:2449 85 60
ldx #$0F ; CPU:$A44B PRG:244B A2 0F
; -----------------------------------------------------------------------------
; Routine: Sub_A44D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A44D:
sta $02A0,x ; CPU:$A44D PRG:244D 9D A0 02
dex ; CPU:$A450 PRG:2450 CA
bpl Sub_A44D ; CPU:$A451 PRG:2451 10 FA
rts ; CPU:$A453 PRG:2453 60
lda #$00 ; CPU:$A454 PRG:2454 A9 00
sta ScrollY ; CPU:$A456 PRG:2456 85 03
lda PPUCTRLShadow ; CPU:$A458 PRG:2458 A5 00
and #$EF ; CPU:$A45A PRG:245A 29 EF
ora #$02 ; CPU:$A45C PRG:245C 09 02
sta PPUCTRLShadow ; CPU:$A45E PRG:245E 85 00
lda #$1E ; CPU:$A460 PRG:2460 A9 1E
sta PPUMASKShadow ; CPU:$A462 PRG:2462 85 01
inc Zp42 ; CPU:$A464 PRG:2464 E6 42
ldy Joypad1Press2 ; CPU:$A466 PRG:2466 A4 1A
lda #$3F ; CPU:$A468 PRG:2468 A9 3F
sta $0208,y ; CPU:$A46A PRG:246A 99 08 02
iny ; CPU:$A46D PRG:246D C8
lda #$01 ; CPU:$A46E PRG:246E A9 01
sta $0208,y ; CPU:$A470 PRG:2470 99 08 02
iny ; CPU:$A473 PRG:2473 C8
sta $0208,y ; CPU:$A474 PRG:2474 99 08 02
iny ; CPU:$A477 PRG:2477 C8
lda #$0F ; CPU:$A478 PRG:2478 A9 0F
sta $0208,y ; CPU:$A47A PRG:247A 99 08 02
iny ; CPU:$A47D PRG:247D C8
lda #$00 ; CPU:$A47E PRG:247E A9 00
sta $0208,y ; CPU:$A480 PRG:2480 99 08 02
sty Joypad1Press2 ; CPU:$A483 PRG:2483 84 1A
rts ; CPU:$A485 PRG:2485 60
lda $2002 ; CPU:$A486 PRG:2486 AD 02 20
lda #$20 ; CPU:$A489 PRG:2489 A9 20
sta $2006 ; CPU:$A48B PRG:248B 8D 06 20
lda #$00 ; CPU:$A48E PRG:248E A9 00
sta $2006 ; CPU:$A490 PRG:2490 8D 06 20
ldx #$00 ; CPU:$A493 PRG:2493 A2 00
lda #$24 ; CPU:$A495 PRG:2495 A9 24
jsr Sub_A6D7 ; CPU:$A497 PRG:2497 20 D7 A6
jsr Sub_A6D7 ; CPU:$A49A PRG:249A 20 D7 A6
jsr Sub_A6D7 ; CPU:$A49D PRG:249D 20 D7 A6
ldx #$C0 ; CPU:$A4A0 PRG:24A0 A2 C0
jsr Sub_A6D7 ; CPU:$A4A2 PRG:24A2 20 D7 A6
ldx #$40 ; CPU:$A4A5 PRG:24A5 A2 40
lda #$00 ; CPU:$A4A7 PRG:24A7 A9 00
jsr Sub_A6D7 ; CPU:$A4A9 PRG:24A9 20 D7 A6
lda $2002 ; CPU:$A4AC PRG:24AC AD 02 20
lda #$28 ; CPU:$A4AF PRG:24AF A9 28
sta $2006 ; CPU:$A4B1 PRG:24B1 8D 06 20
lda #$00 ; CPU:$A4B4 PRG:24B4 A9 00
sta $2006 ; CPU:$A4B6 PRG:24B6 8D 06 20
lda #$24 ; CPU:$A4B9 PRG:24B9 A9 24
ldx #$00 ; CPU:$A4BB PRG:24BB A2 00
jsr Sub_A6D7 ; CPU:$A4BD PRG:24BD 20 D7 A6
jsr Sub_A6D7 ; CPU:$A4C0 PRG:24C0 20 D7 A6
jsr Sub_A6D7 ; CPU:$A4C3 PRG:24C3 20 D7 A6
ldx #$C0 ; CPU:$A4C6 PRG:24C6 A2 C0
jsr Sub_A6D7 ; CPU:$A4C8 PRG:24C8 20 D7 A6
ldx #$40 ; CPU:$A4CB PRG:24CB A2 40
jsr Sub_A6D7 ; CPU:$A4CD PRG:24CD 20 D7 A6
ldx #$00 ; CPU:$A4D0 PRG:24D0 A2 00
ldy #$0E ; CPU:$A4D2 PRG:24D2 A0 0E
; -----------------------------------------------------------------------------
; Routine: Sub_A4D4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A4D4:
jsr Sub_A6DE ; CPU:$A4D4 PRG:24D4 20 DE A6
dey ; CPU:$A4D7 PRG:24D7 88
bne Sub_A4D4 ; CPU:$A4D8 PRG:24D8 D0 FA
lda Zp5E ; CPU:$A4DA PRG:24DA A5 5E
beq Sub_A4E4 ; CPU:$A4DC PRG:24DC F0 06
jsr Sub_A6DE ; CPU:$A4DE PRG:24DE 20 DE A6
jsr Sub_A710 ; CPU:$A4E1 PRG:24E1 20 10 A7
; -----------------------------------------------------------------------------
; Routine: Sub_A4E4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A4E4:
jsr Sub_A717 ; CPU:$A4E4 PRG:24E4 20 17 A7
jsr Sub_A71E ; CPU:$A4E7 PRG:24E7 20 1E A7
inc Zp42 ; CPU:$A4EA PRG:24EA E6 42
Sub_A4EC:
ldy Joypad1Press2 ; CPU:$A4EC PRG:24EC A4 1A
ldx #$00 ; CPU:$A4EE PRG:24EE A2 00
lda Zp5D ; CPU:$A4F0 PRG:24F0 A5 5D
beq Sub_A4F6 ; CPU:$A4F2 PRG:24F2 F0 02
ldx #$08 ; CPU:$A4F4 PRG:24F4 A2 08
; -----------------------------------------------------------------------------
; Routine: Sub_A4F6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A4F6:
lda $A50B,x ; CPU:$A4F6 PRG:24F6 BD 0B A5
sta $0208,y ; CPU:$A4F9 PRG:24F9 99 08 02
iny ; CPU:$A4FC PRG:24FC C8
inx ; CPU:$A4FD PRG:24FD E8
txa ; CPU:$A4FE PRG:24FE 8A
and #$07 ; CPU:$A4FF PRG:24FF 29 07
bne Sub_A4F6 ; CPU:$A501 PRG:2501 D0 F3
lda #$00 ; CPU:$A503 PRG:2503 A9 00
sta $0208,y ; CPU:$A505 PRG:2505 99 08 02
sty Joypad1Press2 ; CPU:$A508 PRG:2508 84 1A
rts ; CPU:$A50A PRG:250A 60
; ---- data $A50B-$A51A (16 bytes) ----
.byte $21, $EA, $01, $CD, $22, $2A, $01, $24, $21, $EA, $01, $24, $22, $2A, $01, $CD ; CPU:$A50B PRG:250B 21 EA 01 CD 22 2A 01 24 21 EA 01 24 22 2A 01 CD
inc ScrollY ; CPU:$A51B PRG:251B E6 03
lda ScrollY ; CPU:$A51D PRG:251D A5 03
cmp #$F0 ; CPU:$A51F PRG:251F C9 F0
bne Sub_A53A ; CPU:$A521 PRG:2521 D0 17
; -----------------------------------------------------------------------------
; Routine: Sub_A523
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A523:
lda #$00 ; CPU:$A523 PRG:2523 A9 00
sta ScrollY ; CPU:$A525 PRG:2525 85 03
lda PPUCTRLShadow ; CPU:$A527 PRG:2527 A5 00
and #$FC ; CPU:$A529 PRG:2529 29 FC
sta PPUCTRLShadow ; CPU:$A52B PRG:252B 85 00
lda #$04 ; CPU:$A52D PRG:252D A9 04
sta Zp42 ; CPU:$A52F PRG:252F 85 42
lda #$FE ; CPU:$A531 PRG:2531 A9 FE
sta Zp43 ; CPU:$A533 PRG:2533 85 43
lda #$00 ; CPU:$A535 PRG:2535 A9 00
sta GameSubMode ; CPU:$A537 PRG:2537 85 1B
rts ; CPU:$A539 PRG:2539 60
; -----------------------------------------------------------------------------
; Routine: Sub_A53A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A53A:
lda Joypad1Press ; CPU:$A53A PRG:253A A5 09
and #$0C ; CPU:$A53C PRG:253C 29 0C
bne Sub_A523 ; CPU:$A53E PRG:253E D0 E3
rts ; CPU:$A540 PRG:2540 60
; ---- data $A541-$A550 (16 bytes) ----
.byte $63, $93, $00, $60, $63, $93, $00, $98, $47, $9C, $00, $D8, $57, $9C, $00, $D8 ; CPU:$A541 PRG:2541 63 93 00 60 63 93 00 98 47 9C 00 D8 57 9C 00 D8
ldx #$00 ; CPU:$A551 PRG:2551 A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_A553
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A553:
lda $A541,x ; CPU:$A553 PRG:2553 BD 41 A5
sta $0720,x ; CPU:$A556 PRG:2556 9D 20 07
inx ; CPU:$A559 PRG:2559 E8
cpx #$10 ; CPU:$A55A PRG:255A E0 10
bne Sub_A553 ; CPU:$A55C PRG:255C D0 F5
lda GameSubMode ; CPU:$A55E PRG:255E A5 1B
and #$01 ; CPU:$A560 PRG:2560 29 01
bne Sub_A57A ; CPU:$A562 PRG:2562 D0 16
lda Zp43 ; CPU:$A564 PRG:2564 A5 43
cmp #$F4 ; CPU:$A566 PRG:2566 C9 F4
bcc Sub_A570 ; CPU:$A568 PRG:2568 90 06
lda GameSubMode ; CPU:$A56A PRG:256A A5 1B
and #$07 ; CPU:$A56C PRG:256C 29 07
bne Sub_A57A ; CPU:$A56E PRG:256E D0 0A
; -----------------------------------------------------------------------------
; Routine: Sub_A570
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A570:
dec Zp43 ; CPU:$A570 PRG:2570 C6 43
bne Sub_A57A ; CPU:$A572 PRG:2572 D0 06
lda #$05 ; CPU:$A574 PRG:2574 A9 05
sta Zp42 ; CPU:$A576 PRG:2576 85 42
sta Zp60 ; CPU:$A578 PRG:2578 85 60
; -----------------------------------------------------------------------------
; Routine: Sub_A57A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A57A:
lda Joypad1Press ; CPU:$A57A PRG:257A A5 09
and #$08 ; CPU:$A57C PRG:257C 29 08
beq Sub_A585 ; CPU:$A57E PRG:257E F0 05
lda #$06 ; CPU:$A580 PRG:2580 A9 06
sta Zp42 ; CPU:$A582 PRG:2582 85 42
rts ; CPU:$A584 PRG:2584 60
; -----------------------------------------------------------------------------
; Routine: Sub_A585
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A585:
lda Joypad1Press ; CPU:$A585 PRG:2585 A5 09
and #$04 ; CPU:$A587 PRG:2587 29 04
beq Sub_A591 ; CPU:$A589 PRG:2589 F0 06
lda Zp5D ; CPU:$A58B PRG:258B A5 5D
eor #$01 ; CPU:$A58D PRG:258D 49 01
sta Zp5D ; CPU:$A58F PRG:258F 85 5D
; -----------------------------------------------------------------------------
; Routine: Sub_A591
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A591:
jsr Sub_A4EC ; CPU:$A591 PRG:2591 20 EC A4
jmp Sub_A5C2 ; CPU:$A594 PRG:2594 4C C2 A5
; -----------------------------------------------------------------------------
; Routine: Sub_A597
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A597:
ldx #$0C ; CPU:$A597 PRG:2597 A2 0C
jmp Sub_A5B2 ; CPU:$A599 PRG:2599 4C B2 A5
; -----------------------------------------------------------------------------
; Routine: Sub_A59C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A59C:
ldx #$10 ; CPU:$A59C PRG:259C A2 10
jmp Sub_A5B2 ; CPU:$A59E PRG:259E 4C B2 A5
; -----------------------------------------------------------------------------
; Routine: Sub_A5A1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A5A1:
ldx #$14 ; CPU:$A5A1 PRG:25A1 A2 14
jmp Sub_A5B2 ; CPU:$A5A3 PRG:25A3 4C B2 A5
; -----------------------------------------------------------------------------
; Routine: Sub_A5A6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A5A6:
ldx #$00 ; CPU:$A5A6 PRG:25A6 A2 00
jmp Sub_A5B2 ; CPU:$A5A8 PRG:25A8 4C B2 A5
; -----------------------------------------------------------------------------
; Routine: Sub_A5AB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A5AB:
ldx #$04 ; CPU:$A5AB PRG:25AB A2 04
jmp Sub_A5B2 ; CPU:$A5AD PRG:25AD 4C B2 A5
; -----------------------------------------------------------------------------
; Routine: Sub_A5B0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A5B0:
ldx #$08 ; CPU:$A5B0 PRG:25B0 A2 08
Sub_A5B2:
ldy #$40 ; CPU:$A5B2 PRG:25B2 A0 40
; -----------------------------------------------------------------------------
; Routine: Sub_A5B4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A5B4:
lda $A62A,x ; CPU:$A5B4 PRG:25B4 BD 2A A6
sta $0700,y ; CPU:$A5B7 PRG:25B7 99 00 07
iny ; CPU:$A5BA PRG:25BA C8
inx ; CPU:$A5BB PRG:25BB E8
txa ; CPU:$A5BC PRG:25BC 8A
and #$03 ; CPU:$A5BD PRG:25BD 29 03
bne Sub_A5B4 ; CPU:$A5BF PRG:25BF D0 F3
rts ; CPU:$A5C1 PRG:25C1 60
Sub_A5C2:
lda Zp43 ; CPU:$A5C2 PRG:25C2 A5 43
cmp #$85 ; CPU:$A5C4 PRG:25C4 C9 85
bcc Sub_A602 ; CPU:$A5C6 PRG:25C6 90 3A
cmp #$89 ; CPU:$A5C8 PRG:25C8 C9 89
bcc Sub_A5B0 ; CPU:$A5CA PRG:25CA 90 E4
cmp #$8D ; CPU:$A5CC PRG:25CC C9 8D
bcc Sub_A5AB ; CPU:$A5CE PRG:25CE 90 DB
cmp #$91 ; CPU:$A5D0 PRG:25D0 C9 91
bcc Sub_A5A6 ; CPU:$A5D2 PRG:25D2 90 D2
cmp #$F4 ; CPU:$A5D4 PRG:25D4 C9 F4
bcs Sub_A601 ; CPU:$A5D6 PRG:25D6 B0 29
cmp #$F0 ; CPU:$A5D8 PRG:25D8 C9 F0
bcs Sub_A597 ; CPU:$A5DA PRG:25DA B0 BB
cmp #$EC ; CPU:$A5DC PRG:25DC C9 EC
bcs Sub_A59C ; CPU:$A5DE PRG:25DE B0 BC
cmp #$E8 ; CPU:$A5E0 PRG:25E0 C9 E8
bcs Sub_A5A1 ; CPU:$A5E2 PRG:25E2 B0 BD
asl a ; CPU:$A5E4 PRG:25E4 0A
and #$0C ; CPU:$A5E5 PRG:25E5 29 0C
clc ; CPU:$A5E7 PRG:25E7 18
adc #$18 ; CPU:$A5E8 PRG:25E8 69 18
tax ; CPU:$A5EA PRG:25EA AA
jsr Sub_A5B2 ; CPU:$A5EB PRG:25EB 20 B2 A5
lda GameSubMode ; CPU:$A5EE PRG:25EE A5 1B
and #$01 ; CPU:$A5F0 PRG:25F0 29 01
clc ; CPU:$A5F2 PRG:25F2 18
adc #$D4 ; CPU:$A5F3 PRG:25F3 69 D4
sec ; CPU:$A5F5 PRG:25F5 38
sbc Zp43 ; CPU:$A5F6 PRG:25F6 E5 43
sec ; CPU:$A5F8 PRG:25F8 38
sbc Zp43 ; CPU:$A5F9 PRG:25F9 E5 43
clc ; CPU:$A5FB PRG:25FB 18
adc #$20 ; CPU:$A5FC PRG:25FC 69 20
sta $0743 ; CPU:$A5FE PRG:25FE 8D 43 07
; -----------------------------------------------------------------------------
; Routine: Sub_A601
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A601:
rts ; CPU:$A601 PRG:2601 60
; -----------------------------------------------------------------------------
; Routine: Sub_A602
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A602:
cmp #$1E ; CPU:$A602 PRG:2602 C9 1E
bcc Sub_A629 ; CPU:$A604 PRG:2604 90 23
and #$07 ; CPU:$A606 PRG:2606 29 07
tax ; CPU:$A608 PRG:2608 AA
ldy Joypad1Press2 ; CPU:$A609 PRG:2609 A4 1A
lda #$3F ; CPU:$A60B PRG:260B A9 3F
sta $0208,y ; CPU:$A60D PRG:260D 99 08 02
iny ; CPU:$A610 PRG:2610 C8
lda #$01 ; CPU:$A611 PRG:2611 A9 01
sta $0208,y ; CPU:$A613 PRG:2613 99 08 02
iny ; CPU:$A616 PRG:2616 C8
sta $0208,y ; CPU:$A617 PRG:2617 99 08 02
iny ; CPU:$A61A PRG:261A C8
lda $A652,x ; CPU:$A61B PRG:261B BD 52 A6
sta $0208,y ; CPU:$A61E PRG:261E 99 08 02
iny ; CPU:$A621 PRG:2621 C8
lda #$00 ; CPU:$A622 PRG:2622 A9 00
sta $0208,y ; CPU:$A624 PRG:2624 99 08 02
sty Joypad1Press2 ; CPU:$A627 PRG:2627 84 1A
; -----------------------------------------------------------------------------
; Routine: Sub_A629
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A629:
rts ; CPU:$A629 PRG:2629 60
; ---- data $A62A-$A659 (48 bytes) ----
.byte $3C, $F8, $03, $D5, $3C, $FB, $03, $D5, $3C, $D3, $03, $D5, $3C, $D3, $03, $25 ; CPU:$A62A PRG:262A 3C F8 03 D5 3C FB 03 D5 3C D3 03 D5 3C D3 03 25
.byte $3C, $FB, $03, $25, $3C, $F8, $03, $25, $3C, $F8, $03, $00, $3C, $F9, $03, $00 ; CPU:$A63A PRG:263A 3C FB 03 25 3C F8 03 25 3C F8 03 00 3C F9 03 00
.byte $3C, $FA, $03, $00, $3C, $F9, $43, $00, $0F, $12, $15, $16, $25, $27, $06, $30 ; CPU:$A64A PRG:264A 3C FA 03 00 3C F9 43 00 0F 12 15 16 25 27 06 30
lda #$00 ; CPU:$A65A PRG:265A A9 00
ldx Zp5D ; CPU:$A65C PRG:265C A6 5D
stx Zp5E ; CPU:$A65E PRG:265E 86 5E
sta Zp60 ; CPU:$A660 PRG:2660 85 60
ldx #$08 ; CPU:$A662 PRG:2662 A2 08
; -----------------------------------------------------------------------------
; Routine: Sub_A664
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A664:
sta Zp80,x ; CPU:$A664 PRG:2664 95 80
sta Zp9A,x ; CPU:$A666 PRG:2666 95 9A
dex ; CPU:$A668 PRG:2668 CA
bpl Sub_A664 ; CPU:$A669 PRG:2669 10 F9
lda #$00 ; CPU:$A66B PRG:266B A9 00
sta ScrollY ; CPU:$A66D PRG:266D 85 03
sta NmiToggle ; CPU:$A66F PRG:266F 85 0F
sta Zp25 ; CPU:$A671 PRG:2671 85 25
sta Zp26 ; CPU:$A673 PRG:2673 85 26
sta Zp29 ; CPU:$A675 PRG:2675 85 29
lda PPUCTRLShadow ; CPU:$A677 PRG:2677 A5 00
and #$FD ; CPU:$A679 PRG:2679 29 FD
sta PPUCTRLShadow ; CPU:$A67B PRG:267B 85 00
lda #$1F ; CPU:$A67D PRG:267D A9 1F
sta Zp14 ; CPU:$A67F PRG:267F 85 14
lda #$3B ; CPU:$A681 PRG:2681 A9 3B
sta Zp15 ; CPU:$A683 PRG:2683 85 15
lda #$01 ; CPU:$A685 PRG:2685 A9 01
sta GameMode ; CPU:$A687 PRG:2687 85 10
ldy Joypad1Press2 ; CPU:$A689 PRG:2689 A4 1A
ldx #$00 ; CPU:$A68B PRG:268B A2 00
stx Zp42 ; CPU:$A68D PRG:268D 86 42
; -----------------------------------------------------------------------------
; Routine: Sub_A68F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A68F:
lda $A6CE,x ; CPU:$A68F PRG:268F BD CE A6
sta $0208,y ; CPU:$A692 PRG:2692 99 08 02
iny ; CPU:$A695 PRG:2695 C8
inx ; CPU:$A696 PRG:2696 E8
cpx #$09 ; CPU:$A697 PRG:2697 E0 09
bne Sub_A68F ; CPU:$A699 PRG:2699 D0 F4
dey ; CPU:$A69B PRG:269B 88
sty Joypad1Press2 ; CPU:$A69C PRG:269C 84 1A
jsr Sub_F3C2 ; CPU:$A69E PRG:269E 20 C2 F3
lda #$00 ; CPU:$A6A1 PRG:26A1 A9 00
; -----------------------------------------------------------------------------
; Routine: Sub_A6A3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A6A3:
ldx #$11 ; CPU:$A6A3 PRG:26A3 A2 11
; -----------------------------------------------------------------------------
; Routine: Sub_A6A5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A6A5:
sta Zp88,x ; CPU:$A6A5 PRG:26A5 95 88
sta ZpA2,x ; CPU:$A6A7 PRG:26A7 95 A2
dex ; CPU:$A6A9 PRG:26A9 CA
bpl Sub_A6A5 ; CPU:$A6AA PRG:26AA 10 F9
sta ResetHi ; CPU:$A6AC PRG:26AC 85 3C
lda #$FF ; CPU:$A6AE PRG:26AE A9 FF
sta Zp90 ; CPU:$A6B0 PRG:26B0 85 90
sta ZpAA ; CPU:$A6B2 PRG:26B2 85 AA
ldx #$01 ; CPU:$A6B4 PRG:26B4 A2 01
stx Zp99 ; CPU:$A6B6 PRG:26B6 86 99
stx ZpB3 ; CPU:$A6B8 PRG:26B8 86 B3
; -----------------------------------------------------------------------------
; Routine: Sub_A6BA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A6BA:
lda Zp53,x ; CPU:$A6BA PRG:26BA B5 53
sta Zp8A,x ; CPU:$A6BC PRG:26BC 95 8A
sta ZpA4,x ; CPU:$A6BE PRG:26BE 95 A4
dex ; CPU:$A6C0 PRG:26C0 CA
bpl Sub_A6BA ; CPU:$A6C1 PRG:26C1 10 F7
lda Zp5F ; CPU:$A6C3 PRG:26C3 A5 5F
sta Zp8D ; CPU:$A6C5 PRG:26C5 85 8D
ldx Zp5D ; CPU:$A6C7 PRG:26C7 A6 5D
beq Sub_A6CD ; CPU:$A6C9 PRG:26C9 F0 02
sta ZpA7 ; CPU:$A6CB PRG:26CB 85 A7
; -----------------------------------------------------------------------------
; Routine: Sub_A6CD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A6CD:
rts ; CPU:$A6CD PRG:26CD 60
Data_A6CE:
; Nine bytes between the routine ending at $A6CD and the VRAM copy loop at $A6D7.
; Structure undetermined: no instruction references this address.
; ---- data $A6CE-$A6D6 (9 bytes) ----
.byte $3F, $12, $02, $30, $00, $3F, $01, $01, $0F ; CPU:$A6CE PRG:26CE 3F 12 02 30 00 3F 01 01 0F
; -----------------------------------------------------------------------------
; Routine: Sub_A6D7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A6D7:
sta $2007 ; CPU:$A6D7 PRG:26D7 8D 07 20
dex ; CPU:$A6DA PRG:26DA CA
bne Sub_A6D7 ; CPU:$A6DB PRG:26DB D0 FA
rts ; CPU:$A6DD PRG:26DD 60
Sub_A6DE:
lda $2002 ; CPU:$A6DE PRG:26DE AD 02 20
lda $A74B,x ; CPU:$A6E1 PRG:26E1 BD 4B A7
inx ; CPU:$A6E4 PRG:26E4 E8
sta VramPtrLo ; CPU:$A6E5 PRG:26E5 85 04
lda $A74B,x ; CPU:$A6E7 PRG:26E7 BD 4B A7
inx ; CPU:$A6EA PRG:26EA E8
sta VramCopyCount ; CPU:$A6EB PRG:26EB 85 05
sty Zp2C ; CPU:$A6ED PRG:26ED 84 2C
ldy #$01 ; CPU:$A6EF PRG:26EF A0 01
lda (VramPtrLo),y ; CPU:$A6F1 PRG:26F1 B1 04
sta $2006 ; CPU:$A6F3 PRG:26F3 8D 06 20
ldy #$00 ; CPU:$A6F6 PRG:26F6 A0 00
lda (VramPtrLo),y ; CPU:$A6F8 PRG:26F8 B1 04
sta $2006 ; CPU:$A6FA PRG:26FA 8D 06 20
ldy #$02 ; CPU:$A6FD PRG:26FD A0 02
lda (VramPtrLo),y ; CPU:$A6FF PRG:26FF B1 04
sta ObjUpdateFlag ; CPU:$A701 PRG:2701 85 0E
; -----------------------------------------------------------------------------
; Routine: Sub_A703
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A703:
iny ; CPU:$A703 PRG:2703 C8
lda (VramPtrLo),y ; CPU:$A704 PRG:2704 B1 04
sta $2007 ; CPU:$A706 PRG:2706 8D 07 20
dec ObjUpdateFlag ; CPU:$A709 PRG:2709 C6 0E
bne Sub_A703 ; CPU:$A70B PRG:270B D0 F6
ldy Zp2C ; CPU:$A70D PRG:270D A4 2C
rts ; CPU:$A70F PRG:270F 60
Sub_A710:
ldy #$95 ; CPU:$A710 PRG:2710 A0 95
ldx #$9A ; CPU:$A712 PRG:2712 A2 9A
jmp Sub_A722 ; CPU:$A714 PRG:2714 4C 22 A7
Sub_A717:
ldy #$83 ; CPU:$A717 PRG:2717 A0 83
ldx #$80 ; CPU:$A719 PRG:2719 A2 80
jmp Sub_A722 ; CPU:$A71B PRG:271B 4C 22 A7
Sub_A71E:
ldy #$8C ; CPU:$A71E PRG:271E A0 8C
ldx #$4B ; CPU:$A720 PRG:2720 A2 4B
Sub_A722:
lda $2002 ; CPU:$A722 PRG:2722 AD 02 20
lda #$20 ; CPU:$A725 PRG:2725 A9 20
sta $2006 ; CPU:$A727 PRG:2727 8D 06 20
sty $2006 ; CPU:$A72A PRG:272A 8C 06 20
ldy #$06 ; CPU:$A72D PRG:272D A0 06
; -----------------------------------------------------------------------------
; Routine: Sub_A72F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A72F:
lda PPUCTRLShadow,x ; CPU:$A72F PRG:272F B5 00
bne Sub_A73E ; CPU:$A731 PRG:2731 D0 0B
lda #$24 ; CPU:$A733 PRG:2733 A9 24
sta $2007 ; CPU:$A735 PRG:2735 8D 07 20
inx ; CPU:$A738 PRG:2738 E8
dey ; CPU:$A739 PRG:2739 88
bne Sub_A72F ; CPU:$A73A PRG:273A D0 F3
; -----------------------------------------------------------------------------
; Routine: Sub_A73C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A73C:
lda PPUCTRLShadow,x ; CPU:$A73C PRG:273C B5 00
; -----------------------------------------------------------------------------
; Routine: Sub_A73E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_A73E:
sta $2007 ; CPU:$A73E PRG:273E 8D 07 20
inx ; CPU:$A741 PRG:2741 E8
dey ; CPU:$A742 PRG:2742 88
bpl Sub_A73C ; CPU:$A743 PRG:2743 10 F7
lda PPUCTRLShadow,x ; CPU:$A745 PRG:2745 B5 00
sta $2007 ; CPU:$A747 PRG:2747 8D 07 20
rts ; CPU:$A74A PRG:274A 60
; ---- data $A74B-$A768 (30 bytes) ----
; 15 x 16-bit pointers to the VRAM write descriptors at $A769-$A8D4 (read by lda $A74B,x at $A6E1).
VramWritePtrTable:
.byte $C0, $A7, $C6, $A7, $D7, $A7, $F3, $A7, $0D, $A8, $28, $A8, $43, $A8, $5E, $A8 ; CPU:$A74B PRG:274B C0 A7 C6 A7 D7 A7 F3 A7 0D A8 28 A8 43 A8 5E A8
.byte $62, $A8, $6D, $A8, $79, $A8, $99, $A8, $B7, $A8, $69, $A7, $D1, $A7 ; CPU:$A75B PRG:275B 62 A8 6D A8 79 A8 99 A8 B7 A8 69 A7 D1 A7
; ---- data $A769-$A8D4 (364 bytes) ----
; VRAM write descriptors: [lo, hi, count, data...]; the routine at $A6DE writes
; hi/lo to $2006 and then count bytes to $2007.
VramWriteData:
.byte $C0, $23, $40, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $FF, $00, $00, $00, $00, $00 ; CPU:$A769 PRG:2769 C0 23 40 FF FF FF FF FF FF FF FF 00 00 00 00 00
.byte $00, $00, $00, $55, $11, $00, $00, $00, $00, $00, $55, $05, $05, $05, $00, $00 ; CPU:$A779 PRG:2779 00 00 00 55 11 00 00 00 00 00 55 05 05 05 00 00
.byte $05, $05, $05, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; CPU:$A789 PRG:2789 05 05 05 00 00 00 00 00 00 00 00 00 00 00 00 00
.byte $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00, $00 ; CPU:$A799 PRG:2799 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
.byte $00, $00, $00, $0F, $0F, $30, $02, $0F, $0F, $16, $02, $0F, $16, $0F, $16, $0F ; CPU:$A7A9 PRG:27A9 00 00 00 0F 0F 30 02 0F 0F 16 02 0F 16 0F 16 0F
.byte $0F, $16, $16, $0F, $0F, $30, $02, $63, $20, $03, $01, $1E, $19, $6C, $20, $08 ; CPU:$A7B9 PRG:27B9 0F 16 16 0F 0F 30 02 63 20 03 01 1E 19 6C 20 08
.byte $11, $12, $26, $1C, $0C, $18, $1B, $0E, $75, $20, $03, $02, $1E, $19, $04, $21 ; CPU:$A7C9 PRG:27C9 11 12 26 1C 0C 18 1B 0E 75 20 03 02 1E 19 04 21
.byte $19, $98, $8F, $CC, $9D, $8F, $CC, $8F, $9C, $8F, $9C, $CC, $8F, $8F, $8F, $CC ; CPU:$A7D9 PRG:27D9 19 98 8F CC 9D 8F CC 8F 9C 8F 9C CC 8F 8F 8F CC
.byte $9D, $8F, $CC, $9D, $8F, $9D, $8F, $CC, $8F, $99, $25, $21, $17, $9D, $9E, $8F ; CPU:$A7E9 PRG:27E9 9D 8F CC 9D 8F 9D 8F CC 8F 99 25 21 17 9D 9E 8F
.byte $9B, $9F, $9C, $93, $9D, $9E, $98, $8F, $9D, $8F, $98, $8F, $9D, $9E, $FE, $8F ; CPU:$A7F9 PRG:27F9 9B 9F 9C 93 9D 9E 98 8F 9D 8F 98 8F 9D 9E FE 8F
.byte $FE, $8F, $9F, $9C, $45, $21, $18, $98, $8F, $9E, $9A, $8F, $9C, $CC, $9A, $8F ; CPU:$A809 PRG:2809 FE 8F 9F 9C 45 21 18 98 8F 9E 9A 8F 9C CC 9A 8F
.byte $9F, $9C, $FE, $8F, $9D, $9E, $98, $8F, $9D, $8F, $FE, $8F, $9A, $8F, $99, $64 ; CPU:$A819 PRG:2819 9F 9C FE 8F 9D 9E 98 8F 9D 8F FE 8F 9A 8F 99 64
.byte $21, $18, $98, $8F, $9B, $9D, $9E, $9A, $8F, $99, $93, $9D, $8F, $9B, $FE, $8F ; CPU:$A829 PRG:2829 21 18 98 8F 9B 9D 9E 9A 8F 99 93 9D 8F 9B FE 8F
.byte $93, $9D, $8F, $9B, $93, $9D, $8F, $9B, $9F, $9C, $83, $21, $18, $98, $8F, $CC ; CPU:$A839 PRG:2839 93 9D 8F 9B 93 9D 8F 9B 9F 9C 83 21 18 98 8F CC
.byte $CC, $CC, $CC, $CC, $CC, $CC, $CC, $C7, $C7, $C7, $C7, $C7, $C7, $CC, $CC, $CC ; CPU:$A849 PRG:2849 CC CC CC CC CC CC CC C7 C7 C7 C7 C7 C7 CC CC CC
.byte $CC, $CC, $CC, $CC, $CC, $A4, $21, $01, $9B, $EC, $21, $08, $01, $24, $19, $15 ; CPU:$A859 PRG:2859 CC CC CC CC CC A4 21 01 9B EC 21 08 01 24 19 15
.byte $0A, $22, $0E, $1B, $2C, $22, $09, $02, $24, $19, $15, $0A, $22, $0E, $1B, $1C ; CPU:$A869 PRG:2869 0A 22 0E 1B 2C 22 09 02 24 19 15 0A 22 0E 1B 1C
.byte $A2, $22, $1D, $1D, $16, $24, $0A, $17, $0D, $24, $87, $24, $01, $09, $08, $02 ; CPU:$A879 PRG:2879 A2 22 1D 1D 16 24 0A 17 0D 24 87 24 01 09 08 02
.byte $24, $01, $09, $08, $08, $24, $17, $0A, $16, $0C, $18, $24, $15, $1D, $0D, $25 ; CPU:$A889 PRG:2889 24 01 09 08 08 24 17 0A 16 0C 18 24 15 1D 0D 25
.byte $23, $23, $1B, $0B, $0A, $17, $0D, $0A, $12, $24, $0C, $18, $25, $24, $15, $1D ; CPU:$A899 PRG:2899 23 23 1B 0B 0A 17 0D 0A 12 24 0C 18 25 24 15 1D
.byte $0D, $25, $24, $12, $1C, $24, $15, $12, $0C, $0E, $17, $1C, $0E, $0D, $63, $23 ; CPU:$A8A9 PRG:28A9 0D 25 24 12 1C 24 15 12 0C 0E 17 1C 0E 0D 63 23
.byte $1B, $0B, $22, $24, $17, $12, $17, $1D, $0E, $17, $0D, $18, $24, $18, $0F, $24 ; CPU:$A8B9 PRG:28B9 1B 0B 22 24 17 12 17 1D 0E 17 0D 18 24 18 0F 24
.byte $0A, $16, $0E, $1B, $12, $0C, $0A, $24, $12, $17, $0C, $25 ; CPU:$A8C9 PRG:28C9 0A 16 0E 1B 12 0C 0A 24 12 17 0C 25
; ---- data $A8D5-$A8F4 (32 bytes) ----
; 16 x 16-bit pointers to the streams at $ACFB-$B8AA (read by lda $A8D5,x at $F3E4);
; the first byte of each stream is loaded into Zp12 as a count.
DataStreamPtrTable:
.byte $FB, $AC, $BC, $AD, $76, $AE, $26, $AF, $A5, $AF, $71, $B0, $2F, $B1, $BF, $B1 ; CPU:$A8D5 PRG:28D5 FB AC BC AD 76 AE 26 AF A5 AF 71 B0 2F B1 BF B1
.byte $8D, $B2, $FB, $B2, $CB, $B3, $9B, $B4, $8D, $B5, $3D, $B6, $C1, $B6, $93, $B7 ; CPU:$A8E5 PRG:28E5 8D B2 FB B2 CB B3 9B B4 8D B5 3D B6 C1 B6 93 B7
; ---- data $A8F5-$A9BA (198 bytes) ----
; 99 x 16-bit pointers to the tile data at $A9BB-$ACFA (read by lda $A8F5,y at $C353
; and stored per object at $050A/$050B).
ObjTilePtrTable:
.byte $BB, $A9, $C1, $A9, $C7, $A9, $CD, $A9, $D5, $A9, $DD, $A9, $E3, $A9, $E7, $A9 ; CPU:$A8F5 PRG:28F5 BB A9 C1 A9 C7 A9 CD A9 D5 A9 DD A9 E3 A9 E7 A9
.byte $ED, $A9, $F1, $A9, $F7, $A9, $FD, $A9, $05, $AA, $2D, $AA, $39, $AA, $35, $AA ; CPU:$A905 PRG:2905 ED A9 F1 A9 F7 A9 FD A9 05 AA 2D AA 39 AA 35 AA
.byte $3D, $AA, $45, $AA, $43, $AA, $47, $AA, $49, $AA, $5F, $AA, $65, $AA, $6D, $AA ; CPU:$A915 PRG:2915 3D AA 45 AA 43 AA 47 AA 49 AA 5F AA 65 AA 6D AA
.byte $69, $AA, $7D, $AA, $79, $AA, $8D, $AA, $89, $AA, $99, $AA, $A3, $AA, $AB, $AA ; CPU:$A925 PRG:2925 69 AA 7D AA 79 AA 8D AA 89 AA 99 AA A3 AA AB AA
.byte $B3, $AA, $BB, $AA, $C7, $AA, $CD, $AA, $DD, $AA, $DB, $AA, $E1, $AA, $ED, $AA ; CPU:$A935 PRG:2935 B3 AA BB AA C7 AA CD AA DD AA DB AA E1 AA ED AA
.byte $FD, $AA, $03, $AB, $07, $AB, $0B, $AB, $13, $AB, $11, $AB, $0F, $AB, $1D, $AB ; CPU:$A945 PRG:2945 FD AA 03 AB 07 AB 0B AB 13 AB 11 AB 0F AB 1D AB
.byte $2F, $AB, $41, $AB, $51, $AB, $55, $AB, $3F, $AB, $2D, $AB, $1B, $AB, $65, $AB ; CPU:$A955 PRG:2955 2F AB 41 AB 51 AB 55 AB 3F AB 2D AB 1B AB 65 AB
.byte $85, $AB, $87, $AB, $8B, $AB, $99, $AB, $AB, $AB, $B5, $AB, $C7, $AB, $CD, $AB ; CPU:$A965 PRG:2965 85 AB 87 AB 8B AB 99 AB AB AB B5 AB C7 AB CD AB
.byte $CF, $AB, $D7, $AB, $DD, $AB, $E5, $AB, $EB, $AB, $F1, $AB, $F9, $AB, $01, $AC ; CPU:$A975 PRG:2975 CF AB D7 AB DD AB E5 AB EB AB F1 AB F9 AB 01 AC
.byte $19, $AC, $1F, $AC, $1B, $AC, $21, $AC, $25, $AC, $29, $AC, $2F, $AC, $35, $AC ; CPU:$A985 PRG:2985 19 AC 1F AC 1B AC 21 AC 25 AC 29 AC 2F AC 35 AC
.byte $41, $AC, $49, $AC, $53, $AC, $6B, $AC, $67, $AC, $4F, $AC, $7F, $AC, $8D, $AC ; CPU:$A995 PRG:2995 41 AC 49 AC 53 AC 6B AC 67 AC 4F AC 7F AC 8D AC
.byte $99, $AC, $A5, $AC, $B1, $AC, $B7, $AC, $BD, $AC, $CD, $AC, $DD, $AC, $E1, $AC ; CPU:$A9A5 PRG:29A5 99 AC A5 AC B1 AC B7 AC BD AC CD AC DD AC E1 AC
.byte $E7, $AC, $F9, $AC, $EB, $AC ; CPU:$A9B5 PRG:29B5 E7 AC F9 AC EB AC
; ---- data $A9BB-$ACFA (832 bytes) ----
; Tile/attribute data addressed by the 99-entry table at $A8F5.
ObjTileData:
.byte $00, $60, $04, $30, $08, $FF, $00, $5C, $1E, $58, $00, $FF, $00, $34, $08, $A0 ; CPU:$A9BB PRG:29BB 00 60 04 30 08 FF 00 5C 1E 58 00 FF 00 34 08 A0
.byte $00, $FF, $04, $68, $00, $50, $04, $28, $00, $FF, $00, $08, $18, $40, $00, $58 ; CPU:$A9CB PRG:29CB 00 FF 04 68 00 50 04 28 00 FF 00 08 18 40 00 58
.byte $04, $FF, $00, $78, $1C, $A0, $19, $FF, $1C, $64, $18, $FF, $00, $90, $10, $80 ; CPU:$A9DB PRG:29DB 04 FF 00 78 1C A0 19 FF 1C 64 18 FF 00 90 10 80
.byte $00, $FF, $00, $90, $04, $FF, $00, $5C, $1C, $40, $00, $FF, $00, $4C, $1E, $68 ; CPU:$A9EB PRG:29EB 00 FF 00 90 04 FF 00 5C 1C 40 00 FF 00 4C 1E 68
.byte $00, $FF, $00, $60, $10, $D8, $18, $38, $1F, $FF, $00, $30, $10, $30, $08, $20 ; CPU:$A9FB PRG:29FB 00 FF 00 60 10 D8 18 38 1F FF 00 30 10 30 08 20
.byte $18, $20, $00, $30, $10, $30, $08, $20, $18, $20, $00, $30, $10, $30, $08, $20 ; CPU:$AA0B PRG:2A0B 18 20 00 30 10 30 08 20 18 20 00 30 10 30 08 20
.byte $18, $20, $00, $30, $10, $30, $08, $20, $18, $20, $00, $30, $10, $30, $08, $20 ; CPU:$AA1B PRG:2A1B 18 20 00 30 10 30 08 20 18 20 00 30 10 30 08 20
.byte $18, $20, $10, $10, $08, $C0, $10, $30, $18, $FF, $18, $FF, $18, $FF, $08, $FF ; CPU:$AA2B PRG:2A2B 18 20 10 10 08 C0 10 30 18 FF 18 FF 18 FF 08 FF
.byte $08, $FF, $00, $B0, $10, $C0, $00, $FF, $00, $C0, $1C, $40, $00, $FF, $00, $18 ; CPU:$AA3B PRG:2A3B 08 FF 00 B0 10 C0 00 FF 00 C0 1C 40 00 FF 00 18
.byte $1C, $38, $19, $40, $1C, $40, $18, $48, $1C, $20, $00, $20, $10, $20, $00, $20 ; CPU:$AA4B PRG:2A4B 1C 38 19 40 1C 40 18 48 1C 20 00 20 10 20 00 20
.byte $10, $20, $00, $FF, $00, $32, $08, $90, $00, $FF, $00, $92, $18, $FF, $0C, $04 ; CPU:$AA5B PRG:2A5B 10 20 00 FF 00 32 08 90 00 FF 00 92 18 FF 0C 04
.byte $1C, $34, $14, $60, $10, $60, $0C, $60, $04, $60, $00, $60, $1C, $60, $10, $04 ; CPU:$AA6B PRG:2A6B 1C 34 14 60 10 60 0C 60 04 60 00 60 1C 60 10 04
.byte $00, $34, $1C, $60, $14, $60, $10, $60, $0C, $60, $04, $60, $00, $60, $14, $04 ; CPU:$AA7B PRG:2A7B 00 34 1C 60 14 60 10 60 0C 60 04 60 00 60 14 04
.byte $04, $34, $00, $60, $1C, $60, $14, $60, $10, $60, $0C, $60, $04, $60, $10, $0C ; CPU:$AA8B PRG:2A8B 04 34 00 60 1C 60 14 60 10 60 0C 60 04 60 10 0C
.byte $18, $D0, $14, $20, $10, $FF, $00, $FF, $1C, $28, $00, $08, $1C, $48, $00, $FF ; CPU:$AA9B PRG:2A9B 18 D0 14 20 10 FF 00 FF 1C 28 00 08 1C 48 00 FF
.byte $00, $50, $08, $40, $18, $40, $00, $FF, $00, $50, $18, $40, $08, $40, $00, $FF ; CPU:$AAAB PRG:2AAB 00 50 08 40 18 40 00 FF 00 50 18 40 08 40 00 FF
.byte $00, $A0, $10, $E0, $10, $30, $11, $40, $01, $40, $00, $FF, $00, $AC, $10, $FF ; CPU:$AABB PRG:2ABB 00 A0 10 E0 10 30 11 40 01 40 00 FF 00 AC 10 FF
.byte $00, $FF, $00, $38, $10, $E8, $14, $24, $10, $40, $14, $74, $11, $94, $19, $FF ; CPU:$AACB PRG:2ACB 00 FF 00 38 10 E8 14 24 10 40 14 74 11 94 19 FF
.byte $10, $10, $00, $FF, $00, $FF, $00, $08, $18, $48, $00, $58, $1C, $48, $00, $70 ; CPU:$AADB PRG:2ADB 10 10 00 FF 00 FF 00 08 18 48 00 58 1C 48 00 70
.byte $1E, $FF, $00, $08, $18, $78, $00, $58, $04, $60, $00, $38, $0A, $18, $0C, $A8 ; CPU:$AAEB PRG:2AEB 1E FF 00 08 18 78 00 58 04 60 00 38 0A 18 0C A8
.byte $00, $FF, $00, $08, $08, $78, $00, $FF, $1C, $62, $18, $FF, $1C, $82, $18, $FF ; CPU:$AAFB PRG:2AFB 00 FF 00 08 08 78 00 FF 1C 62 18 FF 1C 82 18 FF
.byte $1C, $A2, $18, $FF, $04, $20, $04, $20, $00, $E4, $18, $FF, $00, $C0, $18, $FF ; CPU:$AB0B PRG:2B0B 1C A2 18 FF 04 20 04 20 00 E4 18 FF 00 C0 18 FF
.byte $1C, $40, $0C, $60, $1C, $60, $0C, $60, $1C, $60, $0C, $60, $1C, $60, $0C, $60 ; CPU:$AB1B PRG:2B1B 1C 40 0C 60 1C 60 0C 60 1C 60 0C 60 1C 60 0C 60
.byte $1C, $60, $00, $40, $10, $60, $00, $60, $10, $60, $00, $60, $10, $60, $00, $60 ; CPU:$AB2B PRG:2B2B 1C 60 00 40 10 60 00 60 10 60 00 60 10 60 00 60
.byte $10, $60, $00, $60, $04, $40, $14, $60, $04, $60, $14, $60, $04, $60, $14, $60 ; CPU:$AB3B PRG:2B3B 10 60 00 60 04 40 14 60 04 60 14 60 04 60 14 60
.byte $04, $60, $14, $60, $04, $60, $18, $40, $08, $20, $08, $40, $18, $60, $08, $60 ; CPU:$AB4B PRG:2B4B 04 60 14 60 04 60 18 40 08 20 08 40 18 60 08 60
.byte $18, $60, $08, $60, $18, $60, $08, $60, $18, $60, $08, $80, $10, $80, $17, $80 ; CPU:$AB5B PRG:2B5B 18 60 08 60 18 60 08 60 18 60 08 80 10 80 17 80
.byte $14, $20, $08, $40, $06, $20, $08, $10, $10, $28, $18, $10, $1A, $20, $18, $48 ; CPU:$AB6B PRG:2B6B 14 20 08 40 06 20 08 10 10 28 18 10 1A 20 18 48
.byte $14, $18, $08, $70, $0D, $A0, $18, $98, $1C, $80, $00, $FF, $00, $F8, $04, $40 ; CPU:$AB7B PRG:2B7B 14 18 08 70 0D A0 18 98 1C 80 00 FF 00 F8 04 40
.byte $00, $70, $10, $C0, $0E, $5C, $10, $B8, $00, $B8, $1E, $20, $00, $FF, $00, $80 ; CPU:$AB8B PRG:2B8B 00 70 10 C0 0E 5C 10 B8 00 B8 1E 20 00 FF 00 80
.byte $10, $C0, $14, $2C, $10, $48, $14, $6C, $11, $A0, $19, $50, $1C, $44, $18, $FF ; CPU:$AB9B PRG:2B9B 10 C0 14 2C 10 48 14 6C 11 A0 19 50 1C 44 18 FF
.byte $00, $04, $08, $80, $04, $1C, $08, $D0, $0C, $FF, $10, $10, $18, $C0, $14, $30 ; CPU:$ABAB PRG:2BAB 00 04 08 80 04 1C 08 D0 0C FF 10 10 18 C0 14 30
.byte $10, $4C, $00, $2C, $10, $50, $00, $68, $04, $30, $08, $FF, $10, $08, $00, $78 ; CPU:$ABBB PRG:2BBB 10 4C 00 2C 10 50 00 68 04 30 08 FF 10 08 00 78
.byte $10, $50, $00, $FF, $00, $74, $08, $A0, $18, $A0, $00, $FF, $00, $A0, $1C, $20 ; CPU:$ABCB PRG:2BCB 10 50 00 FF 00 74 08 A0 18 A0 00 FF 00 A0 1C 20
.byte $1E, $FF, $00, $70, $10, $E0, $10, $A0, $00, $FF, $00, $04, $08, $A8, $00, $FF ; CPU:$ABDB PRG:2BDB 1E FF 00 70 10 E0 10 A0 00 FF 00 04 08 A8 00 FF
.byte $00, $04, $08, $D8, $00, $FF, $00, $04, $08, $E0, $08, $28, $00, $FF, $10, $18 ; CPU:$ABEB PRG:2BEB 00 04 08 D8 00 FF 00 04 08 E0 08 28 00 FF 10 18
.byte $00, $40, $08, $80, $10, $28, $10, $58, $18, $80, $00, $80, $08, $80, $10, $80 ; CPU:$ABFB PRG:2BFB 00 40 08 80 10 28 10 58 18 80 00 80 08 80 10 80
.byte $18, $80, $00, $80, $08, $80, $10, $80, $18, $80, $00, $80, $08, $80, $08, $20 ; CPU:$AC0B PRG:2C0B 18 80 00 80 08 80 10 80 18 80 00 80 08 80 08 20
.byte $08, $A0, $18, $FF, $18, $20, $18, $A0, $08, $FF, $00, $70, $10, $70, $00, $70 ; CPU:$AC1B PRG:2C1B 08 A0 18 FF 18 20 18 A0 08 FF 00 70 10 70 00 70
.byte $10, $70, $00, $FF, $00, $60, $10, $60, $00, $FF, $1C, $40, $0C, $40, $10, $18 ; CPU:$AC2B PRG:2C2B 10 70 00 FF 00 60 10 60 00 FF 1C 40 0C 40 10 18
.byte $00, $18, $1C, $40, $00, $FF, $00, $40, $10, $80, $00, $D8, $1C, $40, $00, $80 ; CPU:$AC3B PRG:2C3B 00 18 1C 40 00 FF 00 40 10 80 00 D8 1C 40 00 80
.byte $00, $C0, $1C, $40, $10, $10, $1C, $40, $0C, $50, $1C, $50, $0C, $50, $1C, $50 ; CPU:$AC4B PRG:2C4B 00 C0 1C 40 10 10 1C 40 0C 50 1C 50 0C 50 1C 50
.byte $0C, $50, $1C, $50, $0C, $50, $1C, $50, $0C, $50, $1C, $50, $10, $10, $04, $40 ; CPU:$AC5B PRG:2C5B 0C 50 1C 50 0C 50 1C 50 0C 50 1C 50 10 10 04 40
.byte $14, $50, $04, $50, $14, $50, $04, $50, $14, $50, $04, $50, $14, $50, $04, $50 ; CPU:$AC6B PRG:2C6B 14 50 04 50 14 50 04 50 14 50 04 50 14 50 04 50
.byte $14, $50, $04, $50, $00, $18, $04, $10, $08, $60, $0C, $3C, $0A, $58, $01, $80 ; CPU:$AC7B PRG:2C7B 14 50 04 50 00 18 04 10 08 60 0C 3C 0A 58 01 80
.byte $04, $FF, $00, $30, $10, $A0, $18, $10, $08, $F0, $10, $E0, $00, $FF, $00, $10 ; CPU:$AC8B PRG:2C8B 04 FF 00 30 10 A0 18 10 08 F0 10 E0 00 FF 00 10
.byte $08, $88, $18, $08, $08, $E8, $10, $A0, $00, $FF, $00, $30, $18, $68, $08, $68 ; CPU:$AC9B PRG:2C9B 08 88 18 08 08 E8 10 A0 00 FF 00 30 18 68 08 68
.byte $10, $C0, $10, $F0, $08, $FF, $00, $40, $04, $34, $08, $FF, $00, $80, $10, $80 ; CPU:$ACAB PRG:2CAB 10 C0 10 F0 08 FF 00 40 04 34 08 FF 00 80 10 80
.byte $00, $FF, $00, $62, $10, $70, $0E, $54, $10, $DA, $10, $50, $08, $48, $18, $48 ; CPU:$ACBB PRG:2CBB 00 FF 00 62 10 70 0E 54 10 DA 10 50 08 48 18 48
.byte $00, $FF, $00, $60, $10, $98, $14, $20, $10, $E4, $10, $50, $18, $48, $08, $48 ; CPU:$ACCB PRG:2CCB 00 FF 00 60 10 98 14 20 10 E4 10 50 18 48 08 48
.byte $00, $FF, $1C, $80, $19, $FF, $00, $58, $10, $80, $00, $FF, $1C, $80, $18, $FF ; CPU:$ACDB PRG:2CDB 00 FF 1C 80 19 FF 00 58 10 80 00 FF 1C 80 18 FF
.byte $00, $10, $1C, $E0, $10, $E0, $14, $88, $10, $80, $08, $C8, $08, $A8, $00, $FF ; CPU:$ACEB PRG:2CEB 00 10 1C E0 10 E0 14 88 10 80 08 C8 08 A8 00 FF
; ---- data $ACFB-$B8AA (2992 bytes) ----
; Data streams addressed by the 16-entry table at $A8D5.
DataStreamData:
.byte $20, $FE, $3A, $0F, $00, $FE, $38, $FF, $00, $FE, $36, $60, $00, $FE, $3E, $1F ; CPU:$ACFB PRG:2CFB 20 FE 3A 0F 00 FE 38 FF 00 FE 36 60 00 FE 3E 1F
.byte $00, $FC, $40, $07, $00, $FC, $3C, $1F, $00, $FC, $42, $1F, $00, $FC, $44, $07 ; CPU:$AD0B PRG:2D0B 00 FC 40 07 00 FC 3C 1F 00 FC 42 1F 00 FC 44 07
.byte $00, $F8, $2C, $E8, $2C, $DE, $2A, $27, $1A, $D2, $2C, $D2, $04, $08, $AA, $D2 ; CPU:$AD1B PRG:2D1B 00 F8 2C E8 2C DE 2A 27 1A D2 2C D2 04 08 AA D2
.byte $06, $0A, $AA, $C0, $32, $B4, $2C, $B4, $04, $0C, $AA, $B4, $06, $0E, $AA, $AA ; CPU:$AD2B PRG:2D2B 06 0A AA C0 32 B4 2C B4 04 0C AA B4 06 0E AA AA
.byte $04, $12, $AA, $A8, $00, $12, $AA, $9E, $06, $14, $AA, $9C, $32, $9C, $34, $9C ; CPU:$AD3B PRG:2D3B 04 12 AA A8 00 12 AA 9E 06 14 AA 9C 32 9C 34 9C
.byte $34, $9C, $00, $12, $AA, $90, $2C, $80, $2C, $78, $06, $0E, $AA, $76, $00, $0E ; CPU:$AD4B PRG:2D4B 34 9C 00 12 AA 90 2C 80 2C 78 06 0E AA 76 00 0E
.byte $AA, $70, $2C, $6A, $26, $1C, $FF, $5E, $4E, $84, $06, $5C, $34, $5C, $34, $5C ; CPU:$AD5B PRG:2D5B AA 70 2C 6A 26 1C FF 5E 4E 84 06 5C 34 5C 34 5C
.byte $38, $1F, $00, $5A, $4E, $84, $86, $58, $2C, $58, $4E, $84, $06, $50, $2C, $44 ; CPU:$AD6B PRG:2D6B 38 1F 00 5A 4E 84 86 58 2C 58 4E 84 06 50 2C 44
.byte $2C, $42, $28, $38, $00, $0E, $FF, $38, $04, $10, $FF, $36, $2E, $03, $24, $06 ; CPU:$AD7B PRG:2D7B 2C 42 28 38 00 0E FF 38 04 10 FF 36 2E 03 24 06
.byte $18, $FF, $22, $00, $16, $FF, $20, $06, $14, $FF, $1E, $00, $02, $FF, $1E, $00 ; CPU:$AD8B PRG:2D8B 18 FF 22 00 16 FF 20 06 14 FF 1E 00 02 FF 1E 00
.byte $12, $FF, $1C, $04, $10, $FF, $16, $1C, $10, $AA, $14, $32, $14, $1E, $0E, $AA ; CPU:$AD9B PRG:2D9B 12 FF 1C 04 10 FF 16 1C 10 AA 14 32 14 1E 0E AA
.byte $14, $20, $10, $AA, $14, $22, $12, $AA, $14, $26, $02, $FF, $12, $24, $10, $AA ; CPU:$ADAB PRG:2DAB 14 20 10 AA 14 22 12 AA 14 26 02 FF 12 24 10 AA
.byte $00, $30, $FC, $2E, $01, $EC, $32, $E4, $2A, $27, $1A, $E4, $4C, $64, $00, $DA ; CPU:$ADBB PRG:2DBB 00 30 FC 2E 01 EC 32 E4 2A 27 1A E4 4C 64 00 DA
.byte $00, $12, $FF, $DA, $04, $14, $FF, $D0, $06, $06, $FF, $D0, $00, $08, $FF, $C6 ; CPU:$ADCB PRG:2DCB 00 12 FF DA 04 14 FF D0 06 06 FF D0 00 08 FF C6
.byte $00, $12, $FF, $C6, $00, $14, $FF, $C0, $2C, $BC, $4C, $7C, $02, $B2, $32, $B2 ; CPU:$ADDB PRG:2DDB 00 12 FF C6 00 14 FF C0 2C BC 4C 7C 02 B2 32 B2
.byte $00, $14, $FF, $AA, $4C, $7C, $04, $9E, $2C, $9E, $00, $14, $FF, $9E, $06, $16 ; CPU:$ADEB PRG:2DEB 00 14 FF AA 4C 7C 04 9E 2C 9E 00 14 FF 9E 06 16
.byte $FF, $92, $2C, $90, $00, $14, $FF, $80, $32, $74, $06, $06, $FF, $6C, $00, $12 ; CPU:$ADFB PRG:2DFB FF 92 2C 90 00 14 FF 80 32 74 06 06 FF 6C 00 12
.byte $FF, $6C, $06, $14, $FF, $6A, $06, $12, $FF, $6A, $00, $14, $FF, $64, $26, $1C ; CPU:$AE0B PRG:2E0B FF 6C 06 14 FF 6A 06 12 FF 6A 00 14 FF 64 26 1C
.byte $FF, $64, $4C, $24, $06, $58, $2C, $48, $32, $44, $4C, $5C, $08, $42, $4C, $CC ; CPU:$AE1B PRG:2E1B FF 64 4C 24 06 58 2C 48 32 44 4C 5C 08 42 4C CC
.byte $0A, $3A, $26, $12, $FF, $32, $06, $06, $FF, $32, $00, $08, $FF, $30, $2C, $24 ; CPU:$AE2B PRG:2E2B 0A 3A 26 12 FF 32 06 06 FF 32 00 08 FF 30 2C 24
.byte $4C, $94, $0C, $24, $04, $0E, $FF, $22, $06, $10, $FF, $20, $32, $20, $04, $12 ; CPU:$AE3B PRG:2E3B 4C 94 0C 24 04 0E FF 22 06 10 FF 20 32 20 04 12
.byte $FF, $1E, $06, $14, $FF, $1C, $04, $16, $FF, $1C, $36, $90, $00, $1A, $2E, $01 ; CPU:$AE4B PRG:2E4B FF 1E 06 14 FF 1C 04 16 FF 1C 36 90 00 1A 2E 01
.byte $14, $32, $14, $00, $0A, $FF, $14, $00, $0C, $FF, $10, $06, $08, $FF, $10, $02 ; CPU:$AE5B PRG:2E5B 14 32 14 00 0A FF 14 00 0C FF 10 06 08 FF 10 02
.byte $0A, $FF, $10, $02, $0C, $FF, $10, $06, $0E, $FF, $00, $07, $FE, $46, $7F, $3C ; CPU:$AE6B PRG:2E6B 0A FF 10 02 0C FF 10 06 0E FF 00 07 FE 46 7F 3C
.byte $FE, $36, $70, $00, $E8, $2A, $1A, $11, $E8, $06, $16, $AA, $E2, $46, $3F, $3C ; CPU:$AE7B PRG:2E7B FE 36 70 00 E8 2A 1A 11 E8 06 16 AA E2 46 3F 3C
.byte $B8, $2A, $27, $11, $B8, $00, $0A, $AA, $B6, $06, $0A, $AA, $B6, $46, $3F, $3C ; CPU:$AE8B PRG:2E8B B8 2A 27 11 B8 00 0A AA B6 06 0A AA B6 46 3F 3C
.byte $A0, $2A, $27, $27, $A0, $0A, $06, $FF, $9E, $08, $06, $FF, $9C, $26, $02, $FF ; CPU:$AE9B PRG:2E9B A0 2A 27 27 A0 0A 06 FF 9E 08 06 FF 9C 26 02 FF
.byte $90, $4A, $8E, $2A, $1A, $27, $8E, $00, $10, $AA, $8C, $04, $10, $AA, $88, $28 ; CPU:$AEAB PRG:2EAB 90 4A 8E 2A 1A 27 8E 00 10 AA 8C 04 10 AA 88 28
.byte $84, $04, $0E, $AA, $84, $06, $10, $AA, $80, $34, $80, $48, $00, $00, $78, $2C ; CPU:$AEBB PRG:2EBB 84 04 0E AA 84 06 10 AA 80 34 80 48 00 00 78 2C
.byte $68, $06, $04, $FF, $68, $00, $0A, $FF, $62, $00, $16, $AA, $60, $32, $58, $06 ; CPU:$AECB PRG:2ECB 68 06 04 FF 68 00 0A FF 62 00 16 AA 60 32 58 06
.byte $14, $FF, $54, $2C, $54, $4E, $78, $08, $48, $34, $48, $06, $06, $FF, $48, $00 ; CPU:$AEDB PRG:2EDB 14 FF 54 2C 54 4E 78 08 48 34 48 06 06 FF 48 00
.byte $0C, $FF, $40, $2C, $34, $2A, $07, $27, $32, $04, $04, $AA, $32, $00, $08, $AA ; CPU:$AEEB PRG:2EEB 0C FF 40 2C 34 2A 07 27 32 04 04 AA 32 00 08 AA
.byte $32, $06, $0C, $AA, $32, $04, $10, $AA, $28, $32, $28, $06, $0C, $AA, $1A, $2A ; CPU:$AEFB PRG:2EFB 32 06 0C AA 32 04 10 AA 28 32 28 06 0C AA 1A 2A
.byte $07, $1A, $1A, $06, $12, $FF, $1A, $00, $16, $FF, $1A, $06, $1A, $FF, $14, $0E ; CPU:$AF0B PRG:2F0B 07 1A 1A 06 12 FF 1A 00 16 FF 1A 06 1A FF 14 0E
.byte $16, $FF, $12, $0C, $16, $FF, $12, $26, $1C, $FF, $00, $29, $FE, $2E, $01, $F0 ; CPU:$AF1B PRG:2F1B 16 FF 12 0C 16 FF 12 26 1C FF 00 29 FE 2E 01 F0
.byte $32, $EA, $4C, $64, $0E, $E2, $4C, $D4, $10, $DE, $2A, $27, $1A, $D8, $04, $14 ; CPU:$AF2B PRG:2F2B 32 EA 4C 64 0E E2 4C D4 10 DE 2A 27 1A D8 04 14
.byte $FF, $D8, $06, $16, $FF, $D0, $4C, $84, $12, $CA, $2C, $C2, $00, $0A, $FF, $C2 ; CPU:$AF3B PRG:2F3B FF D8 06 16 FF D0 4C 84 12 CA 2C C2 00 0A FF C2
.byte $06, $0C, $FF, $C2, $26, $14, $FF, $BC, $4C, $EC, $14, $BA, $32, $B2, $06, $18 ; CPU:$AF4B PRG:2F4B 06 0C FF C2 26 14 FF BC 4C EC 14 BA 32 B2 06 18
.byte $FF, $B0, $06, $1A, $FF, $AE, $00, $18, $FF, $AC, $00, $1A, $FF, $A6, $4C, $EC ; CPU:$AF5B PRG:2F5B FF B0 06 1A FF AE 00 18 FF AC 00 1A FF A6 4C EC
.byte $16, $9E, $2C, $8A, $32, $88, $46, $01, $01, $74, $2E, $45, $72, $1A, $0C, $00 ; CPU:$AF6B PRG:2F6B 16 9E 2C 8A 32 88 46 01 01 74 2E 45 72 1A 0C 00
.byte $70, $18, $0A, $00, $6E, $16, $0A, $00, $6C, $14, $0A, $00, $6A, $12, $0A, $00 ; CPU:$AF7B PRG:2F7B 70 18 0A 00 6E 16 0A 00 6C 14 0A 00 6A 12 0A 00
.byte $68, $10, $0C, $00, $62, $2E, $45, $50, $32, $3E, $46, $3F, $3C, $30, $48, $00 ; CPU:$AF8B PRG:2F8B 68 10 0C 00 62 2E 45 50 32 3E 46 3F 3C 30 48 00
.byte $00, $2E, $34, $2C, $2C, $20, $2C, $10, $2C, $00, $11, $FE, $36, $A0, $00, $FE ; CPU:$AF9B PRG:2F9B 00 2E 34 2C 2C 20 2C 10 2C 00 11 FE 36 A0 00 FE
.byte $3C, $1F, $00, $FE, $42, $1F, $00, $FC, $2C, $EE, $2C, $E2, $34, $E2, $32, $DE ; CPU:$AFAB PRG:2FAB 3C 1F 00 FE 42 1F 00 FC 2C EE 2C E2 34 E2 32 DE
.byte $2A, $00, $11, $DA, $06, $08, $AA, $DA, $04, $0A, $AA, $DA, $0E, $0E, $AA, $D8 ; CPU:$AFBB PRG:2FBB 2A 00 11 DA 06 08 AA DA 04 0A AA DA 0E 0E AA D8
.byte $0C, $0E, $AA, $D8, $04, $08, $AA, $D8, $06, $0A, $AA, $C8, $2C, $C8, $50, $40 ; CPU:$AFCB PRG:2FCB 0C 0E AA D8 04 08 AA D8 06 0A AA C8 2C C8 50 40
.byte $06, $BC, $50, $60, $07, $B8, $2C, $B8, $50, $A0, $07, $B4, $50, $60, $07, $B0 ; CPU:$AFDB PRG:2FDB 06 BC 50 60 07 B8 2C B8 50 A0 07 B4 50 60 07 B0
.byte $2C, $B0, $50, $A0, $08, $AC, $50, $D8, $08, $A6, $32, $A4, $0E, $14, $FF, $A2 ; CPU:$AFEB PRG:2FEB 2C B0 50 A0 08 AC 50 D8 08 A6 32 A4 0E 14 FF A2
.byte $0C, $14, $FF, $98, $50, $C0, $07, $96, $50, $80, $07, $94, $50, $60, $07, $92 ; CPU:$AFFB PRG:2FFB 0C 14 FF 98 50 C0 07 96 50 80 07 94 50 60 07 92
.byte $2C, $92, $50, $C0, $07, $7A, $32, $76, $28, $6E, $4C, $90, $18, $6E, $38, $0F ; CPU:$B00B PRG:300B 2C 92 50 C0 07 7A 32 76 28 6E 4C 90 18 6E 38 0F
.byte $0F, $6E, $3A, $0F, $0F, $6C, $26, $18, $AA, $6A, $04, $10, $AA, $68, $00, $10 ; CPU:$B01B PRG:301B 0F 6E 3A 0F 0F 6C 26 18 AA 6A 04 10 AA 68 00 10
.byte $AA, $66, $04, $10, $AA, $64, $00, $10, $AA, $62, $2C, $4A, $32, $4A, $2A, $00 ; CPU:$B02B PRG:302B AA 66 04 10 AA 64 00 10 AA 62 2C 4A 32 4A 2A 00
.byte $1A, $4A, $06, $08, $FF, $3E, $2C, $34, $2A, $07, $1A, $34, $06, $10, $AA, $30 ; CPU:$B03B PRG:303B 1A 4A 06 08 FF 3E 2C 34 2A 07 1A 34 06 10 AA 30
.byte $4C, $28, $1A, $30, $26, $1A, $FF, $2E, $32, $20, $4C, $20, $1C, $1E, $4C, $E0 ; CPU:$B04B PRG:304B 4C 28 1A 30 26 1A FF 2E 32 20 4C 20 1C 1E 4C E0
.byte $1E, $1C, $4C, $20, $1C, $18, $0E, $0E, $FF, $16, $0C, $0E, $FF, $16, $06, $08 ; CPU:$B05B PRG:305B 1E 1C 4C 20 1C 18 0E 0E FF 16 0C 0E FF 16 06 08
.byte $FF, $16, $06, $16, $FF, $00, $23, $FE, $3A, $07, $07, $F0, $2A, $27, $1A, $F0 ; CPU:$B06B PRG:306B FF 16 06 16 FF 00 23 FE 3A 07 07 F0 2A 27 1A F0
.byte $00, $0A, $FF, $F0, $04, $0C, $FF, $E8, $4C, $C4, $20, $D6, $4C, $E4, $22, $D4 ; CPU:$B07B PRG:307B 00 0A FF F0 04 0C FF E8 4C C4 20 D6 4C E4 22 D4
.byte $06, $04, $AA, $D2, $00, $02, $AA, $CA, $4C, $E4, $24, $B8, $4C, $E4, $26, $B4 ; CPU:$B08B PRG:308B 06 04 AA D2 00 02 AA CA 4C E4 24 B8 4C E4 26 B4
.byte $04, $08, $AA, $B4, $00, $06, $AA, $B0, $46, $1F, $3C, $AC, $48, $00, $00, $AA ; CPU:$B09B PRG:309B 04 08 AA B4 00 06 AA B0 46 1F 3C AC 48 00 00 AA
.byte $06, $0A, $AA, $AA, $06, $0C, $AA, $9E, $0E, $0C, $AA, $9C, $0C, $0C, $AA, $9A ; CPU:$B0AB PRG:30AB 06 0A AA AA 06 0C AA 9E 0E 0C AA 9C 0C 0C AA 9A
.byte $2C, $8A, $26, $1C, $FF, $82, $32, $7A, $1C, $08, $AA, $78, $1E, $06, $AA, $78 ; CPU:$B0BB PRG:30BB 2C 8A 26 1C FF 82 32 7A 1C 08 AA 78 1E 06 AA 78
.byte $20, $08, $AA, $78, $22, $0A, $AA, $76, $24, $08, $AA, $6E, $4E, $B8, $8C, $6A ; CPU:$B0CB PRG:30CB 20 08 AA 78 22 0A AA 76 24 08 AA 6E 4E B8 8C 6A
.byte $4E, $A0, $8A, $6A, $4E, $D0, $8A, $66, $4E, $B8, $8A, $5E, $06, $10, $FF, $5C ; CPU:$B0DB PRG:30DB 4E A0 8A 6A 4E D0 8A 66 4E B8 8A 5E 06 10 FF 5C
.byte $00, $12, $FF, $56, $4C, $EC, $28, $54, $00, $12, $FF, $4E, $00, $10, $FF, $4E ; CPU:$B0EB PRG:30EB 00 12 FF 56 4C EC 28 54 00 12 FF 4E 00 10 FF 4E
.byte $26, $02, $FF, $42, $4C, $0C, $2A, $3C, $4C, $C4, $2C, $32, $06, $12, $FF, $26 ; CPU:$B0FB PRG:30FB 26 02 FF 42 4C 0C 2A 3C 4C C4 2C 32 06 12 FF 26
.byte $00, $12, $FF, $24, $00, $0E, $FF, $22, $00, $0A, $FF, $18, $42, $3F, $00, $18 ; CPU:$B10B PRG:310B 00 12 FF 24 00 0E FF 22 00 0A FF 18 42 3F 00 18
.byte $3C, $07, $00, $14, $0E, $06, $AA, $14, $0E, $0C, $AA, $12, $0C, $06, $AA, $12 ; CPU:$B11B PRG:311B 3C 07 00 14 0E 06 AA 14 0E 0C AA 12 0C 06 AA 12
.byte $0C, $0C, $AA, $00, $00, $FE, $46, $7F, $3C, $F0, $2A, $1A, $27, $F0, $06, $10 ; CPU:$B12B PRG:312B 0C 0C AA 00 00 FE 46 7F 3C F0 2A 1A 27 F0 06 10
.byte $AA, $EE, $04, $10, $AA, $EC, $46, $3F, $3C, $CA, $4C, $60, $2E, $C8, $4C, $78 ; CPU:$B13B PRG:313B AA EE 04 10 AA EC 46 3F 3C CA 4C 60 2E C8 4C 78
.byte $30, $C4, $4C, $90, $32, $C2, $4C, $90, $34, $BE, $4C, $90, $36, $BC, $4C, $78 ; CPU:$B14B PRG:314B 30 C4 4C 90 32 C2 4C 90 34 BE 4C 90 36 BC 4C 78
.byte $38, $A0, $04, $10, $FF, $9E, $00, $12, $FF, $9E, $46, $3F, $3C, $9C, $06, $14 ; CPU:$B15B PRG:315B 38 A0 04 10 FF 9E 00 12 FF 9E 46 3F 3C 9C 06 14
.byte $FF, $9A, $04, $16, $FF, $82, $56, $1B, $00, $7E, $00, $18, $AA, $7C, $26, $04 ; CPU:$B16B PRG:316B FF 9A 04 16 FF 82 56 1B 00 7E 00 18 AA 7C 26 04
.byte $FF, $6C, $48, $00, $00, $6A, $04, $08, $FF, $6A, $06, $0E, $FF, $6A, $04, $14 ; CPU:$B17B PRG:317B FF 6C 48 00 00 6A 04 08 FF 6A 06 0E FF 6A 04 14
.byte $FF, $6A, $06, $1A, $FF, $66, $28, $50, $46, $3F, $FF, $34, $2A, $07, $27, $32 ; CPU:$B18B PRG:318B FF 6A 06 1A FF 66 28 50 46 3F FF 34 2A 07 27 32
.byte $06, $16, $AA, $32, $06, $1A, $AA, $2A, $4E, $40, $0D, $26, $4E, $60, $0E, $1C ; CPU:$B19B PRG:319B 06 16 AA 32 06 1A AA 2A 4E 40 0D 26 4E 60 0E 1C
.byte $56, $1D, $00, $1A, $56, $1D, $00, $12, $2A, $07, $1A, $12, $26, $1C, $FF, $10 ; CPU:$B1AB PRG:31AB 56 1D 00 1A 56 1D 00 12 2A 07 1A 12 26 1C FF 10
.byte $48, $00, $00, $00, $2F, $F2, $2C, $F2, $34, $EE, $2A, $1A, $27, $EE, $4C, $EC ; CPU:$B1BB PRG:31BB 48 00 00 00 2F F2 2C F2 34 EE 2A 1A 27 EE 4C EC
.byte $3A, $EA, $32, $E4, $00, $18, $AA, $E4, $00, $06, $AA, $E2, $06, $16, $AA, $E2 ; CPU:$B1CB PRG:31CB 3A EA 32 E4 00 18 AA E4 00 06 AA E2 06 16 AA E2
.byte $06, $08, $AA, $E0, $00, $14, $AA, $E0, $00, $0A, $AA, $CC, $04, $16, $AA, $C8 ; CPU:$B1DB PRG:31DB 06 08 AA E0 00 14 AA E0 00 0A AA CC 04 16 AA C8
.byte $0E, $16, $AA, $C8, $00, $14, $AA, $C8, $00, $1A, $AA, $C6, $0C, $16, $AA, $C2 ; CPU:$B1EB PRG:31EB 0E 16 AA C8 00 14 AA C8 00 1A AA C6 0C 16 AA C2
.byte $04, $16, $AA, $BA, $34, $B2, $06, $16, $AA, $AA, $2C, $A8, $4C, $5C, $3C, $A8 ; CPU:$B1FB PRG:31FB 04 16 AA BA 34 B2 06 16 AA AA 2C A8 4C 5C 3C A8
.byte $4C, $8C, $3E, $A8, $4C, $DC, $40, $9C, $32, $94, $06, $14, $AA, $94, $00, $16 ; CPU:$B20B PRG:320B 4C 8C 3E A8 4C DC 40 9C 32 94 06 14 AA 94 00 16
.byte $AA, $92, $4C, $84, $42, $92, $4C, $DC, $44, $82, $2C, $7C, $4C, $7C, $46, $78 ; CPU:$B21B PRG:321B AA 92 4C 84 42 92 4C DC 44 82 2C 7C 4C 7C 46 78
.byte $26, $02, $AA, $72, $32, $72, $00, $14, $AA, $72, $06, $16, $AA, $6C, $4C, $DC ; CPU:$B22B PRG:322B 26 02 AA 72 32 72 00 14 AA 72 06 16 AA 6C 4C DC
.byte $48, $6A, $4C, $DC, $4A, $66, $4C, $DC, $48, $64, $4E, $DC, $07, $60, $4E, $DC ; CPU:$B23B PRG:323B 48 6A 4C DC 4A 66 4C DC 48 64 4E DC 07 60 4E DC
.byte $87, $44, $4C, $70, $4C, $44, $4C, $88, $4E, $44, $4C, $A0, $50, $34, $02, $08 ; CPU:$B24B PRG:324B 87 44 4C 70 4C 44 4C 88 4E 44 4C A0 50 34 02 08
.byte $AA, $34, $02, $16, $AA, $24, $4C, $A8, $52, $22, $4C, $B8, $54, $20, $4C, $C8 ; CPU:$B25B PRG:325B AA 34 02 16 AA 24 4C A8 52 22 4C B8 54 20 4C C8
.byte $56, $1C, $4C, $6C, $58, $1A, $4C, $5C, $5A, $18, $4C, $4C, $5C, $18, $06, $10 ; CPU:$B26B PRG:326B 56 1C 4C 6C 58 1A 4C 5C 5A 18 4C 4C 5C 18 06 10
.byte $AA, $18, $06, $14, $AA, $18, $06, $18, $AA, $12, $02, $10, $AA, $12, $02, $18 ; CPU:$B27B PRG:327B AA 18 06 14 AA 18 06 18 AA 12 02 10 AA 12 02 18
.byte $AA, $00, $1E, $FC, $2E, $1F, $F4, $2A, $1A, $27, $F4, $26, $0A, $AA, $F2, $26 ; CPU:$B28B PRG:328B AA 00 1E FC 2E 1F F4 2A 1A 27 F4 26 0A AA F2 26
.byte $0E, $AA, $F0, $26, $12, $AA, $EE, $26, $16, $AA, $EA, $32, $E2, $2E, $38, $D4 ; CPU:$B29B PRG:329B 0E AA F0 26 12 AA EE 26 16 AA EA 32 E2 2E 38 D4
.byte $0E, $0C, $FF, $D2, $0C, $0C, $FF, $D0, $32, $D0, $34, $D0, $2C, $CA, $2C, $C4 ; CPU:$B2AB PRG:32AB 0E 0C FF D2 0C 0C FF D0 32 D0 34 D0 2C CA 2C C4
.byte $2E, $6F, $BC, $32, $B2, $52, $00, $00, $86, $54, $00, $00, $7C, $2E, $45, $76 ; CPU:$B2BB PRG:32BB 2E 6F BC 32 B2 52 00 00 86 54 00 00 7C 2E 45 76
.byte $2A, $27, $0A, $76, $1A, $0C, $03, $74, $18, $0A, $03, $72, $16, $0A, $00, $70 ; CPU:$B2CB PRG:32CB 2A 27 0A 76 1A 0C 03 74 18 0A 03 72 16 0A 00 70
.byte $14, $0A, $00, $6E, $12, $0A, $06, $6C, $2E, $65, $6C, $10, $0C, $00, $62, $32 ; CPU:$B2DB PRG:32DB 14 0A 00 6E 12 0A 06 6C 2E 65 6C 10 0C 00 62 32
.byte $62, $34, $5A, $2E, $65, $4A, $32, $3E, $2C, $2E, $2C, $20, $2C, $10, $32, $00 ; CPU:$B2EB PRG:32EB 62 34 5A 2E 65 4A 32 3E 2C 2E 2C 20 2C 10 32 00
.byte $02, $FE, $2C, $FE, $42, $3F, $00, $F6, $32, $F2, $34, $EE, $2C, $E2, $32, $DA ; CPU:$B2FB PRG:32FB 02 FE 2C FE 42 3F 00 F6 32 F2 34 EE 2C E2 32 DA
.byte $2C, $CE, $32, $C6, $4C, $18, $5E, $C6, $4C, $58, $60, $C6, $4C, $98, $62, $BE ; CPU:$B30B PRG:330B 2C CE 32 C6 4C 18 5E C6 4C 58 60 C6 4C 98 62 BE
.byte $4C, $38, $64, $BE, $4C, $78, $66, $B8, $4C, $28, $68, $B8, $4C, $58, $6A, $B8 ; CPU:$B31B PRG:331B 4C 38 64 BE 4C 78 66 B8 4C 28 68 B8 4C 58 6A B8
.byte $4C, $88, $6C, $A8, $2A, $1A, $27, $A8, $04, $0C, $FF, $A8, $04, $10, $FF, $A6 ; CPU:$B32B PRG:332B 4C 88 6C A8 2A 1A 27 A8 04 0C FF A8 04 10 FF A6
.byte $04, $0E, $FF, $A4, $04, $0C, $FF, $A4, $04, $10, $FF, $9A, $54, $00, $00, $8E ; CPU:$B33B PRG:333B 04 0E FF A4 04 0C FF A4 04 10 FF 9A 54 00 00 8E
.byte $06, $1A, $AA, $8C, $06, $1A, $AA, $8A, $54, $00, $00, $84, $04, $18, $AA, $84 ; CPU:$B34B PRG:334B 06 1A AA 8C 06 1A AA 8A 54 00 00 84 04 18 AA 84
.byte $04, $1A, $AA, $7A, $54, $00, $00, $6E, $06, $0A, $FF, $6E, $04, $0E, $FF, $6E ; CPU:$B35B PRG:335B 04 1A AA 7A 54 00 00 6E 06 0A FF 6E 04 0E FF 6E
.byte $06, $12, $FF, $62, $4C, $78, $6E, $46, $26, $04, $FF, $46, $26, $08, $FF, $46 ; CPU:$B36B PRG:336B 06 12 FF 62 4C 78 6E 46 26 04 FF 46 26 08 FF 46
.byte $26, $0C, $FF, $46, $26, $10, $FF, $42, $26, $04, $FF, $42, $26, $08, $FF, $42 ; CPU:$B37B PRG:337B 26 0C FF 46 26 10 FF 42 26 04 FF 42 26 08 FF 42
.byte $26, $0C, $FF, $42, $26, $10, $FF, $34, $2A, $07, $27, $32, $04, $0E, $AA, $32 ; CPU:$B38B PRG:338B 26 0C FF 42 26 10 FF 34 2A 07 27 32 04 0E AA 32
.byte $00, $12, $AA, $32, $04, $16, $AA, $28, $06, $18, $AA, $20, $2A, $07, $1A, $20 ; CPU:$B39B PRG:339B 00 12 AA 32 04 16 AA 28 06 18 AA 20 2A 07 1A 20
.byte $0A, $10, $FF, $1E, $08, $10, $FF, $1A, $0A, $10, $FF, $18, $08, $10, $FF, $16 ; CPU:$B3AB PRG:33AB 0A 10 FF 1E 08 10 FF 1A 0A 10 FF 18 08 10 FF 16
.byte $02, $04, $FF, $16, $02, $1A, $FF, $10, $02, $04, $FF, $10, $02, $1A, $FF, $00 ; CPU:$B3BB PRG:33BB 02 04 FF 16 02 1A FF 10 02 04 FF 10 02 1A FF 00
.byte $29, $FA, $56, $1D, $00, $F2, $46, $7F, $FF, $E8, $2A, $27, $1A, $E8, $1C, $14 ; CPU:$B3CB PRG:33CB 29 FA 56 1D 00 F2 46 7F FF E8 2A 27 1A E8 1C 14
.byte $FF, $E6, $1E, $12, $FF, $E6, $20, $14, $FF, $E6, $22, $16, $FF, $E4, $24, $14 ; CPU:$B3DB PRG:33DB FF E6 1E 12 FF E6 20 14 FF E6 22 16 FF E4 24 14
.byte $FF, $E2, $4C, $64, $70, $DA, $4C, $D4, $72, $CC, $4C, $D4, $74, $CC, $00, $0A ; CPU:$B3EB PRG:33EB FF E2 4C 64 70 DA 4C D4 72 CC 4C D4 74 CC 00 0A
.byte $FF, $CC, $06, $0C, $FF, $C2, $48, $00, $00, $C2, $4E, $84, $07, $BE, $4E, $84 ; CPU:$B3FB PRG:33FB FF CC 06 0C FF C2 48 00 00 C2 4E 84 07 BE 4E 84
.byte $07, $BA, $4E, $84, $07, $B6, $4E, $84, $0B, $AE, $4E, $EC, $0D, $A6, $4E, $EC ; CPU:$B40B PRG:340B 07 BA 4E 84 07 B6 4E 84 0B AE 4E EC 0D A6 4E EC
.byte $0D, $A2, $46, $7F, $3F, $9A, $2C, $88, $32, $88, $26, $12, $FF, $7C, $26, $12 ; CPU:$B41B PRG:341B 0D A2 46 7F 3F 9A 2C 88 32 88 26 12 FF 7C 26 12
.byte $FF, $7C, $46, $3F, $3F, $76, $4C, $DC, $76, $74, $06, $14, $FF, $72, $04, $12 ; CPU:$B42B PRG:342B FF 7C 46 3F 3F 76 4C DC 76 74 06 14 FF 72 04 12
.byte $FF, $72, $48, $00, $00, $70, $06, $10, $FF, $6E, $04, $0E, $FF, $6C, $06, $0C ; CPU:$B43B PRG:343B FF 72 48 00 00 70 06 10 FF 6E 04 0E FF 6C 06 0C
.byte $FF, $6A, $04, $0A, $FF, $68, $06, $08, $FF, $66, $34, $66, $04, $06, $FF, $62 ; CPU:$B44B PRG:344B FF 6A 04 0A FF 68 06 08 FF 66 34 66 04 06 FF 62
.byte $2C, $60, $2C, $52, $46, $7F, $FF, $42, $2C, $3A, $32, $28, $4C, $20, $78, $26 ; CPU:$B45B PRG:345B 2C 60 2C 52 46 7F FF 42 2C 3A 32 28 4C 20 78 26
.byte $0E, $14, $FF, $24, $0C, $14, $FF, $20, $48, $00, $00, $20, $06, $02, $FF, $20 ; CPU:$B46B PRG:346B 0E 14 FF 24 0C 14 FF 20 48 00 00 20 06 02 FF 20
.byte $06, $08, $FF, $1A, $26, $1C, $FF, $1A, $04, $02, $FF, $1A, $04, $08, $FF, $18 ; CPU:$B47B PRG:347B 06 08 FF 1A 26 1C FF 1A 04 02 FF 1A 04 08 FF 18
.byte $26, $1A, $FF, $16, $26, $18, $FF, $14, $26, $16, $FF, $12, $48, $00, $00, $00 ; CPU:$B48B PRG:348B 26 1A FF 16 26 18 FF 14 26 16 FF 12 48 00 00 00
.byte $2F, $FE, $42, $0F, $00, $FE, $3E, $0F, $00, $FE, $40, $03, $00, $FE, $44, $03 ; CPU:$B49B PRG:349B 2F FE 42 0F 00 FE 3E 0F 00 FE 40 03 00 FE 44 03
.byte $00, $F2, $34, $EE, $4C, $EC, $7A, $E4, $2A, $27, $1A, $E4, $02, $06, $FF, $E4 ; CPU:$B4AB PRG:34AB 00 F2 34 EE 4C EC 7A E4 2A 27 1A E4 02 06 FF E4
.byte $06, $08, $FF, $E4, $06, $16, $FF, $E4, $02, $18, $FF, $E2, $06, $06, $FF, $E2 ; CPU:$B4BB PRG:34BB 06 08 FF E4 06 16 FF E4 02 18 FF E2 06 06 FF E2
.byte $02, $08, $FF, $E2, $02, $16, $FF, $E2, $06, $18, $FF, $DC, $4C, $74, $7C, $CA ; CPU:$B4CB PRG:34CB 02 08 FF E2 02 16 FF E2 06 18 FF DC 4C 74 7C CA
.byte $4E, $B0, $07, $CA, $4E, $C0, $07, $C8, $4E, $B0, $07, $C8, $4E, $C0, $07, $BC ; CPU:$B4DB PRG:34DB 4E B0 07 CA 4E C0 07 C8 4E B0 07 C8 4E C0 07 BC
.byte $04, $08, $FF, $BA, $04, $08, $FF, $BA, $04, $0C, $FF, $B8, $04, $0C, $FF, $B2 ; CPU:$B4EB PRG:34EB 04 08 FF BA 04 08 FF BA 04 0C FF B8 04 0C FF B2
.byte $4C, $24, $7E, $A6, $4C, $8C, $80, $A2, $34, $A2, $4C, $DC, $7E, $A0, $4C, $DC ; CPU:$B4FB PRG:34FB 4C 24 7E A6 4C 8C 80 A2 34 A2 4C DC 7E A0 4C DC
.byte $7E, $96, $2C, $92, $4C, $84, $82, $8A, $26, $02, $FF, $8A, $26, $04, $FF, $88 ; CPU:$B50B PRG:350B 7E 96 2C 92 4C 84 82 8A 26 02 FF 8A 26 04 FF 88
.byte $26, $02, $FF, $88, $26, $04, $FF, $86, $32, $82, $2C, $76, $04, $14, $FF, $76 ; CPU:$B51B PRG:351B 26 02 FF 88 26 04 FF 86 32 82 2C 76 04 14 FF 76
.byte $06, $16, $FF, $72, $32, $72, $4C, $DC, $84, $6E, $06, $14, $FF, $6E, $04, $16 ; CPU:$B52B PRG:352B 06 16 FF 72 32 72 4C DC 84 6E 06 14 FF 6E 04 16
.byte $FF, $6A, $2C, $68, $42, $07, $00, $5A, $32, $50, $02, $0A, $FF, $44, $4C, $88 ; CPU:$B53B PRG:353B FF 6A 2C 68 42 07 00 5A 32 50 02 0A FF 44 4C 88
.byte $86, $44, $4C, $70, $88, $44, $4C, $58, $8A, $34, $06, $06, $FF, $34, $06, $08 ; CPU:$B54B PRG:354B 86 44 4C 70 88 44 4C 58 8A 34 06 06 FF 34 06 08
.byte $FF, $2E, $02, $12, $FF, $2C, $02, $14, $FF, $2A, $02, $16, $FF, $28, $02, $18 ; CPU:$B55B PRG:355B FF 2E 02 12 FF 2C 02 14 FF 2A 02 16 FF 28 02 18
.byte $FF, $24, $4E, $DC, $08, $20, $4E, $DC, $08, $1C, $4E, $DC, $08, $18, $4E, $DC ; CPU:$B56B PRG:356B FF 24 4E DC 08 20 4E DC 08 1C 4E DC 08 18 4E DC
.byte $0B, $16, $4C, $78, $8C, $16, $4C, $B8, $8E, $16, $0E, $12, $FF, $14, $0C, $12 ; CPU:$B57B PRG:357B 0B 16 4C 78 8C 16 4C B8 8E 16 0E 12 FF 14 0C 12
.byte $FF, $00, $15, $F4, $2A, $1A, $11, $F4, $02, $1A, $AA, $F0, $02, $0E, $AA, $F0 ; CPU:$B58B PRG:358B FF 00 15 F4 2A 1A 11 F4 02 1A AA F0 02 0E AA F0
.byte $02, $08, $AA, $EA, $06, $08, $AA, $E8, $06, $0A, $AA, $E6, $06, $0C, $AA, $E4 ; CPU:$B59B PRG:359B 02 08 AA EA 06 08 AA E8 06 0A AA E6 06 0C AA E4
.byte $06, $0E, $AA, $E2, $34, $E2, $02, $06, $AA, $DC, $02, $0E, $AA, $D2, $2C, $BA ; CPU:$B5AB PRG:35AB 06 0E AA E2 34 E2 02 06 AA DC 02 0E AA D2 2C BA
.byte $32, $AE, $0E, $08, $FF, $AE, $0E, $14, $FF, $AC, $0C, $08, $FF, $AC, $0C, $14 ; CPU:$B5BB PRG:35BB 32 AE 0E 08 FF AE 0E 14 FF AC 0C 08 FF AC 0C 14
.byte $FF, $A8, $2C, $9E, $50, $70, $07, $9A, $50, $90, $07, $96, $50, $B0, $0D, $92 ; CPU:$B5CB PRG:35CB FF A8 2C 9E 50 70 07 9A 50 90 07 96 50 B0 0D 92
.byte $50, $D0, $07, $90, $32, $8A, $50, $B0, $0D, $86, $50, $90, $07, $82, $50, $70 ; CPU:$B5DB PRG:35DB 50 D0 07 90 32 8A 50 B0 0D 86 50 90 07 82 50 70
.byte $07, $7E, $50, $50, $07, $78, $2C, $6C, $2A, $00, $11, $6C, $06, $06, $AA, $6A ; CPU:$B5EB PRG:35EB 07 7E 50 50 07 78 2C 6C 2A 00 11 6C 06 06 AA 6A
.byte $00, $08, $AA, $68, $06, $0A, $AA, $66, $00, $0C, $AA, $64, $06, $0E, $AA, $60 ; CPU:$B5FB PRG:35FB 00 08 AA 68 06 0A AA 66 00 0C AA 64 06 0E AA 60
.byte $32, $5C, $34, $58, $2E, $EC, $40, $32, $3E, $2A, $07, $1A, $3E, $26, $18, $FF ; CPU:$B60B PRG:360B 32 5C 34 58 2E EC 40 32 3E 2A 07 1A 3E 26 18 FF
.byte $3E, $26, $1A, $FF, $38, $2C, $32, $02, $0A, $AA, $20, $4C, $10, $90, $20, $4C ; CPU:$B61B PRG:361B 3E 26 1A FF 38 2C 32 02 0A AA 20 4C 10 90 20 4C
.byte $E0, $92, $1E, $32, $1E, $4C, $20, $94, $1E, $4C, $D0, $96, $1A, $2E, $E6, $0A ; CPU:$B62B PRG:362B E0 92 1E 32 1E 4C 20 94 1E 4C D0 96 1A 2E E6 0A
.byte $32, $00, $05, $FE, $2E, $6D, $F6, $32, $F2, $46, $3F, $FF, $EC, $2A, $1A, $0A ; CPU:$B63B PRG:363B 32 00 05 FE 2E 6D F6 32 F2 46 3F FF EC 2A 1A 0A
.byte $E6, $2E, $F1, $E6, $48, $00, $00, $E0, $1A, $0C, $03, $DE, $18, $0A, $03, $DC ; CPU:$B64B PRG:364B E6 2E F1 E6 48 00 00 E0 1A 0C 03 DE 18 0A 03 DC
.byte $16, $0A, $03, $DA, $32, $DA, $14, $0A, $03, $D8, $2E, $34, $D8, $12, $0A, $03 ; CPU:$B65B PRG:365B 16 0A 03 DA 32 DA 14 0A 03 D8 2E 34 D8 12 0A 03
.byte $D6, $10, $0C, $03, $D4, $32, $CA, $2E, $49, $C4, $32, $BA, $2E, $3E, $AA, $32 ; CPU:$B66B PRG:366B D6 10 0C 03 D4 32 CA 2E 49 C4 32 BA 2E 3E AA 32
.byte $A0, $52, $00, $00, $7E, $2E, $46, $7A, $32, $70, $54, $00, $00, $66, $2E, $66 ; CPU:$B67B PRG:367B A0 52 00 00 7E 2E 46 7A 32 70 54 00 00 66 2E 66
.byte $66, $2A, $1A, $27, $66, $1A, $0C, $00, $64, $32, $64, $18, $0A, $00, $62, $16 ; CPU:$B68B PRG:368B 66 2A 1A 27 66 1A 0C 00 64 32 64 18 0A 00 62 16
.byte $0A, $00, $60, $14, $0A, $00, $5E, $12, $0A, $00, $5C, $2E, $21, $5C, $10, $0C ; CPU:$B69B PRG:369B 0A 00 60 14 0A 00 5E 12 0A 00 5C 2E 21 5C 10 0C
.byte $00, $54, $32, $4A, $2C, $3A, $32, $34, $34, $34, $2A, $07, $00, $30, $2C, $20 ; CPU:$B6AB PRG:36AB 00 54 32 4A 2C 3A 32 34 34 34 2A 07 00 30 2C 20
.byte $32, $1A, $2C, $0A, $32, $00, $24, $FE, $2E, $08, $F2, $32, $F0, $2A, $27, $1A ; CPU:$B6BB PRG:36BB 32 1A 2C 0A 32 00 24 FE 2E 08 F2 32 F0 2A 27 1A
.byte $F0, $26, $02, $FF, $EC, $4C, $B4, $98, $EC, $00, $10, $FF, $E4, $4C, $B4, $9A ; CPU:$B6CB PRG:36CB F0 26 02 FF EC 4C B4 98 EC 00 10 FF E4 4C B4 9A
.byte $E2, $06, $10, $FF, $DC, $4C, $B4, $9C, $D6, $4C, $D4, $9E, $D4, $06, $04, $AA ; CPU:$B6DB PRG:36DB E2 06 10 FF DC 4C B4 9C D6 4C D4 9E D4 06 04 AA
.byte $D2, $06, $02, $AA, $D0, $00, $16, $FF, $CA, $4C, $D4, $A0, $C4, $06, $16, $FF ; CPU:$B6EB PRG:36EB D2 06 02 AA D0 00 16 FF CA 4C D4 A0 C4 06 16 FF
.byte $C0, $4C, $D4, $A2, $BC, $4E, $D4, $07, $B8, $4E, $D4, $0D, $B4, $06, $04, $AA ; CPU:$B6FB PRG:36FB C0 4C D4 A2 BC 4E D4 07 B8 4E D4 0D B4 06 04 AA
.byte $B4, $00, $06, $AA, $B4, $26, $16, $FF, $B0, $2C, $A8, $26, $0A, $AA, $A0, $2C ; CPU:$B70B PRG:370B B4 00 06 AA B4 26 16 FF B0 2C A8 26 0A AA A0 2C
.byte $9E, $00, $0A, $AA, $9E, $06, $0C, $AA, $90, $32, $88, $2C, $78, $32, $78, $0E ; CPU:$B71B PRG:371B 9E 00 0A AA 9E 06 0C AA 90 32 88 2C 78 32 78 0E
.byte $04, $AA, $76, $0C, $04, $AA, $76, $4C, $88, $A4, $76, $4C, $E8, $A6, $6C, $4C ; CPU:$B72B PRG:372B 04 AA 76 0C 04 AA 76 4C 88 A4 76 4C E8 A6 6C 4C
.byte $90, $A8, $6C, $4C, $E0, $AA, $5E, $4C, $44, $AC, $5C, $06, $10, $FF, $5A, $26 ; CPU:$B73B PRG:373B 90 A8 6C 4C E0 AA 5E 4C 44 AC 5C 06 10 FF 5A 26
.byte $1C, $FF, $58, $00, $14, $FF, $54, $06, $18, $FF, $4C, $4C, $44, $AE, $44, $4C ; CPU:$B74B PRG:374B 1C FF 58 00 14 FF 54 06 18 FF 4C 4C 44 AE 44 4C
.byte $00, $B0, $42, $4C, $B4, $B2, $38, $00, $08, $FF, $34, $06, $0C, $FF, $1E, $02 ; CPU:$B75B PRG:375B 00 B0 42 4C B4 B2 38 00 08 FF 34 06 0C FF 1E 02
.byte $0E, $FF, $1E, $02, $12, $FF, $1E, $02, $16, $FF, $1A, $2E, $3F, $1A, $02, $12 ; CPU:$B76B PRG:376B 0E FF 1E 02 12 FF 1E 02 16 FF 1A 2E 3F 1A 02 12
.byte $FF, $1A, $4E, $D4, $07, $16, $4E, $D4, $0D, $14, $0E, $06, $AA, $12, $0C, $06 ; CPU:$B77B PRG:377B FF 1A 4E D4 07 16 4E D4 0D 14 0E 06 AA 12 0C 06
.byte $AA, $12, $4E, $D4, $0D, $0C, $32, $00, $30, $FE, $34, $FE, $2C, $F0, $2A, $27 ; CPU:$B78B PRG:378B AA 12 4E D4 0D 0C 32 00 30 FE 34 FE 2C F0 2A 27
.byte $1A, $F0, $26, $1C, $FF, $EE, $32, $E6, $4C, $64, $B4, $E4, $02, $14, $FF, $E0 ; CPU:$B79B PRG:379B 1A F0 26 1C FF EE 32 E6 4C 64 B4 E4 02 14 FF E0
.byte $4C, $DC, $B6, $DC, $4C, $64, $B6, $D6, $02, $12, $FF, $D6, $02, $16, $FF, $D6 ; CPU:$B7AB PRG:37AB 4C DC B6 DC 4C 64 B6 D6 02 12 FF D6 02 16 FF D6
.byte $4C, $DC, $B6, $D2, $4C, $64, $B6, $D2, $02, $14, $FF, $CC, $4C, $DC, $B6, $CA ; CPU:$B7BB PRG:37BB 4C DC B6 D2 4C 64 B6 D2 02 14 FF CC 4C DC B6 CA
.byte $00, $06, $FF, $CA, $00, $14, $FF, $C6, $4C, $64, $B8, $C6, $4C, $DC, $BA, $C4 ; CPU:$B7CB PRG:37CB 00 06 FF CA 00 14 FF C6 4C 64 B8 C6 4C DC BA C4
.byte $34, $C2, $2C, $BA, $4E, $94, $0D, $BA, $4E, $B0, $0D, $B6, $4E, $94, $0E, $B6 ; CPU:$B7DB PRG:37DB 34 C2 2C BA 4E 94 0D BA 4E B0 0D B6 4E 94 0E B6
.byte $4E, $B0, $0D, $B2, $2C, $A2, $2C, $94, $06, $12, $FF, $92, $32, $92, $06, $14 ; CPU:$B7EB PRG:37EB 4E B0 0D B2 2C A2 2C 94 06 12 FF 92 32 92 06 14
.byte $FF, $90, $06, $14, $FF, $8E, $06, $16, $FF, $84, $2C, $7C, $00, $04, $FF, $7C ; CPU:$B7FB PRG:37FB FF 90 06 14 FF 8E 06 16 FF 84 2C 7C 00 04 FF 7C
.byte $00, $12, $FF, $7C, $00, $16, $FF, $78, $00, $08, $FF, $78, $00, $14, $FF, $78 ; CPU:$B80B PRG:380B 00 12 FF 7C 00 16 FF 78 00 08 FF 78 00 14 FF 78
.byte $00, $1C, $FF, $6E, $0E, $10, $FF, $6E, $4E, $CC, $0D, $6C, $0C, $10, $FF, $6A ; CPU:$B81B PRG:381B 00 1C FF 6E 0E 10 FF 6E 4E CC 0D 6C 0C 10 FF 6A
.byte $32, $6A, $4E, $CC, $0D, $66, $26, $0A, $FF, $64, $26, $0C, $FF, $62, $2C, $52 ; CPU:$B82B PRG:382B 32 6A 4E CC 0D 66 26 0A FF 64 26 0C FF 62 2C 52
.byte $32, $4E, $00, $10, $FF, $4C, $06, $12, $FF, $4A, $4C, $CC, $BC, $42, $02, $12 ; CPU:$B83B PRG:383B 32 4E 00 10 FF 4C 06 12 FF 4A 4C CC BC 42 02 12
.byte $FF, $3C, $02, $04, $FF, $3A, $26, $12, $FF, $3A, $02, $1C, $FF, $36, $02, $12 ; CPU:$B84B PRG:384B FF 3C 02 04 FF 3A 26 12 FF 3A 02 1C FF 36 02 12
.byte $FF, $34, $4C, $64, $BE, $34, $4C, $CC, $BE, $30, $2E, $E6, $22, $4C, $A8, $C0 ; CPU:$B85B PRG:385B FF 34 4C 64 BE 34 4C CC BE 30 2E E6 22 4C A8 C0
.byte $22, $4C, $CC, $C2, $20, $32, $1C, $4C, $CC, $C4, $16, $0E, $0E, $FF, $16, $0E ; CPU:$B86B PRG:386B 22 4C CC C2 20 32 1C 4C CC C4 16 0E 0E FF 16 0E
.byte $12, $FF, $14, $2E, $7E, $14, $0C, $0E, $FF, $14, $0C, $12, $FF, $0C, $32, $0C ; CPU:$B87B PRG:387B 12 FF 14 2E 7E 14 0C 0E FF 14 0C 12 FF 0C 32 0C
.byte $38, $03, $00, $0C, $3A, $03, $00, $0C, $3E, $07, $00, $0C, $3C, $07, $00, $0C ; CPU:$B88B PRG:388B 38 03 00 0C 3A 03 00 0C 3E 07 00 0C 3C 07 00 0C
.byte $36, $C0, $00, $00, $FF, $FF, $FF, $FF, $FF, $FF, $AA, $AA, $AA, $FF, $FF, $FF ; CPU:$B89B PRG:389B 36 C0 00 00 FF FF FF FF FF FF AA AA AA FF FF FF
; -----------------------------------------------------------------------------
; Routine: SetOamPtrs
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SetOamPtrs:
lda #$00 ; CPU:$B8AB PRG:38AB A9 00
sta ZpF0 ; CPU:$B8AD PRG:38AD 85 F0
lda #$06 ; CPU:$B8AF PRG:38AF A9 06
sta ZpF1 ; CPU:$B8B1 PRG:38B1 85 F1
lda #$20 ; CPU:$B8B3 PRG:38B3 A9 20
sta ZpF2 ; CPU:$B8B5 PRG:38B5 85 F2
lda #$06 ; CPU:$B8B7 PRG:38B7 A9 06
sta ZpF3 ; CPU:$B8B9 PRG:38B9 85 F3
lda $BB6D ; CPU:$B8BB PRG:38BB AD 6D BB
sta ZpF4 ; CPU:$B8BE PRG:38BE 85 F4
lda $BB6E ; CPU:$B8C0 PRG:38C0 AD 6E BB
sta ZpF5 ; CPU:$B8C3 PRG:38C3 85 F5
lda #$40 ; CPU:$B8C5 PRG:38C5 A9 40
sta ZpF7 ; CPU:$B8C7 PRG:38C7 85 F7
lda #$1F ; CPU:$B8C9 PRG:38C9 A9 1F
sta APUSTATUS ; CPU:$B8CB PRG:38CB 8D 15 40
lda #$C0 ; CPU:$B8CE PRG:38CE A9 C0
sta $4017 ; CPU:$B8D0 PRG:38D0 8D 17 40
; -----------------------------------------------------------------------------
; Routine: ClearOamInit
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ClearOamInit:
ldy #$00 ; CPU:$B8D3 PRG:38D3 A0 00
lda #$00 ; CPU:$B8D5 PRG:38D5 A9 00
; -----------------------------------------------------------------------------
; Routine: Sub_B8D7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_B8D7:
sta (ZpF0),y ; CPU:$B8D7 PRG:38D7 91 F0
iny ; CPU:$B8D9 PRG:38D9 C8
cpy #$14 ; CPU:$B8DA PRG:38DA C0 14
bne Sub_B8D7 ; CPU:$B8DC PRG:38DC D0 F9
ldy #$00 ; CPU:$B8DE PRG:38DE A0 00
ldx #$14 ; CPU:$B8E0 PRG:38E0 A2 14
; -----------------------------------------------------------------------------
; Routine: Sub_B8E2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_B8E2:
lda #$00 ; CPU:$B8E2 PRG:38E2 A9 00
sta (ZpF2),y ; CPU:$B8E4 PRG:38E4 91 F2
tya ; CPU:$B8E6 PRG:38E6 98
clc ; CPU:$B8E7 PRG:38E7 18
adc #$08 ; CPU:$B8E8 PRG:38E8 69 08
tay ; CPU:$B8EA PRG:38EA A8
dex ; CPU:$B8EB PRG:38EB CA
bne Sub_B8E2 ; CPU:$B8EC PRG:38EC D0 F4
rts ; CPU:$B8EE PRG:38EE 60
; -----------------------------------------------------------------------------
; Routine: ClearZpVars
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ClearZpVars:
lda #$00 ; CPU:$B8EF PRG:38EF A9 00
sta ZpF8 ; CPU:$B8F1 PRG:38F1 85 F8
sta ZpF9 ; CPU:$B8F3 PRG:38F3 85 F9
sta ZpFA ; CPU:$B8F5 PRG:38F5 85 FA
sta ZpFB ; CPU:$B8F7 PRG:38F7 85 FB
sta ZpFD ; CPU:$B8F9 PRG:38F9 85 FD
sta ZpFF ; CPU:$B8FB PRG:38FB 85 FF
lda #$F8 ; CPU:$B8FD PRG:38FD A9 F8
sta ZpFE ; CPU:$B8FF PRG:38FF 85 FE
; -----------------------------------------------------------------------------
; Routine: Sub_B901
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_B901:
ldy ZpFD ; CPU:$B901 PRG:3901 A4 FD
lda (ZpF2),y ; CPU:$B903 PRG:3903 B1 F2
beq OamEntryDone ; CPU:$B905 PRG:3905 F0 44
cmp #$05 ; CPU:$B907 PRG:3907 C9 05
bcc Sub_B916 ; CPU:$B909 PRG:3909 90 0B
sec ; CPU:$B90B PRG:390B 38
sbc #$05 ; CPU:$B90C PRG:390C E9 05
tay ; CPU:$B90E PRG:390E A8
lda #$01 ; CPU:$B90F PRG:390F A9 01
sta (ZpFE),y ; CPU:$B911 PRG:3911 91 FE
jmp OamEntryDone ; CPU:$B913 PRG:3913 4C 4B B9
; -----------------------------------------------------------------------------
; Routine: Sub_B916
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_B916:
sec ; CPU:$B916 PRG:3916 38
sbc #$01 ; CPU:$B917 PRG:3917 E9 01
tay ; CPU:$B919 PRG:3919 A8
lda (ZpFE),y ; CPU:$B91A PRG:391A B1 FE
bne OamEntryDone ; CPU:$B91C PRG:391C D0 2D
lda #$01 ; CPU:$B91E PRG:391E A9 01
sta (ZpFE),y ; CPU:$B920 PRG:3920 91 FE
tya ; CPU:$B922 PRG:3922 98
tax ; CPU:$B923 PRG:3923 AA
cmp #$03 ; CPU:$B924 PRG:3924 C9 03
bne Sub_B92D ; CPU:$B926 PRG:3926 D0 05
lda #$00 ; CPU:$B928 PRG:3928 A9 00
jmp WriteOamAttr ; CPU:$B92A PRG:392A 4C 30 B9
; -----------------------------------------------------------------------------
; Routine: Sub_B92D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_B92D:
clc ; CPU:$B92D PRG:392D 18
adc #$05 ; CPU:$B92E PRG:392E 69 05
; -----------------------------------------------------------------------------
; Routine: WriteOamAttr
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
WriteOamAttr:
ldy ZpFD ; CPU:$B930 PRG:3930 A4 FD
sta (ZpF2),y ; CPU:$B932 PRG:3932 91 F2
txa ; CPU:$B934 PRG:3934 8A
asl a ; CPU:$B935 PRG:3935 0A
asl a ; CPU:$B936 PRG:3936 0A
sta ZpF6 ; CPU:$B937 PRG:3937 85 F6
ldx #$00 ; CPU:$B939 PRG:3939 A2 00
lda #$04 ; CPU:$B93B PRG:393B A9 04
; -----------------------------------------------------------------------------
; Routine: Sub_B93D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_B93D:
pha ; CPU:$B93D PRG:393D 48
iny ; CPU:$B93E PRG:393E C8
lda (ZpF2),y ; CPU:$B93F PRG:393F B1 F2
sta (ZpF6,x) ; CPU:$B941 PRG:3941 81 F6
inc ZpF6 ; CPU:$B943 PRG:3943 E6 F6
pla ; CPU:$B945 PRG:3945 68
sec ; CPU:$B946 PRG:3946 38
sbc #$01 ; CPU:$B947 PRG:3947 E9 01
bne Sub_B93D ; CPU:$B949 PRG:3949 D0 F2
; -----------------------------------------------------------------------------
; Routine: OamEntryDone
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
OamEntryDone:
lda ZpFD ; CPU:$B94B PRG:394B A5 FD
clc ; CPU:$B94D PRG:394D 18
adc #$08 ; CPU:$B94E PRG:394E 69 08
sta ZpFD ; CPU:$B950 PRG:3950 85 FD
cmp #$A0 ; CPU:$B952 PRG:3952 C9 A0
bcc Sub_B901 ; CPU:$B954 PRG:3954 90 AB
ldy #$00 ; CPU:$B956 PRG:3956 A0 00
sty ZpFC ; CPU:$B958 PRG:3958 84 FC
sty ZpFD ; CPU:$B95A PRG:395A 84 FD
; -----------------------------------------------------------------------------
; Routine: UpdateOamSprite
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
UpdateOamSprite:
lda $BB97 ; CPU:$B95C PRG:395C AD 97 BB
sta ZpFE ; CPU:$B95F PRG:395F 85 FE
lda $BB98 ; CPU:$B961 PRG:3961 AD 98 BB
sta ZpFF ; CPU:$B964 PRG:3964 85 FF
ldy ZpFC ; CPU:$B966 PRG:3966 A4 FC
lda (ZpFE),y ; CPU:$B968 PRG:3968 B1 FE
beq Sub_B985 ; CPU:$B96A PRG:396A F0 19
ldy ZpFC ; CPU:$B96C PRG:396C A4 FC
lda (ZpF0),y ; CPU:$B96E PRG:396E B1 F0
beq Sub_B979 ; CPU:$B970 PRG:3970 F0 07
lda #$00 ; CPU:$B972 PRG:3972 A9 00
sta (ZpF0),y ; CPU:$B974 PRG:3974 91 F0
jmp ProcessSpriteList ; CPU:$B976 PRG:3976 4C 94 B9
; -----------------------------------------------------------------------------
; Routine: Sub_B979
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_B979:
ldy ZpFD ; CPU:$B979 PRG:3979 A4 FD
lda (ZpF2),y ; CPU:$B97B PRG:397B B1 F2
bne Sub_B982 ; CPU:$B97D PRG:397D D0 03
jmp SpriteListDone ; CPU:$B97F PRG:397F 4C 65 BA
; -----------------------------------------------------------------------------
; Routine: Sub_B982
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_B982:
jmp SetSpriteActive ; CPU:$B982 PRG:3982 4C 00 BA
; -----------------------------------------------------------------------------
; Routine: Sub_B985
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_B985:
ldy ZpFC ; CPU:$B985 PRG:3985 A4 FC
lda (ZpF0),y ; CPU:$B987 PRG:3987 B1 F0
bne Sub_B98E ; CPU:$B989 PRG:3989 D0 03
jmp SpriteListDone ; CPU:$B98B PRG:398B 4C 65 BA
; -----------------------------------------------------------------------------
; Routine: Sub_B98E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_B98E:
ldy ZpFD ; CPU:$B98E PRG:398E A4 FD
lda (ZpF2),y ; CPU:$B990 PRG:3990 B1 F2
bne SetSpriteActive ; CPU:$B992 PRG:3992 D0 6C
; -----------------------------------------------------------------------------
; Routine: ProcessSpriteList
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ProcessSpriteList:
lda ZpFC ; CPU:$B994 PRG:3994 A5 FC
asl a ; CPU:$B996 PRG:3996 0A
tay ; CPU:$B997 PRG:3997 A8
lda (ZpF4),y ; CPU:$B998 PRG:3998 B1 F4
pha ; CPU:$B99A PRG:399A 48
lda ZpFD ; CPU:$B99B PRG:399B A5 FD
adc #$05 ; CPU:$B99D PRG:399D 69 05
tay ; CPU:$B99F PRG:399F A8
pla ; CPU:$B9A0 PRG:39A0 68
sta (ZpF2),y ; CPU:$B9A1 PRG:39A1 91 F2
lda ZpFC ; CPU:$B9A3 PRG:39A3 A5 FC
asl a ; CPU:$B9A5 PRG:39A5 0A
adc #$01 ; CPU:$B9A6 PRG:39A6 69 01
tay ; CPU:$B9A8 PRG:39A8 A8
lda (ZpF4),y ; CPU:$B9A9 PRG:39A9 B1 F4
pha ; CPU:$B9AB PRG:39AB 48
lda ZpFD ; CPU:$B9AC PRG:39AC A5 FD
adc #$06 ; CPU:$B9AE PRG:39AE 69 06
tay ; CPU:$B9B0 PRG:39B0 A8
pla ; CPU:$B9B1 PRG:39B1 68
sta (ZpF2),y ; CPU:$B9B2 PRG:39B2 91 F2
jsr CalcOamPtr ; CPU:$B9B4 PRG:39B4 20 30 BB
ldy ZpFD ; CPU:$B9B7 PRG:39B7 A4 FD
sta (ZpF2),y ; CPU:$B9B9 PRG:39B9 91 F2
jsr CalcOamPtr ; CPU:$B9BB PRG:39BB 20 30 BB
tax ; CPU:$B9BE PRG:39BE AA
lda ZpFD ; CPU:$B9BF PRG:39BF A5 FD
clc ; CPU:$B9C1 PRG:39C1 18
adc #$01 ; CPU:$B9C2 PRG:39C2 69 01
tay ; CPU:$B9C4 PRG:39C4 A8
txa ; CPU:$B9C5 PRG:39C5 8A
sta (ZpF2),y ; CPU:$B9C6 PRG:39C6 91 F2
jsr CalcOamPtr ; CPU:$B9C8 PRG:39C8 20 30 BB
tax ; CPU:$B9CB PRG:39CB AA
lda ZpFD ; CPU:$B9CC PRG:39CC A5 FD
clc ; CPU:$B9CE PRG:39CE 18
adc #$02 ; CPU:$B9CF PRG:39CF 69 02
tay ; CPU:$B9D1 PRG:39D1 A8
txa ; CPU:$B9D2 PRG:39D2 8A
sta (ZpF2),y ; CPU:$B9D3 PRG:39D3 91 F2
jsr CalcOamPtr ; CPU:$B9D5 PRG:39D5 20 30 BB
tax ; CPU:$B9D8 PRG:39D8 AA
lda ZpFD ; CPU:$B9D9 PRG:39D9 A5 FD
clc ; CPU:$B9DB PRG:39DB 18
adc #$04 ; CPU:$B9DC PRG:39DC 69 04
tay ; CPU:$B9DE PRG:39DE A8
txa ; CPU:$B9DF PRG:39DF 8A
sta (ZpF2),y ; CPU:$B9E0 PRG:39E0 91 F2
ldy ZpFD ; CPU:$B9E2 PRG:39E2 A4 FD
lda (ZpF2),y ; CPU:$B9E4 PRG:39E4 B1 F2
cmp #$04 ; CPU:$B9E6 PRG:39E6 C9 04
bne SetSpriteAttr ; CPU:$B9E8 PRG:39E8 D0 25
jsr CalcOamPtr ; CPU:$B9EA PRG:39EA 20 30 BB
tax ; CPU:$B9ED PRG:39ED AA
lda ZpFD ; CPU:$B9EE PRG:39EE A5 FD
clc ; CPU:$B9F0 PRG:39F0 18
adc #$03 ; CPU:$B9F1 PRG:39F1 69 03
tay ; CPU:$B9F3 PRG:39F3 A8
txa ; CPU:$B9F4 PRG:39F4 8A
sta (ZpF2),y ; CPU:$B9F5 PRG:39F5 91 F2
ldy ZpFC ; CPU:$B9F7 PRG:39F7 A4 FC
lda #$00 ; CPU:$B9F9 PRG:39F9 A9 00
sta (ZpF0),y ; CPU:$B9FB PRG:39FB 91 F0
jmp SpriteListDone ; CPU:$B9FD PRG:39FD 4C 65 BA
; -----------------------------------------------------------------------------
; Routine: SetSpriteActive
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SetSpriteActive:
lda ZpFD ; CPU:$BA00 PRG:3A00 A5 FD
clc ; CPU:$BA02 PRG:3A02 18
adc #$07 ; CPU:$BA03 PRG:3A03 69 07
tay ; CPU:$BA05 PRG:3A05 A8
lda (ZpF2),y ; CPU:$BA06 PRG:3A06 B1 F2
sec ; CPU:$BA08 PRG:3A08 38
sbc #$01 ; CPU:$BA09 PRG:3A09 E9 01
sta (ZpF2),y ; CPU:$BA0B PRG:3A0B 91 F2
bne SpriteListDone ; CPU:$BA0D PRG:3A0D D0 56
; -----------------------------------------------------------------------------
; Routine: SetSpriteAttr
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SetSpriteAttr:
jsr CalcOamPtr ; CPU:$BA0F PRG:3A0F 20 30 BB
cmp #$F0 ; CPU:$BA12 PRG:3A12 C9 F0
bcs Sub_BA7A ; CPU:$BA14 PRG:3A14 B0 64
cmp #$C0 ; CPU:$BA16 PRG:3A16 C9 C0
bcs Sub_BA58 ; CPU:$BA18 PRG:3A18 B0 3E
pha ; CPU:$BA1A PRG:3A1A 48
and #$F0 ; CPU:$BA1B PRG:3A1B 29 F0
lsr a ; CPU:$BA1D PRG:3A1D 4A
lsr a ; CPU:$BA1E PRG:3A1E 4A
lsr a ; CPU:$BA1F PRG:3A1F 4A
tax ; CPU:$BA20 PRG:3A20 AA
lda $BB55,x ; CPU:$BA21 PRG:3A21 BD 55 BB
sta ZpFE ; CPU:$BA24 PRG:3A24 85 FE
lda $BB56,x ; CPU:$BA26 PRG:3A26 BD 56 BB
sta ZpFF ; CPU:$BA29 PRG:3A29 85 FF
pla ; CPU:$BA2B PRG:3A2B 68
and #$0F ; CPU:$BA2C PRG:3A2C 29 0F
beq Sub_BA38 ; CPU:$BA2E PRG:3A2E F0 08
tax ; CPU:$BA30 PRG:3A30 AA
; -----------------------------------------------------------------------------
; Routine: Sub_BA31
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_BA31:
lsr ZpFE ; CPU:$BA31 PRG:3A31 46 FE
ror ZpFF ; CPU:$BA33 PRG:3A33 66 FF
dex ; CPU:$BA35 PRG:3A35 CA
bne Sub_BA31 ; CPU:$BA36 PRG:3A36 D0 F9
; -----------------------------------------------------------------------------
; Routine: Sub_BA38
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_BA38:
lda ZpFD ; CPU:$BA38 PRG:3A38 A5 FD
clc ; CPU:$BA3A PRG:3A3A 18
adc #$04 ; CPU:$BA3B PRG:3A3B 69 04
tay ; CPU:$BA3D PRG:3A3D A8
lda (ZpF2),y ; CPU:$BA3E PRG:3A3E B1 F2
and #$F8 ; CPU:$BA40 PRG:3A40 29 F8
ora ZpFE ; CPU:$BA42 PRG:3A42 05 FE
sta (ZpF2),y ; CPU:$BA44 PRG:3A44 91 F2
lda ZpFF ; CPU:$BA46 PRG:3A46 A5 FF
dey ; CPU:$BA48 PRG:3A48 88
sta (ZpF2),y ; CPU:$BA49 PRG:3A49 91 F2
ldy ZpFD ; CPU:$BA4B PRG:3A4B A4 FD
lda (ZpF2),y ; CPU:$BA4D PRG:3A4D B1 F2
cmp #$05 ; CPU:$BA4F PRG:3A4F C9 05
bcc Sub_BA58 ; CPU:$BA51 PRG:3A51 90 05
sec ; CPU:$BA53 PRG:3A53 38
sbc #$04 ; CPU:$BA54 PRG:3A54 E9 04
sta (ZpF2),y ; CPU:$BA56 PRG:3A56 91 F2
; -----------------------------------------------------------------------------
; Routine: Sub_BA58
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_BA58:
jsr CalcOamPtr ; CPU:$BA58 PRG:3A58 20 30 BB
pha ; CPU:$BA5B PRG:3A5B 48
lda ZpFD ; CPU:$BA5C PRG:3A5C A5 FD
clc ; CPU:$BA5E PRG:3A5E 18
adc #$07 ; CPU:$BA5F PRG:3A5F 69 07
tay ; CPU:$BA61 PRG:3A61 A8
pla ; CPU:$BA62 PRG:3A62 68
sta (ZpF2),y ; CPU:$BA63 PRG:3A63 91 F2
; -----------------------------------------------------------------------------
; Routine: SpriteListDone
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SpriteListDone:
lda ZpFD ; CPU:$BA65 PRG:3A65 A5 FD
clc ; CPU:$BA67 PRG:3A67 18
adc #$08 ; CPU:$BA68 PRG:3A68 69 08
sta ZpFD ; CPU:$BA6A PRG:3A6A 85 FD
lda ZpFC ; CPU:$BA6C PRG:3A6C A5 FC
adc #$01 ; CPU:$BA6E PRG:3A6E 69 01
sta ZpFC ; CPU:$BA70 PRG:3A70 85 FC
cmp #$14 ; CPU:$BA72 PRG:3A72 C9 14
bcs Sub_BA79 ; CPU:$BA74 PRG:3A74 B0 03
jmp UpdateOamSprite ; CPU:$BA76 PRG:3A76 4C 5C B9
; -----------------------------------------------------------------------------
; Routine: Sub_BA79
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_BA79:
rts ; CPU:$BA79 PRG:3A79 60
; -----------------------------------------------------------------------------
; Routine: Sub_BA7A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_BA7A:
and #$0F ; CPU:$BA7A PRG:3A7A 29 0F
asl a ; CPU:$BA7C PRG:3A7C 0A
tax ; CPU:$BA7D PRG:3A7D AA
lda $BA8B,x ; CPU:$BA7E PRG:3A7E BD 8B BA
sta ZpFE ; CPU:$BA81 PRG:3A81 85 FE
lda $BA8C,x ; CPU:$BA83 PRG:3A83 BD 8C BA
sta ZpFF ; CPU:$BA86 PRG:3A86 85 FF
jmp ($00FE) ; CPU:$BA88 PRG:3A88 6C FE 00
IndDispatchFeTable:
; 16-entry indirect jump table for `jmp ($fe)` at $BA88, read by lda $BA8B,x/$BA8C,x
; ---- data $BA8B-$BAAA (32 bytes) ----
; referenced by `lda $BA8B,x` at $BA7E (operand $BA8B falls inside this region)
; referenced by `lda $BA8C,x` at $BA83 (operand $BA8C falls inside this region)
.byte $AB, $BA, $B8, $BA, $D0, $BA, $E8, $BA, $00, $BB, $10, $BB, $20, $BB, $AB, $BA ; CPU:$BA8B PRG:3A8B AB BA B8 BA D0 BA E8 BA 00 BB 10 BB 20 BB AB BA
.byte $AB, $BA, $AB, $BA, $AB, $BA, $AB, $BA, $AB, $BA, $AB, $BA, $AB, $BA, $AB, $BA ; CPU:$BA9B PRG:3A9B AB BA AB BA AB BA AB BA AB BA AB BA AB BA AB BA
; -----------------------------------------------------------------------------
; Routine: SetAttrZero
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SetAttrZero:
ldy ZpFC ; CPU:$BAAB PRG:3AAB A4 FC
lda #$00 ; CPU:$BAAD PRG:3AAD A9 00
sta (ZpF0),y ; CPU:$BAAF PRG:3AAF 91 F0
ldy ZpFD ; CPU:$BAB1 PRG:3AB1 A4 FD
sta (ZpF2),y ; CPU:$BAB3 PRG:3AB3 91 F2
jmp SpriteListDone ; CPU:$BAB5 PRG:3AB5 4C 65 BA
; -----------------------------------------------------------------------------
; Routine: SetAttrBit6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SetAttrBit6:
jsr CalcOamPtr ; CPU:$BAB8 PRG:3AB8 20 30 BB
pha ; CPU:$BABB PRG:3ABB 48
lda ZpFD ; CPU:$BABC PRG:3ABC A5 FD
clc ; CPU:$BABE PRG:3ABE 18
adc #$01 ; CPU:$BABF PRG:3ABF 69 01
tay ; CPU:$BAC1 PRG:3AC1 A8
lda (ZpF2),y ; CPU:$BAC2 PRG:3AC2 B1 F2
and #$3F ; CPU:$BAC4 PRG:3AC4 29 3F
sta (ZpF2),y ; CPU:$BAC6 PRG:3AC6 91 F2
pla ; CPU:$BAC8 PRG:3AC8 68
ora (ZpF2),y ; CPU:$BAC9 PRG:3AC9 11 F2
sta (ZpF2),y ; CPU:$BACB PRG:3ACB 91 F2
jmp SetSpriteAttr ; CPU:$BACD PRG:3ACD 4C 0F BA
; -----------------------------------------------------------------------------
; Routine: SetAttrClear67
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SetAttrClear67:
jsr CalcOamPtr ; CPU:$BAD0 PRG:3AD0 20 30 BB
pha ; CPU:$BAD3 PRG:3AD3 48
lda ZpFD ; CPU:$BAD4 PRG:3AD4 A5 FD
clc ; CPU:$BAD6 PRG:3AD6 18
adc #$01 ; CPU:$BAD7 PRG:3AD7 69 01
tay ; CPU:$BAD9 PRG:3AD9 A8
lda (ZpF2),y ; CPU:$BADA PRG:3ADA B1 F2
and #$CF ; CPU:$BADC PRG:3ADC 29 CF
sta (ZpF2),y ; CPU:$BADE PRG:3ADE 91 F2
pla ; CPU:$BAE0 PRG:3AE0 68
ora (ZpF2),y ; CPU:$BAE1 PRG:3AE1 11 F2
sta (ZpF2),y ; CPU:$BAE3 PRG:3AE3 91 F2
jmp SetSpriteAttr ; CPU:$BAE5 PRG:3AE5 4C 0F BA
; -----------------------------------------------------------------------------
; Routine: SetAttrClear5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SetAttrClear5:
jsr CalcOamPtr ; CPU:$BAE8 PRG:3AE8 20 30 BB
pha ; CPU:$BAEB PRG:3AEB 48
lda ZpFD ; CPU:$BAEC PRG:3AEC A5 FD
clc ; CPU:$BAEE PRG:3AEE 18
adc #$01 ; CPU:$BAEF PRG:3AEF 69 01
tay ; CPU:$BAF1 PRG:3AF1 A8
lda (ZpF2),y ; CPU:$BAF2 PRG:3AF2 B1 F2
and #$F0 ; CPU:$BAF4 PRG:3AF4 29 F0
sta (ZpF2),y ; CPU:$BAF6 PRG:3AF6 91 F2
pla ; CPU:$BAF8 PRG:3AF8 68
ora (ZpF2),y ; CPU:$BAF9 PRG:3AF9 11 F2
sta (ZpF2),y ; CPU:$BAFB PRG:3AFB 91 F2
jmp SetSpriteAttr ; CPU:$BAFD PRG:3AFD 4C 0F BA
; -----------------------------------------------------------------------------
; Routine: SetAttrByteLo
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SetAttrByteLo:
jsr CalcOamPtr ; CPU:$BB00 PRG:3B00 20 30 BB
pha ; CPU:$BB03 PRG:3B03 48
lda ZpFD ; CPU:$BB04 PRG:3B04 A5 FD
clc ; CPU:$BB06 PRG:3B06 18
adc #$02 ; CPU:$BB07 PRG:3B07 69 02
tay ; CPU:$BB09 PRG:3B09 A8
pla ; CPU:$BB0A PRG:3B0A 68
sta (ZpF2),y ; CPU:$BB0B PRG:3B0B 91 F2
jmp SetSpriteAttr ; CPU:$BB0D PRG:3B0D 4C 0F BA
; -----------------------------------------------------------------------------
; Routine: SetAttrByte4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SetAttrByte4:
jsr CalcOamPtr ; CPU:$BB10 PRG:3B10 20 30 BB
pha ; CPU:$BB13 PRG:3B13 48
lda ZpFD ; CPU:$BB14 PRG:3B14 A5 FD
clc ; CPU:$BB16 PRG:3B16 18
adc #$04 ; CPU:$BB17 PRG:3B17 69 04
tay ; CPU:$BB19 PRG:3B19 A8
pla ; CPU:$BB1A PRG:3B1A 68
sta (ZpF2),y ; CPU:$BB1B PRG:3B1B 91 F2
jmp SetSpriteAttr ; CPU:$BB1D PRG:3B1D 4C 0F BA
; -----------------------------------------------------------------------------
; Routine: SetAttrByte1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
SetAttrByte1:
jsr CalcOamPtr ; CPU:$BB20 PRG:3B20 20 30 BB
pha ; CPU:$BB23 PRG:3B23 48
lda ZpFD ; CPU:$BB24 PRG:3B24 A5 FD
clc ; CPU:$BB26 PRG:3B26 18
adc #$01 ; CPU:$BB27 PRG:3B27 69 01
tay ; CPU:$BB29 PRG:3B29 A8
pla ; CPU:$BB2A PRG:3B2A 68
sta (ZpF2),y ; CPU:$BB2B PRG:3B2B 91 F2
jmp SetSpriteAttr ; CPU:$BB2D PRG:3B2D 4C 0F BA
; -----------------------------------------------------------------------------
; Routine: CalcOamPtr
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
CalcOamPtr:
lda ZpFD ; CPU:$BB30 PRG:3B30 A5 FD
clc ; CPU:$BB32 PRG:3B32 18
adc #$05 ; CPU:$BB33 PRG:3B33 69 05
tay ; CPU:$BB35 PRG:3B35 A8
lda (ZpF2),y ; CPU:$BB36 PRG:3B36 B1 F2
sta ZpFE ; CPU:$BB38 PRG:3B38 85 FE
iny ; CPU:$BB3A PRG:3B3A C8
lda (ZpF2),y ; CPU:$BB3B PRG:3B3B B1 F2
sta ZpFF ; CPU:$BB3D PRG:3B3D 85 FF
ldx #$00 ; CPU:$BB3F PRG:3B3F A2 00
lda (ZpFE,x) ; CPU:$BB41 PRG:3B41 A1 FE
pha ; CPU:$BB43 PRG:3B43 48
lda ZpFE ; CPU:$BB44 PRG:3B44 A5 FE
dey ; CPU:$BB46 PRG:3B46 88
clc ; CPU:$BB47 PRG:3B47 18
adc #$01 ; CPU:$BB48 PRG:3B48 69 01
sta (ZpF2),y ; CPU:$BB4A PRG:3B4A 91 F2
lda ZpFF ; CPU:$BB4C PRG:3B4C A5 FF
adc #$00 ; CPU:$BB4E PRG:3B4E 69 00
iny ; CPU:$BB50 PRG:3B50 C8
sta (ZpF2),y ; CPU:$BB51 PRG:3B51 91 F2
pla ; CPU:$BB53 PRG:3B53 68
rts ; CPU:$BB54 PRG:3B54 60
; ---- data $BB55-$BEFA (934 bytes) ----
SpriteAttrTable:
; referenced by `lda $BB6D` at $B8BB (operand $BB6D falls inside this region)
; referenced by `lda $BB6E` at $B8C0 (operand $BB6E falls inside this region)
; referenced by `lda $BB97` at $B95C (operand $BB97 falls inside this region)
; referenced by `lda $BB98` at $B961 (operand $BB98 falls inside this region)
; referenced by `lda $BB55,x` at $BA21 (operand $BB55 falls inside this region)
; referenced by `lda $BB56,x` at $BA26 (operand $BB56 falls inside this region)
.byte $03, $F9, $03, $C0, $03, $8A, $03, $57, $03, $27, $02, $FA, $02, $CF, $02, $A7 ; CPU:$BB55 PRG:3B55 03 F9 03 C0 03 8A 03 57 03 27 02 FA 02 CF 02 A7
.byte $02, $81, $02, $5D, $02, $3B, $02, $1B, $6F, $BB, $7B, $BD, $D2, $BD, $29, $BE ; CPU:$BB65 PRG:3B65 02 81 02 5D 02 3B 02 1B 6F BB 7B BD D2 BD 29 BE
.byte $BA, $BC, $CD, $BC, $52, $BD, $87, $BE, $25, $BD, $2E, $BD, $A0, $BC, $AD, $BC ; CPU:$BB75 PRG:3B75 BA BC CD BC 52 BD 87 BE 25 BD 2E BD A0 BC AD BC
.byte $AD, $BB, $E0, $BC, $76, $BE, $BC, $BE, $59, $BC, $08, $BC, $4D, $BC, $53, $BC ; CPU:$BB85 PRG:3B85 AD BB E0 BC 76 BE BC BE 59 BC 08 BC 4D BC 53 BC
.byte $35, $BD, $99, $BB, $00, $00, $00, $00, $00, $00, $00, $01, $01, $01, $01, $00 ; CPU:$BB95 PRG:3B95 35 BD 99 BB 00 00 00 00 00 00 00 01 01 01 01 00
.byte $01, $01, $01, $01, $00, $00, $00, $01, $01, $9C, $7F, $28, $30, $02, $40, $02 ; CPU:$BBA5 PRG:3BA5 01 01 01 01 00 00 00 01 01 9C 7F 28 30 02 40 02
.byte $30, $02, $50, $02, $30, $02, $60, $02, $30, $02, $70, $02, $30, $02, $60, $02 ; CPU:$BBB5 PRG:3BB5 30 02 50 02 30 02 60 02 30 02 70 02 30 02 60 02
.byte $30, $02, $50, $02, $30, $02, $40, $02, $30, $02, $40, $02, $30, $02, $50, $02 ; CPU:$BBC5 PRG:3BC5 30 02 50 02 30 02 40 02 30 02 40 02 30 02 50 02
.byte $30, $02, $60, $02, $30, $02, $70, $02, $30, $02, $60, $02, $30, $02, $50, $02 ; CPU:$BBD5 PRG:3BD5 30 02 60 02 30 02 70 02 30 02 60 02 30 02 50 02
.byte $30, $02, $40, $02, $30, $02, $40, $02, $30, $02, $50, $02, $30, $02, $60, $02 ; CPU:$BBE5 PRG:3BE5 30 02 40 02 30 02 40 02 30 02 50 02 30 02 60 02
.byte $30, $02, $70, $02, $30, $02, $60, $02, $30, $02, $50, $02, $30, $02, $40, $02 ; CPU:$BBF5 PRG:3BF5 30 02 70 02 30 02 60 02 30 02 50 02 30 02 40 02
.byte $30, $02, $F0, $02, $94, $7F, $58, $32, $06, $33, $06, $23, $06, $33, $06, $73 ; CPU:$BC05 PRG:3C05 30 02 F0 02 94 7F 58 32 06 33 06 23 06 33 06 73
.byte $06, $33, $06, $23, $06, $33, $06, $32, $06, $33, $06, $13, $06, $33, $06, $73 ; CPU:$BC15 PRG:3C15 06 33 06 23 06 33 06 32 06 33 06 13 06 33 06 73
.byte $06, $33, $06, $13, $06, $33, $06, $32, $06, $33, $06, $03, $06, $33, $06, $73 ; CPU:$BC25 PRG:3C25 06 33 06 13 06 33 06 32 06 33 06 03 06 33 06 73
.byte $06, $33, $06, $03, $06, $33, $06, $32, $06, $33, $06, $B2, $06, $33, $06, $73 ; CPU:$BC35 PRG:3C35 06 33 06 03 06 33 06 32 06 33 06 B2 06 33 06 73
.byte $06, $33, $06, $B2, $06, $33, $06, $F0, $04, $0F, $7F, $40, $0E, $F0, $04, $06 ; CPU:$BC45 PRG:3C45 06 33 06 B2 06 33 06 F0 04 0F 7F 40 0E F0 04 06
.byte $7F, $40, $0C, $F0, $03, $08, $7F, $00, $33, $01, $43, $01, $53, $01, $63, $01 ; CPU:$BC55 PRG:3C55 7F 40 0C F0 03 08 7F 00 33 01 43 01 53 01 63 01
.byte $73, $01, $63, $01, $53, $01, $43, $01, $33, $01, $23, $01, $13, $01, $03, $01 ; CPU:$BC65 PRG:3C65 73 01 63 01 53 01 43 01 33 01 23 01 13 01 03 01
.byte $B2, $01, $A2, $01, $92, $01, $82, $01, $72, $01, $62, $01, $52, $01, $42, $01 ; CPU:$BC75 PRG:3C75 B2 01 A2 01 92 01 82 01 72 01 62 01 52 01 42 01
.byte $32, $01, $22, $01, $12, $01, $02, $01, $B1, $01, $A1, $01, $91, $01, $81, $01 ; CPU:$BC85 PRG:3C85 32 01 22 01 12 01 02 01 B1 01 A1 01 91 01 81 01
.byte $71, $01, $61, $01, $51, $01, $41, $01, $31, $01, $F0, $01, $1F, $7F, $28, $34 ; CPU:$BC95 PRG:3C95 71 01 61 01 51 01 41 01 31 01 F0 01 1F 7F 28 34
.byte $03, $A4, $03, $54, $03, $04, $03, $F0, $02, $1F, $7F, $28, $04, $03, $74, $03 ; CPU:$BCA5 PRG:3CA5 03 A4 03 54 03 04 03 F0 02 1F 7F 28 04 03 74 03
.byte $24, $03, $94, $03, $F0, $01, $DF, $7F, $10, $33, $08, $A2, $08, $72, $08, $32 ; CPU:$BCB5 PRG:3CB5 24 03 94 03 F0 01 DF 7F 10 33 08 A2 08 72 08 32
.byte $08, $72, $08, $A2, $08, $33, $08, $F0, $02, $DF, $7F, $10, $A2, $08, $72, $08 ; CPU:$BCC5 PRG:3CC5 08 72 08 A2 08 33 08 F0 02 DF 7F 10 A2 08 72 08
.byte $32, $08, $A1, $08, $32, $08, $72, $08, $A2, $08, $F0, $01, $9F, $7F, $28, $32 ; CPU:$BCD5 PRG:3CD5 32 08 A1 08 32 08 72 08 A2 08 F0 01 9F 7F 28 32
.byte $01, $50, $01, $42, $01, $50, $01, $32, $01, $60, $01, $42, $01, $60, $01, $32 ; CPU:$BCE5 PRG:3CE5 01 50 01 42 01 50 01 32 01 60 01 42 01 60 01 32
.byte $01, $70, $01, $42, $01, $70, $01, $32, $01, $90, $01, $42, $01, $90, $01, $32 ; CPU:$BCF5 PRG:3CF5 01 70 01 42 01 70 01 32 01 90 01 42 01 90 01 32
.byte $01, $50, $01, $42, $01, $50, $01, $32, $01, $60, $01, $42, $01, $60, $01, $32 ; CPU:$BD05 PRG:3D05 01 50 01 42 01 50 01 32 01 60 01 42 01 60 01 32
.byte $01, $70, $01, $42, $01, $70, $01, $32, $01, $90, $01, $42, $01, $90, $01, $F0 ; CPU:$BD15 PRG:3D15 01 70 01 42 01 70 01 32 01 90 01 42 01 90 01 F0
.byte $01, $01, $7F, $40, $33, $01, $43, $04, $F0, $02, $C1, $7F, $40, $43, $05, $F0 ; CPU:$BD25 PRG:3D25 01 01 7F 40 33 01 43 04 F0 02 C1 7F 40 43 05 F0
.byte $02, $94, $7F, $58, $32, $01, $22, $01, $12, $01, $02, $01, $B1, $01, $A1, $01 ; CPU:$BD35 PRG:3D35 02 94 7F 58 32 01 22 01 12 01 02 01 B1 01 A1 01
.byte $91, $01, $81, $01, $71, $01, $61, $01, $51, $01, $31, $06, $F0, $01, $9F, $7F ; CPU:$BD45 PRG:3D45 91 01 81 01 71 01 61 01 51 01 31 06 F0 01 9F 7F
.byte $28, $52, $02, $82, $02, $A2, $02, $03, $02, $33, $02, $53, $02, $52, $02, $82 ; CPU:$BD55 PRG:3D55 28 52 02 82 02 A2 02 03 02 33 02 53 02 52 02 82
.byte $02, $A2, $02, $03, $02, $33, $02, $53, $02, $52, $02, $82, $02, $A2, $02, $03 ; CPU:$BD65 PRG:3D65 02 A2 02 03 02 33 02 53 02 52 02 82 02 A2 02 03
.byte $02, $33, $02, $53, $02, $F0, $01, $1F, $7F, $20, $82, $20, $C0, $08, $F5, $80 ; CPU:$BD75 PRG:3D75 02 33 02 53 02 F0 01 1F 7F 20 82 20 C0 08 F5 80
.byte $32, $08, $82, $08, $03, $08, $33, $08, $03, $08, $C0, $08, $82, $08, $A2, $08 ; CPU:$BD85 PRG:3D85 32 08 82 08 03 08 33 08 03 08 C0 08 82 08 A2 08
.byte $C0, $08, $A2, $08, $A2, $08, $C0, $08, $F5, $D8, $52, $10, $C0, $08, $F5, $80 ; CPU:$BD95 PRG:3D95 C0 08 A2 08 A2 08 C0 08 F5 D8 52 10 C0 08 F5 80
.byte $A2, $08, $82, $08, $C0, $08, $72, $08, $F5, $20, $82, $20, $C0, $08, $F5, $80 ; CPU:$BDA5 PRG:3DA5 A2 08 82 08 C0 08 72 08 F5 20 82 20 C0 08 F5 80
.byte $32, $08, $82, $08, $03, $08, $33, $08, $03, $08, $C0, $08, $82, $08, $92, $08 ; CPU:$BDB5 PRG:3DB5 32 08 82 08 03 08 33 08 03 08 C0 08 82 08 92 08
.byte $C0, $08, $92, $08, $92, $08, $C0, $08, $F5, $D0, $82, $38, $F0, $02, $1F, $7F ; CPU:$BDC5 PRG:3DC5 C0 08 92 08 92 08 C0 08 F5 D0 82 38 F0 02 1F 7F
.byte $20, $02, $20, $C0, $08, $F5, $80, $02, $08, $02, $08, $32, $08, $82, $08, $32 ; CPU:$BDD5 PRG:3DD5 20 02 20 C0 08 F5 80 02 08 02 08 32 08 82 08 32
.byte $08, $C0, $08, $02, $08, $12, $08, $C0, $08, $12, $08, $12, $08, $C0, $08, $F5 ; CPU:$BDE5 PRG:3DE5 08 C0 08 02 08 12 08 C0 08 12 08 12 08 C0 08 F5
.byte $D8, $12, $10, $C0, $08, $F5, $80, $12, $08, $12, $08, $C0, $08, $12, $08, $F5 ; CPU:$BDF5 PRG:3DF5 D8 12 10 C0 08 F5 80 12 08 12 08 C0 08 12 08 F5
.byte $20, $02, $20, $C0, $08, $F5, $80, $02, $08, $02, $08, $02, $08, $02, $08, $02 ; CPU:$BE05 PRG:3E05 20 02 20 C0 08 F5 80 02 08 02 08 02 08 02 08 02
.byte $08, $C0, $08, $02, $08, $12, $08, $C0, $08, $12, $08, $12, $08, $C0, $08, $F5 ; CPU:$BE15 PRG:3E15 08 C0 08 02 08 12 08 C0 08 12 08 12 08 C0 08 F5
.byte $D0, $02, $38, $F0, $03, $10, $7F, $40, $81, $08, $81, $08, $81, $08, $81, $08 ; CPU:$BE25 PRG:3E25 D0 02 38 F0 03 10 7F 40 81 08 81 08 81 08 81 08
.byte $C0, $10, $81, $08, $81, $08, $81, $08, $81, $08, $C0, $10, $81, $08, $81, $08 ; CPU:$BE35 PRG:3E35 C0 10 81 08 81 08 81 08 81 08 C0 10 81 08 81 08
.byte $81, $08, $81, $08, $C0, $10, $81, $08, $81, $08, $81, $08, $81, $08, $C0, $10 ; CPU:$BE45 PRG:3E45 81 08 81 08 C0 10 81 08 81 08 81 08 81 08 C0 10
.byte $81, $08, $81, $08, $81, $08, $81, $08, $C0, $10, $81, $08, $81, $08, $81, $08 ; CPU:$BE55 PRG:3E55 81 08 81 08 81 08 81 08 C0 10 81 08 81 08 81 08
.byte $81, $08, $C0, $10, $81, $08, $81, $08, $81, $08, $81, $08, $C0, $08, $81, $38 ; CPU:$BE65 PRG:3E65 81 08 C0 10 81 08 81 08 81 08 81 08 C0 08 81 38
.byte $F0, $02, $1F, $7F, $28, $30, $01, $41, $01, $52, $01, $63, $01, $74, $01, $85 ; CPU:$BE75 PRG:3E75 F0 02 1F 7F 28 30 01 41 01 52 01 63 01 74 01 85
.byte $01, $F0, $01, $9A, $7F, $48, $33, $01, $63, $01, $93, $01, $93, $01, $43, $01 ; CPU:$BE85 PRG:3E85 01 F0 01 9A 7F 48 33 01 63 01 93 01 93 01 43 01
.byte $33, $01, $32, $02, $31, $02, $31, $04, $30, $04, $31, $04, $30, $04, $31, $04 ; CPU:$BE95 PRG:3E95 33 01 32 02 31 02 31 04 30 04 31 04 30 04 31 04
.byte $30, $04, $31, $04, $30, $04, $31, $04, $30, $04, $31, $04, $30, $04, $31, $04 ; CPU:$BEA5 PRG:3EA5 30 04 31 04 30 04 31 04 30 04 31 04 30 04 31 04
.byte $30, $04, $31, $04, $30, $04, $F0, $01, $1F, $7F, $28, $94, $01, $44, $01, $B4 ; CPU:$BEB5 PRG:3EB5 30 04 31 04 30 04 F0 01 1F 7F 28 94 01 44 01 B4
.byte $01, $64, $01, $F0, $43, $4F, $50, $59, $52, $49, $47, $48, $54, $20, $31, $39 ; CPU:$BEC5 PRG:3EC5 01 64 01 F0 43 4F 50 59 52 49 47 48 54 20 31 39
.byte $38, $33, $20, $31, $39, $38, $34, $20, $4E, $41, $4D, $43, $4F, $20, $4C, $54 ; CPU:$BED5 PRG:3ED5 38 33 20 31 39 38 34 20 4E 41 4D 43 4F 20 4C 54
.byte $44, $2E, $20, $41, $4C, $4C, $20, $52, $49, $47, $48, $54, $53, $20, $52, $45 ; CPU:$BEE5 PRG:3EE5 44 2E 20 41 4C 4C 20 52 49 47 48 54 53 20 52 45
.byte $53, $45, $52, $56, $45, $44 ; CPU:$BEF5 PRG:3EF5 53 45 52 56 45 44
; -----------------------------------------------------------------------------
; Routine: GameModeDispatch
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
GameModeDispatch:
lda GameMode ; CPU:$BEFB PRG:3EFB A5 10
beq Sub_BF4C ; CPU:$BEFD PRG:3EFD F0 4D
ldx #$00 ; CPU:$BEFF PRG:3EFF A2 00
lda Zp60 ; CPU:$BF01 PRG:3F01 A5 60
beq Sub_BF08 ; CPU:$BF03 PRG:3F03 F0 03
jmp DispatchLdyJmp ; CPU:$BF05 PRG:3F05 4C DC F1
; -----------------------------------------------------------------------------
; Routine: Sub_BF08
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_BF08:
ldy #$00 ; CPU:$BF08 PRG:3F08 A0 00
lda #$18 ; CPU:$BF0A PRG:3F0A A9 18
sta ObjPtr ; CPU:$BF0C PRG:3F0C 85 13
lda ResetHi ; CPU:$BF0E PRG:3F0E A5 3C
and #$01 ; CPU:$BF10 PRG:3F10 29 01
beq Sub_BF18 ; CPU:$BF12 PRG:3F12 F0 04
lda #$A8 ; CPU:$BF14 PRG:3F14 A9 A8
sta ObjPtr ; CPU:$BF16 PRG:3F16 85 13
; -----------------------------------------------------------------------------
; Routine: Sub_BF18
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_BF18:
lda #$F0 ; CPU:$BF18 PRG:3F18 A9 F0
sta $0700,y ; CPU:$BF1A PRG:3F1A 99 00 07
lda Zp80,x ; CPU:$BF1D PRG:3F1D B5 80
bne Sub_BF2A ; CPU:$BF1F PRG:3F1F D0 09
iny ; CPU:$BF21 PRG:3F21 C8
iny ; CPU:$BF22 PRG:3F22 C8
iny ; CPU:$BF23 PRG:3F23 C8
iny ; CPU:$BF24 PRG:3F24 C8
inx ; CPU:$BF25 PRG:3F25 E8
cpy #$18 ; CPU:$BF26 PRG:3F26 C0 18
bne Sub_BF18 ; CPU:$BF28 PRG:3F28 D0 EE
; -----------------------------------------------------------------------------
; Routine: Sub_BF2A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_BF2A:
lda #$18 ; CPU:$BF2A PRG:3F2A A9 18
sta $0700,y ; CPU:$BF2C PRG:3F2C 99 00 07
iny ; CPU:$BF2F PRG:3F2F C8
lda Zp80,x ; CPU:$BF30 PRG:3F30 B5 80
sta $0700,y ; CPU:$BF32 PRG:3F32 99 00 07
iny ; CPU:$BF35 PRG:3F35 C8
inx ; CPU:$BF36 PRG:3F36 E8
lda #$00 ; CPU:$BF37 PRG:3F37 A9 00
sta $0700,y ; CPU:$BF39 PRG:3F39 99 00 07
iny ; CPU:$BF3C PRG:3F3C C8
tya ; CPU:$BF3D PRG:3F3D 98
and #$FC ; CPU:$BF3E PRG:3F3E 29 FC
asl a ; CPU:$BF40 PRG:3F40 0A
clc ; CPU:$BF41 PRG:3F41 18
adc ObjPtr ; CPU:$BF42 PRG:3F42 65 13
sta $0700,y ; CPU:$BF44 PRG:3F44 99 00 07
iny ; CPU:$BF47 PRG:3F47 C8
cpy #$20 ; CPU:$BF48 PRG:3F48 C0 20
bne Sub_BF2A ; CPU:$BF4A PRG:3F4A D0 DE
; -----------------------------------------------------------------------------
; Routine: Sub_BF4C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_BF4C:
rts ; CPU:$BF4C PRG:3F4C 60
; -----------------------------------------------------------------------------
; Routine: ObjSpritesInit6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSpritesInit6:
stx Zp48 ; CPU:$BF4D PRG:3F4D 86 48
ldx #$06 ; CPU:$BF4F PRG:3F4F A2 06
jmp ObjSpriteLoop ; CPU:$BF51 PRG:3F51 4C 5F BF
; -----------------------------------------------------------------------------
; Routine: ObjSpritesInit5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSpritesInit5:
stx Zp48 ; CPU:$BF54 PRG:3F54 86 48
ldx #$05 ; CPU:$BF56 PRG:3F56 A2 05
jmp ObjSpriteLoop ; CPU:$BF58 PRG:3F58 4C 5F BF
; -----------------------------------------------------------------------------
; Routine: ObjSpritesInit4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSpritesInit4:
stx Zp48 ; CPU:$BF5B PRG:3F5B 86 48
ldx #$04 ; CPU:$BF5D PRG:3F5D A2 04
; -----------------------------------------------------------------------------
; Routine: ObjSpriteLoop
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSpriteLoop:
sty Zp49 ; CPU:$BF5F PRG:3F5F 84 49
ldy Zp60 ; CPU:$BF61 PRG:3F61 A4 60
bne ObjSpriteReturn ; CPU:$BF63 PRG:3F63 D0 60
clc ; CPU:$BF65 PRG:3F65 18
adc Zp80,x ; CPU:$BF66 PRG:3F66 75 80
; -----------------------------------------------------------------------------
; Routine: ObjCoordClamp
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjCoordClamp:
cmp #$0A ; CPU:$BF68 PRG:3F68 C9 0A
bcc Sub_BF82 ; CPU:$BF6A PRG:3F6A 90 16
; -----------------------------------------------------------------------------
; Routine: Sub_BF6C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_BF6C:
sec ; CPU:$BF6C PRG:3F6C 38
sbc #$0A ; CPU:$BF6D PRG:3F6D E9 0A
inc Zp7F,x ; CPU:$BF6F PRG:3F6F F6 7F
sta Zp80,x ; CPU:$BF71 PRG:3F71 95 80
cmp #$0A ; CPU:$BF73 PRG:3F73 C9 0A
bcs Sub_BF6C ; CPU:$BF75 PRG:3F75 B0 F5
dex ; CPU:$BF77 PRG:3F77 CA
txa ; CPU:$BF78 PRG:3F78 8A
and #$07 ; CPU:$BF79 PRG:3F79 29 07
beq Sub_BF84 ; CPU:$BF7B PRG:3F7B F0 07
lda Zp80,x ; CPU:$BF7D PRG:3F7D B5 80
jmp ObjCoordClamp ; CPU:$BF7F PRG:3F7F 4C 68 BF
; -----------------------------------------------------------------------------
; Routine: Sub_BF82
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_BF82:
sta Zp80,x ; CPU:$BF82 PRG:3F82 95 80
; -----------------------------------------------------------------------------
; Routine: Sub_BF84
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_BF84:
ldy #$00 ; CPU:$BF84 PRG:3F84 A0 00
lda #$08 ; CPU:$BF86 PRG:3F86 A9 08
sta ObjUpdateFlag ; CPU:$BF88 PRG:3F88 85 0E
ldx #$00 ; CPU:$BF8A PRG:3F8A A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_BF8C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_BF8C:
lda Zp80,x ; CPU:$BF8C PRG:3F8C B5 80
cmp a:$004B,y ; CPU:$BF8E PRG:3F8E D9 4B 00
bcc ObjSpriteLoop2 ; CPU:$BF91 PRG:3F91 90 16
bne Sub_BF9E ; CPU:$BF93 PRG:3F93 D0 09
inx ; CPU:$BF95 PRG:3F95 E8
iny ; CPU:$BF96 PRG:3F96 C8
dec ObjUpdateFlag ; CPU:$BF97 PRG:3F97 C6 0E
bne Sub_BF8C ; CPU:$BF99 PRG:3F99 D0 F1
jmp ObjSpriteLoop2 ; CPU:$BF9B PRG:3F9B 4C A9 BF
; -----------------------------------------------------------------------------
; Routine: Sub_BF9E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_BF9E:
lda Zp80,x ; CPU:$BF9E PRG:3F9E B5 80
sta a:$004B,y ; CPU:$BFA0 PRG:3FA0 99 4B 00
inx ; CPU:$BFA3 PRG:3FA3 E8
iny ; CPU:$BFA4 PRG:3FA4 C8
dec ObjUpdateFlag ; CPU:$BFA5 PRG:3FA5 C6 0E
bne Sub_BF9E ; CPU:$BFA7 PRG:3FA7 D0 F5
; -----------------------------------------------------------------------------
; Routine: ObjSpriteLoop2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSpriteLoop2:
ldx #$00 ; CPU:$BFA9 PRG:3FA9 A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_BFAB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_BFAB:
lda Zp80,x ; CPU:$BFAB PRG:3FAB B5 80
cmp Zp88,x ; CPU:$BFAD PRG:3FAD D5 88
bcc ObjSpriteReturn ; CPU:$BFAF PRG:3FAF 90 14
bne Sub_BFB8 ; CPU:$BFB1 PRG:3FB1 D0 05
inx ; CPU:$BFB3 PRG:3FB3 E8
cpx #$04 ; CPU:$BFB4 PRG:3FB4 E0 04
bne Sub_BFAB ; CPU:$BFB6 PRG:3FB6 D0 F3
; -----------------------------------------------------------------------------
; Routine: Sub_BFB8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_BFB8:
inc Zp8D ; CPU:$BFB8 PRG:3FB8 E6 8D
lda #$01 ; CPU:$BFBA PRG:3FBA A9 01
sta $0603 ; CPU:$BFBC PRG:3FBC 8D 03 06
sta $0604 ; CPU:$BFBF PRG:3FBF 8D 04 06
jsr ObjSpriteInit ; CPU:$BFC2 PRG:3FC2 20 CA BF
; -----------------------------------------------------------------------------
; Routine: ObjSpriteReturn
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSpriteReturn:
ldx Zp48 ; CPU:$BFC5 PRG:3FC5 A6 48
ldy Zp49 ; CPU:$BFC7 PRG:3FC7 A4 49
rts ; CPU:$BFC9 PRG:3FC9 60
; -----------------------------------------------------------------------------
; Routine: ObjSpriteInit
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSpriteInit:
lda Zp8C ; CPU:$BFCA PRG:3FCA A5 8C
bne ObjSpriteLoop3 ; CPU:$BFCC PRG:3FCC D0 1C
lda #$01 ; CPU:$BFCE PRG:3FCE A9 01
sta Zp8C ; CPU:$BFD0 PRG:3FD0 85 8C
ldx #$00 ; CPU:$BFD2 PRG:3FD2 A2 00
lda #$00 ; CPU:$BFD4 PRG:3FD4 A9 00
sta Zp88,x ; CPU:$BFD6 PRG:3FD6 95 88
inx ; CPU:$BFD8 PRG:3FD8 E8
sta Zp88,x ; CPU:$BFD9 PRG:3FD9 95 88
inx ; CPU:$BFDB PRG:3FDB E8
ldy #$00 ; CPU:$BFDC PRG:3FDC A0 00
; -----------------------------------------------------------------------------
; Routine: ObjSpriteCopyTable
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSpriteCopyTable:
lda a:$0055,y ; CPU:$BFDE PRG:3FDE B9 55 00
sta Zp88,x ; CPU:$BFE1 PRG:3FE1 95 88
inx ; CPU:$BFE3 PRG:3FE3 E8
iny ; CPU:$BFE4 PRG:3FE4 C8
cpy #$02 ; CPU:$BFE5 PRG:3FE5 C0 02
bne ObjSpriteCopyTable ; CPU:$BFE7 PRG:3FE7 D0 F5
rts ; CPU:$BFE9 PRG:3FE9 60
; -----------------------------------------------------------------------------
; Routine: ObjSpriteLoop3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSpriteLoop3:
ldx #$03 ; CPU:$BFEA PRG:3FEA A2 03
ldy #$02 ; CPU:$BFEC PRG:3FEC A0 02
; -----------------------------------------------------------------------------
; Routine: ObjSpriteAdjust
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSpriteAdjust:
lda a:$0054,y ; CPU:$BFEE PRG:3FEE B9 54 00
clc ; CPU:$BFF1 PRG:3FF1 18
adc Zp88,x ; CPU:$BFF2 PRG:3FF2 75 88
cmp #$0A ; CPU:$BFF4 PRG:3FF4 C9 0A
bcc ObjSpriteStore ; CPU:$BFF6 PRG:3FF6 90 05
sec ; CPU:$BFF8 PRG:3FF8 38
sbc #$0A ; CPU:$BFF9 PRG:3FF9 E9 0A
inc Zp87,x ; CPU:$BFFB PRG:3FFB F6 87
; -----------------------------------------------------------------------------
; Routine: ObjSpriteStore
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSpriteStore:
sta Zp88,x ; CPU:$BFFD PRG:3FFD 95 88
dex ; CPU:$BFFF PRG:3FFF CA
; ---- data $C000-$C000 (1 bytes) ----
.byte $88 ; CPU:$C000 PRG:4000 88
bne ObjSpriteAdjust ; CPU:$C001 PRG:4001 D0 EB
lda Zp88,x ; CPU:$C003 PRG:4003 B5 88
sec ; CPU:$C005 PRG:4005 38
sbc #$0A ; CPU:$C006 PRG:4006 E9 0A
bcc Sub_C00E ; CPU:$C008 PRG:4008 90 04
sta Zp88,x ; CPU:$C00A PRG:400A 95 88
inc Zp87,x ; CPU:$C00C PRG:400C F6 87
; -----------------------------------------------------------------------------
; Routine: Sub_C00E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C00E:
rts ; CPU:$C00E PRG:400E 60
; -----------------------------------------------------------------------------
; Routine: ObjNullRoutine
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjNullRoutine:
rts ; CPU:$C00F PRG:400F 60
; -----------------------------------------------------------------------------
; Routine: ObjSpawnInit
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSpawnInit:
lda #$00 ; CPU:$C010 PRG:4010 A9 00
sta Zp30 ; CPU:$C012 PRG:4012 85 30
stx Zp65 ; CPU:$C014 PRG:4014 86 65
lda #$80 ; CPU:$C016 PRG:4016 A9 80
ldx #$07 ; CPU:$C018 PRG:4018 A2 07
; -----------------------------------------------------------------------------
; Routine: Sub_C01A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C01A:
sta ZpD8,x ; CPU:$C01A PRG:401A 95 D8
dex ; CPU:$C01C PRG:401C CA
bpl Sub_C01A ; CPU:$C01D PRG:401D 10 FB
ldx Zp65 ; CPU:$C01F PRG:401F A6 65
rts ; CPU:$C021 PRG:4021 60
; -----------------------------------------------------------------------------
; Routine: Sub_C022
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C022:
lda Zp8F ; CPU:$C022 PRG:4022 A5 8F
clc ; CPU:$C024 PRG:4024 18
adc #$FE ; CPU:$C025 PRG:4025 69 FE
bcs Sub_C02B ; CPU:$C027 PRG:4027 B0 02
lda #$00 ; CPU:$C029 PRG:4029 A9 00
; -----------------------------------------------------------------------------
; Routine: Sub_C02B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C02B:
sta Zp8F ; CPU:$C02B PRG:402B 85 8F
rts ; CPU:$C02D PRG:402D 60
; -----------------------------------------------------------------------------
; Routine: ObjMoveY
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjMoveY:
lda Zp8F ; CPU:$C02E PRG:402E A5 8F
sec ; CPU:$C030 PRG:4030 38
adc Zp40 ; CPU:$C031 PRG:4031 65 40
cmp #$80 ; CPU:$C033 PRG:4033 C9 80
bcc Sub_C03A ; CPU:$C035 PRG:4035 90 03
sec ; CPU:$C037 PRG:4037 38
sbc #$40 ; CPU:$C038 PRG:4038 E9 40
; -----------------------------------------------------------------------------
; Routine: Sub_C03A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C03A:
sta Zp8F ; CPU:$C03A PRG:403A 85 8F
; -----------------------------------------------------------------------------
; Routine: ObjMoveXSign
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjMoveXSign:
asl a ; CPU:$C03C PRG:403C 0A
tax ; CPU:$C03D PRG:403D AA
bcs Sub_C04B ; CPU:$C03E PRG:403E B0 0B
lda $C09E,x ; CPU:$C040 PRG:4040 BD 9E C0
sta Zp30 ; CPU:$C043 PRG:4043 85 30
lda $C09F,x ; CPU:$C045 PRG:4045 BD 9F C0
sta Zp31 ; CPU:$C048 PRG:4048 85 31
rts ; CPU:$C04A PRG:404A 60
; -----------------------------------------------------------------------------
; Routine: Sub_C04B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C04B:
lda $C0FE,x ; CPU:$C04B PRG:404B BD FE C0
sta Zp30 ; CPU:$C04E PRG:404E 85 30
lda $C0FF,x ; CPU:$C050 PRG:4050 BD FF C0
sta Zp31 ; CPU:$C053 PRG:4053 85 31
rts ; CPU:$C055 PRG:4055 60
; -----------------------------------------------------------------------------
; Routine: ObjSpawnInit2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSpawnInit2:
lda (Zp2A),y ; CPU:$C056 PRG:4056 B1 2A
dey ; CPU:$C058 PRG:4058 88
dey ; CPU:$C059 PRG:4059 88
jmp ObjMoveXSign ; CPU:$C05A PRG:405A 4C 3C C0
; -----------------------------------------------------------------------------
; Routine: ObjSetPosition
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSetPosition:
txa ; CPU:$C05D PRG:405D 8A
pha ; CPU:$C05E PRG:405E 48
tya ; CPU:$C05F PRG:405F 98
pha ; CPU:$C060 PRG:4060 48
lda Zp83 ; CPU:$C061 PRG:4061 A5 83
asl a ; CPU:$C063 PRG:4063 0A
asl a ; CPU:$C064 PRG:4064 0A
asl a ; CPU:$C065 PRG:4065 0A
asl a ; CPU:$C066 PRG:4066 0A
adc Zp84 ; CPU:$C067 PRG:4067 65 84
sta ObjPtr ; CPU:$C069 PRG:4069 85 13
lda Zp81 ; CPU:$C06B PRG:406B A5 81
asl a ; CPU:$C06D PRG:406D 0A
asl a ; CPU:$C06E PRG:406E 0A
asl a ; CPU:$C06F PRG:406F 0A
asl a ; CPU:$C070 PRG:4070 0A
adc Zp82 ; CPU:$C071 PRG:4071 65 82
sta ObjectYLo ; CPU:$C073 PRG:4073 85 35
inc ObjectYLo ; CPU:$C075 PRG:4075 E6 35
lda Zp8E ; CPU:$C077 PRG:4077 A5 8E
clc ; CPU:$C079 PRG:4079 18
adc #$01 ; CPU:$C07A PRG:407A 69 01
sta ObjectYHi ; CPU:$C07C PRG:407C 85 36
lda ObjPtr ; CPU:$C07E PRG:407E A5 13
ldy #$10 ; CPU:$C080 PRG:4080 A0 10
; -----------------------------------------------------------------------------
; Routine: Sub_C082
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C082:
sec ; CPU:$C082 PRG:4082 38
sbc ObjectYHi ; CPU:$C083 PRG:4083 E5 36
bcs Sub_C08B ; CPU:$C085 PRG:4085 B0 04
dec ObjectYLo ; CPU:$C087 PRG:4087 C6 35
beq Sub_C090 ; CPU:$C089 PRG:4089 F0 05
; -----------------------------------------------------------------------------
; Routine: Sub_C08B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C08B:
inc Zp8F ; CPU:$C08B PRG:408B E6 8F
dey ; CPU:$C08D PRG:408D 88
bne Sub_C082 ; CPU:$C08E PRG:408E D0 F2
; -----------------------------------------------------------------------------
; Routine: Sub_C090
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C090:
lda Zp8F ; CPU:$C090 PRG:4090 A5 8F
bpl Sub_C099 ; CPU:$C092 PRG:4092 10 05
sec ; CPU:$C094 PRG:4094 38
sbc #$40 ; CPU:$C095 PRG:4095 E9 40
sta Zp8F ; CPU:$C097 PRG:4097 85 8F
; -----------------------------------------------------------------------------
; Routine: Sub_C099
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C099:
pla ; CPU:$C099 PRG:4099 68
tay ; CPU:$C09A PRG:409A A8
pla ; CPU:$C09B PRG:409B 68
tax ; CPU:$C09C PRG:409C AA
; -----------------------------------------------------------------------------
; Routine: Sub_C09D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C09D:
rts ; CPU:$C09D PRG:409D 60
ObjParamTable:
; Enemy/object parameter table (byte pairs read by lda $C09E,x/$C09F,x)
; ---- data $C09E-$C1FD (352 bytes) ----
; referenced by `lda $C09E,x` at $C040 (operand $C09E falls inside this region)
; referenced by `lda $C09F,x` at $C045 (operand $C09F falls inside this region)
; referenced by `lda $C0FE,x` at $C04B (operand $C0FE falls inside this region)
; referenced by `lda $C0FF,x` at $C050 (operand $C0FF falls inside this region)
; referenced by `and $C1EF,x` at $D643 (operand $C1EF falls inside this region)
.byte $03, $01, $03, $01, $03, $01, $04, $01, $04, $01, $04, $01, $05, $01, $05, $01 ; CPU:$C09E PRG:409E 03 01 03 01 03 01 04 01 04 01 04 01 05 01 05 01
.byte $05, $01, $02, $19, $02, $19, $02, $19, $04, $01, $04, $01, $04, $04, $04, $04 ; CPU:$C0AE PRG:40AE 05 01 02 19 02 19 02 19 04 01 04 01 04 04 04 04
.byte $04, $05, $04, $05, $05, $05, $05, $05, $06, $05, $06, $05, $03, $19, $03, $19 ; CPU:$C0BE PRG:40BE 04 05 04 05 05 05 05 05 06 05 06 05 03 19 03 19
.byte $04, $19, $04, $19, $05, $19, $05, $19, $03, $27, $03, $27, $04, $27, $04, $27 ; CPU:$C0CE PRG:40CE 04 19 04 19 05 19 05 19 03 27 03 27 04 27 04 27
.byte $05, $27, $05, $27, $03, $1F, $03, $1F, $04, $1F, $04, $1F, $05, $1F, $05, $1F ; CPU:$C0DE PRG:40DE 05 27 05 27 03 1F 03 1F 04 1F 04 1F 05 1F 05 1F
.byte $03, $13, $03, $13, $04, $13, $04, $13, $05, $13, $05, $13, $03, $36, $03, $36 ; CPU:$C0EE PRG:40EE 03 13 03 13 04 13 04 13 05 13 05 13 03 36 03 36
.byte $03, $37, $03, $37, $04, $37, $04, $37, $03, $2D, $03, $2D, $04, $2D, $04, $2D ; CPU:$C0FE PRG:40FE 03 37 03 37 04 37 04 37 03 2D 03 2D 04 2D 04 2D
.byte $05, $2D, $05, $2D, $04, $12, $04, $12, $04, $11, $04, $11, $05, $11, $05, $11 ; CPU:$C10E PRG:410E 05 2D 05 2D 04 12 04 12 04 11 04 11 05 11 05 11
.byte $05, $17, $05, $17, $06, $17, $06, $17, $02, $3C, $03, $3C, $03, $3C, $04, $3C ; CPU:$C11E PRG:411E 05 17 05 17 06 17 06 17 02 3C 03 3C 03 3C 04 3C
.byte $04, $3C, $05, $3C, $05, $19, $05, $19, $06, $19, $06, $19, $02, $45, $03, $45 ; CPU:$C12E PRG:412E 04 3C 05 3C 05 19 05 19 06 19 06 19 02 45 03 45
.byte $03, $45, $04, $45, $04, $45, $05, $45, $05, $2D, $05, $2D, $06, $2D, $06, $2D ; CPU:$C13E PRG:413E 03 45 04 45 04 45 05 45 05 2D 05 2D 06 2D 06 2D
.byte $04, $27, $04, $27, $05, $27, $05, $27, $06, $27, $06, $27, $05, $0D, $05, $0D ; CPU:$C14E PRG:414E 04 27 04 27 05 27 05 27 06 27 06 27 05 0D 05 0D
.byte $06, $0D, $06, $0D, $02, $6D, $03, $6C, $03, $6C, $04, $6C, $04, $6C, $05, $6C ; CPU:$C15E PRG:415E 06 0D 06 0D 02 6D 03 6C 03 6C 04 6C 04 6C 05 6C
.byte $06, $0D, $06, $0D, $06, $07, $06, $07, $06, $07, $06, $07, $02, $4E, $03, $4E ; CPU:$C16E PRG:416E 06 0D 06 0D 06 07 06 07 06 07 06 07 02 4E 03 4E
.byte $03, $4E, $04, $4E, $04, $4E, $05, $4E, $06, $07, $06, $07, $06, $07, $06, $07 ; CPU:$C17E PRG:417E 03 4E 04 4E 04 4E 05 4E 06 07 06 07 06 07 06 07
.byte $01, $54, $02, $54, $06, $07, $06, $07, $06, $07, $06, $07, $01, $58, $02, $58 ; CPU:$C18E PRG:418E 01 54 02 54 06 07 06 07 06 07 06 07 01 58 02 58
.byte $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01 ; CPU:$C19E PRG:419E 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
.byte $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01 ; CPU:$C1AE PRG:41AE 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01
.byte $04, $0B, $05, $0A, $06, $09, $06, $25, $06, $5C, $06, $29, $06, $5E, $06, $64 ; CPU:$C1BE PRG:41BE 04 0B 05 0A 06 09 06 25 06 5C 06 29 06 5E 06 64
.byte $06, $66, $06, $72, $04, $30, $04, $31, $05, $30, $06, $30, $06, $3F, $06, $48 ; CPU:$C1CE PRG:41CE 06 66 06 72 04 30 04 31 05 30 06 30 06 3F 06 48
.byte $06, $4B, $02, $54, $03, $54, $04, $54, $02, $58, $03, $58, $04, $58, $04, $58 ; CPU:$C1DE PRG:41DE 06 4B 02 54 03 54 04 54 02 58 03 58 04 58 04 58
.byte $04, $58, $04, $58, $04, $58, $04, $58, $04, $58, $04, $58, $04, $58, $04, $58 ; CPU:$C1EE PRG:41EE 04 58 04 58 04 58 04 58 04 58 04 58 04 58 04 58
; -----------------------------------------------------------------------------
; Routine: ObjInitCall
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjInitCall:
lda Zp32 ; CPU:$C1FE PRG:41FE A5 32
bne Sub_C203 ; CPU:$C200 PRG:4200 D0 01
rts ; CPU:$C202 PRG:4202 60
; -----------------------------------------------------------------------------
; Routine: Sub_C203
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C203:
lda Zp3E ; CPU:$C203 PRG:4203 A5 3E
beq Sub_C22D ; CPU:$C205 PRG:4205 F0 26
ldx #$00 ; CPU:$C207 PRG:4207 A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_C209
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C209:
lda ZpD8,x ; CPU:$C209 PRG:4209 B5 D8
beq Sub_C213 ; CPU:$C20B PRG:420B F0 06
inx ; CPU:$C20D PRG:420D E8
cpx #$07 ; CPU:$C20E PRG:420E E0 07
bne Sub_C209 ; CPU:$C210 PRG:4210 D0 F7
rts ; CPU:$C212 PRG:4212 60
; -----------------------------------------------------------------------------
; Routine: Sub_C213
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C213:
stx ObjPtr ; CPU:$C213 PRG:4213 86 13
; -----------------------------------------------------------------------------
; Routine: Sub_C215
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C215:
inx ; CPU:$C215 PRG:4215 E8
lda ZpD8,x ; CPU:$C216 PRG:4216 B5 D8
beq Sub_C21F ; CPU:$C218 PRG:4218 F0 05
cpx #$07 ; CPU:$C21A PRG:421A E0 07
bne Sub_C215 ; CPU:$C21C PRG:421C D0 F7
rts ; CPU:$C21E PRG:421E 60
; -----------------------------------------------------------------------------
; Routine: Sub_C21F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C21F:
sta Zp3E ; CPU:$C21F PRG:421F 85 3E
ldy ObjPtr ; CPU:$C221 PRG:4221 A4 13
lda #$25 ; CPU:$C223 PRG:4223 A9 25
sta a:$00D8,y ; CPU:$C225 PRG:4225 99 D8 00
lda #$27 ; CPU:$C228 PRG:4228 A9 27
sta ZpD8,x ; CPU:$C22A PRG:422A 95 D8
rts ; CPU:$C22C PRG:422C 60
; -----------------------------------------------------------------------------
; Routine: Sub_C22D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C22D:
lda Zp44 ; CPU:$C22D PRG:422D A5 44
beq Sub_C23A ; CPU:$C22F PRG:422F F0 09
lda #$00 ; CPU:$C231 PRG:4231 A9 00
sta Zp44 ; CPU:$C233 PRG:4233 85 44
lda #$23 ; CPU:$C235 PRG:4235 A9 23
jsr ObjPushX ; CPU:$C237 PRG:4237 20 7D C2
; -----------------------------------------------------------------------------
; Routine: Sub_C23A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C23A:
lda Zp3F ; CPU:$C23A PRG:423A A5 3F
beq Sub_C249 ; CPU:$C23C PRG:423C F0 0B
lda GameSubMode ; CPU:$C23E PRG:423E A5 1B
and Zp41 ; CPU:$C240 PRG:4240 25 41
bne Sub_C249 ; CPU:$C242 PRG:4242 D0 05
dec Zp3F ; CPU:$C244 PRG:4244 C6 3F
jsr ObjSubRoutine ; CPU:$C246 PRG:4246 20 65 C2
; -----------------------------------------------------------------------------
; Routine: Sub_C249
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C249:
lda Zp30 ; CPU:$C249 PRG:4249 A5 30
bne Sub_C24E ; CPU:$C24B PRG:424B D0 01
rts ; CPU:$C24D PRG:424D 60
; -----------------------------------------------------------------------------
; Routine: Sub_C24E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C24E:
ldx #$00 ; CPU:$C24E PRG:424E A2 00
lda Zp31 ; CPU:$C250 PRG:4250 A5 31
and #$7F ; CPU:$C252 PRG:4252 29 7F
tay ; CPU:$C254 PRG:4254 A8
lda Zp30 ; CPU:$C255 PRG:4255 A5 30
sta ObjUpdateFlag ; CPU:$C257 PRG:4257 85 0E
; -----------------------------------------------------------------------------
; Routine: Sub_C259
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C259:
lda $C28F,y ; CPU:$C259 PRG:4259 B9 8F C2
sta ZpD8,x ; CPU:$C25C PRG:425C 95 D8
iny ; CPU:$C25E PRG:425E C8
inx ; CPU:$C25F PRG:425F E8
dec ObjUpdateFlag ; CPU:$C260 PRG:4260 C6 0E
bne Sub_C259 ; CPU:$C262 PRG:4262 D0 F5
rts ; CPU:$C264 PRG:4264 60
; -----------------------------------------------------------------------------
; Routine: ObjSubRoutine
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSubRoutine:
ldx #$07 ; CPU:$C265 PRG:4265 A2 07
; -----------------------------------------------------------------------------
; Routine: Sub_C267
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C267:
lda ZpD8,x ; CPU:$C267 PRG:4267 B5 D8
beq Sub_C26F ; CPU:$C269 PRG:4269 F0 04
dex ; CPU:$C26B PRG:426B CA
bne Sub_C267 ; CPU:$C26C PRG:426C D0 F9
rts ; CPU:$C26E PRG:426E 60
; -----------------------------------------------------------------------------
; Routine: Sub_C26F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C26F:
lda #$29 ; CPU:$C26F PRG:426F A9 29
sta ZpD8,x ; CPU:$C271 PRG:4271 95 D8
rts ; CPU:$C273 PRG:4273 60
; -----------------------------------------------------------------------------
; Routine: Sub_C274
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C274:
lda (Zp2A),y ; CPU:$C274 PRG:4274 B1 2A
iny ; CPU:$C276 PRG:4276 C8
iny ; CPU:$C277 PRG:4277 C8
jmp ObjPushX ; CPU:$C278 PRG:4278 4C 7D C2
; -----------------------------------------------------------------------------
; Routine: ObjSubRoutine2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSubRoutine2:
lda #$07 ; CPU:$C27B PRG:427B A9 07
; -----------------------------------------------------------------------------
; Routine: ObjPushX
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjPushX:
pha ; CPU:$C27D PRG:427D 48
ldx #$00 ; CPU:$C27E PRG:427E A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_C280
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C280:
lda ZpD8,x ; CPU:$C280 PRG:4280 B5 D8
beq Sub_C28B ; CPU:$C282 PRG:4282 F0 07
inx ; CPU:$C284 PRG:4284 E8
cpx #$08 ; CPU:$C285 PRG:4285 E0 08
bne Sub_C280 ; CPU:$C287 PRG:4287 D0 F7
pla ; CPU:$C289 PRG:4289 68
rts ; CPU:$C28A PRG:428A 60
; -----------------------------------------------------------------------------
; Routine: Sub_C28B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C28B:
pla ; CPU:$C28B PRG:428B 68
sta ZpD8,x ; CPU:$C28C PRG:428C 95 D8
rts ; CPU:$C28E PRG:428E 60
ObjInitDirTable:
; Object initial direction/speed table (read by lda $C28F,y during object init)
; ---- data $C28F-$C304 (118 bytes) ----
; referenced by `lda $C28F,y` at $C259 (operand $C28F falls inside this region)
.byte $00, $01, $01, $01, $01, $01, $01, $03, $03, $03, $03, $03, $03, $19, $19, $19 ; CPU:$C28F PRG:428F 00 01 01 01 01 01 01 03 03 03 03 03 03 19 19 19
.byte $19, $19, $19, $05, $05, $05, $05, $05, $05, $07, $07, $07, $07, $07, $07, $09 ; CPU:$C29F PRG:429F 19 19 19 05 05 05 05 05 05 07 07 07 07 07 07 09
.byte $09, $09, $09, $09, $09, $03, $03, $0F, $0F, $0F, $0F, $0F, $0F, $0B, $0B, $0B ; CPU:$C2AF PRG:42AF 09 09 09 09 09 03 03 0F 0F 0F 0F 0F 0F 0B 0B 0B
.byte $0B, $0B, $0B, $0D, $0D, $0D, $11, $11, $11, $13, $13, $13, $15, $15, $15, $15 ; CPU:$C2BF PRG:42BF 0B 0B 0B 0D 0D 0D 11 11 11 13 13 13 15 15 15 15
.byte $15, $15, $15, $15, $15, $1B, $1B, $1B, $1B, $1B, $1B, $15, $15, $15, $1D, $1D ; CPU:$C2CF PRG:42CF 15 15 15 15 15 1B 1B 1B 1B 1B 1B 15 15 15 1D 1D
.byte $1D, $1D, $1D, $1D, $1F, $1F, $1F, $1F, $21, $21, $21, $21, $07, $07, $0F, $0F ; CPU:$C2DF PRG:42DF 1D 1D 1D 1D 1F 1F 1F 1F 21 21 21 21 07 07 0F 0F
.byte $0F, $0F, $19, $19, $1B, $1B, $0F, $0F, $0F, $0F, $1D, $1D, $15, $15, $17, $17 ; CPU:$C2EF PRG:42EF 0F 0F 19 19 1B 1B 0F 0F 0F 0F 1D 1D 15 15 17 17
.byte $17, $17, $0F, $0F, $0F, $0F ; CPU:$C2FF PRG:42FF 17 17 0F 0F 0F 0F
; -----------------------------------------------------------------------------
; Routine: Sub_C305
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C305:
ora $1D0D ; CPU:$C305 PRG:4305 0D 0D 1D
ora $1D1D,x ; CPU:$C308 PRG:4308 1D 1D 1D
ora $1D1D,x ; CPU:$C30B PRG:430B 1D 1D 1D
; ---- data $C30E-$C30E (1 bytes) ----
.byte $1D ; CPU:$C30E PRG:430E 1D
; -----------------------------------------------------------------------------
; Routine: Sub_C30F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C30F:
ldx #$00 ; CPU:$C30F PRG:430F A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_C311
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C311:
lda $0500,x ; CPU:$C311 PRG:4311 BD 00 05
beq Sub_C322 ; CPU:$C314 PRG:4314 F0 0C
txa ; CPU:$C316 PRG:4316 8A
clc ; CPU:$C317 PRG:4317 18
adc #$10 ; CPU:$C318 PRG:4318 69 10
tax ; CPU:$C31A PRG:431A AA
cpx #$80 ; CPU:$C31B PRG:431B E0 80
bne Sub_C311 ; CPU:$C31D PRG:431D D0 F2
iny ; CPU:$C31F PRG:431F C8
iny ; CPU:$C320 PRG:4320 C8
rts ; CPU:$C321 PRG:4321 60
; -----------------------------------------------------------------------------
; Routine: Sub_C322
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C322:
lda #$01 ; CPU:$C322 PRG:4322 A9 01
sta $0500,x ; CPU:$C324 PRG:4324 9D 00 05
lda #$04 ; CPU:$C327 PRG:4327 A9 04
sta $050F,x ; CPU:$C329 PRG:4329 9D 0F 05
lda #$00 ; CPU:$C32C PRG:432C A9 00
sta $0501,x ; CPU:$C32E PRG:432E 9D 01 05
sta $0503,x ; CPU:$C331 PRG:4331 9D 03 05
sta $0505,x ; CPU:$C334 PRG:4334 9D 05 05
sta $0508,x ; CPU:$C337 PRG:4337 9D 08 05
sta $050C,x ; CPU:$C33A PRG:433A 9D 0C 05
lda (Zp2A),y ; CPU:$C33D PRG:433D B1 2A
sta $0504,x ; CPU:$C33F PRG:433F 9D 04 05
iny ; CPU:$C342 PRG:4342 C8
lda #$FF ; CPU:$C343 PRG:4343 A9 FF
sta $0506,x ; CPU:$C345 PRG:4345 9D 06 05
lda #$F1 ; CPU:$C348 PRG:4348 A9 F1
sta $0507,x ; CPU:$C34A PRG:434A 9D 07 05
lda (Zp2A),y ; CPU:$C34D PRG:434D B1 2A
iny ; CPU:$C34F PRG:434F C8
sty Zp2C ; CPU:$C350 PRG:4350 84 2C
tay ; CPU:$C352 PRG:4352 A8
lda $A8F5,y ; CPU:$C353 PRG:4353 B9 F5 A8
sta $050A,x ; CPU:$C356 PRG:4356 9D 0A 05
lda $A8F6,y ; CPU:$C359 PRG:4359 B9 F6 A8
sta $050B,x ; CPU:$C35C PRG:435C 9D 0B 05
ldy Zp2C ; CPU:$C35F PRG:435F A4 2C
jmp ObjSpriteAttrs ; CPU:$C361 PRG:4361 4C A0 C7
; -----------------------------------------------------------------------------
; Routine: Sub_C364
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C364:
jsr ObjSpriteSetup ; CPU:$C364 PRG:4364 20 76 C3
lda #$00 ; CPU:$C367 PRG:4367 A9 00
sta $050E,x ; CPU:$C369 PRG:4369 9D 0E 05
rts ; CPU:$C36C PRG:436C 60
; -----------------------------------------------------------------------------
; Routine: Sub_C36D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C36D:
jsr ObjSpriteSetup ; CPU:$C36D PRG:436D 20 76 C3
lda #$01 ; CPU:$C370 PRG:4370 A9 01
sta $050E,x ; CPU:$C372 PRG:4372 9D 0E 05
rts ; CPU:$C375 PRG:4375 60
; -----------------------------------------------------------------------------
; Routine: ObjSpriteSetup
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSpriteSetup:
ldx #$00 ; CPU:$C376 PRG:4376 A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_C378
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C378:
lda $0500,x ; CPU:$C378 PRG:4378 BD 00 05
beq Sub_C38B ; CPU:$C37B PRG:437B F0 0E
txa ; CPU:$C37D PRG:437D 8A
clc ; CPU:$C37E PRG:437E 18
adc #$10 ; CPU:$C37F PRG:437F 69 10
tax ; CPU:$C381 PRG:4381 AA
cpx #$80 ; CPU:$C382 PRG:4382 E0 80
bne Sub_C378 ; CPU:$C384 PRG:4384 D0 F2
iny ; CPU:$C386 PRG:4386 C8
iny ; CPU:$C387 PRG:4387 C8
pla ; CPU:$C388 PRG:4388 68
pla ; CPU:$C389 PRG:4389 68
rts ; CPU:$C38A PRG:438A 60
; -----------------------------------------------------------------------------
; Routine: Sub_C38B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C38B:
lda #$00 ; CPU:$C38B PRG:438B A9 00
sta $0503,x ; CPU:$C38D PRG:438D 9D 03 05
sta $0505,x ; CPU:$C390 PRG:4390 9D 05 05
sta $0508,x ; CPU:$C393 PRG:4393 9D 08 05
lda #$0B ; CPU:$C396 PRG:4396 A9 0B
sta $050C,x ; CPU:$C398 PRG:4398 9D 0C 05
lda (Zp2A),y ; CPU:$C39B PRG:439B B1 2A
sta $0504,x ; CPU:$C39D PRG:439D 9D 04 05
iny ; CPU:$C3A0 PRG:43A0 C8
lda #$FF ; CPU:$C3A1 PRG:43A1 A9 FF
sta $0506,x ; CPU:$C3A3 PRG:43A3 9D 06 05
lda (Zp2A),y ; CPU:$C3A6 PRG:43A6 B1 2A
and #$0F ; CPU:$C3A8 PRG:43A8 29 0F
sta $0500,x ; CPU:$C3AA PRG:43AA 9D 00 05
sec ; CPU:$C3AD PRG:43AD 38
sbc #$05 ; CPU:$C3AE PRG:43AE E9 05
sta $050F,x ; CPU:$C3B0 PRG:43B0 9D 0F 05
lda (Zp2A),y ; CPU:$C3B3 PRG:43B3 B1 2A
iny ; CPU:$C3B5 PRG:43B5 C8
lsr a ; CPU:$C3B6 PRG:43B6 4A
lsr a ; CPU:$C3B7 PRG:43B7 4A
lsr a ; CPU:$C3B8 PRG:43B8 4A
lsr a ; CPU:$C3B9 PRG:43B9 4A
clc ; CPU:$C3BA PRG:43BA 18
adc #$F1 ; CPU:$C3BB PRG:43BB 69 F1
sta $0507,x ; CPU:$C3BD PRG:43BD 9D 07 05
lda #$00 ; CPU:$C3C0 PRG:43C0 A9 00
sta $050E,x ; CPU:$C3C2 PRG:43C2 9D 0E 05
rts ; CPU:$C3C5 PRG:43C5 60
; -----------------------------------------------------------------------------
; Routine: ObjDrawCall
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjDrawCall:
ldx #$00 ; CPU:$C3C6 PRG:43C6 A2 00
stx Zp2E ; CPU:$C3C8 PRG:43C8 86 2E
lda GameSubMode ; CPU:$C3CA PRG:43CA A5 1B
and #$01 ; CPU:$C3CC PRG:43CC 29 01
bne Sub_C407 ; CPU:$C3CE PRG:43CE D0 37
; -----------------------------------------------------------------------------
; Routine: Sub_C3D0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C3D0:
lda $0507,x ; CPU:$C3D0 PRG:43D0 BD 07 05
clc ; CPU:$C3D3 PRG:43D3 18
adc Zp25 ; CPU:$C3D4 PRG:43D4 65 25
bcc Sub_C3E2 ; CPU:$C3D6 PRG:43D6 90 0A
inc $0506,x ; CPU:$C3D8 PRG:43D8 FE 06 05
beq Sub_C3E2 ; CPU:$C3DB PRG:43DB F0 05
lda #$00 ; CPU:$C3DD PRG:43DD A9 00
sta $0500,x ; CPU:$C3DF PRG:43DF 9D 00 05
; -----------------------------------------------------------------------------
; Routine: Sub_C3E2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C3E2:
sta $0507,x ; CPU:$C3E2 PRG:43E2 9D 07 05
jsr ObjSpriteAttr ; CPU:$C3E5 PRG:43E5 20 2D C4
txa ; CPU:$C3E8 PRG:43E8 8A
clc ; CPU:$C3E9 PRG:43E9 18
adc #$10 ; CPU:$C3EA PRG:43EA 69 10
tax ; CPU:$C3EC PRG:43EC AA
cpx #$80 ; CPU:$C3ED PRG:43ED E0 80
bne Sub_C3D0 ; CPU:$C3EF PRG:43EF D0 DF
; -----------------------------------------------------------------------------
; Routine: ObjSpriteCheck
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSpriteCheck:
ldx #$00 ; CPU:$C3F1 PRG:43F1 A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_C3F3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C3F3:
lda $0500,x ; CPU:$C3F3 PRG:43F3 BD 00 05
cmp #$04 ; CPU:$C3F6 PRG:43F6 C9 04
bne Sub_C3FD ; CPU:$C3F8 PRG:43F8 D0 03
jsr ObjSpriteIndex ; CPU:$C3FA PRG:43FA 20 99 C6
; -----------------------------------------------------------------------------
; Routine: Sub_C3FD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C3FD:
txa ; CPU:$C3FD PRG:43FD 8A
clc ; CPU:$C3FE PRG:43FE 18
adc #$10 ; CPU:$C3FF PRG:43FF 69 10
tax ; CPU:$C401 PRG:4401 AA
cpx #$80 ; CPU:$C402 PRG:4402 E0 80
bne Sub_C3F3 ; CPU:$C404 PRG:4404 D0 ED
rts ; CPU:$C406 PRG:4406 60
; -----------------------------------------------------------------------------
; Routine: Sub_C407
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C407:
ldx #$70 ; CPU:$C407 PRG:4407 A2 70
; -----------------------------------------------------------------------------
; Routine: Sub_C409
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C409:
lda $0507,x ; CPU:$C409 PRG:4409 BD 07 05
clc ; CPU:$C40C PRG:440C 18
adc Zp25 ; CPU:$C40D PRG:440D 65 25
bcc Sub_C41B ; CPU:$C40F PRG:440F 90 0A
inc $0506,x ; CPU:$C411 PRG:4411 FE 06 05
beq Sub_C41B ; CPU:$C414 PRG:4414 F0 05
lda #$00 ; CPU:$C416 PRG:4416 A9 00
sta $0500,x ; CPU:$C418 PRG:4418 9D 00 05
; -----------------------------------------------------------------------------
; Routine: Sub_C41B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C41B:
sta $0507,x ; CPU:$C41B PRG:441B 9D 07 05
jsr ObjSpriteAttr ; CPU:$C41E PRG:441E 20 2D C4
txa ; CPU:$C421 PRG:4421 8A
sec ; CPU:$C422 PRG:4422 38
sbc #$10 ; CPU:$C423 PRG:4423 E9 10
tax ; CPU:$C425 PRG:4425 AA
cpx #$F0 ; CPU:$C426 PRG:4426 E0 F0
bne Sub_C409 ; CPU:$C428 PRG:4428 D0 DF
jmp ObjSpriteCheck ; CPU:$C42A PRG:442A 4C F1 C3
; -----------------------------------------------------------------------------
; Routine: ObjSpriteAttr
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSpriteAttr:
lda $0500,x ; CPU:$C42D PRG:442D BD 00 05
and #$1F ; CPU:$C430 PRG:4430 29 1F
sta $0500,x ; CPU:$C432 PRG:4432 9D 00 05
asl a ; CPU:$C435 PRG:4435 0A
tay ; CPU:$C436 PRG:4436 A8
lda $C441,y ; CPU:$C437 PRG:4437 B9 41 C4
pha ; CPU:$C43A PRG:443A 48
; -----------------------------------------------------------------------------
; Routine: Sub_C43B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C43B:
lda $C440,y ; CPU:$C43B PRG:443B B9 40 C4
pha ; CPU:$C43E PRG:443E 48
rts ; CPU:$C43F PRG:443F 60
; ---- data $C440-$C444 (5 bytes) ----
; referenced by `lda $C441,y` at $C437 (operand $C441 falls inside this region)
; referenced by `lda $C440,y` at $C43B (operand $C440 falls inside this region)
.byte $3E, $C4, $D0, $C5, $12 ; CPU:$C440 PRG:4440 3E C4 D0 C5 12
; -----------------------------------------------------------------------------
; Routine: Sub_C445
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C445:
dec Zp5E ; CPU:$C445 PRG:4445 C6 5E
dec Zp3E ; CPU:$C447 PRG:4447 C6 3E
cpy Zp7B ; CPU:$C449 PRG:4449 C4 7B
dec Zp6C ; CPU:$C44B PRG:444B C6 6C
cpy Zp69 ; CPU:$C44D PRG:444D C4 69
cpy Zp77 ; CPU:$C44F PRG:444F C4 77
cpy Zp8E ; CPU:$C451 PRG:4451 C4 8E
cpy ZpC3 ; CPU:$C453 PRG:4453 C4 C3
; -----------------------------------------------------------------------------
; Routine: Sub_C455
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C455:
cpy ZpC6 ; CPU:$C455 PRG:4455 C4 C6
cpy ZpC3 ; CPU:$C457 PRG:4457 C4 C3
cpy Zp8B ; CPU:$C459 PRG:4459 C4 8B
cpy ZpAD ; CPU:$C45B PRG:445B C4 AD
cpy Joypad2Cur2 ; CPU:$C45D PRG:445D C4 0A
cmp NmiFrameFlag ; CPU:$C45F PRG:445F C5 0D
cmp Zp52 ; CPU:$C461 PRG:4461 C5 52
cmp Zp3A ; CPU:$C463 PRG:4463 C5 3A
cmp Zp52 ; CPU:$C465 PRG:4465 C5 52
cmp Zp25 ; CPU:$C467 PRG:4467 C5 25
cmp Zp20 ; CPU:$C469 PRG:4469 C5 20
adc $20C5,y ; CPU:$C46B PRG:446B 79 C5 20
ldy ZpC6,x ; CPU:$C46E PRG:446E B4 C6
lda $0500,x ; CPU:$C470 PRG:4470 BD 00 05
; -----------------------------------------------------------------------------
; Routine: Sub_C473
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C473:
bmi Sub_C4E6 ; CPU:$C473 PRG:4473 30 71
jmp ObjCommonUpdate ; CPU:$C475 PRG:4475 4C D8 C7
; ---- data $C478-$C47C (5 bytes) ----
.byte $20, $B4, $C6, $BD, $00 ; CPU:$C478 PRG:4478 20 B4 C6 BD 00
; -----------------------------------------------------------------------------
; Routine: Sub_C47D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C47D:
ora Zp30 ; CPU:$C47D PRG:447D 05 30
ror Zp29 ; CPU:$C47F PRG:447F 66 29
rti ; CPU:$C481 PRG:4481 40
; ---- data $C482-$C499 (24 bytes) ----
.byte $F0, $05, $A9, $07, $9D, $00, $05, $4C, $D8, $C7, $20, $79, $C5, $20, $B4, $C6 ; CPU:$C482 PRG:4482 F0 05 A9 07 9D 00 05 4C D8 C7 20 79 C5 20 B4 C6
.byte $BD, $00, $05, $30, $4F, $29, $20, $F0 ; CPU:$C492 PRG:4492 BD 00 05 30 4F 29 20 F0
; -----------------------------------------------------------------------------
; Routine: Sub_C49A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C49A:
bpl Sub_C445 ; CPU:$C49A PRG:449A 10 A9
bvc Sub_C43B ; CPU:$C49C PRG:449C 50 9D
ora #$05 ; CPU:$C49E PRG:449E 09 05
lda $0500,x ; CPU:$C4A0 PRG:44A0 BD 00 05
and #$1F ; CPU:$C4A3 PRG:44A3 29 1F
clc ; CPU:$C4A5 PRG:44A5 18
adc #$06 ; CPU:$C4A6 PRG:44A6 69 06
sta $0500,x ; CPU:$C4A8 PRG:44A8 9D 00 05
jmp ObjCommonUpdate ; CPU:$C4AB PRG:44AB 4C D8 C7
; ---- data $C4AE-$C4D1 (36 bytes) ----
.byte $20, $B4, $C6, $BD, $00, $05, $30, $30, $29, $20, $F0, $F1, $A9, $38, $9D, $09 ; CPU:$C4AE PRG:44AE 20 B4 C6 BD 00 05 30 30 29 20 F0 F1 A9 38 9D 09
.byte $05, $A9, $14, $4C, $20, $C5, $20, $79, $C5, $20, $B4, $C6, $BD, $00, $05, $30 ; CPU:$C4BE PRG:44BE 05 A9 14 4C 20 C5 20 79 C5 20 B4 C6 BD 00 05 30
.byte $17, $29, $40, $F0 ; CPU:$C4CE PRG:44CE 17 29 40 F0
; -----------------------------------------------------------------------------
; Routine: Sub_C4D2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C4D2:
bpl Sub_C47D ; CPU:$C4D2 PRG:44D2 10 A9
bvc Sub_C473 ; CPU:$C4D4 PRG:44D4 50 9D
ora #$05 ; CPU:$C4D6 PRG:44D6 09 05
lda $0500,x ; CPU:$C4D8 PRG:44D8 BD 00 05
and #$1F ; CPU:$C4DB PRG:44DB 29 1F
clc ; CPU:$C4DD PRG:44DD 18
adc #$06 ; CPU:$C4DE PRG:44DE 69 06
sta $0500,x ; CPU:$C4E0 PRG:44E0 9D 00 05
jmp ObjCommonUpdate ; CPU:$C4E3 PRG:44E3 4C D8 C7
; -----------------------------------------------------------------------------
; Routine: Sub_C4E6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C4E6:
lda $050E,x ; CPU:$C4E6 PRG:44E6 BD 0E 05
bne Sub_C4FB ; CPU:$C4E9 PRG:44E9 D0 10
lda #$03 ; CPU:$C4EB PRG:44EB A9 03
sta $0500,x ; CPU:$C4ED PRG:44ED 9D 00 05
lda #$05 ; CPU:$C4F0 PRG:44F0 A9 05
; ---- data $C4F2-$C4F3 (2 bytes) ----
.byte $9D, $0C ; CPU:$C4F2 PRG:44F2 9D 0C
; -----------------------------------------------------------------------------
; Routine: Sub_C4F4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C4F4:
ora ZpA9 ; CPU:$C4F4 PRG:44F4 05 A9
php ; CPU:$C4F6 PRG:44F6 08
sta $050D,x ; CPU:$C4F7 PRG:44F7 9D 0D 05
rts ; CPU:$C4FA PRG:44FA 60
; -----------------------------------------------------------------------------
; Routine: Sub_C4FB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C4FB:
lda #$05 ; CPU:$C4FB PRG:44FB A9 05
; ---- data $C4FD-$C4FE (2 bytes) ----
.byte $9D, $00 ; CPU:$C4FD PRG:44FD 9D 00
; -----------------------------------------------------------------------------
; Routine: Sub_C4FF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C4FF:
ora ZpA9 ; CPU:$C4FF PRG:44FF 05 A9
asl $0C9D ; CPU:$C501 PRG:4501 0E 9D 0C
ora ZpA9 ; CPU:$C504 PRG:4504 05 A9
php ; CPU:$C506 PRG:4506 08
sta $050D,x ; CPU:$C507 PRG:4507 9D 0D 05
rts ; CPU:$C50A PRG:450A 60
; -----------------------------------------------------------------------------
; Routine: Sub_C50B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C50B:
jsr ObjXUpdate ; CPU:$C50B PRG:450B 20 79 C5
jsr ObjSpriteY ; CPU:$C50E PRG:450E 20 B4 C6
lda $0500,x ; CPU:$C511 PRG:4511 BD 00 05
bmi Sub_C4E6 ; CPU:$C514 PRG:4514 30 D0
dec $0509,x ; CPU:$C516 PRG:4516 DE 09 05
bne Sub_C523 ; CPU:$C519 PRG:4519 D0 08
and #$1F ; CPU:$C51B PRG:451B 29 1F
sec ; CPU:$C51D PRG:451D 38
sbc #$09 ; CPU:$C51E PRG:451E E9 09
sta $0500,x ; CPU:$C520 PRG:4520 9D 00 05
; -----------------------------------------------------------------------------
; Routine: Sub_C523
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C523:
jmp ObjCommonUpdate ; CPU:$C523 PRG:4523 4C D8 C7
; ---- data $C526-$C53A (21 bytes) ----
.byte $20, $74, $C5, $20, $B4, $C6, $BD, $00, $05, $30, $B5, $DE, $09, $05, $D0, $3B ; CPU:$C526 PRG:4526 20 74 C5 20 B4 C6 BD 00 05 30 B5 DE 09 05 D0 3B
.byte $A9, $0E, $4C, $20, $C5 ; CPU:$C536 PRG:4536 A9 0E 4C 20 C5
; -----------------------------------------------------------------------------
; Routine: Sub_C53B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C53B:
jsr ObjYUpdate ; CPU:$C53B PRG:453B 20 74 C5
jsr ObjSpriteY ; CPU:$C53E PRG:453E 20 B4 C6
lda $0500,x ; CPU:$C541 PRG:4541 BD 00 05
bmi Sub_C4E6 ; CPU:$C544 PRG:4544 30 A0
dec $0509,x ; CPU:$C546 PRG:4546 DE 09 05
bne Sub_C571 ; CPU:$C549 PRG:4549 D0 26
and #$1F ; CPU:$C54B PRG:454B 29 1F
sec ; CPU:$C54D PRG:454D 38
sbc #$0E ; CPU:$C54E PRG:454E E9 0E
jmp ObjYCheck ; CPU:$C550 PRG:4550 4C 68 C5
; ---- data $C553-$C567 (21 bytes) ----
.byte $20, $A3, $C5, $20, $B4, $C6, $BD, $00, $05, $30, $88, $DE, $09, $05, $D0, $C0 ; CPU:$C553 PRG:4553 20 A3 C5 20 B4 C6 BD 00 05 30 88 DE 09 05 D0 C0
.byte $29, $1F, $38, $E9, $0B ; CPU:$C563 PRG:4563 29 1F 38 E9 0B
; -----------------------------------------------------------------------------
; Routine: ObjYCheck
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjYCheck:
cmp #$06 ; CPU:$C568 PRG:4568 C9 06
beq Sub_C56E ; CPU:$C56A PRG:456A F0 02
lda #$07 ; CPU:$C56C PRG:456C A9 07
; -----------------------------------------------------------------------------
; Routine: Sub_C56E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C56E:
sta $0500,x ; CPU:$C56E PRG:456E 9D 00 05
; -----------------------------------------------------------------------------
; Routine: Sub_C571
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C571:
jmp ObjCommonUpdate ; CPU:$C571 PRG:4571 4C D8 C7
; -----------------------------------------------------------------------------
; Routine: ObjYUpdate
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjYUpdate:
lda #$E0 ; CPU:$C574 PRG:4574 A9 E0
jmp ObjXUpdate2 ; CPU:$C576 PRG:4576 4C 7B C5
; -----------------------------------------------------------------------------
; Routine: ObjXUpdate
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjXUpdate:
lda #$60 ; CPU:$C579 PRG:4579 A9 60
; -----------------------------------------------------------------------------
; Routine: ObjXUpdate2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjXUpdate2:
clc ; CPU:$C57B PRG:457B 18
adc $0508,x ; CPU:$C57C PRG:457C 7D 08 05
sta $0508,x ; CPU:$C57F PRG:457F 9D 08 05
bcc Sub_C58C ; CPU:$C582 PRG:4582 90 08
inc $0507,x ; CPU:$C584 PRG:4584 FE 07 05
bne Sub_C58C ; CPU:$C587 PRG:4587 D0 03
inc $0506,x ; CPU:$C589 PRG:4589 FE 06 05
; -----------------------------------------------------------------------------
; Routine: Sub_C58C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C58C:
lda $0507,x ; CPU:$C58C PRG:458C BD 07 05
and #$03 ; CPU:$C58F PRG:458F 29 03
bne Sub_C5A2 ; CPU:$C591 PRG:4591 D0 0F
inc $050C,x ; CPU:$C593 PRG:4593 FE 0C 05
lda $050C,x ; CPU:$C596 PRG:4596 BD 0C 05
cmp #$0E ; CPU:$C599 PRG:4599 C9 0E
bne Sub_C5A2 ; CPU:$C59B PRG:459B D0 05
lda #$0B ; CPU:$C59D PRG:459D A9 0B
sta $050C,x ; CPU:$C59F PRG:459F 9D 0C 05
; -----------------------------------------------------------------------------
; Routine: Sub_C5A2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C5A2:
rts ; CPU:$C5A2 PRG:45A2 60
; ---- data $C5A3-$C625 (131 bytes) ----
.byte $BD, $08, $05, $38, $E9, $60, $9D, $08, $05, $B0, $0D, $DE, $07, $05, $BD, $07 ; CPU:$C5A3 PRG:45A3 BD 08 05 38 E9 60 9D 08 05 B0 0D DE 07 05 BD 07
.byte $05, $C9, $FF, $D0, $03, $DE, $06, $05, $A5, $1B, $29, $07, $D0, $0F, $DE, $0C ; CPU:$C5B3 PRG:45B3 05 C9 FF D0 03 DE 06 05 A5 1B 29 07 D0 0F DE 0C
.byte $05, $BD, $0C, $05, $C9, $0A, $D0, $05, $A9, $0D, $9D, $0C, $05, $60, $20, $B4 ; CPU:$C5C3 PRG:45C3 05 BD 0C 05 C9 0A D0 05 A9 0D 9D 0C 05 60 20 B4
.byte $C6, $BD, $00, $05, $30, $76, $20, $46, $C7, $20, $D8, $C7, $20, $B4, $C6, $BD ; CPU:$C5D3 PRG:45D3 C6 BD 00 05 30 76 20 46 C7 20 D8 C7 20 B4 C6 BD
.byte $00, $05, $30, $68, $BD, $06, $05, $D0, $26, $BD, $07, $05, $C5, $91, $B0, $1F ; CPU:$C5E3 PRG:45E3 00 05 30 68 BD 06 05 D0 26 BD 07 05 C5 91 B0 1F
.byte $BD, $0E, $05, $D0, $0B, $20, $5C, $F5, $25, $97, $18, $69, $30, $9D, $0E, $05 ; CPU:$C5F3 PRG:45F3 BD 0E 05 D0 0B 20 5C F5 25 97 18 69 30 9D 0E 05
.byte $DE, $0E, $05, $D0, $0A, $A9, $08, $9D, $0D, $05, $A9, $02, $9D, $00, $05, $60 ; CPU:$C603 PRG:4603 DE 0E 05 D0 0A A9 08 9D 0D 05 A9 02 9D 00 05 60
.byte $20, $B4, $C6, $BD, $00, $05, $30, $34, $20, $46, $C7, $20, $D8, $C7, $20, $B4 ; CPU:$C613 PRG:4613 20 B4 C6 BD 00 05 30 34 20 46 C7 20 D8 C7 20 B4
.byte $C6, $BD, $00 ; CPU:$C623 PRG:4623 C6 BD 00
; -----------------------------------------------------------------------------
; Routine: Sub_C626
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C626:
ora Zp30 ; CPU:$C626 PRG:4626 05 30
rol ZpDE ; CPU:$C628 PRG:4628 26 DE
ora $D005 ; CPU:$C62A PRG:462A 0D 05 D0
jsr $08A9 ; CPU:$C62D PRG:462D 20 A9 08
sta $050D,x ; CPU:$C630 PRG:4630 9D 0D 05
inc $050C,x ; CPU:$C633 PRG:4633 FE 0C 05
lda $050C,x ; CPU:$C636 PRG:4636 BD 0C 05
cmp #$03 ; CPU:$C639 PRG:4639 C9 03
bne Sub_C640 ; CPU:$C63B PRG:463B D0 03
jmp DispatchJsrStoreLdaClc2 ; CPU:$C63D PRG:463D 4C 65 CF
; -----------------------------------------------------------------------------
; Routine: Sub_C640
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C640:
cmp #$05 ; CPU:$C640 PRG:4640 C9 05
bne Sub_C64E ; CPU:$C642 PRG:4642 D0 0A
lda #$00 ; CPU:$C644 PRG:4644 A9 00
sta $050C,x ; CPU:$C646 PRG:4646 9D 0C 05
lda #$01 ; CPU:$C649 PRG:4649 A9 01
sta $0500,x ; CPU:$C64B PRG:464B 9D 00 05
; -----------------------------------------------------------------------------
; Routine: Sub_C64E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C64E:
rts ; CPU:$C64E PRG:464E 60
; ---- data $C64F-$C657 (9 bytes) ----
.byte $A9, $03, $9D, $00, $05, $A9, $05, $9D, $0C ; CPU:$C64F PRG:464F A9 03 9D 00 05 A9 05 9D 0C
; -----------------------------------------------------------------------------
; Routine: Sub_C658
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C658:
ora ZpA9 ; CPU:$C658 PRG:4658 05 A9
php ; CPU:$C65A PRG:465A 08
sta $050D,x ; CPU:$C65B PRG:465B 9D 0D 05
rts ; CPU:$C65E PRG:465E 60
; ---- data $C65F-$C698 (58 bytes) ----
.byte $20, $D8, $C7, $DE, $0D, $05, $D0, $14, $A9, $08, $9D, $0D, $05, $FE, $0C, $05 ; CPU:$C65F PRG:465F 20 D8 C7 DE 0D 05 D0 14 A9 08 9D 0D 05 FE 0C 05
.byte $BD, $0C, $05, $C9, $0A, $D0, $05, $A9, $04, $9D, $00, $05, $60, $20, $D8, $C7 ; CPU:$C66F PRG:466F BD 0C 05 C9 0A D0 05 A9 04 9D 00 05 60 20 D8 C7
.byte $DE, $0D, $05, $D0, $14, $A9, $08, $9D, $0D, $05, $FE, $0C, $05, $BD, $0C, $05 ; CPU:$C67F PRG:467F DE 0D 05 D0 14 A9 08 9D 0D 05 FE 0C 05 BD 0C 05
.byte $C9, $13, $D0, $05, $A9, $00, $9D, $00, $05, $60 ; CPU:$C68F PRG:468F C9 13 D0 05 A9 00 9D 00 05 60
; -----------------------------------------------------------------------------
; Routine: ObjSpriteIndex
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSpriteIndex:
txa ; CPU:$C699 PRG:4699 8A
lsr a ; CPU:$C69A PRG:469A 4A
lsr a ; CPU:$C69B PRG:469B 4A
lsr a ; CPU:$C69C PRG:469C 4A
lsr a ; CPU:$C69D PRG:469D 4A
adc GameSubMode ; CPU:$C69E PRG:469E 65 1B
and #$04 ; CPU:$C6A0 PRG:46A0 29 04
beq Sub_C6AC ; CPU:$C6A2 PRG:46A2 F0 08
lda #$13 ; CPU:$C6A4 PRG:46A4 A9 13
sta $050C,x ; CPU:$C6A6 PRG:46A6 9D 0C 05
jsr ObjCommonUpdate ; CPU:$C6A9 PRG:46A9 20 D8 C7
; -----------------------------------------------------------------------------
; Routine: Sub_C6AC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C6AC:
lda #$0A ; CPU:$C6AC PRG:46AC A9 0A
sta $050C,x ; CPU:$C6AE PRG:46AE 9D 0C 05
jmp ObjCommonUpdate ; CPU:$C6B1 PRG:46B1 4C D8 C7
; -----------------------------------------------------------------------------
; Routine: ObjSpriteY
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSpriteY:
lda $0506,x ; CPU:$C6B4 PRG:46B4 BD 06 05
bne Sub_C71F ; CPU:$C6B7 PRG:46B7 D0 66
lda $0507,x ; CPU:$C6B9 PRG:46B9 BD 07 05
sec ; CPU:$C6BC PRG:46BC 38
sbc Zp24 ; CPU:$C6BD PRG:46BD E5 24
clc ; CPU:$C6BF PRG:46BF 18
adc #$4B ; CPU:$C6C0 PRG:46C0 69 4B
cmp #$17 ; CPU:$C6C2 PRG:46C2 C9 17
bcs Sub_C6DF ; CPU:$C6C4 PRG:46C4 B0 19
lda $0504,x ; CPU:$C6C6 PRG:46C6 BD 04 05
sec ; CPU:$C6C9 PRG:46C9 38
sbc Zp23 ; CPU:$C6CA PRG:46CA E5 23
clc ; CPU:$C6CC PRG:46CC 18
adc #$0B ; CPU:$C6CD PRG:46CD 69 0B
cmp #$17 ; CPU:$C6CF PRG:46CF C9 17
bcs Sub_C6DF ; CPU:$C6D1 PRG:46D1 B0 0C
; ---- data $C6D3-$C6D3 (1 bytes) ----
.byte $A9 ; CPU:$C6D3 PRG:46D3 A9
; -----------------------------------------------------------------------------
; Routine: Sub_C6D4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C6D4:
ora (Zp85,x) ; CPU:$C6D4 PRG:46D4 01 85
rol a:$00BD ; CPU:$C6D6 PRG:46D6 2E BD 00
ora Joypad1Press ; CPU:$C6D9 PRG:46D9 05 09
rti ; CPU:$C6DB PRG:46DB 40
sta $0500,x ; CPU:$C6DC PRG:46DC 9D 00 05
; -----------------------------------------------------------------------------
; Routine: Sub_C6DF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C6DF:
lda $02A0 ; CPU:$C6DF PRG:46DF AD A0 02
beq Sub_C71F ; CPU:$C6E2 PRG:46E2 F0 3B
lda $0507,x ; CPU:$C6E4 PRG:46E4 BD 07 05
sec ; CPU:$C6E7 PRG:46E7 38
sbc $02A4 ; CPU:$C6E8 PRG:46E8 ED A4 02
clc ; CPU:$C6EB PRG:46EB 18
adc #$0C ; CPU:$C6EC PRG:46EC 69 0C
cmp #$17 ; CPU:$C6EE PRG:46EE C9 17
bcs Sub_C71F ; CPU:$C6F0 PRG:46F0 B0 2D
lda $0504,x ; CPU:$C6F2 PRG:46F2 BD 04 05
sec ; CPU:$C6F5 PRG:46F5 38
sbc $02A3 ; CPU:$C6F6 PRG:46F6 ED A3 02
clc ; CPU:$C6F9 PRG:46F9 18
adc #$0C ; CPU:$C6FA PRG:46FA 69 0C
cmp #$17 ; CPU:$C6FC PRG:46FC C9 17
bcs Sub_C71F ; CPU:$C6FE PRG:46FE B0 1F
lda $02A0 ; CPU:$C700 PRG:4700 AD A0 02
cmp #$20 ; CPU:$C703 PRG:4703 C9 20
bne Sub_C717 ; CPU:$C705 PRG:4705 D0 10
lda $0500,x ; CPU:$C707 PRG:4707 BD 00 05
ora #$80 ; CPU:$C70A PRG:470A 09 80
sta $0500,x ; CPU:$C70C PRG:470C 9D 00 05
lda #$01 ; CPU:$C70F PRG:470F A9 01
; -----------------------------------------------------------------------------
; Routine: Sub_C711
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C711:
sta $0612 ; CPU:$C711 PRG:4711 8D 12 06
jsr ObjSpriteX ; CPU:$C714 PRG:4714 20 20 C7
; -----------------------------------------------------------------------------
; Routine: Sub_C717
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C717:
lda $0500,x ; CPU:$C717 PRG:4717 BD 00 05
ora #$20 ; CPU:$C71A PRG:471A 09 20
sta $0500,x ; CPU:$C71C PRG:471C 9D 00 05
; -----------------------------------------------------------------------------
; Routine: Sub_C71F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C71F:
rts ; CPU:$C71F PRG:471F 60
; -----------------------------------------------------------------------------
; Routine: ObjSpriteX
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSpriteX:
lda $050F,x ; CPU:$C720 PRG:4720 BD 0F 05
cmp #$05 ; CPU:$C723 PRG:4723 C9 05
bcs Sub_C72B ; CPU:$C725 PRG:4725 B0 04
asl a ; CPU:$C727 PRG:4727 0A
jmp ObjSpritesInit5 ; CPU:$C728 PRG:4728 4C 54 BF
; -----------------------------------------------------------------------------
; Routine: Sub_C72B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C72B:
sec ; CPU:$C72B PRG:472B 38
sbc #$05 ; CPU:$C72C PRG:472C E9 05
tay ; CPU:$C72E PRG:472E A8
lda $C741,y ; CPU:$C72F PRG:472F B9 41 C7
jsr ObjSpritesInit4 ; CPU:$C732 PRG:4732 20 5B BF
lda $050F,x ; CPU:$C735 PRG:4735 BD 0F 05
and #$01 ; CPU:$C738 PRG:4738 29 01
bne Sub_C71F ; CPU:$C73A PRG:473A D0 E3
lda #$05 ; CPU:$C73C PRG:473C A9 05
jmp ObjSpritesInit5 ; CPU:$C73E PRG:473E 4C 54 BF
; ---- data $C741-$C79F (95 bytes) ----
; referenced by `lda $C741,y` at $C72F (operand $C741 falls inside this region)
.byte $01, $01, $02, $02, $0A, $BD, $02, $05, $0A, $0A, $29, $7C, $A8, $20, $C4, $C7 ; CPU:$C741 PRG:4741 01 01 02 02 0A BD 02 05 0A 0A 29 7C A8 20 C4 C7
.byte $A5, $35, $18, $7D, $05, $05, $9D, $05, $05, $A5, $36, $7D, $04, $05, $9D, $04 ; CPU:$C751 PRG:4751 A5 35 18 7D 05 05 9D 05 05 A5 36 7D 04 05 9D 04
.byte $05, $A5, $13, $7D, $03, $05, $9D, $03, $05, $F0, $06, $A9, $00, $9D, $00, $05 ; CPU:$C761 PRG:4761 05 A5 13 7D 03 05 9D 03 05 F0 06 A9 00 9D 00 05
.byte $60, $BD, $04, $05, $C9, $F1, $B0, $F3, $C8, $C8, $20, $C4, $C7, $A5, $35, $18 ; CPU:$C771 PRG:4771 60 BD 04 05 C9 F1 B0 F3 C8 C8 20 C4 C7 A5 35 18
.byte $7D, $08, $05, $9D, $08, $05, $A5, $36, $7D, $07, $05, $9D, $07, $05, $A5, $13 ; CPU:$C781 PRG:4781 7D 08 05 9D 08 05 A5 36 7D 07 05 9D 07 05 A5 13
.byte $7D, $06, $05, $9D, $06, $05, $30, $02, $D0, $D1, $DE, $09, $05, $D0, $23 ; CPU:$C791 PRG:4791 7D 06 05 9D 06 05 30 02 D0 D1 DE 09 05 D0 23
; -----------------------------------------------------------------------------
; Routine: ObjSpriteAttrs
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjSpriteAttrs:
lda $050A,x ; CPU:$C7A0 PRG:47A0 BD 0A 05
sta VramPtrLo ; CPU:$C7A3 PRG:47A3 85 04
lda $050B,x ; CPU:$C7A5 PRG:47A5 BD 0B 05
sta VramCopyCount ; CPU:$C7A8 PRG:47A8 85 05
lda $0501,x ; CPU:$C7AA PRG:47AA BD 01 05
sty Zp2C ; CPU:$C7AD PRG:47AD 84 2C
tay ; CPU:$C7AF PRG:47AF A8
inc $0501,x ; CPU:$C7B0 PRG:47B0 FE 01 05
inc $0501,x ; CPU:$C7B3 PRG:47B3 FE 01 05
lda (VramPtrLo),y ; CPU:$C7B6 PRG:47B6 B1 04
sta $0502,x ; CPU:$C7B8 PRG:47B8 9D 02 05
iny ; CPU:$C7BB PRG:47BB C8
lda (VramPtrLo),y ; CPU:$C7BC PRG:47BC B1 04
sta $0509,x ; CPU:$C7BE PRG:47BE 9D 09 05
ldy Zp2C ; CPU:$C7C1 PRG:47C1 A4 2C
rts ; CPU:$C7C3 PRG:47C3 60
; -----------------------------------------------------------------------------
; Routine: Sub_C7C4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C7C4:
lda #$00 ; CPU:$C7C4 PRG:47C4 A9 00
; -----------------------------------------------------------------------------
; Routine: Sub_C7C6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C7C6:
sta ObjPtr ; CPU:$C7C6 PRG:47C6 85 13
lda $C93C,y ; CPU:$C7C8 PRG:47C8 B9 3C C9
sta ObjectYLo ; CPU:$C7CB PRG:47CB 85 35
lda $C93D,y ; CPU:$C7CD PRG:47CD B9 3D C9
sta ObjectYHi ; CPU:$C7D0 PRG:47D0 85 36
asl a ; CPU:$C7D2 PRG:47D2 0A
bcc Sub_C7D7 ; CPU:$C7D3 PRG:47D3 90 02
dec ObjPtr ; CPU:$C7D5 PRG:47D5 C6 13
; -----------------------------------------------------------------------------
; Routine: Sub_C7D7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C7D7:
rts ; CPU:$C7D7 PRG:47D7 60
; -----------------------------------------------------------------------------
; Routine: ObjCommonUpdate
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjCommonUpdate:
lda $0506,x ; CPU:$C7D8 PRG:47D8 BD 06 05
ora $0503,x ; CPU:$C7DB PRG:47DB 1D 03 05
beq Sub_C7E1 ; CPU:$C7DE PRG:47DE F0 01
; -----------------------------------------------------------------------------
; Routine: Sub_C7E0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C7E0:
rts ; CPU:$C7E0 PRG:47E0 60
; -----------------------------------------------------------------------------
; Routine: Sub_C7E1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C7E1:
lda $0504,x ; CPU:$C7E1 PRG:47E1 BD 04 05
cmp #$F1 ; CPU:$C7E4 PRG:47E4 C9 F1
bcs Sub_C7E0 ; CPU:$C7E6 PRG:47E6 B0 F8
sta ObjectXLo ; CPU:$C7E8 PRG:47E8 85 37
lda $0507,x ; CPU:$C7EA PRG:47EA BD 07 05
cmp #$F0 ; CPU:$C7ED PRG:47ED C9 F0
bcs Sub_C7E0 ; CPU:$C7EF PRG:47EF B0 EF
sta ObjectXHi ; CPU:$C7F1 PRG:47F1 85 38
lda $050C,x ; CPU:$C7F3 PRG:47F3 BD 0C 05
asl a ; CPU:$C7F6 PRG:47F6 0A
tay ; CPU:$C7F7 PRG:47F7 A8
lda $C83A,y ; CPU:$C7F8 PRG:47F8 B9 3A C8
sta VramPtrLo ; CPU:$C7FB PRG:47FB 85 04
lda $C83B,y ; CPU:$C7FD PRG:47FD B9 3B C8
sta VramCopyCount ; CPU:$C800 PRG:4800 85 05
ldy #$00 ; CPU:$C802 PRG:4802 A0 00
lda (VramPtrLo),y ; CPU:$C804 PRG:4804 B1 04
sta ObjUpdateFlag ; CPU:$C806 PRG:4806 85 0E
stx ObjPtr ; CPU:$C808 PRG:4808 86 13
iny ; CPU:$C80A PRG:480A C8
; -----------------------------------------------------------------------------
; Routine: Sub_C80B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C80B:
ldx ObjectDeltaX ; CPU:$C80B PRG:480B A6 2D
beq Sub_C837 ; CPU:$C80D PRG:480D F0 28
lda (VramPtrLo),y ; CPU:$C80F PRG:480F B1 04
clc ; CPU:$C811 PRG:4811 18
adc ObjectXHi ; CPU:$C812 PRG:4812 65 38
sta $0700,x ; CPU:$C814 PRG:4814 9D 00 07
inx ; CPU:$C817 PRG:4817 E8
iny ; CPU:$C818 PRG:4818 C8
lda (VramPtrLo),y ; CPU:$C819 PRG:4819 B1 04
sta $0700,x ; CPU:$C81B PRG:481B 9D 00 07
inx ; CPU:$C81E PRG:481E E8
iny ; CPU:$C81F PRG:481F C8
lda (VramPtrLo),y ; CPU:$C820 PRG:4820 B1 04
sta $0700,x ; CPU:$C822 PRG:4822 9D 00 07
inx ; CPU:$C825 PRG:4825 E8
iny ; CPU:$C826 PRG:4826 C8
lda (VramPtrLo),y ; CPU:$C827 PRG:4827 B1 04
clc ; CPU:$C829 PRG:4829 18
adc ObjectXLo ; CPU:$C82A PRG:482A 65 37
sta $0700,x ; CPU:$C82C PRG:482C 9D 00 07
inx ; CPU:$C82F PRG:482F E8
iny ; CPU:$C830 PRG:4830 C8
stx ObjectDeltaX ; CPU:$C831 PRG:4831 86 2D
dec ObjUpdateFlag ; CPU:$C833 PRG:4833 C6 0E
bne Sub_C80B ; CPU:$C835 PRG:4835 D0 D4
; -----------------------------------------------------------------------------
; Routine: Sub_C837
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C837:
ldx ObjPtr ; CPU:$C837 PRG:4837 A6 13
rts ; CPU:$C839 PRG:4839 60
; ---- data $C83A-$C8B3 (122 bytes) ----
; referenced by `lda $C83A,y` at $C7F8 (operand $C83A falls inside this region)
; referenced by `lda $C83B,y` at $C7FD (operand $C83B falls inside this region)
.byte $62, $C8, $73, $C8, $88, $C8, $88, $C8, $73, $C8, $9D, $C8, $AE, $C8, $9D, $C8 ; CPU:$C83A PRG:483A 62 C8 73 C8 88 C8 88 C8 73 C8 9D C8 AE C8 9D C8
.byte $BF, $C8, $D4, $C8, $F8, $C8, $09, $C9, $1A, $C9, $2B, $C9, $9D, $C8, $AE, $C8 ; CPU:$C84A PRG:484A BF C8 D4 C8 F8 C8 09 C9 1A C9 2B C9 9D C8 AE C8
.byte $9D, $C8, $E9, $C8, $EE, $C8, $F3, $C8, $04, $00, $AC, $01, $00, $00, $AD, $01 ; CPU:$C85A PRG:485A 9D C8 E9 C8 EE C8 F3 C8 04 00 AC 01 00 00 AD 01
.byte $08, $08, $AE, $01, $00, $08, $AF, $01, $08, $05, $04, $D2, $00, $04, $00, $AC ; CPU:$C86A PRG:486A 08 08 AE 01 00 08 AF 01 08 05 04 D2 00 04 00 AC
.byte $01, $00, $00, $AD, $01, $08, $08, $AE, $01, $00, $08, $AF, $01, $08, $05, $04 ; CPU:$C87A PRG:487A 01 00 00 AD 01 08 08 AE 01 00 08 AF 01 08 05 04
.byte $3F, $00, $04, $00, $AC, $01, $00, $00, $AD, $01, $08, $08, $AE, $01, $00, $08 ; CPU:$C88A PRG:488A 3F 00 04 00 AC 01 00 00 AD 01 08 08 AE 01 00 08
.byte $AF, $01, $08, $04, $00, $E8, $03, $00, $00, $E9, $03, $08, $08, $EA, $03, $00 ; CPU:$C89A PRG:489A AF 01 08 04 00 E8 03 00 00 E9 03 08 08 EA 03 00
.byte $08, $EB, $03, $08, $04, $00, $E4, $03, $00, $00 ; CPU:$C8AA PRG:48AA 08 EB 03 08 04 00 E4 03 00 00
; -----------------------------------------------------------------------------
; Routine: Sub_C8B4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C8B4:
sbc ScrollY ; CPU:$C8B4 PRG:48B4 E5 03
php ; CPU:$C8B6 PRG:48B6 08
php ; CPU:$C8B7 PRG:48B7 08
inc ScrollY ; CPU:$C8B8 PRG:48B8 E6 03
brk ; CPU:$C8BA PRG:48BA 00
; ---- data $C8BB-$C8BD (3 bytes) ----
.byte $08, $E7, $03 ; CPU:$C8BB PRG:48BB 08 E7 03
; -----------------------------------------------------------------------------
; Routine: Sub_C8BE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C8BE:
php ; CPU:$C8BE PRG:48BE 08
ora VramPtrLo ; CPU:$C8BF PRG:48BF 05 04
cpx $0403 ; CPU:$C8C1 PRG:48C1 EC 03 04
brk ; CPU:$C8C4 PRG:48C4 00
; ---- data $C8C5-$C8D1 (13 bytes) ----
.byte $DB, $00, $00, $00, $DB, $40, $08, $08, $DB, $80, $00, $08, $DB ; CPU:$C8C5 PRG:48C5 DB 00 00 00 DB 40 08 08 DB 80 00 08 DB
; -----------------------------------------------------------------------------
; Routine: Sub_C8D2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C8D2:
cpy #$08 ; CPU:$C8D2 PRG:48D2 C0 08
ora VramPtrLo ; CPU:$C8D4 PRG:48D4 05 04
sbc $0403 ; CPU:$C8D6 PRG:48D6 ED 03 04
brk ; CPU:$C8D9 PRG:48D9 00
; ---- data $C8DA-$C90E (53 bytes) ----
.byte $DB, $00, $00, $00, $DB, $40, $08, $08, $DB, $80, $00, $08, $DB, $C0, $08, $01 ; CPU:$C8DA PRG:48DA DB 00 00 00 DB 40 08 08 DB 80 00 08 DB C0 08 01
.byte $04, $EC, $03, $04, $01, $04, $ED, $03, $04, $01, $04, $EE, $03, $04, $04, $00 ; CPU:$C8EA PRG:48EA 04 EC 03 04 01 04 ED 03 04 01 04 EE 03 04 04 00
.byte $DB, $00, $00, $00, $DB, $40, $08, $08, $DB, $80, $00, $08, $DB, $C0, $08, $04 ; CPU:$C8FA PRG:48FA DB 00 00 00 DB 40 08 08 DB 80 00 08 DB C0 08 04
.byte $00, $A0, $01, $00, $00 ; CPU:$C90A PRG:490A 00 A0 01 00 00
; -----------------------------------------------------------------------------
; Routine: Sub_C90F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C90F:
lda (PPUMASKShadow,x) ; CPU:$C90F PRG:490F A1 01
php ; CPU:$C911 PRG:4911 08
php ; CPU:$C912 PRG:4912 08
ldx #$01 ; CPU:$C913 PRG:4913 A2 01
brk ; CPU:$C915 PRG:4915 00
; ---- data $C916-$C91F (10 bytes) ----
.byte $08, $A3, $01, $08, $04, $00, $A4, $01, $00, $00 ; CPU:$C916 PRG:4916 08 A3 01 08 04 00 A4 01 00 00
; -----------------------------------------------------------------------------
; Routine: Sub_C920
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C920:
lda PPUMASKShadow ; CPU:$C920 PRG:4920 A5 01
php ; CPU:$C922 PRG:4922 08
php ; CPU:$C923 PRG:4923 08
ldx PPUMASKShadow ; CPU:$C924 PRG:4924 A6 01
brk ; CPU:$C926 PRG:4926 00
; ---- data $C927-$C9BB (149 bytes) ----
; referenced by `lda $C93C,y` at $C7C8 (operand $C93C falls inside this region)
; referenced by `lda $C93D,y` at $C7CD (operand $C93D falls inside this region)
.byte $08, $A7, $01, $08, $04, $00, $A8, $01, $00, $00, $A9, $01, $08, $08, $AA, $01 ; CPU:$C927 PRG:4927 08 A7 01 08 04 00 A8 01 00 00 A9 01 08 08 AA 01
.byte $00, $08, $AB, $01, $08, $00, $00, $80, $00, $20, $00, $80, $00, $40, $00, $80 ; CPU:$C937 PRG:4937 00 08 AB 01 08 00 00 80 00 20 00 80 00 40 00 80
.byte $00, $60, $00, $80, $00, $80, $00, $80, $00, $80, $00, $60, $00, $80, $00, $40 ; CPU:$C947 PRG:4947 00 60 00 80 00 80 00 80 00 80 00 60 00 80 00 40
.byte $00, $80, $00, $20, $00, $80, $00, $00, $00, $80, $00, $E0, $FF, $80, $00, $C0 ; CPU:$C957 PRG:4957 00 80 00 20 00 80 00 00 00 80 00 E0 FF 80 00 C0
.byte $FF, $80, $00, $A0, $FF, $80, $00, $80, $FF, $60, $00, $80, $FF, $40, $00, $80 ; CPU:$C967 PRG:4967 FF 80 00 A0 FF 80 00 80 FF 60 00 80 FF 40 00 80
.byte $FF, $20, $00, $80, $FF, $00, $00, $80, $FF, $E0, $FF, $80, $FF, $C0, $FF, $80 ; CPU:$C977 PRG:4977 FF 20 00 80 FF 00 00 80 FF E0 FF 80 FF C0 FF 80
.byte $FF, $A0, $FF, $80, $FF, $80, $FF, $80, $FF, $80, $FF, $A0, $FF, $80, $FF, $C0 ; CPU:$C987 PRG:4987 FF A0 FF 80 FF 80 FF 80 FF 80 FF A0 FF 80 FF C0
.byte $FF, $80, $FF, $E0, $FF, $80, $FF, $00, $00, $80, $FF, $20, $00, $80, $FF, $40 ; CPU:$C997 PRG:4997 FF 80 FF E0 FF 80 FF 00 00 80 FF 20 00 80 FF 40
.byte $00, $80, $FF, $60, $00, $80, $FF, $80, $00, $A0, $FF, $80, $00, $C0, $FF, $80 ; CPU:$C9A7 PRG:49A7 00 80 FF 60 00 80 FF 80 00 A0 FF 80 00 C0 FF 80
.byte $00, $E0, $FF, $80, $00 ; CPU:$C9B7 PRG:49B7 00 E0 FF 80 00
; -----------------------------------------------------------------------------
; Routine: C9bcCheck
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
C9bcCheck:
ldy #$00 ; CPU:$C9BC PRG:49BC A0 00
; -----------------------------------------------------------------------------
; Routine: DispatchCheck
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchCheck:
lda (Zp2A),y ; CPU:$C9BE PRG:49BE B1 2A
beq Sub_C9E2 ; CPU:$C9C0 PRG:49C0 F0 20
sta ObjPtr ; CPU:$C9C2 PRG:49C2 85 13
lda Zp99 ; CPU:$C9C4 PRG:49C4 A5 99
and #$FE ; CPU:$C9C6 PRG:49C6 29 FE
beq Sub_C9E2 ; CPU:$C9C8 PRG:49C8 F0 18
cmp ObjPtr ; CPU:$C9CA PRG:49CA C5 13
beq Sub_C9E3 ; CPU:$C9CC PRG:49CC F0 15
bcs Sub_C9E2 ; CPU:$C9CE PRG:49CE B0 12
ldx #$04 ; CPU:$C9D0 PRG:49D0 A2 04
jsr DispatchInc ; CPU:$C9D2 PRG:49D2 20 D8 C9
jmp DispatchCheck ; CPU:$C9D5 PRG:49D5 4C BE C9
; -----------------------------------------------------------------------------
; Routine: DispatchInc
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchInc:
inc Zp2A ; CPU:$C9D8 PRG:49D8 E6 2A
bne Sub_C9DE ; CPU:$C9DA PRG:49DA D0 02
inc Zp2B ; CPU:$C9DC PRG:49DC E6 2B
; -----------------------------------------------------------------------------
; Routine: Sub_C9DE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C9DE:
dex ; CPU:$C9DE PRG:49DE CA
bne DispatchInc ; CPU:$C9DF PRG:49DF D0 F7
rts ; CPU:$C9E1 PRG:49E1 60
; -----------------------------------------------------------------------------
; Routine: Sub_C9E2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C9E2:
rts ; CPU:$C9E2 PRG:49E2 60
; -----------------------------------------------------------------------------
; Routine: Sub_C9E3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C9E3:
iny ; CPU:$C9E3 PRG:49E3 C8
lda (Zp2A),y ; CPU:$C9E4 PRG:49E4 B1 2A
tax ; CPU:$C9E6 PRG:49E6 AA
iny ; CPU:$C9E7 PRG:49E7 C8
cmp #$28 ; CPU:$C9E8 PRG:49E8 C9 28
bcc Sub_C9F7 ; CPU:$C9EA PRG:49EA 90 0B
lda Zp99 ; CPU:$C9EC PRG:49EC A5 99
and #$01 ; CPU:$C9EE PRG:49EE 29 01
bne Sub_C9F7 ; CPU:$C9F0 PRG:49F0 D0 05
iny ; CPU:$C9F2 PRG:49F2 C8
iny ; CPU:$C9F3 PRG:49F3 C8
jmp DispatchCheck ; CPU:$C9F4 PRG:49F4 4C BE C9
; -----------------------------------------------------------------------------
; Routine: Sub_C9F7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_C9F7:
lda $CA0A,x ; CPU:$C9F7 PRG:49F7 BD 0A CA
sta VramPtrLo ; CPU:$C9FA PRG:49FA 85 04
lda $CA0B,x ; CPU:$C9FC PRG:49FC BD 0B CA
sta VramCopyCount ; CPU:$C9FF PRG:49FF 85 05
jsr JumpIndirect4 ; CPU:$CA01 PRG:4A01 20 07 CA
jmp DispatchCheck ; CPU:$CA04 PRG:4A04 4C BE C9
; -----------------------------------------------------------------------------
; Routine: JumpIndirect4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
JumpIndirect4:
jmp ($0004) ; CPU:$CA07 PRG:4A07 6C 04 00
; ---- data $CA0A-$CA61 (88 bytes) ----
JumpTable4:
; referenced by `lda $CA0A,x` at $C9F7 (operand $CA0A falls inside this region)
; referenced by `lda $CA0B,x` at $C9FC (operand $CA0B falls inside this region)
.byte $24, $CB, $2E, $CB, $38, $CB, $42, $CB, $4C, $CB, $53, $CB, $5D, $CB, $64, $CB ; CPU:$CA0A PRG:4A0A 24 CB 2E CB 38 CB 42 CB 4C CB 53 CB 5D CB 64 CB
.byte $6E, $CB, $77, $CB, $7E, $CB, $85, $CB, $8C, $CB, $93, $CB, $1A, $CB, $1A, $CB ; CPU:$CA1A PRG:4A1A 6E CB 77 CB 7E CB 85 CB 8C CB 93 CB 1A CB 1A CB
.byte $0C, $CB, $1A, $CB, $1A, $CB, $02, $CB, $EA, $CA, $80, $CC, $6C, $CA, $80, $CA ; CPU:$CA2A PRG:4A2A 0C CB 1A CB 1A CB 02 CB EA CA 80 CC 6C CA 80 CA
.byte $9D, $C0, $76, $CA, $88, $CA, $B2, $CA, $B9, $CA, $C0, $CA, $C7, $CA, $CE, $CA ; CPU:$CA3A PRG:4A3A 9D C0 76 CA 88 CA B2 CA B9 CA C0 CA C7 CA CE CA
.byte $D5, $CA, $DC, $CA, $E3, $CA, $A0, $CA, $AB, $CA, $62, $CA, $0F, $C3, $64, $C3 ; CPU:$CA4A PRG:4A4A D5 CA DC CA E3 CA A0 CA AB CA 62 CA 0F C3 64 C3
.byte $6D, $C3, $92, $CA, $99, $CA, $74, $C2 ; CPU:$CA5A PRG:4A5A 6D C3 92 CA 99 CA 74 C2
; -----------------------------------------------------------------------------
; Routine: Sub_CA62
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CA62:
ldx #$02 ; CPU:$CA62 PRG:4A62 A2 02
jsr DispatchInc ; CPU:$CA64 PRG:4A64 20 D8 C9
dey ; CPU:$CA67 PRG:4A67 88
dey ; CPU:$CA68 PRG:4A68 88
jmp ObjSubRoutine2 ; CPU:$CA69 PRG:4A69 4C 7B C2
; -----------------------------------------------------------------------------
; Routine: Sub_CA6C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CA6C:
ldx #$02 ; CPU:$CA6C PRG:4A6C A2 02
jsr DispatchInc ; CPU:$CA6E PRG:4A6E 20 D8 C9
dey ; CPU:$CA71 PRG:4A71 88
dey ; CPU:$CA72 PRG:4A72 88
jmp ObjMoveY ; CPU:$CA73 PRG:4A73 4C 2E C0
; -----------------------------------------------------------------------------
; Routine: Sub_CA76
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CA76:
ldx #$02 ; CPU:$CA76 PRG:4A76 A2 02
jsr DispatchInc ; CPU:$CA78 PRG:4A78 20 D8 C9
dey ; CPU:$CA7B PRG:4A7B 88
dey ; CPU:$CA7C PRG:4A7C 88
jmp ObjSpawnInit ; CPU:$CA7D PRG:4A7D 4C 10 C0
; -----------------------------------------------------------------------------
; Routine: Sub_CA80
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CA80:
jsr ObjSpawnInit2 ; CPU:$CA80 PRG:4A80 20 56 C0
ldx #$03 ; CPU:$CA83 PRG:4A83 A2 03
jmp DispatchInc ; CPU:$CA85 PRG:4A85 4C D8 C9
; -----------------------------------------------------------------------------
; Routine: Sub_CA88
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CA88:
ldx #$02 ; CPU:$CA88 PRG:4A88 A2 02
jsr DispatchInc ; CPU:$CA8A PRG:4A8A 20 D8 C9
dey ; CPU:$CA8D PRG:4A8D 88
dey ; CPU:$CA8E PRG:4A8E 88
jmp ObjSetPosition ; CPU:$CA8F PRG:4A8F 4C 5D C0
; -----------------------------------------------------------------------------
; Routine: Sub_CA92
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CA92:
lda #$01 ; CPU:$CA92 PRG:4A92 A9 01
sta Zp3E ; CPU:$CA94 PRG:4A94 85 3E
iny ; CPU:$CA96 PRG:4A96 C8
iny ; CPU:$CA97 PRG:4A97 C8
rts ; CPU:$CA98 PRG:4A98 60
; -----------------------------------------------------------------------------
; Routine: Sub_CA99
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CA99:
lda #$01 ; CPU:$CA99 PRG:4A99 A9 01
sta Zp44 ; CPU:$CA9B PRG:4A9B 85 44
iny ; CPU:$CA9D PRG:4A9D C8
iny ; CPU:$CA9E PRG:4A9E C8
rts ; CPU:$CA9F PRG:4A9F 60
; -----------------------------------------------------------------------------
; Routine: Sub_CAA0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CAA0:
lda (Zp2A),y ; CPU:$CAA0 PRG:4AA0 B1 2A
sta Zp41 ; CPU:$CAA2 PRG:4AA2 85 41
iny ; CPU:$CAA4 PRG:4AA4 C8
lda (Zp2A),y ; CPU:$CAA5 PRG:4AA5 B1 2A
sta Zp3F ; CPU:$CAA7 PRG:4AA7 85 3F
iny ; CPU:$CAA9 PRG:4AA9 C8
rts ; CPU:$CAAA PRG:4AAA 60
; -----------------------------------------------------------------------------
; Routine: Sub_CAAB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CAAB:
lda #$00 ; CPU:$CAAB PRG:4AAB A9 00
sta Zp3F ; CPU:$CAAD PRG:4AAD 85 3F
jmp DispatchStoreY2Rts ; CPU:$CAAF PRG:4AAF 4C B6 CA
; -----------------------------------------------------------------------------
; Routine: Sub_CAB2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CAB2:
lda (Zp2A),y ; CPU:$CAB2 PRG:4AB2 B1 2A
sta Zp91 ; CPU:$CAB4 PRG:4AB4 85 91
; -----------------------------------------------------------------------------
; Routine: DispatchStoreY2Rts
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchStoreY2Rts:
iny ; CPU:$CAB6 PRG:4AB6 C8
iny ; CPU:$CAB7 PRG:4AB7 C8
rts ; CPU:$CAB8 PRG:4AB8 60
; -----------------------------------------------------------------------------
; Routine: Sub_CAB9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CAB9:
lda (Zp2A),y ; CPU:$CAB9 PRG:4AB9 B1 2A
sta Zp94 ; CPU:$CABB PRG:4ABB 85 94
jmp DispatchStoreY2Rts ; CPU:$CABD PRG:4ABD 4C B6 CA
; -----------------------------------------------------------------------------
; Routine: Sub_CAC0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CAC0:
lda (Zp2A),y ; CPU:$CAC0 PRG:4AC0 B1 2A
sta Zp92 ; CPU:$CAC2 PRG:4AC2 85 92
jmp DispatchStoreY2Rts ; CPU:$CAC4 PRG:4AC4 4C B6 CA
; -----------------------------------------------------------------------------
; Routine: Sub_CAC7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CAC7:
lda (Zp2A),y ; CPU:$CAC7 PRG:4AC7 B1 2A
sta Zp93 ; CPU:$CAC9 PRG:4AC9 85 93
jmp DispatchStoreY2Rts ; CPU:$CACB PRG:4ACB 4C B6 CA
; -----------------------------------------------------------------------------
; Routine: Sub_CACE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CACE:
lda (Zp2A),y ; CPU:$CACE PRG:4ACE B1 2A
sta Zp95 ; CPU:$CAD0 PRG:4AD0 85 95
jmp DispatchStoreY2Rts ; CPU:$CAD2 PRG:4AD2 4C B6 CA
; -----------------------------------------------------------------------------
; Routine: Sub_CAD5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CAD5:
lda (Zp2A),y ; CPU:$CAD5 PRG:4AD5 B1 2A
sta Zp96 ; CPU:$CAD7 PRG:4AD7 85 96
jmp DispatchStoreY2Rts ; CPU:$CAD9 PRG:4AD9 4C B6 CA
; -----------------------------------------------------------------------------
; Routine: Sub_CADC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CADC:
lda (Zp2A),y ; CPU:$CADC PRG:4ADC B1 2A
sta Zp97 ; CPU:$CADE PRG:4ADE 85 97
jmp DispatchStoreY2Rts ; CPU:$CAE0 PRG:4AE0 4C B6 CA
; -----------------------------------------------------------------------------
; Routine: Sub_CAE3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CAE3:
lda (Zp2A),y ; CPU:$CAE3 PRG:4AE3 B1 2A
sta Zp98 ; CPU:$CAE5 PRG:4AE5 85 98
jmp DispatchStoreY2Rts ; CPU:$CAE7 PRG:4AE7 4C B6 CA
; -----------------------------------------------------------------------------
; Routine: Sub_CAEA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CAEA:
jsr DispatchLsrsRts ; CPU:$CAEA PRG:4AEA 20 8D CC
; -----------------------------------------------------------------------------
; Routine: Sub_CAED
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CAED:
jsr DispatchLdaEorEorAslAslRol ; CPU:$CAED PRG:4AED 20 5C F5
cmp #$D0 ; CPU:$CAF0 PRG:4AF0 C9 D0
bcs Sub_CAED ; CPU:$CAF2 PRG:4AF2 B0 F9
clc ; CPU:$CAF4 PRG:4AF4 18
adc #$10 ; CPU:$CAF5 PRG:4AF5 69 10
sta $0303,x ; CPU:$CAF7 PRG:4AF7 9D 03 03
ldx #$02 ; CPU:$CAFA PRG:4AFA A2 02
jsr DispatchInc ; CPU:$CAFC PRG:4AFC 20 D8 C9
dey ; CPU:$CAFF PRG:4AFF 88
dey ; CPU:$CB00 PRG:4B00 88
rts ; CPU:$CB01 PRG:4B01 60
; -----------------------------------------------------------------------------
; Routine: Sub_CB02
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CB02:
jsr DispatchLsrsRts ; CPU:$CB02 PRG:4B02 20 8D CC
ldx #$34 ; CPU:$CB05 PRG:4B05 A2 34
lda #$01 ; CPU:$CB07 PRG:4B07 A9 01
jmp DispatchStoreLsrsB ; CPU:$CB09 PRG:4B09 4C 12 CC
; -----------------------------------------------------------------------------
; Routine: Sub_CB0C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CB0C:
jsr DispatchLsrsRts ; CPU:$CB0C PRG:4B0C 20 8D CC
lda #$00 ; CPU:$CB0F PRG:4B0F A9 00
sta Zp58 ; CPU:$CB11 PRG:4B11 85 58
ldx #$30 ; CPU:$CB13 PRG:4B13 A2 30
lda #$01 ; CPU:$CB15 PRG:4B15 A9 01
jmp DispatchStoreLsrsB ; CPU:$CB17 PRG:4B17 4C 12 CC
; -----------------------------------------------------------------------------
; Routine: Sub_CB1A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CB1A:
jsr DispatchLsrsRts ; CPU:$CB1A PRG:4B1A 20 8D CC
ldx #$00 ; CPU:$CB1D PRG:4B1D A2 00
lda #$01 ; CPU:$CB1F PRG:4B1F A9 01
jmp DispatchStoreLsrsB ; CPU:$CB21 PRG:4B21 4C 12 CC
; -----------------------------------------------------------------------------
; Routine: Sub_CB24
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CB24:
jsr DispatchLsrsRts ; CPU:$CB24 PRG:4B24 20 8D CC
ldx #$00 ; CPU:$CB27 PRG:4B27 A2 00
lda #$01 ; CPU:$CB29 PRG:4B29 A9 01
jmp DispatchStoreLsrsB ; CPU:$CB2B PRG:4B2B 4C 12 CC
; -----------------------------------------------------------------------------
; Routine: Sub_CB2E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CB2E:
jsr DispatchLsrsRts ; CPU:$CB2E PRG:4B2E 20 8D CC
ldx #$04 ; CPU:$CB31 PRG:4B31 A2 04
lda #$01 ; CPU:$CB33 PRG:4B33 A9 01
jmp DispatchStoreLsrsB ; CPU:$CB35 PRG:4B35 4C 12 CC
; -----------------------------------------------------------------------------
; Routine: Sub_CB38
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CB38:
jsr DispatchLsrsRts ; CPU:$CB38 PRG:4B38 20 8D CC
ldx #$08 ; CPU:$CB3B PRG:4B3B A2 08
lda #$01 ; CPU:$CB3D PRG:4B3D A9 01
jmp DispatchStoreLsrsB ; CPU:$CB3F PRG:4B3F 4C 12 CC
; -----------------------------------------------------------------------------
; Routine: Sub_CB42
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CB42:
jsr DispatchLsrsRts ; CPU:$CB42 PRG:4B42 20 8D CC
ldx #$0C ; CPU:$CB45 PRG:4B45 A2 0C
lda #$01 ; CPU:$CB47 PRG:4B47 A9 01
jmp DispatchStoreLsrsB ; CPU:$CB49 PRG:4B49 4C 12 CC
; -----------------------------------------------------------------------------
; Routine: Sub_CB4C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CB4C:
ldx #$10 ; CPU:$CB4C PRG:4B4C A2 10
lda #$02 ; CPU:$CB4E PRG:4B4E A9 02
jmp DispatchStoreLsrsB ; CPU:$CB50 PRG:4B50 4C 12 CC
; -----------------------------------------------------------------------------
; Routine: Sub_CB53
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CB53:
jsr DispatchLsrsRts2 ; CPU:$CB53 PRG:4B53 20 E1 CC
ldx #$18 ; CPU:$CB56 PRG:4B56 A2 18
lda #$02 ; CPU:$CB58 PRG:4B58 A9 02
jmp DispatchStoreLsrsB ; CPU:$CB5A PRG:4B5A 4C 12 CC
; -----------------------------------------------------------------------------
; Routine: Sub_CB5D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CB5D:
ldx #$20 ; CPU:$CB5D PRG:4B5D A2 20
lda #$02 ; CPU:$CB5F PRG:4B5F A9 02
jmp DispatchStoreLsrsB ; CPU:$CB61 PRG:4B61 4C 12 CC
; -----------------------------------------------------------------------------
; Routine: Sub_CB64
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CB64:
jsr DispatchLsrsRts2 ; CPU:$CB64 PRG:4B64 20 E1 CC
ldx #$28 ; CPU:$CB67 PRG:4B67 A2 28
lda #$02 ; CPU:$CB69 PRG:4B69 A9 02
jmp DispatchStoreLsrsB ; CPU:$CB6B PRG:4B6B 4C 12 CC
; -----------------------------------------------------------------------------
; Routine: Sub_CB6E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CB6E:
ldx #$38 ; CPU:$CB6E PRG:4B6E A2 38
lda #$04 ; CPU:$CB70 PRG:4B70 A9 04
inc Zp61 ; CPU:$CB72 PRG:4B72 E6 61
jmp DispatchStoreLsrs ; CPU:$CB74 PRG:4B74 4C 9A CB
; -----------------------------------------------------------------------------
; Routine: Sub_CB77
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CB77:
ldx #$48 ; CPU:$CB77 PRG:4B77 A2 48
lda #$06 ; CPU:$CB79 PRG:4B79 A9 06
jmp DispatchStoreLsrs ; CPU:$CB7B PRG:4B7B 4C 9A CB
; -----------------------------------------------------------------------------
; Routine: Sub_CB7E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CB7E:
ldx #$60 ; CPU:$CB7E PRG:4B7E A2 60
lda #$06 ; CPU:$CB80 PRG:4B80 A9 06
jmp DispatchStoreLsrs ; CPU:$CB82 PRG:4B82 4C 9A CB
; -----------------------------------------------------------------------------
; Routine: Sub_CB85
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CB85:
ldx #$78 ; CPU:$CB85 PRG:4B85 A2 78
lda #$06 ; CPU:$CB87 PRG:4B87 A9 06
jmp DispatchStoreLsrs ; CPU:$CB89 PRG:4B89 4C 9A CB
; -----------------------------------------------------------------------------
; Routine: Sub_CB8C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CB8C:
ldx #$90 ; CPU:$CB8C PRG:4B8C A2 90
lda #$06 ; CPU:$CB8E PRG:4B8E A9 06
jmp DispatchStoreLsrs ; CPU:$CB90 PRG:4B90 4C 9A CB
; -----------------------------------------------------------------------------
; Routine: Sub_CB93
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CB93:
jsr DispatchLsrsRts ; CPU:$CB93 PRG:4B93 20 8D CC
ldx #$A8 ; CPU:$CB96 PRG:4B96 A2 A8
lda #$04 ; CPU:$CB98 PRG:4B98 A9 04
; -----------------------------------------------------------------------------
; Routine: DispatchStoreLsrs
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchStoreLsrs:
sta ObjUpdateFlag ; CPU:$CB9A PRG:4B9A 85 0E
lda Zp99 ; CPU:$CB9C PRG:4B9C A5 99
lsr a ; CPU:$CB9E PRG:4B9E 4A
bcc Sub_CBAB ; CPU:$CB9F PRG:4B9F 90 0A
lda ObjUpdateFlag ; CPU:$CBA1 PRG:4BA1 A5 0E
; -----------------------------------------------------------------------------
; Routine: Sub_CBA3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CBA3:
inx ; CPU:$CBA3 PRG:4BA3 E8
inx ; CPU:$CBA4 PRG:4BA4 E8
dec ObjUpdateFlag ; CPU:$CBA5 PRG:4BA5 C6 0E
bne Sub_CBA3 ; CPU:$CBA7 PRG:4BA7 D0 FA
sta ObjUpdateFlag ; CPU:$CBA9 PRG:4BA9 85 0E
; -----------------------------------------------------------------------------
; Routine: Sub_CBAB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CBAB:
lda (Zp2A),y ; CPU:$CBAB PRG:4BAB B1 2A
iny ; CPU:$CBAD PRG:4BAD C8
pha ; CPU:$CBAE PRG:4BAE 48
sty Zp2C ; CPU:$CBAF PRG:4BAF 84 2C
lda (Zp2A),y ; CPU:$CBB1 PRG:4BB1 B1 2A
sta Zp57 ; CPU:$CBB3 PRG:4BB3 85 57
pla ; CPU:$CBB5 PRG:4BB5 68
; -----------------------------------------------------------------------------
; Routine: Sub_CBB6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CBB6:
pha ; CPU:$CBB6 PRG:4BB6 48
tay ; CPU:$CBB7 PRG:4BB7 A8
lda $CD4C,x ; CPU:$CBB8 PRG:4BB8 BD 4C CD
sta $020B,y ; CPU:$CBBB PRG:4BBB 99 0B 02
inx ; CPU:$CBBE PRG:4BBE E8
lda $CD4C,x ; CPU:$CBBF PRG:4BBF BD 4C CD
sta $020C,y ; CPU:$CBC2 PRG:4BC2 99 0C 02
inx ; CPU:$CBC5 PRG:4BC5 E8
tya ; CPU:$CBC6 PRG:4BC6 98
ldy Zp57 ; CPU:$CBC7 PRG:4BC7 A4 57
inc Zp57 ; CPU:$CBC9 PRG:4BC9 E6 57
jsr DispatchLsrsPhi ; CPU:$CBCB PRG:4BCB 20 DA CB
pla ; CPU:$CBCE PRG:4BCE 68
clc ; CPU:$CBCF PRG:4BCF 18
adc #$02 ; CPU:$CBD0 PRG:4BD0 69 02
dec ObjUpdateFlag ; CPU:$CBD2 PRG:4BD2 C6 0E
bne Sub_CBB6 ; CPU:$CBD4 PRG:4BD4 D0 E0
ldy Zp2C ; CPU:$CBD6 PRG:4BD6 A4 2C
iny ; CPU:$CBD8 PRG:4BD8 C8
rts ; CPU:$CBD9 PRG:4BD9 60
; -----------------------------------------------------------------------------
; Routine: DispatchLsrsPhi
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLsrsPhi:
lsr a ; CPU:$CBDA PRG:4BDA 4A
lsr a ; CPU:$CBDB PRG:4BDB 4A
bcs Sub_CBF8 ; CPU:$CBDC PRG:4BDC B0 1A
pha ; CPU:$CBDE PRG:4BDE 48
lda $B89F,y ; CPU:$CBDF PRG:4BDF B9 9F B8
and ObjectX ; CPU:$CBE2 PRG:4BE2 25 18
sta ObjPtr ; CPU:$CBE4 PRG:4BE4 85 13
pla ; CPU:$CBE6 PRG:4BE6 68
tay ; CPU:$CBE7 PRG:4BE7 A8
lda ObjectX ; CPU:$CBE8 PRG:4BE8 A5 18
eor #$FF ; CPU:$CBEA PRG:4BEA 49 FF
and $022E,y ; CPU:$CBEC PRG:4BEC 39 2E 02
ora ObjPtr ; CPU:$CBEF PRG:4BEF 05 13
sta $022E,y ; CPU:$CBF1 PRG:4BF1 99 2E 02
sta $0200,y ; CPU:$CBF4 PRG:4BF4 99 00 02
rts ; CPU:$CBF7 PRG:4BF7 60
; -----------------------------------------------------------------------------
; Routine: Sub_CBF8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CBF8:
pha ; CPU:$CBF8 PRG:4BF8 48
lda $B89F,y ; CPU:$CBF9 PRG:4BF9 B9 9F B8
and ObjectY ; CPU:$CBFC PRG:4BFC 25 19
sta ObjPtr ; CPU:$CBFE PRG:4BFE 85 13
pla ; CPU:$CC00 PRG:4C00 68
tay ; CPU:$CC01 PRG:4C01 A8
lda ObjectY ; CPU:$CC02 PRG:4C02 A5 19
eor #$FF ; CPU:$CC04 PRG:4C04 49 FF
and $022E,y ; CPU:$CC06 PRG:4C06 39 2E 02
ora ObjPtr ; CPU:$CC09 PRG:4C09 05 13
sta $022E,y ; CPU:$CC0B PRG:4C0B 99 2E 02
sta $0200,y ; CPU:$CC0E PRG:4C0E 99 00 02
rts ; CPU:$CC11 PRG:4C11 60
; -----------------------------------------------------------------------------
; Routine: DispatchStoreLsrsB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchStoreLsrsB:
sta ObjUpdateFlag ; CPU:$CC12 PRG:4C12 85 0E
lda Zp99 ; CPU:$CC14 PRG:4C14 A5 99
lsr a ; CPU:$CC16 PRG:4C16 4A
bcc Sub_CC23 ; CPU:$CC17 PRG:4C17 90 0A
lda ObjUpdateFlag ; CPU:$CC19 PRG:4C19 A5 0E
; -----------------------------------------------------------------------------
; Routine: Sub_CC1B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CC1B:
inx ; CPU:$CC1B PRG:4C1B E8
inx ; CPU:$CC1C PRG:4C1C E8
dec ObjUpdateFlag ; CPU:$CC1D PRG:4C1D C6 0E
bne Sub_CC1B ; CPU:$CC1F PRG:4C1F D0 FA
sta ObjUpdateFlag ; CPU:$CC21 PRG:4C21 85 0E
; -----------------------------------------------------------------------------
; Routine: Sub_CC23
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CC23:
lda (Zp2A),y ; CPU:$CC23 PRG:4C23 B1 2A
iny ; CPU:$CC25 PRG:4C25 C8
sty Zp2C ; CPU:$CC26 PRG:4C26 84 2C
; -----------------------------------------------------------------------------
; Routine: Sub_CC28
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CC28:
pha ; CPU:$CC28 PRG:4C28 48
tay ; CPU:$CC29 PRG:4C29 A8
lda $CD4C,x ; CPU:$CC2A PRG:4C2A BD 4C CD
sta $020B,y ; CPU:$CC2D PRG:4C2D 99 0B 02
inx ; CPU:$CC30 PRG:4C30 E8
lda $CD4C,x ; CPU:$CC31 PRG:4C31 BD 4C CD
sta $020C,y ; CPU:$CC34 PRG:4C34 99 0C 02
inx ; CPU:$CC37 PRG:4C37 E8
tya ; CPU:$CC38 PRG:4C38 98
ldy Zp2C ; CPU:$CC39 PRG:4C39 A4 2C
jsr DispatchLsrsPhiB ; CPU:$CC3B PRG:4C3B 20 4A CC
pla ; CPU:$CC3E PRG:4C3E 68
clc ; CPU:$CC3F PRG:4C3F 18
adc #$02 ; CPU:$CC40 PRG:4C40 69 02
dec ObjUpdateFlag ; CPU:$CC42 PRG:4C42 C6 0E
bne Sub_CC28 ; CPU:$CC44 PRG:4C44 D0 E2
ldy Zp2C ; CPU:$CC46 PRG:4C46 A4 2C
iny ; CPU:$CC48 PRG:4C48 C8
rts ; CPU:$CC49 PRG:4C49 60
; -----------------------------------------------------------------------------
; Routine: DispatchLsrsPhiB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLsrsPhiB:
lsr a ; CPU:$CC4A PRG:4C4A 4A
lsr a ; CPU:$CC4B PRG:4C4B 4A
bcs Sub_CC67 ; CPU:$CC4C PRG:4C4C B0 19
pha ; CPU:$CC4E PRG:4C4E 48
lda (Zp2A),y ; CPU:$CC4F PRG:4C4F B1 2A
and ObjectX ; CPU:$CC51 PRG:4C51 25 18
sta ObjPtr ; CPU:$CC53 PRG:4C53 85 13
pla ; CPU:$CC55 PRG:4C55 68
tay ; CPU:$CC56 PRG:4C56 A8
lda ObjectX ; CPU:$CC57 PRG:4C57 A5 18
eor #$FF ; CPU:$CC59 PRG:4C59 49 FF
and $022E,y ; CPU:$CC5B PRG:4C5B 39 2E 02
ora ObjPtr ; CPU:$CC5E PRG:4C5E 05 13
sta $022E,y ; CPU:$CC60 PRG:4C60 99 2E 02
sta $0200,y ; CPU:$CC63 PRG:4C63 99 00 02
rts ; CPU:$CC66 PRG:4C66 60
; -----------------------------------------------------------------------------
; Routine: Sub_CC67
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CC67:
pha ; CPU:$CC67 PRG:4C67 48
lda (Zp2A),y ; CPU:$CC68 PRG:4C68 B1 2A
and ObjectY ; CPU:$CC6A PRG:4C6A 25 19
sta ObjPtr ; CPU:$CC6C PRG:4C6C 85 13
pla ; CPU:$CC6E PRG:4C6E 68
tay ; CPU:$CC6F PRG:4C6F A8
lda ObjectY ; CPU:$CC70 PRG:4C70 A5 19
eor #$FF ; CPU:$CC72 PRG:4C72 49 FF
and $022E,y ; CPU:$CC74 PRG:4C74 39 2E 02
ora ObjPtr ; CPU:$CC77 PRG:4C77 05 13
sta $022E,y ; CPU:$CC79 PRG:4C79 99 2E 02
sta $0200,y ; CPU:$CC7C PRG:4C7C 99 00 02
rts ; CPU:$CC7F PRG:4C7F 60
; -----------------------------------------------------------------------------
; Routine: Sub_CC80
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CC80:
lda (Zp2A),y ; CPU:$CC80 PRG:4C80 B1 2A
sta $028B ; CPU:$CC82 PRG:4C82 8D 8B 02
iny ; CPU:$CC85 PRG:4C85 C8
lda (Zp2A),y ; CPU:$CC86 PRG:4C86 B1 2A
sta $028F ; CPU:$CC88 PRG:4C88 8D 8F 02
iny ; CPU:$CC8B PRG:4C8B C8
rts ; CPU:$CC8C PRG:4C8C 60
; -----------------------------------------------------------------------------
; Routine: DispatchLsrsRts
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLsrsRts:
lda Zp99 ; CPU:$CC8D PRG:4C8D A5 99
lsr a ; CPU:$CC8F PRG:4C8F 4A
bcs Sub_CC93 ; CPU:$CC90 PRG:4C90 B0 01
rts ; CPU:$CC92 PRG:4C92 60
; -----------------------------------------------------------------------------
; Routine: Sub_CC93
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CC93:
txa ; CPU:$CC93 PRG:4C93 8A
lsr a ; CPU:$CC94 PRG:4C94 4A
tax ; CPU:$CC95 PRG:4C95 AA
lda $CD37,x ; CPU:$CC96 PRG:4C96 BD 37 CD
sta ObjPtr ; CPU:$CC99 PRG:4C99 85 13
ldx #$00 ; CPU:$CC9B PRG:4C9B A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_CC9D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CC9D:
lda $0300,x ; CPU:$CC9D PRG:4C9D BD 00 03
beq Sub_CCAC ; CPU:$CCA0 PRG:4CA0 F0 0A
txa ; CPU:$CCA2 PRG:4CA2 8A
clc ; CPU:$CCA3 PRG:4CA3 18
adc #$08 ; CPU:$CCA4 PRG:4CA4 69 08
tax ; CPU:$CCA6 PRG:4CA6 AA
cpx #$80 ; CPU:$CCA7 PRG:4CA7 E0 80
bne Sub_CC9D ; CPU:$CCA9 PRG:4CA9 D0 F2
rts ; CPU:$CCAB PRG:4CAB 60
; -----------------------------------------------------------------------------
; Routine: Sub_CCAC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CCAC:
lda ObjPtr ; CPU:$CCAC PRG:4CAC A5 13
sta $0300,x ; CPU:$CCAE PRG:4CAE 9D 00 03
lda #$02 ; CPU:$CCB1 PRG:4CB1 A9 02
sta $0301,x ; CPU:$CCB3 PRG:4CB3 9D 01 03
lda #$00 ; CPU:$CCB6 PRG:4CB6 A9 00
sta $0307,x ; CPU:$CCB8 PRG:4CB8 9D 07 03
sta $0306,x ; CPU:$CCBB PRG:4CBB 9D 06 03
sec ; CPU:$CCBE PRG:4CBE 38
sbc ScrollY ; CPU:$CCBF PRG:4CBF E5 03
and #$07 ; CPU:$CCC1 PRG:4CC1 29 07
clc ; CPU:$CCC3 PRG:4CC3 18
adc #$EF ; CPU:$CCC4 PRG:4CC4 69 EF
sta $0302,x ; CPU:$CCC6 PRG:4CC6 9D 02 03
lda (Zp2A),y ; CPU:$CCC9 PRG:4CC9 B1 2A
asl a ; CPU:$CCCB PRG:4CCB 0A
asl a ; CPU:$CCCC PRG:4CCC 0A
asl a ; CPU:$CCCD PRG:4CCD 0A
sta $0303,x ; CPU:$CCCE PRG:4CCE 9D 03 03
lda $0208 ; CPU:$CCD1 PRG:4CD1 AD 08 02
sta $0304,x ; CPU:$CCD4 PRG:4CD4 9D 04 03
lda $0209 ; CPU:$CCD7 PRG:4CD7 AD 09 02
clc ; CPU:$CCDA PRG:4CDA 18
adc (Zp2A),y ; CPU:$CCDB PRG:4CDB 71 2A
sta $0305,x ; CPU:$CCDD PRG:4CDD 9D 05 03
rts ; CPU:$CCE0 PRG:4CE0 60
; -----------------------------------------------------------------------------
; Routine: DispatchLsrsRts2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLsrsRts2:
lda Zp99 ; CPU:$CCE1 PRG:4CE1 A5 99
lsr a ; CPU:$CCE3 PRG:4CE3 4A
bcs Sub_CCE7 ; CPU:$CCE4 PRG:4CE4 B0 01
rts ; CPU:$CCE6 PRG:4CE6 60
; -----------------------------------------------------------------------------
; Routine: Sub_CCE7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CCE7:
txa ; CPU:$CCE7 PRG:4CE7 8A
lsr a ; CPU:$CCE8 PRG:4CE8 4A
tax ; CPU:$CCE9 PRG:4CE9 AA
lda $CD37,x ; CPU:$CCEA PRG:4CEA BD 37 CD
sta ObjPtr ; CPU:$CCED PRG:4CED 85 13
ldx #$00 ; CPU:$CCEF PRG:4CEF A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_CCF1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CCF1:
lda $0300,x ; CPU:$CCF1 PRG:4CF1 BD 00 03
beq Sub_CD00 ; CPU:$CCF4 PRG:4CF4 F0 0A
txa ; CPU:$CCF6 PRG:4CF6 8A
clc ; CPU:$CCF7 PRG:4CF7 18
adc #$08 ; CPU:$CCF8 PRG:4CF8 69 08
tax ; CPU:$CCFA PRG:4CFA AA
cpx #$80 ; CPU:$CCFB PRG:4CFB E0 80
bne Sub_CCF1 ; CPU:$CCFD PRG:4CFD D0 F2
rts ; CPU:$CCFF PRG:4CFF 60
; -----------------------------------------------------------------------------
; Routine: Sub_CD00
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CD00:
lda ObjPtr ; CPU:$CD00 PRG:4D00 A5 13
sta $0300,x ; CPU:$CD02 PRG:4D02 9D 00 03
lda #$02 ; CPU:$CD05 PRG:4D05 A9 02
sta $0301,x ; CPU:$CD07 PRG:4D07 9D 01 03
lda ScrollY ; CPU:$CD0A PRG:4D0A A5 03
and #$07 ; CPU:$CD0C PRG:4D0C 29 07
clc ; CPU:$CD0E PRG:4D0E 18
adc #$E7 ; CPU:$CD0F PRG:4D0F 69 E7
sta $0302,x ; CPU:$CD11 PRG:4D11 9D 02 03
lda (Zp2A),y ; CPU:$CD14 PRG:4D14 B1 2A
asl a ; CPU:$CD16 PRG:4D16 0A
asl a ; CPU:$CD17 PRG:4D17 0A
asl a ; CPU:$CD18 PRG:4D18 0A
clc ; CPU:$CD19 PRG:4D19 18
adc #$08 ; CPU:$CD1A PRG:4D1A 69 08
sta $0303,x ; CPU:$CD1C PRG:4D1C 9D 03 03
lda $0208 ; CPU:$CD1F PRG:4D1F AD 08 02
sta $0304,x ; CPU:$CD22 PRG:4D22 9D 04 03
lda $0209 ; CPU:$CD25 PRG:4D25 AD 09 02
clc ; CPU:$CD28 PRG:4D28 18
adc (Zp2A),y ; CPU:$CD29 PRG:4D29 71 2A
sta $0305,x ; CPU:$CD2B PRG:4D2B 9D 05 03
lda #$00 ; CPU:$CD2E PRG:4D2E A9 00
sta $0306,x ; CPU:$CD30 PRG:4D30 9D 06 03
sta $0307,x ; CPU:$CD33 PRG:4D33 9D 07 03
rts ; CPU:$CD36 PRG:4D36 60
OamSlotTable:
; OAM sprite slot/index table (read by lda $CD37,x)
; ---- data $CD37-$CD44 (14 bytes) ----
; referenced by `lda $CD37,x` at $CC96 (operand $CD37 falls inside this region)
; referenced by `lda $CD37,x` at $CCEA (operand $CD37 falls inside this region)
.byte $02, $04, $06, $08, $00, $0A, $00, $0C, $00, $00, $00, $00, $00, $0E ; CPU:$CD37 PRG:4D37 02 04 06 08 00 0A 00 0C 00 00 00 00 00 0E
; -----------------------------------------------------------------------------
; Routine: Sub_CD45
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CD45:
rol a ; CPU:$CD45 PRG:4D45 2A
bit $2E32 ; CPU:$CD46 PRG:4D46 2C 32 2E
bmi Sub_CD81 ; CPU:$CD49 PRG:4D49 30 36
sec ; CPU:$CD4B PRG:4D4B 38
; ---- data $CD4C-$CD4C (1 bytes) ----
.byte $60 ; CPU:$CD4C PRG:4D4C 60
; ---- data $CD4D-$CD80 (52 bytes) ----
.byte $61, $62, $63, $64, $65, $66, $67, $68, $69, $6A, $6B, $6C, $6D, $6E, $6F, $73 ; CPU:$CD4D PRG:4D4D 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 73
.byte $2D, $2D, $76, $2D, $73, $76, $A5, $2D, $79, $7C, $A5, $79, $8D, $8D, $7C, $70 ; CPU:$CD5D PRG:4D5D 2D 2D 76 2D 73 76 A5 2D 79 7C A5 79 8D 8D 7C 70
.byte $71, $74, $75, $72, $64, $65, $77, $78, $66, $67, $7D, $7A, $7B, $7E, $7F, $5C ; CPU:$CD6D PRG:4D6D 71 74 75 72 64 65 77 78 66 67 7D 7A 7B 7E 7F 5C
.byte $5D, $5E, $5F, $2C ; CPU:$CD7D PRG:4D7D 5D 5E 5F 2C
; -----------------------------------------------------------------------------
; Routine: Sub_CD81
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CD81:
bit $2C2C ; CPU:$CD81 PRG:4D81 2C 2C 2C
bit $8481 ; CPU:$CD84 PRG:4D84 2C 81 84
sta Zp88 ; CPU:$CD87 PRG:4D87 85 88
; ---- data $CD89-$CE02 (122 bytes) ----
.byte $89, $8C, $2C, $82, $83, $86, $87, $8A, $8B, $8E, $8F, $2C, $91, $94, $95, $98 ; CPU:$CD89 PRG:4D89 89 8C 2C 82 83 86 87 8A 8B 8E 8F 2C 91 94 95 98
.byte $99, $9C, $9D, $A0, $A1, $A4, $2C, $92, $93, $96, $97, $9A, $9B, $9E, $9F, $A2 ; CPU:$CD99 PRG:4D99 99 9C 9D A0 A1 A4 2C 92 93 96 97 9A 9B 9E 9F A2
.byte $A3, $A6, $A7, $A8, $A9, $AC, $AD, $B0, $B1, $B4, $B5, $B8, $B9, $BC, $BD, $AA ; CPU:$CDA9 PRG:4DA9 A3 A6 A7 A8 A9 AC AD B0 B1 B4 B5 B8 B9 BC BD AA
.byte $AB, $AE, $AF, $B2, $A5, $A5, $B7, $BA, $BB, $BE, $BF, $C0, $C1, $C4, $C5, $C8 ; CPU:$CDB9 PRG:4DB9 AB AE AF B2 A5 A5 B7 BA BB BE BF C0 C1 C4 C5 C8
.byte $A5, $A5, $CD, $D0, $D1, $D4, $D5, $C2, $C3, $C6, $C7, $CA, $CB, $CE, $CF, $D2 ; CPU:$CDC9 PRG:4DC9 A5 A5 CD D0 D1 D4 D5 C2 C3 C6 C7 CA CB CE CF D2
.byte $D3, $D6, $D7, $D8, $D9, $DC, $DD, $E0, $E1, $E4, $E5, $E8, $E9, $EC, $ED, $2C ; CPU:$CDD9 PRG:4DD9 D3 D6 D7 D8 D9 DC DD E0 E1 E4 E5 E8 E9 EC ED 2C
.byte $DB, $DE, $DF, $E2, $E3, $E6, $E7, $EA, $EB, $EE, $2C, $F0, $F1, $F4, $F5, $F8 ; CPU:$CDE9 PRG:4DE9 DB DE DF E2 E3 E6 E7 EA EB EE 2C F0 F1 F4 F5 F8
.byte $F9, $FC, $FD, $2C, $F3, $F6, $F7, $FA, $FB, $FE ; CPU:$CDF9 PRG:4DF9 F9 FC FD 2C F3 F6 F7 FA FB FE
; -----------------------------------------------------------------------------
; Routine: Sub_CE03
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CE03:
bit a:$00A2 ; CPU:$CE03 PRG:4E03 2C A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_CE06
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CE06:
jsr DispatchAndCheck ; CPU:$CE06 PRG:4E06 20 11 CE
txa ; CPU:$CE09 PRG:4E09 8A
clc ; CPU:$CE0A PRG:4E0A 18
adc #$10 ; CPU:$CE0B PRG:4E0B 69 10
tax ; CPU:$CE0D PRG:4E0D AA
bne Sub_CE06 ; CPU:$CE0E PRG:4E0E D0 F6
rts ; CPU:$CE10 PRG:4E10 60
; -----------------------------------------------------------------------------
; Routine: DispatchAndCheck
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchAndCheck:
lda $0400,x ; CPU:$CE11 PRG:4E11 BD 00 04
and #$03 ; CPU:$CE14 PRG:4E14 29 03
beq Sub_CE3D ; CPU:$CE16 PRG:4E16 F0 25
sec ; CPU:$CE18 PRG:4E18 38
sbc #$01 ; CPU:$CE19 PRG:4E19 E9 01
beq Sub_CE3E ; CPU:$CE1B PRG:4E1B F0 21
sec ; CPU:$CE1D PRG:4E1D 38
sbc #$01 ; CPU:$CE1E PRG:4E1E E9 01
beq Sub_CE45 ; CPU:$CE20 PRG:4E20 F0 23
lda $0407,x ; CPU:$CE22 PRG:4E22 BD 07 04
clc ; CPU:$CE25 PRG:4E25 18
adc Zp25 ; CPU:$CE26 PRG:4E26 65 25
sta $0407,x ; CPU:$CE28 PRG:4E28 9D 07 04
bcc Sub_CE30 ; CPU:$CE2B PRG:4E2B 90 03
inc $0407,x ; CPU:$CE2D PRG:4E2D FE 07 04
; -----------------------------------------------------------------------------
; Routine: Sub_CE30
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CE30:
jsr DispatchOraCheck ; CPU:$CE30 PRG:4E30 20 50 CE
dec $040B,x ; CPU:$CE33 PRG:4E33 DE 0B 04
bne Sub_CE3D ; CPU:$CE36 PRG:4E36 D0 05
lda #$01 ; CPU:$CE38 PRG:4E38 A9 01
sta $0400,x ; CPU:$CE3A PRG:4E3A 9D 00 04
; -----------------------------------------------------------------------------
; Routine: Sub_CE3D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CE3D:
rts ; CPU:$CE3D PRG:4E3D 60
; -----------------------------------------------------------------------------
; Routine: Sub_CE3E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CE3E:
jsr DispatchAddStoreLda ; CPU:$CE3E PRG:4E3E 20 3D D0
jsr DispatchOraCheck ; CPU:$CE41 PRG:4E41 20 50 CE
rts ; CPU:$CE44 PRG:4E44 60
; -----------------------------------------------------------------------------
; Routine: Sub_CE45
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CE45:
lda #$03 ; CPU:$CE45 PRG:4E45 A9 03
jsr DispatchStoreB ; CPU:$CE47 PRG:4E47 20 0C D1
lda #$01 ; CPU:$CE4A PRG:4E4A A9 01
sta $0400,x ; CPU:$CE4C PRG:4E4C 9D 00 04
rts ; CPU:$CE4F PRG:4E4F 60
; -----------------------------------------------------------------------------
; Routine: DispatchOraCheck
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchOraCheck:
lda $0403,x ; CPU:$CE50 PRG:4E50 BD 03 04
ora $0406,x ; CPU:$CE53 PRG:4E53 1D 06 04
bne Sub_CE5F ; CPU:$CE56 PRG:4E56 D0 07
lda $0404,x ; CPU:$CE58 PRG:4E58 BD 04 04
cmp #$F9 ; CPU:$CE5B PRG:4E5B C9 F9
bcc Sub_CE65 ; CPU:$CE5D PRG:4E5D 90 06
; -----------------------------------------------------------------------------
; Routine: Sub_CE5F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CE5F:
lda #$00 ; CPU:$CE5F PRG:4E5F A9 00
sta $0400,x ; CPU:$CE61 PRG:4E61 9D 00 04
rts ; CPU:$CE64 PRG:4E64 60
; -----------------------------------------------------------------------------
; Routine: Sub_CE65
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CE65:
lda #$02 ; CPU:$CE65 PRG:4E65 A9 02
sta ObjPtr ; CPU:$CE67 PRG:4E67 85 13
lda $0407,x ; CPU:$CE69 PRG:4E69 BD 07 04
cmp #$F0 ; CPU:$CE6C PRG:4E6C C9 F0
bcs Sub_CEC2 ; CPU:$CE6E PRG:4E6E B0 52
ldy ObjectDeltaX ; CPU:$CE70 PRG:4E70 A4 2D
beq Sub_CEC2 ; CPU:$CE72 PRG:4E72 F0 4E
sta $0700,y ; CPU:$CE74 PRG:4E74 99 00 07
sec ; CPU:$CE77 PRG:4E77 38
sbc Zp24 ; CPU:$CE78 PRG:4E78 E5 24
clc ; CPU:$CE7A PRG:4E7A 18
adc #$02 ; CPU:$CE7B PRG:4E7B 69 02
cmp #$0D ; CPU:$CE7D PRG:4E7D C9 0D
bcs Sub_CE83 ; CPU:$CE7F PRG:4E7F B0 02
dec ObjPtr ; CPU:$CE81 PRG:4E81 C6 13
; -----------------------------------------------------------------------------
; Routine: Sub_CE83
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CE83:
iny ; CPU:$CE83 PRG:4E83 C8
inc $0409,x ; CPU:$CE84 PRG:4E84 FE 09 04
lda $0409,x ; CPU:$CE87 PRG:4E87 BD 09 04
ror a ; CPU:$CE8A PRG:4E8A 6A
ror a ; CPU:$CE8B PRG:4E8B 6A
and #$01 ; CPU:$CE8C PRG:4E8C 29 01
ora #$DE ; CPU:$CE8E PRG:4E8E 09 DE
sta $0700,y ; CPU:$CE90 PRG:4E90 99 00 07
iny ; CPU:$CE93 PRG:4E93 C8
lda $0409,x ; CPU:$CE94 PRG:4E94 BD 09 04
ror a ; CPU:$CE97 PRG:4E97 6A
and #$01 ; CPU:$CE98 PRG:4E98 29 01
ora #$02 ; CPU:$CE9A PRG:4E9A 09 02
sta $0700,y ; CPU:$CE9C PRG:4E9C 99 00 07
iny ; CPU:$CE9F PRG:4E9F C8
lda $0404,x ; CPU:$CEA0 PRG:4EA0 BD 04 04
sta $0700,y ; CPU:$CEA3 PRG:4EA3 99 00 07
iny ; CPU:$CEA6 PRG:4EA6 C8
sty ObjectDeltaX ; CPU:$CEA7 PRG:4EA7 84 2D
sec ; CPU:$CEA9 PRG:4EA9 38
sbc Zp23 ; CPU:$CEAA PRG:4EAA E5 23
clc ; CPU:$CEAC PRG:4EAC 18
adc #$02 ; CPU:$CEAD PRG:4EAD 69 02
cmp #$0D ; CPU:$CEAF PRG:4EAF C9 0D
bcs Sub_CEB5 ; CPU:$CEB1 PRG:4EB1 B0 02
dec ObjPtr ; CPU:$CEB3 PRG:4EB3 C6 13
; -----------------------------------------------------------------------------
; Routine: Sub_CEB5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CEB5:
lda ObjPtr ; CPU:$CEB5 PRG:4EB5 A5 13
bne Sub_CEC2 ; CPU:$CEB7 PRG:4EB7 D0 09
lda Zp3B ; CPU:$CEB9 PRG:4EB9 A5 3B
bne Sub_CEC2 ; CPU:$CEBB PRG:4EBB D0 05
inc $0611 ; CPU:$CEBD PRG:4EBD EE 11 06
inc Zp3B ; CPU:$CEC0 PRG:4EC0 E6 3B
; -----------------------------------------------------------------------------
; Routine: Sub_CEC2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CEC2:
rts ; CPU:$CEC2 PRG:4EC2 60
; ---- data $CEC3-$CECE (12 bytes) ----
.byte $20, $F6, $CE, $BD, $82, $03, $18, $69, $02, $9D, $82, $03 ; CPU:$CEC3 PRG:4EC3 20 F6 CE BD 82 03 18 69 02 9D 82 03
; -----------------------------------------------------------------------------
; Routine: Sub_CECF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CECF:
jsr DispatchJmpA ; CPU:$CECF PRG:4ECF 20 F6 CE
lda $0382,x ; CPU:$CED2 PRG:4ED2 BD 82 03
sec ; CPU:$CED5 PRG:4ED5 38
sbc #$04 ; CPU:$CED6 PRG:4ED6 E9 04
sta $0382,x ; CPU:$CED8 PRG:4ED8 9D 82 03
jsr DispatchJmpA ; CPU:$CEDB PRG:4EDB 20 F6 CE
lda $0382,x ; CPU:$CEDE PRG:4EDE BD 82 03
clc ; CPU:$CEE1 PRG:4EE1 18
adc #$06 ; CPU:$CEE2 PRG:4EE2 69 06
sta $0382,x ; CPU:$CEE4 PRG:4EE4 9D 82 03
jsr DispatchJmpA ; CPU:$CEE7 PRG:4EE7 20 F6 CE
lda $0382,x ; CPU:$CEEA PRG:4EEA BD 82 03
sec ; CPU:$CEED PRG:4EED 38
sbc #$08 ; CPU:$CEEE PRG:4EEE E9 08
sta $0382,x ; CPU:$CEF0 PRG:4EF0 9D 82 03
jmp DispatchJmpA ; CPU:$CEF3 PRG:4EF3 4C F6 CE
; -----------------------------------------------------------------------------
; Routine: DispatchJmpA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJmpA:
lda #$03 ; CPU:$CEF6 PRG:4EF6 A9 03
jmp DispatchStoreJsrStoreLda ; CPU:$CEF8 PRG:4EF8 4C FD CE
; -----------------------------------------------------------------------------
; Routine: DispatchLdaA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaA:
lda #$02 ; CPU:$CEFB PRG:4EFB A9 02
; -----------------------------------------------------------------------------
; Routine: DispatchStoreJsrStoreLda
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchStoreJsrStoreLda:
sta Zp39 ; CPU:$CEFD PRG:4EFD 85 39
jsr DispatchLdyA ; CPU:$CEFF PRG:4EFF 20 54 D1
lda $0383,x ; CPU:$CF02 PRG:4F02 BD 83 03
sta $0403,y ; CPU:$CF05 PRG:4F05 99 03 04
lda $0384,x ; CPU:$CF08 PRG:4F08 BD 84 03
sta $0404,y ; CPU:$CF0B PRG:4F0B 99 04 04
lda $0386,x ; CPU:$CF0E PRG:4F0E BD 86 03
sta $0406,y ; CPU:$CF11 PRG:4F11 99 06 04
lda $0387,x ; CPU:$CF14 PRG:4F14 BD 87 03
sta $0407,y ; CPU:$CF17 PRG:4F17 99 07 04
lda $0382,x ; CPU:$CF1A PRG:4F1A BD 82 03
sta $0402,y ; CPU:$CF1D PRG:4F1D 99 02 04
lda #$01 ; CPU:$CF20 PRG:4F20 A9 01
; -----------------------------------------------------------------------------
; Routine: Sub_CF22
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CF22:
sta $0400,y ; CPU:$CF22 PRG:4F22 99 00 04
txa ; CPU:$CF25 PRG:4F25 8A
pha ; CPU:$CF26 PRG:4F26 48
tya ; CPU:$CF27 PRG:4F27 98
tax ; CPU:$CF28 PRG:4F28 AA
jsr DispatchStoreStoreStoreStore ; CPU:$CF29 PRG:4F29 20 0E D1
pla ; CPU:$CF2C PRG:4F2C 68
tax ; CPU:$CF2D PRG:4F2D AA
rts ; CPU:$CF2E PRG:4F2E 60
; -----------------------------------------------------------------------------
; Routine: DispatchJsrStoreLdaClc
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrStoreLdaClc:
jsr DispatchLdyA ; CPU:$CF2F PRG:4F2F 20 54 D1
lda $0383,x ; CPU:$CF32 PRG:4F32 BD 83 03
sta $0403,y ; CPU:$CF35 PRG:4F35 99 03 04
lda $0384,x ; CPU:$CF38 PRG:4F38 BD 84 03
clc ; CPU:$CF3B PRG:4F3B 18
adc #$04 ; CPU:$CF3C PRG:4F3C 69 04
bcs Sub_CF64 ; CPU:$CF3E PRG:4F3E B0 24
sta $0404,y ; CPU:$CF40 PRG:4F40 99 04 04
lda $0386,x ; CPU:$CF43 PRG:4F43 BD 86 03
sta $0406,y ; CPU:$CF46 PRG:4F46 99 06 04
lda $0387,x ; CPU:$CF49 PRG:4F49 BD 87 03
clc ; CPU:$CF4C PRG:4F4C 18
adc #$04 ; CPU:$CF4D PRG:4F4D 69 04
bcs Sub_CF64 ; CPU:$CF4F PRG:4F4F B0 13
sta $0407,y ; CPU:$CF51 PRG:4F51 99 07 04
lda #$01 ; CPU:$CF54 PRG:4F54 A9 01
sta $0400,y ; CPU:$CF56 PRG:4F56 99 00 04
txa ; CPU:$CF59 PRG:4F59 8A
pha ; CPU:$CF5A PRG:4F5A 48
tya ; CPU:$CF5B PRG:4F5B 98
tax ; CPU:$CF5C PRG:4F5C AA
lda #$02 ; CPU:$CF5D PRG:4F5D A9 02
jsr DispatchJsrSubBcs ; CPU:$CF5F PRG:4F5F 20 88 D0
pla ; CPU:$CF62 PRG:4F62 68
tax ; CPU:$CF63 PRG:4F63 AA
; -----------------------------------------------------------------------------
; Routine: Sub_CF64
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CF64:
rts ; CPU:$CF64 PRG:4F64 60
; -----------------------------------------------------------------------------
; Routine: DispatchJsrStoreLdaClc2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrStoreLdaClc2:
jsr DispatchLdyA ; CPU:$CF65 PRG:4F65 20 54 D1
lda $0503,x ; CPU:$CF68 PRG:4F68 BD 03 05
sta $0403,y ; CPU:$CF6B PRG:4F6B 99 03 04
lda $0504,x ; CPU:$CF6E PRG:4F6E BD 04 05
clc ; CPU:$CF71 PRG:4F71 18
adc #$04 ; CPU:$CF72 PRG:4F72 69 04
bcs Sub_CF9A ; CPU:$CF74 PRG:4F74 B0 24
sta $0404,y ; CPU:$CF76 PRG:4F76 99 04 04
lda $0506,x ; CPU:$CF79 PRG:4F79 BD 06 05
sta $0406,y ; CPU:$CF7C PRG:4F7C 99 06 04
lda $0507,x ; CPU:$CF7F PRG:4F7F BD 07 05
clc ; CPU:$CF82 PRG:4F82 18
adc #$04 ; CPU:$CF83 PRG:4F83 69 04
bcs Sub_CF9A ; CPU:$CF85 PRG:4F85 B0 13
sta $0407,y ; CPU:$CF87 PRG:4F87 99 07 04
lda #$01 ; CPU:$CF8A PRG:4F8A A9 01
sta $0400,y ; CPU:$CF8C PRG:4F8C 99 00 04
txa ; CPU:$CF8F PRG:4F8F 8A
pha ; CPU:$CF90 PRG:4F90 48
tya ; CPU:$CF91 PRG:4F91 98
tax ; CPU:$CF92 PRG:4F92 AA
lda #$02 ; CPU:$CF93 PRG:4F93 A9 02
; -----------------------------------------------------------------------------
; Routine: Sub_CF95
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CF95:
jsr DispatchJsrSubBcs ; CPU:$CF95 PRG:4F95 20 88 D0
pla ; CPU:$CF98 PRG:4F98 68
tax ; CPU:$CF99 PRG:4F99 AA
; -----------------------------------------------------------------------------
; Routine: Sub_CF9A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CF9A:
rts ; CPU:$CF9A PRG:4F9A 60
; -----------------------------------------------------------------------------
; Routine: DispatchJsrStoreLdaClc3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrStoreLdaClc3:
jsr DispatchLdyA ; CPU:$CF9B PRG:4F9B 20 54 D1
lda #$00 ; CPU:$CF9E PRG:4F9E A9 00
sta $0403,y ; CPU:$CFA0 PRG:4FA0 99 03 04
lda $0303,x ; CPU:$CFA3 PRG:4FA3 BD 03 03
clc ; CPU:$CFA6 PRG:4FA6 18
adc #$04 ; CPU:$CFA7 PRG:4FA7 69 04
bcs Sub_CFD4 ; CPU:$CFA9 PRG:4FA9 B0 29
sta $0404,y ; CPU:$CFAB PRG:4FAB 99 04 04
lda $0301,x ; CPU:$CFAE PRG:4FAE BD 01 03
sta $0406,y ; CPU:$CFB1 PRG:4FB1 99 06 04
lda $0302,x ; CPU:$CFB4 PRG:4FB4 BD 02 03
clc ; CPU:$CFB7 PRG:4FB7 18
adc #$04 ; CPU:$CFB8 PRG:4FB8 69 04
bcs Sub_CFD4 ; CPU:$CFBA PRG:4FBA B0 18
sta $0407,y ; CPU:$CFBC PRG:4FBC 99 07 04
lda #$03 ; CPU:$CFBF PRG:4FBF A9 03
sta $0400,y ; CPU:$CFC1 PRG:4FC1 99 00 04
lda #$05 ; CPU:$CFC4 PRG:4FC4 A9 05
sta $040B,y ; CPU:$CFC6 PRG:4FC6 99 0B 04
txa ; CPU:$CFC9 PRG:4FC9 8A
pha ; CPU:$CFCA PRG:4FCA 48
tya ; CPU:$CFCB PRG:4FCB 98
tax ; CPU:$CFCC PRG:4FCC AA
lda #$02 ; CPU:$CFCD PRG:4FCD A9 02
; -----------------------------------------------------------------------------
; Routine: Sub_CFCF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CFCF:
jsr DispatchJsrSubBcs ; CPU:$CFCF PRG:4FCF 20 88 D0
pla ; CPU:$CFD2 PRG:4FD2 68
tax ; CPU:$CFD3 PRG:4FD3 AA
; -----------------------------------------------------------------------------
; Routine: Sub_CFD4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CFD4:
rts ; CPU:$CFD4 PRG:4FD4 60
; -----------------------------------------------------------------------------
; Routine: DispatchTyaPhaLdy
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchTyaPhaLdy:
tya ; CPU:$CFD5 PRG:4FD5 98
pha ; CPU:$CFD6 PRG:4FD6 48
ldy #$00 ; CPU:$CFD7 PRG:4FD7 A0 00
; -----------------------------------------------------------------------------
; Routine: Sub_CFD9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CFD9:
lda $0400,y ; CPU:$CFD9 PRG:4FD9 B9 00 04
and #$03 ; CPU:$CFDC PRG:4FDC 29 03
beq Sub_CFEA ; CPU:$CFDE PRG:4FDE F0 0A
tya ; CPU:$CFE0 PRG:4FE0 98
clc ; CPU:$CFE1 PRG:4FE1 18
adc #$10 ; CPU:$CFE2 PRG:4FE2 69 10
tay ; CPU:$CFE4 PRG:4FE4 A8
bne Sub_CFD9 ; CPU:$CFE5 PRG:4FE5 D0 F2
pla ; CPU:$CFE7 PRG:4FE7 68
tay ; CPU:$CFE8 PRG:4FE8 A8
rts ; CPU:$CFE9 PRG:4FE9 60
; -----------------------------------------------------------------------------
; Routine: Sub_CFEA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_CFEA:
lda #$00 ; CPU:$CFEA PRG:4FEA A9 00
sta $0403,y ; CPU:$CFEC PRG:4FEC 99 03 04
sta $0406,y ; CPU:$CFEF PRG:4FEF 99 06 04
lda Zp45 ; CPU:$CFF2 PRG:4FF2 A5 45
sta $0404,y ; CPU:$CFF4 PRG:4FF4 99 04 04
lda Zp46 ; CPU:$CFF7 PRG:4FF7 A5 46
sta $0407,y ; CPU:$CFF9 PRG:4FF9 99 07 04
lda #$03 ; CPU:$CFFC PRG:4FFC A9 03
sta $0400,y ; CPU:$CFFE PRG:4FFE 99 00 04
lda #$03 ; CPU:$D001 PRG:5001 A9 03
sta $040B,y ; CPU:$D003 PRG:5003 99 0B 04
txa ; CPU:$D006 PRG:5006 8A
pha ; CPU:$D007 PRG:5007 48
tya ; CPU:$D008 PRG:5008 98
tax ; CPU:$D009 PRG:5009 AA
lda #$02 ; CPU:$D00A PRG:500A A9 02
jsr DispatchJsrSubBcs ; CPU:$D00C PRG:500C 20 88 D0
pla ; CPU:$D00F PRG:500F 68
tax ; CPU:$D010 PRG:5010 AA
pla ; CPU:$D011 PRG:5011 68
tay ; CPU:$D012 PRG:5012 A8
rts ; CPU:$D013 PRG:5013 60
; ---- data $D014-$D017 (4 bytes) ----
.byte $A2, $00, $A0, $10 ; CPU:$D014 PRG:5014 A2 00 A0 10
; -----------------------------------------------------------------------------
; Routine: Sub_D018
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D018:
lda #$02 ; CPU:$D018 PRG:5018 A9 02
sta $0400,x ; CPU:$D01A PRG:501A 9D 00 04
tya ; CPU:$D01D PRG:501D 98
asl a ; CPU:$D01E PRG:501E 0A
sta $0402,x ; CPU:$D01F PRG:501F 9D 02 04
lda #$00 ; CPU:$D022 PRG:5022 A9 00
; -----------------------------------------------------------------------------
; Routine: Sub_D024
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D024:
sta $0403,x ; CPU:$D024 PRG:5024 9D 03 04
sta $0406,x ; CPU:$D027 PRG:5027 9D 06 04
lda ObjectXLo ; CPU:$D02A PRG:502A A5 37
sta $0404,x ; CPU:$D02C PRG:502C 9D 04 04
lda ObjectXHi ; CPU:$D02F PRG:502F A5 38
sta $0407,x ; CPU:$D031 PRG:5031 9D 07 04
txa ; CPU:$D034 PRG:5034 8A
clc ; CPU:$D035 PRG:5035 18
adc #$10 ; CPU:$D036 PRG:5036 69 10
tax ; CPU:$D038 PRG:5038 AA
dey ; CPU:$D039 PRG:5039 88
bne Sub_D018 ; CPU:$D03A PRG:503A D0 DC
rts ; CPU:$D03C PRG:503C 60
; -----------------------------------------------------------------------------
; Routine: DispatchAddStoreLda
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchAddStoreLda:
lda $040D,x ; CPU:$D03D PRG:503D BD 0D 04
clc ; CPU:$D040 PRG:5040 18
adc $0405,x ; CPU:$D041 PRG:5041 7D 05 04
sta $0405,x ; CPU:$D044 PRG:5044 9D 05 04
lda $040C,x ; CPU:$D047 PRG:5047 BD 0C 04
adc $0404,x ; CPU:$D04A PRG:504A 7D 04 04
sta $0404,x ; CPU:$D04D PRG:504D 9D 04 04
lda $040C,x ; CPU:$D050 PRG:5050 BD 0C 04
bpl Sub_D05A ; CPU:$D053 PRG:5053 10 05
lda #$FF ; CPU:$D055 PRG:5055 A9 FF
jmp DispatchAdcStoreLdaAdd ; CPU:$D057 PRG:5057 4C 5C D0
; -----------------------------------------------------------------------------
; Routine: Sub_D05A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D05A:
lda #$00 ; CPU:$D05A PRG:505A A9 00
; -----------------------------------------------------------------------------
; Routine: DispatchAdcStoreLdaAdd
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchAdcStoreLdaAdd:
adc $0403,x ; CPU:$D05C PRG:505C 7D 03 04
sta $0403,x ; CPU:$D05F PRG:505F 9D 03 04
lda $040F,x ; CPU:$D062 PRG:5062 BD 0F 04
clc ; CPU:$D065 PRG:5065 18
adc $0408,x ; CPU:$D066 PRG:5066 7D 08 04
sta $0408,x ; CPU:$D069 PRG:5069 9D 08 04
lda $040E,x ; CPU:$D06C PRG:506C BD 0E 04
adc $0407,x ; CPU:$D06F PRG:506F 7D 07 04
sta $0407,x ; CPU:$D072 PRG:5072 9D 07 04
lda $040E,x ; CPU:$D075 PRG:5075 BD 0E 04
bpl Sub_D07F ; CPU:$D078 PRG:5078 10 05
lda #$FF ; CPU:$D07A PRG:507A A9 FF
jmp DispatchAdcStoreRts ; CPU:$D07C PRG:507C 4C 81 D0
; -----------------------------------------------------------------------------
; Routine: Sub_D07F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D07F:
lda #$00 ; CPU:$D07F PRG:507F A9 00
; -----------------------------------------------------------------------------
; Routine: DispatchAdcStoreRts
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchAdcStoreRts:
adc $0406,x ; CPU:$D081 PRG:5081 7D 06 04
sta $0406,x ; CPU:$D084 PRG:5084 9D 06 04
rts ; CPU:$D087 PRG:5087 60
; -----------------------------------------------------------------------------
; Routine: DispatchJsrSubBcs
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrSubBcs:
sta Zp39 ; CPU:$D088 PRG:5088 85 39
jsr DispatchCheckLdaRts ; CPU:$D08A PRG:508A 20 F8 D0
sec ; CPU:$D08D PRG:508D 38
sbc $0404,x ; CPU:$D08E PRG:508E FD 04 04
bcs Sub_D0BA ; CPU:$D091 PRG:5091 B0 27
eor #$FF ; CPU:$D093 PRG:5093 49 FF
clc ; CPU:$D095 PRG:5095 18
adc #$01 ; CPU:$D096 PRG:5096 69 01
sta ObjectXLo ; CPU:$D098 PRG:5098 85 37
jsr DispatchCheckLdaRts2 ; CPU:$D09A PRG:509A 20 02 D1
sec ; CPU:$D09D PRG:509D 38
sbc $0407,x ; CPU:$D09E PRG:509E FD 07 04
bcs Sub_D0D8 ; CPU:$D0A1 PRG:50A1 B0 35
eor #$FF ; CPU:$D0A3 PRG:50A3 49 FF
clc ; CPU:$D0A5 PRG:50A5 18
adc #$01 ; CPU:$D0A6 PRG:50A6 69 01
sta ObjectXHi ; CPU:$D0A8 PRG:50A8 85 38
jsr DispatchJsrLdaCmpBccBneLda ; CPU:$D0AA PRG:50AA 20 5D ED
sta ObjPtr ; CPU:$D0AD PRG:50AD 85 13
lda #$18 ; CPU:$D0AF PRG:50AF A9 18
sec ; CPU:$D0B1 PRG:50B1 38
sbc ObjPtr ; CPU:$D0B2 PRG:50B2 E5 13
sta $0402,x ; CPU:$D0B4 PRG:50B4 9D 02 04
jmp DispatchStoreStoreStoreStore ; CPU:$D0B7 PRG:50B7 4C 0E D1
; -----------------------------------------------------------------------------
; Routine: Sub_D0BA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D0BA:
sta ObjectXLo ; CPU:$D0BA PRG:50BA 85 37
jsr DispatchCheckLdaRts2 ; CPU:$D0BC PRG:50BC 20 02 D1
sec ; CPU:$D0BF PRG:50BF 38
sbc $0407,x ; CPU:$D0C0 PRG:50C0 FD 07 04
bcs Sub_D0E6 ; CPU:$D0C3 PRG:50C3 B0 21
eor #$FF ; CPU:$D0C5 PRG:50C5 49 FF
clc ; CPU:$D0C7 PRG:50C7 18
adc #$01 ; CPU:$D0C8 PRG:50C8 69 01
sta ObjectXHi ; CPU:$D0CA PRG:50CA 85 38
jsr DispatchJsrLdaCmpBccBneLda ; CPU:$D0CC PRG:50CC 20 5D ED
clc ; CPU:$D0CF PRG:50CF 18
adc #$08 ; CPU:$D0D0 PRG:50D0 69 08
sta $0402,x ; CPU:$D0D2 PRG:50D2 9D 02 04
jmp DispatchStoreStoreStoreStore ; CPU:$D0D5 PRG:50D5 4C 0E D1
; -----------------------------------------------------------------------------
; Routine: Sub_D0D8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D0D8:
sta ObjectXHi ; CPU:$D0D8 PRG:50D8 85 38
jsr DispatchJsrLdaCmpBccBneLda ; CPU:$D0DA PRG:50DA 20 5D ED
clc ; CPU:$D0DD PRG:50DD 18
adc #$18 ; CPU:$D0DE PRG:50DE 69 18
sta $0402,x ; CPU:$D0E0 PRG:50E0 9D 02 04
jmp DispatchStoreStoreStoreStore ; CPU:$D0E3 PRG:50E3 4C 0E D1
; -----------------------------------------------------------------------------
; Routine: Sub_D0E6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D0E6:
sta ObjectXHi ; CPU:$D0E6 PRG:50E6 85 38
jsr DispatchJsrLdaCmpBccBneLda ; CPU:$D0E8 PRG:50E8 20 5D ED
sta ObjPtr ; CPU:$D0EB PRG:50EB 85 13
lda #$08 ; CPU:$D0ED PRG:50ED A9 08
sec ; CPU:$D0EF PRG:50EF 38
sbc ObjPtr ; CPU:$D0F0 PRG:50F0 E5 13
sta $0402,x ; CPU:$D0F2 PRG:50F2 9D 02 04
jmp DispatchStoreStoreStoreStore ; CPU:$D0F5 PRG:50F5 4C 0E D1
; -----------------------------------------------------------------------------
; Routine: DispatchCheckLdaRts
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchCheckLdaRts:
lda Zp3B ; CPU:$D0F8 PRG:50F8 A5 3B
bne Sub_D0FF ; CPU:$D0FA PRG:50FA D0 03
lda Zp23 ; CPU:$D0FC PRG:50FC A5 23
rts ; CPU:$D0FE PRG:50FE 60
; -----------------------------------------------------------------------------
; Routine: Sub_D0FF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D0FF:
lda #$F0 ; CPU:$D0FF PRG:50FF A9 F0
rts ; CPU:$D101 PRG:5101 60
; -----------------------------------------------------------------------------
; Routine: DispatchCheckLdaRts2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchCheckLdaRts2:
lda Zp3B ; CPU:$D102 PRG:5102 A5 3B
bne Sub_D109 ; CPU:$D104 PRG:5104 D0 03
lda Zp24 ; CPU:$D106 PRG:5106 A5 24
rts ; CPU:$D108 PRG:5108 60
; -----------------------------------------------------------------------------
; Routine: Sub_D109
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D109:
lda #$10 ; CPU:$D109 PRG:5109 A9 10
rts ; CPU:$D10B PRG:510B 60
; -----------------------------------------------------------------------------
; Routine: DispatchStoreB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchStoreB:
sta Zp39 ; CPU:$D10C PRG:510C 85 39
; -----------------------------------------------------------------------------
; Routine: DispatchStoreStoreStoreStore
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchStoreStoreStoreStore:
lda #$00 ; CPU:$D10E PRG:510E A9 00
sta $040C,x ; CPU:$D110 PRG:5110 9D 0C 04
sta $040D,x ; CPU:$D113 PRG:5113 9D 0D 04
sta $040E,x ; CPU:$D116 PRG:5116 9D 0E 04
sta $040F,x ; CPU:$D119 PRG:5119 9D 0F 04
lda Zp39 ; CPU:$D11C PRG:511C A5 39
bne Sub_D121 ; CPU:$D11E PRG:511E D0 01
rts ; CPU:$D120 PRG:5120 60
; -----------------------------------------------------------------------------
; Routine: Sub_D121
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D121:
lda $0402,x ; CPU:$D121 PRG:5121 BD 02 04
asl a ; CPU:$D124 PRG:5124 0A
asl a ; CPU:$D125 PRG:5125 0A
and #$7F ; CPU:$D126 PRG:5126 29 7F
tay ; CPU:$D128 PRG:5128 A8
; -----------------------------------------------------------------------------
; Routine: Sub_D129
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D129:
lda $F136,y ; CPU:$D129 PRG:5129 B9 36 F1
clc ; CPU:$D12C PRG:512C 18
adc $040D,x ; CPU:$D12D PRG:512D 7D 0D 04
sta $040D,x ; CPU:$D130 PRG:5130 9D 0D 04
lda $F137,y ; CPU:$D133 PRG:5133 B9 37 F1
adc $040C,x ; CPU:$D136 PRG:5136 7D 0C 04
sta $040C,x ; CPU:$D139 PRG:5139 9D 0C 04
lda $F138,y ; CPU:$D13C PRG:513C B9 38 F1
clc ; CPU:$D13F PRG:513F 18
adc $040F,x ; CPU:$D140 PRG:5140 7D 0F 04
sta $040F,x ; CPU:$D143 PRG:5143 9D 0F 04
lda $F139,y ; CPU:$D146 PRG:5146 B9 39 F1
adc $040E,x ; CPU:$D149 PRG:5149 7D 0E 04
sta $040E,x ; CPU:$D14C PRG:514C 9D 0E 04
dec Zp39 ; CPU:$D14F PRG:514F C6 39
bne Sub_D129 ; CPU:$D151 PRG:5151 D0 D6
rts ; CPU:$D153 PRG:5153 60
; -----------------------------------------------------------------------------
; Routine: DispatchLdyA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdyA:
ldy #$00 ; CPU:$D154 PRG:5154 A0 00
; -----------------------------------------------------------------------------
; Routine: Sub_D156
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D156:
lda $0400,y ; CPU:$D156 PRG:5156 B9 00 04
and #$03 ; CPU:$D159 PRG:5159 29 03
beq Sub_D166 ; CPU:$D15B PRG:515B F0 09
tya ; CPU:$D15D PRG:515D 98
clc ; CPU:$D15E PRG:515E 18
adc #$10 ; CPU:$D15F PRG:515F 69 10
tay ; CPU:$D161 PRG:5161 A8
bne Sub_D156 ; CPU:$D162 PRG:5162 D0 F2
pla ; CPU:$D164 PRG:5164 68
pla ; CPU:$D165 PRG:5165 68
; -----------------------------------------------------------------------------
; Routine: Sub_D166
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D166:
rts ; CPU:$D166 PRG:5166 60
; -----------------------------------------------------------------------------
; Routine: ObjMoveCall
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjMoveCall:
ldx #$00 ; CPU:$D167 PRG:5167 A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_D169
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D169:
lda $0300,x ; CPU:$D169 PRG:5169 BD 00 03
beq DispatchTxAddTaxCpx ; CPU:$D16C PRG:516C F0 2D
tay ; CPU:$D16E PRG:516E A8
lda $0301,x ; CPU:$D16F PRG:516F BD 01 03
cmp #$02 ; CPU:$D172 PRG:5172 C9 02
bne Sub_D17E ; CPU:$D174 PRG:5174 D0 08
lda #$FF ; CPU:$D176 PRG:5176 A9 FF
sta $0301,x ; CPU:$D178 PRG:5178 9D 01 03
jmp DispatchTxAddTaxCpx ; CPU:$D17B PRG:517B 4C 9B D1
; -----------------------------------------------------------------------------
; Routine: Sub_D17E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D17E:
lda $0302,x ; CPU:$D17E PRG:517E BD 02 03
clc ; CPU:$D181 PRG:5181 18
adc Zp25 ; CPU:$D182 PRG:5182 65 25
bcc Sub_D198 ; CPU:$D184 PRG:5184 90 12
inc $0301,x ; CPU:$D186 PRG:5186 FE 01 03
beq Sub_D198 ; CPU:$D189 PRG:5189 F0 0D
cpy #$0E ; CPU:$D18B PRG:518B C0 0E
beq Sub_D198 ; CPU:$D18D PRG:518D F0 09
cpy #$48 ; CPU:$D18F PRG:518F C0 48
beq Sub_D198 ; CPU:$D191 PRG:5191 F0 05
lda #$00 ; CPU:$D193 PRG:5193 A9 00
sta $0300,x ; CPU:$D195 PRG:5195 9D 00 03
; -----------------------------------------------------------------------------
; Routine: Sub_D198
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D198:
sta $0302,x ; CPU:$D198 PRG:5198 9D 02 03
; -----------------------------------------------------------------------------
; Routine: DispatchTxAddTaxCpx
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchTxAddTaxCpx:
txa ; CPU:$D19B PRG:519B 8A
clc ; CPU:$D19C PRG:519C 18
adc #$08 ; CPU:$D19D PRG:519D 69 08
tax ; CPU:$D19F PRG:519F AA
cpx #$80 ; CPU:$D1A0 PRG:51A0 E0 80
bne Sub_D169 ; CPU:$D1A2 PRG:51A2 D0 C5
lda GameSubMode ; CPU:$D1A4 PRG:51A4 A5 1B
lsr a ; CPU:$D1A6 PRG:51A6 4A
bcs Sub_D1DB ; CPU:$D1A7 PRG:51A7 B0 32
ldx #$00 ; CPU:$D1A9 PRG:51A9 A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_D1AB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D1AB:
jsr DispatchLdyPhaLdaPha ; CPU:$D1AB PRG:51AB 20 09 D2
txa ; CPU:$D1AE PRG:51AE 8A
clc ; CPU:$D1AF PRG:51AF 18
adc #$08 ; CPU:$D1B0 PRG:51B0 69 08
tax ; CPU:$D1B2 PRG:51B2 AA
cpx #$80 ; CPU:$D1B3 PRG:51B3 E0 80
bne Sub_D1AB ; CPU:$D1B5 PRG:51B5 D0 F4
ldx #$00 ; CPU:$D1B7 PRG:51B7 A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_D1B9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D1B9:
lda $0300,x ; CPU:$D1B9 PRG:51B9 BD 00 03
cmp #$4A ; CPU:$D1BC PRG:51BC C9 4A
beq Sub_D1D5 ; CPU:$D1BE PRG:51BE F0 15
cmp #$3A ; CPU:$D1C0 PRG:51C0 C9 3A
beq Sub_D1C8 ; CPU:$D1C2 PRG:51C2 F0 04
cmp #$3C ; CPU:$D1C4 PRG:51C4 C9 3C
bne DispatchTxAddTaxCpx2 ; CPU:$D1C6 PRG:51C6 D0 03
; -----------------------------------------------------------------------------
; Routine: Sub_D1C8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D1C8:
jsr DispatchLsrsLsrsAnd ; CPU:$D1C8 PRG:51C8 20 DA D7
; -----------------------------------------------------------------------------
; Routine: DispatchTxAddTaxCpx2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchTxAddTaxCpx2:
txa ; CPU:$D1CB PRG:51CB 8A
clc ; CPU:$D1CC PRG:51CC 18
adc #$08 ; CPU:$D1CD PRG:51CD 69 08
tax ; CPU:$D1CF PRG:51CF AA
cpx #$80 ; CPU:$D1D0 PRG:51D0 E0 80
bne Sub_D1B9 ; CPU:$D1D2 PRG:51D2 D0 E5
rts ; CPU:$D1D4 PRG:51D4 60
; -----------------------------------------------------------------------------
; Routine: Sub_D1D5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D1D5:
jsr DispatchCheckBeqRts ; CPU:$D1D5 PRG:51D5 20 CB D2
jmp DispatchTxAddTaxCpx2 ; CPU:$D1D8 PRG:51D8 4C CB D1
; -----------------------------------------------------------------------------
; Routine: Sub_D1DB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D1DB:
ldx #$78 ; CPU:$D1DB PRG:51DB A2 78
; -----------------------------------------------------------------------------
; Routine: Sub_D1DD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D1DD:
jsr DispatchLdyPhaLdaPha ; CPU:$D1DD PRG:51DD 20 09 D2
txa ; CPU:$D1E0 PRG:51E0 8A
sec ; CPU:$D1E1 PRG:51E1 38
sbc #$08 ; CPU:$D1E2 PRG:51E2 E9 08
tax ; CPU:$D1E4 PRG:51E4 AA
bpl Sub_D1DD ; CPU:$D1E5 PRG:51E5 10 F6
ldx #$78 ; CPU:$D1E7 PRG:51E7 A2 78
; -----------------------------------------------------------------------------
; Routine: Sub_D1E9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D1E9:
lda $0300,x ; CPU:$D1E9 PRG:51E9 BD 00 03
cmp #$4A ; CPU:$D1EC PRG:51EC C9 4A
beq Sub_D203 ; CPU:$D1EE PRG:51EE F0 13
cmp #$3A ; CPU:$D1F0 PRG:51F0 C9 3A
beq Sub_D1F8 ; CPU:$D1F2 PRG:51F2 F0 04
cmp #$3C ; CPU:$D1F4 PRG:51F4 C9 3C
bne DispatchSubTaxBpl ; CPU:$D1F6 PRG:51F6 D0 03
; -----------------------------------------------------------------------------
; Routine: Sub_D1F8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D1F8:
jsr DispatchLsrsLsrsAnd ; CPU:$D1F8 PRG:51F8 20 DA D7
; -----------------------------------------------------------------------------
; Routine: DispatchSubTaxBpl
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchSubTaxBpl:
txa ; CPU:$D1FB PRG:51FB 8A
sec ; CPU:$D1FC PRG:51FC 38
sbc #$08 ; CPU:$D1FD PRG:51FD E9 08
tax ; CPU:$D1FF PRG:51FF AA
bpl Sub_D1E9 ; CPU:$D200 PRG:5200 10 E7
rts ; CPU:$D202 PRG:5202 60
; -----------------------------------------------------------------------------
; Routine: Sub_D203
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D203:
jsr DispatchCheckBeqRts ; CPU:$D203 PRG:5203 20 CB D2
jmp DispatchSubTaxBpl ; CPU:$D206 PRG:5206 4C FB D1
; -----------------------------------------------------------------------------
; Routine: DispatchLdyPhaLdaPha
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdyPhaLdaPha:
ldy $0300,x ; CPU:$D209 PRG:5209 BC 00 03
lda $D216,y ; CPU:$D20C PRG:520C B9 16 D2
pha ; CPU:$D20F PRG:520F 48
lda $D215,y ; CPU:$D210 PRG:5210 B9 15 D2
pha ; CPU:$D213 PRG:5213 48
rts ; CPU:$D214 PRG:5214 60
ObjSubPtrTable:
; Object subroutine pointer table (16-bit entries called via pha/pha/rts)
; ---- data $D215-$D249 (53 bytes) ----
; referenced by `lda $D216,y` at $D20C (operand $D216 falls inside this region)
; referenced by `lda $D215,y` at $D210 (operand $D215 falls inside this region)
.byte $1F, $D7, $C2, $D9, $79, $DA, $B0, $DA, $C2, $DA, $DD, $DA, $F5, $DA, $3A, $D3 ; CPU:$D215 PRG:5215 1F D7 C2 D9 79 DA B0 DA C2 DA DD DA F5 DA 3A D3
.byte $27, $DD, $46, $DE, $A9, $DD, $7C, $DB, $CC, $DB, $02, $DC, $44, $DC, $5E, $DC ; CPU:$D225 PRG:5225 27 DD 46 DE A9 DD 7C DB CC DB 02 DC 44 DC 5E DC
.byte $6A, $DB, $B2, $DB, $3D, $DB, $70, $DC, $75, $DC, $AD, $D8, $AD, $D8, $AD, $D8 ; CPU:$D235 PRG:5235 6A DB B2 DB 3D DB 70 DC 75 DC AD D8 AD D8 AD D8
.byte $AD, $D8, $2B, $D9, $FB ; CPU:$D245 PRG:5245 AD D8 2B D9 FB
; ---- data $D24A-$D24A (1 bytes) ----
.byte $D9 ; CPU:$D24A PRG:524A D9
jsr $01D7 ; CPU:$D24B PRG:524B 20 D7 01
.byte $D7, $56 ; CPU:$D24E PRG:524E D7 56 -- dcp Zp56,x (undocumented; ca65 cannot encode)
.byte $D7, $40 ; CPU:$D250 PRG:5250 D7 40 -- dcp Zp40,x (undocumented; ca65 cannot encode)
; ---- data $D252-$D2C3 (114 bytes) ----
.byte $D7, $D2, $D6, $96, $D8, $96, $D8, $96, $D8, $96, $D8, $E8, $D2, $1F, $D7, $62 ; CPU:$D252 PRG:5252 D7 D2 D6 96 D8 96 D8 96 D8 96 D8 E8 D2 1F D7 62
.byte $D2, $BD, $02, $03, $38, $E9, $06, $B0, $0A, $A9, $00, $9D, $00, $03, $85, $13 ; CPU:$D262 PRG:5262 D2 BD 02 03 38 E9 06 B0 0A A9 00 9D 00 03 85 13
.byte $4C, $A1, $D2, $9D, $02, $03, $85, $38, $BD, $03, $03, $85, $37, $86, $13, $A2 ; CPU:$D272 PRG:5272 4C A1 D2 9D 02 03 85 38 BD 03 03 85 37 86 13 A2
.byte $A0, $20, $D9, $D5, $E0, $B0, $D0, $F9, $A6, $13, $A5, $1B, $29, $07, $A8, $B9 ; CPU:$D282 PRG:5282 A0 20 D9 D5 E0 B0 D0 F9 A6 13 A5 1B 29 07 A8 B9
.byte $C3, $D2, $85, $13, $A5, $3B, $F0, $07, $A9, $00, $9D, $00, $03, $85, $13, $A4 ; CPU:$D292 PRG:5292 C3 D2 85 13 A5 3B F0 07 A9 00 9D 00 03 85 13 A4
.byte $1A, $A9, $3F, $99, $08, $02, $C8, $A9, $13, $99, $08, $02, $C8, $A9, $01, $99 ; CPU:$D2A2 PRG:52A2 1A A9 3F 99 08 02 C8 A9 13 99 08 02 C8 A9 01 99
.byte $08, $02, $C8, $A5, $13, $99, $08, $02, $C8, $A9, $00, $99, $08, $02, $84, $1A ; CPU:$D2B2 PRG:52B2 08 02 C8 A5 13 99 08 02 C8 A9 00 99 08 02 84 1A
.byte $60, $02 ; CPU:$D2C2 PRG:52C2 60 02
; -----------------------------------------------------------------------------
; Routine: Sub_D2C4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D2C4:
ora Zp16 ; CPU:$D2C4 PRG:52C4 05 16
plp ; CPU:$D2C6 PRG:52C6 28
rol a ; CPU:$D2C7 PRG:52C7 2A
rol Zp12 ; CPU:$D2C8 PRG:52C8 26 12
; ---- data $D2CA-$D2CA (1 bytes) ----
.byte $15 ; CPU:$D2CA PRG:52CA 15
; -----------------------------------------------------------------------------
; Routine: DispatchCheckBeqRts
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchCheckBeqRts:
lda $0301,x ; CPU:$D2CB PRG:52CB BD 01 03
beq Sub_D2D1 ; CPU:$D2CE PRG:52CE F0 01
rts ; CPU:$D2D0 PRG:52D0 60
; -----------------------------------------------------------------------------
; Routine: Sub_D2D1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D2D1:
lda $0302,x ; CPU:$D2D1 PRG:52D1 BD 02 03
sta ObjectXHi ; CPU:$D2D4 PRG:52D4 85 38
lda $0303,x ; CPU:$D2D6 PRG:52D6 BD 03 03
sta ObjectXLo ; CPU:$D2D9 PRG:52D9 85 37
stx ObjPtr ; CPU:$D2DB PRG:52DB 86 13
ldx #$10 ; CPU:$D2DD PRG:52DD A2 10
; -----------------------------------------------------------------------------
; Routine: Sub_D2DF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D2DF:
jsr DispatchLdyBeqLdaAdd ; CPU:$D2DF PRG:52DF 20 D9 D5
cpx #$20 ; CPU:$D2E2 PRG:52E2 E0 20
bne Sub_D2DF ; CPU:$D2E4 PRG:52E4 D0 F9
ldx ObjPtr ; CPU:$D2E6 PRG:52E6 A6 13
rts ; CPU:$D2E8 PRG:52E8 60
; -----------------------------------------------------------------------------
; Routine: Sub_D2E9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D2E9:
lda $0301,x ; CPU:$D2E9 PRG:52E9 BD 01 03
beq Sub_D2F4 ; CPU:$D2EC PRG:52EC F0 06
bmi Sub_D2F3 ; CPU:$D2EE PRG:52EE 30 03
jmp DispatchCmpBneLdaSub ; CPU:$D2F0 PRG:52F0 4C 14 D3
; -----------------------------------------------------------------------------
; Routine: Sub_D2F3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D2F3:
rts ; CPU:$D2F3 PRG:52F3 60
; -----------------------------------------------------------------------------
; Routine: Sub_D2F4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D2F4:
lda $0302,x ; CPU:$D2F4 PRG:52F4 BD 02 03
sec ; CPU:$D2F7 PRG:52F7 38
sbc #$50 ; CPU:$D2F8 PRG:52F8 E9 50
sta ObjectXHi ; CPU:$D2FA PRG:52FA 85 38
bcs Sub_D301 ; CPU:$D2FC PRG:52FC B0 03
jmp DispatchStoreStoreStoreStx ; CPU:$D2FE PRG:52FE 4C 28 D3
; -----------------------------------------------------------------------------
; Routine: Sub_D301
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D301:
lda $0303,x ; CPU:$D301 PRG:5301 BD 03 03
sta ObjectXLo ; CPU:$D304 PRG:5304 85 37
lda $0307,x ; CPU:$D306 PRG:5306 BD 07 03
sta ObjPtr ; CPU:$D309 PRG:5309 85 13
stx Zp2C ; CPU:$D30B PRG:530B 86 2C
lda #$00 ; CPU:$D30D PRG:530D A9 00
sta ObjectYLo ; CPU:$D30F PRG:530F 85 35
jmp DispatchLdxC ; CPU:$D311 PRG:5311 4C C3 D3
; -----------------------------------------------------------------------------
; Routine: DispatchCmpBneLdaSub
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchCmpBneLdaSub:
cmp #$01 ; CPU:$D314 PRG:5314 C9 01
bne Sub_D322 ; CPU:$D316 PRG:5316 D0 0A
lda $0302,x ; CPU:$D318 PRG:5318 BD 02 03
sec ; CPU:$D31B PRG:531B 38
sbc #$50 ; CPU:$D31C PRG:531C E9 50
sta ObjectXHi ; CPU:$D31E PRG:531E 85 38
bcc Sub_D301 ; CPU:$D320 PRG:5320 90 DF
; -----------------------------------------------------------------------------
; Routine: Sub_D322
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D322:
lda #$00 ; CPU:$D322 PRG:5322 A9 00
sta $0300,x ; CPU:$D324 PRG:5324 9D 00 03
rts ; CPU:$D327 PRG:5327 60
; -----------------------------------------------------------------------------
; Routine: DispatchStoreStoreStoreStx
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchStoreStoreStoreStx:
lda $0303,x ; CPU:$D328 PRG:5328 BD 03 03
sta ObjectXLo ; CPU:$D32B PRG:532B 85 37
lda $0307,x ; CPU:$D32D PRG:532D BD 07 03
sta ObjPtr ; CPU:$D330 PRG:5330 85 13
stx Zp2C ; CPU:$D332 PRG:5332 86 2C
lda #$01 ; CPU:$D334 PRG:5334 A9 01
sta ObjectYLo ; CPU:$D336 PRG:5336 85 35
jmp DispatchLdxC ; CPU:$D338 PRG:5338 4C C3 D3
; ---- data $D33B-$D342 (8 bytes) ----
.byte $A5, $5A, $05, $3B, $D0, $05, $A9, $01 ; CPU:$D33B PRG:533B A5 5A 05 3B D0 05 A9 01
; -----------------------------------------------------------------------------
; Routine: Sub_D343
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D343:
sta $060B ; CPU:$D343 PRG:5343 8D 0B 06
lda $0301,x ; CPU:$D346 PRG:5346 BD 01 03
beq Sub_D351 ; CPU:$D349 PRG:5349 F0 06
bmi Sub_D350 ; CPU:$D34B PRG:534B 30 03
jmp DispatchCmpBneLdaSub2 ; CPU:$D34D PRG:534D 4C 72 D3
; -----------------------------------------------------------------------------
; Routine: Sub_D350
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D350:
rts ; CPU:$D350 PRG:5350 60
; -----------------------------------------------------------------------------
; Routine: Sub_D351
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D351:
lda $0302,x ; CPU:$D351 PRG:5351 BD 02 03
sec ; CPU:$D354 PRG:5354 38
sbc #$50 ; CPU:$D355 PRG:5355 E9 50
sta ObjectXHi ; CPU:$D357 PRG:5357 85 38
bcs DispatchStoreJmp ; CPU:$D359 PRG:5359 B0 03
jmp DispatchLdaD ; CPU:$D35B PRG:535B 4C 83 D3
; -----------------------------------------------------------------------------
; Routine: DispatchStoreJmp
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchStoreJmp:
lda #$00 ; CPU:$D35E PRG:535E A9 00
sta ObjectYLo ; CPU:$D360 PRG:5360 85 35
jmp DispatchStoreStoreStoreStx4; CPU:$D362 PRG:5362 4C 87 D3
; -----------------------------------------------------------------------------
; Routine: Sub_D365
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D365:
lda #$00 ; CPU:$D365 PRG:5365 A9 00
; -----------------------------------------------------------------------------
; Routine: Sub_D367
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D367:
sta $0300,x ; CPU:$D367 PRG:5367 9D 00 03
txa ; CPU:$D36A PRG:536A 8A
pha ; CPU:$D36B PRG:536B 48
jsr ClearOamInit ; CPU:$D36C PRG:536C 20 D3 B8
pla ; CPU:$D36F PRG:536F 68
tax ; CPU:$D370 PRG:5370 AA
rts ; CPU:$D371 PRG:5371 60
; -----------------------------------------------------------------------------
; Routine: DispatchCmpBneLdaSub2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchCmpBneLdaSub2:
cmp #$01 ; CPU:$D372 PRG:5372 C9 01
bne Sub_D365 ; CPU:$D374 PRG:5374 D0 EF
lda $0302,x ; CPU:$D376 PRG:5376 BD 02 03
sec ; CPU:$D379 PRG:5379 38
sbc #$50 ; CPU:$D37A PRG:537A E9 50
sta ObjectXHi ; CPU:$D37C PRG:537C 85 38
bcs Sub_D365 ; CPU:$D37E PRG:537E B0 E5
jmp DispatchStoreJmp ; CPU:$D380 PRG:5380 4C 5E D3
; -----------------------------------------------------------------------------
; Routine: DispatchLdaD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaD:
lda #$01 ; CPU:$D383 PRG:5383 A9 01
; -----------------------------------------------------------------------------
; Routine: Sub_D385
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D385:
sta ObjectYLo ; CPU:$D385 PRG:5385 85 35
; -----------------------------------------------------------------------------
; Routine: DispatchStoreStoreStoreStx4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchStoreStoreStoreStx4:
lda $0303,x ; CPU:$D387 PRG:5387 BD 03 03
sta ObjectXLo ; CPU:$D38A PRG:538A 85 37
lda $0307,x ; CPU:$D38C PRG:538C BD 07 03
sta ObjPtr ; CPU:$D38F PRG:538F 85 13
stx Zp2C ; CPU:$D391 PRG:5391 86 2C
ldx #$00 ; CPU:$D393 PRG:5393 A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_D395
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D395:
jsr DispatchLdaBne ; CPU:$D395 PRG:5395 20 D5 D5
cpx #$10 ; CPU:$D398 PRG:5398 E0 10
bne Sub_D395 ; CPU:$D39A PRG:539A D0 F9
ldx #$20 ; CPU:$D39C PRG:539C A2 20
; -----------------------------------------------------------------------------
; Routine: Sub_D39E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D39E:
lsr ObjPtr ; CPU:$D39E PRG:539E 46 13
bcs Sub_D3A8 ; CPU:$D3A0 PRG:53A0 B0 06
jsr DispatchLdaBne ; CPU:$D3A2 PRG:53A2 20 D5 D5
jmp DispatchCpxBneLdaAndClc ; CPU:$D3A5 PRG:53A5 4C AC D3
; -----------------------------------------------------------------------------
; Routine: Sub_D3A8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D3A8:
inx ; CPU:$D3A8 PRG:53A8 E8
inx ; CPU:$D3A9 PRG:53A9 E8
inx ; CPU:$D3AA PRG:53AA E8
inx ; CPU:$D3AB PRG:53AB E8
; -----------------------------------------------------------------------------
; Routine: DispatchCpxBneLdaAndClc
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchCpxBneLdaAndClc:
cpx #$30 ; CPU:$D3AC PRG:53AC E0 30
bne Sub_D39E ; CPU:$D3AE PRG:53AE D0 EE
lda GameSubMode ; CPU:$D3B0 PRG:53B0 A5 1B
and #$30 ; CPU:$D3B2 PRG:53B2 29 30
clc ; CPU:$D3B4 PRG:53B4 18
adc #$60 ; CPU:$D3B5 PRG:53B5 69 60
tax ; CPU:$D3B7 PRG:53B7 AA
lda #$04 ; CPU:$D3B8 PRG:53B8 A9 04
; -----------------------------------------------------------------------------
; Routine: Sub_D3BA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D3BA:
sta ObjUpdateFlag ; CPU:$D3BA PRG:53BA 85 0E
; -----------------------------------------------------------------------------
; Routine: Sub_D3BC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D3BC:
jsr DispatchLdaBne ; CPU:$D3BC PRG:53BC 20 D5 D5
dec ObjUpdateFlag ; CPU:$D3BF PRG:53BF C6 0E
bne Sub_D3BC ; CPU:$D3C1 PRG:53C1 D0 F9
; -----------------------------------------------------------------------------
; Routine: DispatchLdxC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdxC:
ldx #$30 ; CPU:$D3C3 PRG:53C3 A2 30
; -----------------------------------------------------------------------------
; Routine: Sub_D3C5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D3C5:
jsr DispatchLdaBne ; CPU:$D3C5 PRG:53C5 20 D5 D5
cpx #$60 ; CPU:$D3C8 PRG:53C8 E0 60
bne Sub_D3C5 ; CPU:$D3CA PRG:53CA D0 F9
ldx Zp2C ; CPU:$D3CC PRG:53CC A6 2C
lda $0300,x ; CPU:$D3CE PRG:53CE BD 00 03
cmp #$0E ; CPU:$D3D1 PRG:53D1 C9 0E
beq Sub_D3D6 ; CPU:$D3D3 PRG:53D3 F0 01
rts ; CPU:$D3D5 PRG:53D5 60
; -----------------------------------------------------------------------------
; Routine: Sub_D3D6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D3D6:
ldy #$00 ; CPU:$D3D6 PRG:53D6 A0 00
jsr DispatchCheckLdaAdd2 ; CPU:$D3D8 PRG:53D8 20 E3 D4
jsr DispatchCheckLdaAdd2 ; CPU:$D3DB PRG:53DB 20 E3 D4
jsr DispatchCheckLdaAdd2 ; CPU:$D3DE PRG:53DE 20 E3 D4
jsr DispatchCheckLdaAdd2 ; CPU:$D3E1 PRG:53E1 20 E3 D4
lda $0301,x ; CPU:$D3E4 PRG:53E4 BD 01 03
beq Sub_D3F2 ; CPU:$D3E7 PRG:53E7 F0 09
lda $0302,x ; CPU:$D3E9 PRG:53E9 BD 02 03
sec ; CPU:$D3EC PRG:53EC 38
sbc #$28 ; CPU:$D3ED PRG:53ED E9 28
bcc Sub_D3FA ; CPU:$D3EF PRG:53EF 90 09
; -----------------------------------------------------------------------------
; Routine: Sub_D3F1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D3F1:
rts ; CPU:$D3F1 PRG:53F1 60
; -----------------------------------------------------------------------------
; Routine: Sub_D3F2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D3F2:
lda $0302,x ; CPU:$D3F2 PRG:53F2 BD 02 03
sec ; CPU:$D3F5 PRG:53F5 38
sbc #$28 ; CPU:$D3F6 PRG:53F6 E9 28
bcc Sub_D3F1 ; CPU:$D3F8 PRG:53F8 90 F7
; -----------------------------------------------------------------------------
; Routine: Sub_D3FA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D3FA:
sta $0302,x ; CPU:$D3FA PRG:53FA 9D 02 03
; -----------------------------------------------------------------------------
; Routine: Sub_D3FD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D3FD:
lda $0303,x ; CPU:$D3FD PRG:53FD BD 03 03
clc ; CPU:$D400 PRG:5400 18
adc #$18 ; CPU:$D401 PRG:5401 69 18
sta $0303,x ; CPU:$D403 PRG:5403 9D 03 03
jsr DispatchSubSecClcAdd ; CPU:$D406 PRG:5406 20 E1 DC
lda $0306,x ; CPU:$D409 PRG:5409 BD 06 03
bne Sub_D421 ; CPU:$D40C PRG:540C D0 13
lda $0302,x ; CPU:$D40E PRG:540E BD 02 03
clc ; CPU:$D411 PRG:5411 18
adc #$28 ; CPU:$D412 PRG:5412 69 28
sta $0302,x ; CPU:$D414 PRG:5414 9D 02 03
lda $0303,x ; CPU:$D417 PRG:5417 BD 03 03
sec ; CPU:$D41A PRG:541A 38
sbc #$18 ; CPU:$D41B PRG:541B E9 18
sta $0303,x ; CPU:$D41D PRG:541D 9D 03 03
rts ; CPU:$D420 PRG:5420 60
; -----------------------------------------------------------------------------
; Routine: Sub_D421
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D421:
txa ; CPU:$D421 PRG:5421 8A
pha ; CPU:$D422 PRG:5422 48
lda #$04 ; CPU:$D423 PRG:5423 A9 04
jsr ObjSpritesInit4 ; CPU:$D425 PRG:5425 20 5B BF
lda #$48 ; CPU:$D428 PRG:5428 A9 48
sta $0300,x ; CPU:$D42A PRG:542A 9D 00 03
ldy #$70 ; CPU:$D42D PRG:542D A0 70
lda $0301,x ; CPU:$D42F PRG:542F BD 01 03
sta $0301,y ; CPU:$D432 PRG:5432 99 01 03
lda $0302,x ; CPU:$D435 PRG:5435 BD 02 03
sta Zp46 ; CPU:$D438 PRG:5438 85 46
sta $0302,y ; CPU:$D43A PRG:543A 99 02 03
lda $0303,x ; CPU:$D43D PRG:543D BD 03 03
sta Zp45 ; CPU:$D440 PRG:5440 85 45
sta $0303,y ; CPU:$D442 PRG:5442 99 03 03
; ---- data $D445-$D445 (1 bytes) ----
.byte $A9 ; CPU:$D445 PRG:5445 A9
; -----------------------------------------------------------------------------
; Routine: Sub_D446
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D446:
lsr a ; CPU:$D446 PRG:5446 4A
sta $0300,y ; CPU:$D447 PRG:5447 99 00 03
jsr ClearOamInit ; CPU:$D44A PRG:544A 20 D3 B8
ldx #$00 ; CPU:$D44D PRG:544D A2 00
stx Zp61 ; CPU:$D44F PRG:544F 86 61
; -----------------------------------------------------------------------------
; Routine: Sub_D451
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D451:
lda $0300,x ; CPU:$D451 PRG:5451 BD 00 03
beq Sub_D462 ; CPU:$D454 PRG:5454 F0 0C
txa ; CPU:$D456 PRG:5456 8A
clc ; CPU:$D457 PRG:5457 18
adc #$08 ; CPU:$D458 PRG:5458 69 08
tax ; CPU:$D45A PRG:545A AA
cmp #$80 ; CPU:$D45B PRG:545B C9 80
bne Sub_D451 ; CPU:$D45D PRG:545D D0 F2
pla ; CPU:$D45F PRG:545F 68
tax ; CPU:$D460 PRG:5460 AA
rts ; CPU:$D461 PRG:5461 60
; -----------------------------------------------------------------------------
; Routine: Sub_D462
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D462:
lda #$1A ; CPU:$D462 PRG:5462 A9 1A
sta $0300,x ; CPU:$D464 PRG:5464 9D 00 03
lda #$4C ; CPU:$D467 PRG:5467 A9 4C
sta $0307,x ; CPU:$D469 PRG:5469 9D 07 03
lda #$01 ; CPU:$D46C PRG:546C A9 01
sta $0612 ; CPU:$D46E PRG:546E 8D 12 06
lda #$04 ; CPU:$D471 PRG:5471 A9 04
sta $0306,x ; CPU:$D473 PRG:5473 9D 06 03
lda Zp46 ; CPU:$D476 PRG:5476 A5 46
sta $0302,x ; CPU:$D478 PRG:5478 9D 02 03
lda Zp45 ; CPU:$D47B PRG:547B A5 45
sta $0303,x ; CPU:$D47D PRG:547D 9D 03 03
lda #$00 ; CPU:$D480 PRG:5480 A9 00
sta $0301,x ; CPU:$D482 PRG:5482 9D 01 03
pla ; CPU:$D485 PRG:5485 68
tax ; CPU:$D486 PRG:5486 AA
ldy #$00 ; CPU:$D487 PRG:5487 A0 00
lda $0302,x ; CPU:$D489 PRG:5489 BD 02 03
clc ; CPU:$D48C PRG:548C 18
adc #$28 ; CPU:$D48D PRG:548D 69 28
sta $0302,x ; CPU:$D48F PRG:548F 9D 02 03
sta ObjectXHi ; CPU:$D492 PRG:5492 85 38
lda $0303,x ; CPU:$D494 PRG:5494 BD 03 03
sec ; CPU:$D497 PRG:5497 38
; -----------------------------------------------------------------------------
; Routine: Sub_D498
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D498:
sbc #$18 ; CPU:$D498 PRG:5498 E9 18
sta $0303,x ; CPU:$D49A PRG:549A 9D 03 03
sta ObjectXLo ; CPU:$D49D PRG:549D 85 37
jsr DispatchCheckLdaAdd ; CPU:$D49F PRG:549F 20 A8 D4
jsr DispatchCheckLdaAdd ; CPU:$D4A2 PRG:54A2 20 A8 D4
jsr DispatchCheckLdaAdd ; CPU:$D4A5 PRG:54A5 20 A8 D4
; -----------------------------------------------------------------------------
; Routine: DispatchCheckLdaAdd
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchCheckLdaAdd:
lda $0301,x ; CPU:$D4A8 PRG:54A8 BD 01 03
beq Sub_D4B9 ; CPU:$D4AB PRG:54AB F0 0C
lda ObjectXHi ; CPU:$D4AD PRG:54AD A5 38
clc ; CPU:$D4AF PRG:54AF 18
adc $D6C7,y ; CPU:$D4B0 PRG:54B0 79 C7 D6
bcc Sub_D4C1 ; CPU:$D4B3 PRG:54B3 90 0C
; -----------------------------------------------------------------------------
; Routine: Sub_D4B5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D4B5:
iny ; CPU:$D4B5 PRG:54B5 C8
iny ; CPU:$D4B6 PRG:54B6 C8
; -----------------------------------------------------------------------------
; Routine: Sub_D4B7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D4B7:
iny ; CPU:$D4B7 PRG:54B7 C8
rts ; CPU:$D4B8 PRG:54B8 60
; -----------------------------------------------------------------------------
; Routine: Sub_D4B9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D4B9:
lda ObjectXHi ; CPU:$D4B9 PRG:54B9 A5 38
clc ; CPU:$D4BB PRG:54BB 18
adc $D6C7,y ; CPU:$D4BC PRG:54BC 79 C7 D6
bcc Sub_D4B5 ; CPU:$D4BF PRG:54BF 90 F4
; -----------------------------------------------------------------------------
; Routine: Sub_D4C1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D4C1:
sta Zp46 ; CPU:$D4C1 PRG:54C1 85 46
iny ; CPU:$D4C3 PRG:54C3 C8
lda ObjectXLo ; CPU:$D4C4 PRG:54C4 A5 37
clc ; CPU:$D4C6 PRG:54C6 18
adc $D6C7,y ; CPU:$D4C7 PRG:54C7 79 C7 D6
sta Zp45 ; CPU:$D4CA PRG:54CA 85 45
iny ; CPU:$D4CC PRG:54CC C8
lda $D6C7,y ; CPU:$D4CD PRG:54CD B9 C7 D6
and $0307,x ; CPU:$D4D0 PRG:54D0 3D 07 03
bne Sub_D4B7 ; CPU:$D4D3 PRG:54D3 D0 E2
lda $D6C7,y ; CPU:$D4D5 PRG:54D5 B9 C7 D6
ora $0307,x ; CPU:$D4D8 PRG:54D8 1D 07 03
sta $0307,x ; CPU:$D4DB PRG:54DB 9D 07 03
jsr DispatchTaxPhaLdxLda ; CPU:$D4DE PRG:54DE 20 94 D5
iny ; CPU:$D4E1 PRG:54E1 C8
rts ; CPU:$D4E2 PRG:54E2 60
; -----------------------------------------------------------------------------
; Routine: DispatchCheckLdaAdd2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchCheckLdaAdd2:
lda $0301,x ; CPU:$D4E3 PRG:54E3 BD 01 03
beq Sub_D4F5 ; CPU:$D4E6 PRG:54E6 F0 0D
lda $0302,x ; CPU:$D4E8 PRG:54E8 BD 02 03
clc ; CPU:$D4EB PRG:54EB 18
adc $D6C7,y ; CPU:$D4EC PRG:54EC 79 C7 D6
bcc Sub_D4FE ; CPU:$D4EF PRG:54EF 90 0D
; -----------------------------------------------------------------------------
; Routine: Sub_D4F1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D4F1:
iny ; CPU:$D4F1 PRG:54F1 C8
iny ; CPU:$D4F2 PRG:54F2 C8
; -----------------------------------------------------------------------------
; Routine: Sub_D4F3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D4F3:
iny ; CPU:$D4F3 PRG:54F3 C8
rts ; CPU:$D4F4 PRG:54F4 60
; -----------------------------------------------------------------------------
; Routine: Sub_D4F5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D4F5:
lda $0302,x ; CPU:$D4F5 PRG:54F5 BD 02 03
clc ; CPU:$D4F8 PRG:54F8 18
adc $D6C7,y ; CPU:$D4F9 PRG:54F9 79 C7 D6
bcc Sub_D4F1 ; CPU:$D4FC PRG:54FC 90 F3
; -----------------------------------------------------------------------------
; Routine: Sub_D4FE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D4FE:
sta Zp46 ; CPU:$D4FE PRG:54FE 85 46
iny ; CPU:$D500 PRG:5500 C8
lda $0303,x ; CPU:$D501 PRG:5501 BD 03 03
clc ; CPU:$D504 PRG:5504 18
adc $D6C7,y ; CPU:$D505 PRG:5505 79 C7 D6
sta Zp45 ; CPU:$D508 PRG:5508 85 45
iny ; CPU:$D50A PRG:550A C8
lda $D6C7,y ; CPU:$D50B PRG:550B B9 C7 D6
and $0307,x ; CPU:$D50E PRG:550E 3D 07 03
bne Sub_D4F3 ; CPU:$D511 PRG:5511 D0 E0
lda Zp24 ; CPU:$D513 PRG:5513 A5 24
sec ; CPU:$D515 PRG:5515 38
sbc Zp46 ; CPU:$D516 PRG:5516 E5 46
sec ; CPU:$D518 PRG:5518 38
sbc #$32 ; CPU:$D519 PRG:5519 E9 32
cmp #$15 ; CPU:$D51B PRG:551B C9 15
bcs Sub_D52F ; CPU:$D51D PRG:551D B0 10
lda Zp23 ; CPU:$D51F PRG:551F A5 23
sec ; CPU:$D521 PRG:5521 38
sbc Zp45 ; CPU:$D522 PRG:5522 E5 45
clc ; CPU:$D524 PRG:5524 18
adc #$0E ; CPU:$D525 PRG:5525 69 0E
cmp #$15 ; CPU:$D527 PRG:5527 C9 15
bcs Sub_D52F ; CPU:$D529 PRG:5529 B0 04
lda #$01 ; CPU:$D52B PRG:552B A9 01
sta Zp2E ; CPU:$D52D PRG:552D 85 2E
; -----------------------------------------------------------------------------
; Routine: Sub_D52F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D52F:
lda $02A0 ; CPU:$D52F PRG:552F AD A0 02
cmp #$20 ; CPU:$D532 PRG:5532 C9 20
bne Sub_D561 ; CPU:$D534 PRG:5534 D0 2B
lda Zp46 ; CPU:$D536 PRG:5536 A5 46
sec ; CPU:$D538 PRG:5538 38
sbc $02A4 ; CPU:$D539 PRG:5539 ED A4 02
clc ; CPU:$D53C PRG:553C 18
adc #$07 ; CPU:$D53D PRG:553D 69 07
cmp #$15 ; CPU:$D53F PRG:553F C9 15
bcs Sub_D561 ; CPU:$D541 PRG:5541 B0 1E
lda Zp45 ; CPU:$D543 PRG:5543 A5 45
sec ; CPU:$D545 PRG:5545 38
sbc $02A3 ; CPU:$D546 PRG:5546 ED A3 02
clc ; CPU:$D549 PRG:5549 18
adc #$07 ; CPU:$D54A PRG:554A 69 07
cmp #$15 ; CPU:$D54C PRG:554C C9 15
bcs Sub_D561 ; CPU:$D54E PRG:554E B0 11
jsr DispatchTaxPhaLdxLda ; CPU:$D550 PRG:5550 20 94 D5
lda $D6C7,y ; CPU:$D553 PRG:5553 B9 C7 D6
ora $0307,x ; CPU:$D556 PRG:5556 1D 07 03
sta $0307,x ; CPU:$D559 PRG:5559 9D 07 03
lda #$01 ; CPU:$D55C PRG:555C A9 01
; -----------------------------------------------------------------------------
; Routine: Sub_D55E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D55E:
jsr ObjSpritesInit4 ; CPU:$D55E PRG:555E 20 5B BF
; -----------------------------------------------------------------------------
; Routine: Sub_D561
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D561:
lda $D6C7,y ; CPU:$D561 PRG:5561 B9 C7 D6
iny ; CPU:$D564 PRG:5564 C8
and $0307,x ; CPU:$D565 PRG:5565 3D 07 03
beq Sub_D56B ; CPU:$D568 PRG:5568 F0 01
; -----------------------------------------------------------------------------
; Routine: Sub_D56A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D56A:
rts ; CPU:$D56A PRG:556A 60
; -----------------------------------------------------------------------------
; Routine: Sub_D56B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D56B:
lda GameSubMode ; CPU:$D56B PRG:556B A5 1B
clc ; CPU:$D56D PRG:556D 18
adc #$02 ; CPU:$D56E PRG:556E 69 02
and #$03 ; CPU:$D570 PRG:5570 29 03
bne Sub_D56A ; CPU:$D572 PRG:5572 D0 F6
lda Zp46 ; CPU:$D574 PRG:5574 A5 46
cmp Zp91 ; CPU:$D576 PRG:5576 C5 91
bcs Sub_D56A ; CPU:$D578 PRG:5578 B0 F0
lda Zp61 ; CPU:$D57A PRG:557A A5 61
cmp #$FF ; CPU:$D57C PRG:557C C9 FF
beq Sub_D58A ; CPU:$D57E PRG:557E F0 0A
jsr DispatchLdaEorEorAslAslRol ; CPU:$D580 PRG:5580 20 5C F5
and #$0F ; CPU:$D583 PRG:5583 29 0F
bne Sub_D56A ; CPU:$D585 PRG:5585 D0 E3
jmp DispatchTyaPhaLdy ; CPU:$D587 PRG:5587 4C D5 CF
; -----------------------------------------------------------------------------
; Routine: Sub_D58A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D58A:
jsr DispatchLdaEorEorAslAslRol ; CPU:$D58A PRG:558A 20 5C F5
and #$1F ; CPU:$D58D PRG:558D 29 1F
bne Sub_D56A ; CPU:$D58F PRG:558F D0 D9
jmp DispatchTyaPhaLdy ; CPU:$D591 PRG:5591 4C D5 CF
; -----------------------------------------------------------------------------
; Routine: DispatchTaxPhaLdxLda
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchTaxPhaLdxLda:
txa ; CPU:$D594 PRG:5594 8A
pha ; CPU:$D595 PRG:5595 48
ldx #$00 ; CPU:$D596 PRG:5596 A2 00
lda #$01 ; CPU:$D598 PRG:5598 A9 01
; -----------------------------------------------------------------------------
; Routine: Sub_D59A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D59A:
sta $0612 ; CPU:$D59A PRG:559A 8D 12 06
; -----------------------------------------------------------------------------
; Routine: Sub_D59D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D59D:
lda $0300,x ; CPU:$D59D PRG:559D BD 00 03
beq Sub_D5AE ; CPU:$D5A0 PRG:55A0 F0 0C
txa ; CPU:$D5A2 PRG:55A2 8A
clc ; CPU:$D5A3 PRG:55A3 18
adc #$08 ; CPU:$D5A4 PRG:55A4 69 08
tax ; CPU:$D5A6 PRG:55A6 AA
cmp #$80 ; CPU:$D5A7 PRG:55A7 C9 80
bne Sub_D59D ; CPU:$D5A9 PRG:55A9 D0 F2
pla ; CPU:$D5AB PRG:55AB 68
tax ; CPU:$D5AC PRG:55AC AA
rts ; CPU:$D5AD PRG:55AD 60
; -----------------------------------------------------------------------------
; Routine: Sub_D5AE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D5AE:
lda #$1A ; CPU:$D5AE PRG:55AE A9 1A
sta $0300,x ; CPU:$D5B0 PRG:55B0 9D 00 03
lda #$80 ; CPU:$D5B3 PRG:55B3 A9 80
sta $0307,x ; CPU:$D5B5 PRG:55B5 9D 07 03
lda Zp46 ; CPU:$D5B8 PRG:55B8 A5 46
sec ; CPU:$D5BA PRG:55BA 38
sbc #$04 ; CPU:$D5BB PRG:55BB E9 04
sta $0302,x ; CPU:$D5BD PRG:55BD 9D 02 03
lda #$00 ; CPU:$D5C0 PRG:55C0 A9 00
sta $0301,x ; CPU:$D5C2 PRG:55C2 9D 01 03
lda Zp45 ; CPU:$D5C5 PRG:55C5 A5 45
sec ; CPU:$D5C7 PRG:55C7 38
sbc #$04 ; CPU:$D5C8 PRG:55C8 E9 04
sta $0303,x ; CPU:$D5CA PRG:55CA 9D 03 03
lda #$04 ; CPU:$D5CD PRG:55CD A9 04
; -----------------------------------------------------------------------------
; Routine: Sub_D5CF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D5CF:
sta $0306,x ; CPU:$D5CF PRG:55CF 9D 06 03
pla ; CPU:$D5D2 PRG:55D2 68
tax ; CPU:$D5D3 PRG:55D3 AA
rts ; CPU:$D5D4 PRG:55D4 60
; -----------------------------------------------------------------------------
; Routine: DispatchLdaBne
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaBne:
lda ObjectYLo ; CPU:$D5D5 PRG:55D5 A5 35
bne Sub_D608 ; CPU:$D5D7 PRG:55D7 D0 2F
; -----------------------------------------------------------------------------
; Routine: DispatchLdyBeqLdaAdd
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdyBeqLdaAdd:
ldy ObjectDeltaX ; CPU:$D5D9 PRG:55D9 A4 2D
beq Sub_D603 ; CPU:$D5DB PRG:55DB F0 26
lda $D617,x ; CPU:$D5DD PRG:55DD BD 17 D6
clc ; CPU:$D5E0 PRG:55E0 18
adc ObjectXHi ; CPU:$D5E1 PRG:55E1 65 38
bcs Sub_D603 ; CPU:$D5E3 PRG:55E3 B0 1E
; -----------------------------------------------------------------------------
; Routine: DispatchStoreIncStoreInc
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchStoreIncStoreInc:
sta $0700,y ; CPU:$D5E5 PRG:55E5 99 00 07
iny ; CPU:$D5E8 PRG:55E8 C8
lda $D618,x ; CPU:$D5E9 PRG:55E9 BD 18 D6
sta $0700,y ; CPU:$D5EC PRG:55EC 99 00 07
iny ; CPU:$D5EF PRG:55EF C8
lda $D619,x ; CPU:$D5F0 PRG:55F0 BD 19 D6
sta $0700,y ; CPU:$D5F3 PRG:55F3 99 00 07
iny ; CPU:$D5F6 PRG:55F6 C8
lda $D61A,x ; CPU:$D5F7 PRG:55F7 BD 1A D6
clc ; CPU:$D5FA PRG:55FA 18
adc ObjectXLo ; CPU:$D5FB PRG:55FB 65 37
sta $0700,y ; CPU:$D5FD PRG:55FD 99 00 07
iny ; CPU:$D600 PRG:5600 C8
sty ObjectDeltaX ; CPU:$D601 PRG:5601 84 2D
; -----------------------------------------------------------------------------
; Routine: Sub_D603
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D603:
inx ; CPU:$D603 PRG:5603 E8
inx ; CPU:$D604 PRG:5604 E8
inx ; CPU:$D605 PRG:5605 E8
inx ; CPU:$D606 PRG:5606 E8
rts ; CPU:$D607 PRG:5607 60
; -----------------------------------------------------------------------------
; Routine: Sub_D608
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D608:
ldy ObjectDeltaX ; CPU:$D608 PRG:5608 A4 2D
beq Sub_D603 ; CPU:$D60A PRG:560A F0 F7
lda $D617,x ; CPU:$D60C PRG:560C BD 17 D6
clc ; CPU:$D60F PRG:560F 18
adc ObjectXHi ; CPU:$D610 PRG:5610 65 38
bcc Sub_D603 ; CPU:$D612 PRG:5612 90 EF
jmp DispatchStoreIncStoreInc ; CPU:$D614 PRG:5614 4C E5 D5
; -----------------------------------------------------------------------------
; Routine: Sub_D617
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D617:
plp ; CPU:$D617 PRG:5617 28
; -----------------------------------------------------------------------------
; Routine: Sub_D618
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D618:
beq Sub_D61B ; CPU:$D618 PRG:5618 F0 01
clc ; CPU:$D61A PRG:561A 18
; -----------------------------------------------------------------------------
; Routine: Sub_D61B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D61B:
plp ; CPU:$D61B PRG:561B 28
sbc (PPUMASKShadow),y ; CPU:$D61C PRG:561C F1 01
jsr $F230 ; CPU:$D61E PRG:561E 20 30 F2
ora (ObjectX,x) ; CPU:$D621 PRG:5621 01 18
bmi Sub_D618 ; CPU:$D623 PRG:5623 30 F3
ora (Zp20,x) ; CPU:$D625 PRG:5625 01 20
brk ; CPU:$D627 PRG:5627 00
; ---- data $D628-$D628 (1 bytes) ----
.byte $F4 ; CPU:$D628 PRG:5628 F4
; -----------------------------------------------------------------------------
; Routine: Sub_D629
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D629:
ora (PPUCTRLShadow,x) ; CPU:$D629 PRG:5629 01 00
brk ; CPU:$D62B PRG:562B 00
; -----------------------------------------------------------------------------
; Routine: Sub_D62C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D62C:
sbc PPUMASKShadow,x ; CPU:$D62C PRG:562C F5 01
php ; CPU:$D62E PRG:562E 08
php ; CPU:$D62F PRG:562F 08
inc PPUMASKShadow,x ; CPU:$D630 PRG:5630 F6 01
brk ; CPU:$D632 PRG:5632 00
; ---- data $D633-$D63D (11 bytes) ----
.byte $08, $F7, $01, $08, $1B, $EF, $01, $0B, $1B, $EF, $41 ; CPU:$D633 PRG:5633 08 F7 01 08 1B EF 01 0B 1B EF 41
; -----------------------------------------------------------------------------
; Routine: Sub_D63E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D63E:
and $EF3D ; CPU:$D63E PRG:563E 2D 3D EF
sta (Joypad2Prev,x) ; CPU:$D641 PRG:5641 81 0B
and $C1EF,x ; CPU:$D643 PRG:5643 3D EF C1
and $DA00 ; CPU:$D646 PRG:5646 2D 00 DA
ora (PPUCTRLShadow,x) ; CPU:$D649 PRG:5649 01 00
php ; CPU:$D64B PRG:564B 08
cld ; CPU:$D64C PRG:564C D8
ora (ZpF8,x) ; CPU:$D64D PRG:564D 01 F8
bpl Sub_D629 ; CPU:$D64F PRG:564F 10 D8
ora (ZpF0,x) ; CPU:$D651 PRG:5651 01 F0
brk ; CPU:$D653 PRG:5653 00
ObjMoveDeltaTable:
; Object movement delta table (read by adc $D6C7,y)
; ---- data $D654-$D6F8 (165 bytes) ----
; referenced by `adc $D6C7,y` at $D4B0 (operand $D6C7 falls inside this region)
; referenced by `adc $D6C7,y` at $D4BC (operand $D6C7 falls inside this region)
; referenced by `adc $D6C7,y` at $D4C7 (operand $D6C7 falls inside this region)
; referenced by `lda $D6C7,y` at $D4CD (operand $D6C7 falls inside this region)
; referenced by `lda $D6C7,y` at $D4D5 (operand $D6C7 falls inside this region)
; referenced by `adc $D6C7,y` at $D4EC (operand $D6C7 falls inside this region)
; ... and 5 further references from decoded code
.byte $D9, $41, $38, $08, $D9, $41, $40, $10, $D9, $41, $48, $48, $D9, $81, $F0, $50 ; CPU:$D654 PRG:5654 D9 41 38 08 D9 41 40 10 D9 41 48 48 D9 81 F0 50
.byte $D9, $81, $F8, $58, $D9, $81, $00, $48, $D9, $C1, $48, $50, $D9, $C1, $40, $58 ; CPU:$D664 PRG:5664 D9 81 F8 58 D9 81 00 48 D9 C1 48 50 D9 C1 40 58
.byte $D9, $C1, $38, $2C, $93, $23, $F4, $2C, $93, $23, $44, $04, $93, $23, $1C, $54 ; CPU:$D674 PRG:5674 D9 C1 38 2C 93 23 F4 2C 93 23 44 04 93 23 1C 54
.byte $93, $23, $1C, $2E, $93, $23, $FC, $2C, $93, $23, $3C, $0C, $93, $23, $1C, $4C ; CPU:$D684 PRG:5684 93 23 1C 2E 93 23 FC 2C 93 23 3C 0C 93 23 1C 4C
.byte $93, $23, $1E, $2E, $93, $23, $FD, $2E, $93, $23, $3A, $0D, $93, $23, $1E, $4B ; CPU:$D694 PRG:5694 93 23 1E 2E 93 23 FD 2E 93 23 3A 0D 93 23 1E 4B
.byte $93, $23, $1E, $2B, $93, $23, $0B, $2D, $92, $23, $29, $1C, $93, $23, $1B, $38 ; CPU:$D6A4 PRG:56A4 93 23 1E 2B 93 23 0B 2D 92 23 29 1C 93 23 1B 38
.byte $92, $A3, $1B, $00, $E3, $00, $00, $00, $E3, $40, $08, $08, $E3, $80, $00, $08 ; CPU:$D6B4 PRG:56B4 92 A3 1B 00 E3 00 00 00 E3 40 08 08 E3 80 00 08
.byte $E3, $C0, $08, $CB, $0B, $01, $CB, $2D, $02, $ED, $0B, $04, $ED, $2D, $08, $A9 ; CPU:$D6C4 PRG:56C4 E3 C0 08 CB 0B 01 CB 2D 02 ED 0B 04 ED 2D 08 A9
.byte $08, $20, $72, $D7, $BD, $01, $03, $D0, $43, $A5, $23, $38, $FD, $03, $03, $18 ; CPU:$D6D4 PRG:56D4 08 20 72 D7 BD 01 03 D0 43 A5 23 38 FD 03 03 18
.byte $69, $0E, $C9, $1D, $B0, $36, $A5, $24, $38, $FD, $02, $03, $18, $69, $0E, $C9 ; CPU:$D6E4 PRG:56E4 69 0E C9 1D B0 36 A5 24 38 FD 02 03 18 69 0E C9
.byte $1D, $B0, $29, $EE, $05 ; CPU:$D6F4 PRG:56F4 1D B0 29 EE 05
; -----------------------------------------------------------------------------
; Routine: Sub_D6F9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D6F9:
asl ZpE6 ; CPU:$D6F9 PRG:56F9 06 E6
sta a:$00A9 ; CPU:$D6FB PRG:56FB 8D A9 00
sta $0300,x ; CPU:$D6FE PRG:56FE 9D 00 03
rts ; CPU:$D701 PRG:5701 60
; referenced by `cmp $D720,y` at $D24A (operand $D720 falls inside this region)
; ---- data $D702-$D71F (30 bytes) ----
.byte $A5, $2E, $48, $20, $DC, $DC, $68, $85, $2E, $BD, $06, $03, $F0, $10, $A9, $3E ; CPU:$D702 PRG:5702 A5 2E 48 20 DC DC 68 85 2E BD 06 03 F0 10 A9 3E
.byte $9D, $00, $03, $A9, $01, $8D, $12, $06, $A9, $01, $20, $5B, $BF, $60 ; CPU:$D712 PRG:5712 9D 00 03 A9 01 8D 12 06 A9 01 20 5B BF 60
rts ; CPU:$D720 PRG:5720 60
; ---- data $D721-$D793 (115 bytes) ----
.byte $20, $DC, $DC, $BD, $06, $03, $F0, $17, $A9, $3A, $9D, $00, $03, $A9, $00, $9D ; CPU:$D721 PRG:5721 20 DC DC BD 06 03 F0 17 A9 3A 9D 00 03 A9 00 9D
.byte $06, $03, $9D, $07, $03, $A9, $01, $8D, $12, $06, $A9, $02, $20, $5B, $BF, $60 ; CPU:$D731 PRG:5731 06 03 9D 07 03 A9 01 8D 12 06 A9 02 20 5B BF 60
.byte $20, $6A, $D7, $20, $DC, $DC, $BD, $06, $03, $F0, $0A, $A9, $10, $9D, $00, $03 ; CPU:$D741 PRG:5741 20 6A D7 20 DC DC BD 06 03 F0 0A A9 10 9D 00 03
.byte $A9, $02, $20, $5B, $BF, $60, $20, $6A, $D7, $FE, $07, $03, $BD, $07, $03, $C9 ; CPU:$D751 PRG:5751 A9 02 20 5B BF 60 20 6A D7 FE 07 03 BD 07 03 C9
.byte $30, $D0, $05, $A9, $3C, $9D, $00, $03, $60, $BD, $07, $03, $4A, $4A, $4A, $29 ; CPU:$D761 PRG:5761 30 D0 05 A9 3C 9D 00 03 60 BD 07 03 4A 4A 4A 29
.byte $06, $A8, $B9, $C3, $D7, $85, $04, $B9, $C4, $D7, $85, $05, $A0, $00, $B1, $04 ; CPU:$D771 PRG:5771 06 A8 B9 C3 D7 85 04 B9 C4 D7 85 05 A0 00 B1 04
.byte $85, $0E, $C8, $BD, $02, $03, $85, $38, $BD, $03, $03, $85, $37, $86, $13, $A6 ; CPU:$D781 PRG:5781 85 0E C8 BD 02 03 85 38 BD 03 03 85 37 86 13 A6
.byte $2D, $F0, $2A ; CPU:$D791 PRG:5791 2D F0 2A
; -----------------------------------------------------------------------------
; Routine: Sub_D794
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D794:
lda (VramPtrLo),y ; CPU:$D794 PRG:5794 B1 04
clc ; CPU:$D796 PRG:5796 18
adc ObjectXHi ; CPU:$D797 PRG:5797 65 38
bcs Sub_D7BE ; CPU:$D799 PRG:5799 B0 23
sta $0700,x ; CPU:$D79B PRG:579B 9D 00 07
inx ; CPU:$D79E PRG:579E E8
iny ; CPU:$D79F PRG:579F C8
lda (VramPtrLo),y ; CPU:$D7A0 PRG:57A0 B1 04
sta $0700,x ; CPU:$D7A2 PRG:57A2 9D 00 07
inx ; CPU:$D7A5 PRG:57A5 E8
iny ; CPU:$D7A6 PRG:57A6 C8
; -----------------------------------------------------------------------------
; Routine: Sub_D7A7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D7A7:
lda (VramPtrLo),y ; CPU:$D7A7 PRG:57A7 B1 04
sta $0700,x ; CPU:$D7A9 PRG:57A9 9D 00 07
inx ; CPU:$D7AC PRG:57AC E8
iny ; CPU:$D7AD PRG:57AD C8
lda (VramPtrLo),y ; CPU:$D7AE PRG:57AE B1 04
clc ; CPU:$D7B0 PRG:57B0 18
adc ObjectXLo ; CPU:$D7B1 PRG:57B1 65 37
sta $0700,x ; CPU:$D7B3 PRG:57B3 9D 00 07
iny ; CPU:$D7B6 PRG:57B6 C8
inx ; CPU:$D7B7 PRG:57B7 E8
beq Sub_D7BE ; CPU:$D7B8 PRG:57B8 F0 04
dec ObjUpdateFlag ; CPU:$D7BA PRG:57BA C6 0E
bne Sub_D794 ; CPU:$D7BC PRG:57BC D0 D6
; -----------------------------------------------------------------------------
; Routine: Sub_D7BE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D7BE:
stx ObjectDeltaX ; CPU:$D7BE PRG:57BE 86 2D
ldx ObjPtr ; CPU:$D7C0 PRG:57C0 A6 13
rts ; CPU:$D7C2 PRG:57C2 60
; ---- data $D7C3-$D7D9 (23 bytes) ----
.byte $3B, $D8, $45, $D8, $53, $D8, $71, $D8, $CD, $D7, $03, $01, $1C, $02, $00, $00 ; CPU:$D7C3 PRG:57C3 3B D8 45 D8 53 D8 71 D8 CD D7 03 01 1C 02 00 00
.byte $CD, $03, $08, $08, $CF, $03, $06 ; CPU:$D7D3 PRG:57D3 CD 03 08 08 CF 03 06
; -----------------------------------------------------------------------------
; Routine: DispatchLsrsLsrsAnd
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLsrsLsrsAnd:
lda $0307,x ; CPU:$D7DA PRG:57DA BD 07 03
lsr a ; CPU:$D7DD PRG:57DD 4A
lsr a ; CPU:$D7DE PRG:57DE 4A
lsr a ; CPU:$D7DF PRG:57DF 4A
and #$06 ; CPU:$D7E0 PRG:57E0 29 06
tay ; CPU:$D7E2 PRG:57E2 A8
lda $D833,y ; CPU:$D7E3 PRG:57E3 B9 33 D8
sta VramPtrLo ; CPU:$D7E6 PRG:57E6 85 04
lda $D834,y ; CPU:$D7E8 PRG:57E8 B9 34 D8
sta VramCopyCount ; CPU:$D7EB PRG:57EB 85 05
ldy #$00 ; CPU:$D7ED PRG:57ED A0 00
lda (VramPtrLo),y ; CPU:$D7EF PRG:57EF B1 04
sta ObjUpdateFlag ; CPU:$D7F1 PRG:57F1 85 0E
iny ; CPU:$D7F3 PRG:57F3 C8
lda $0302,x ; CPU:$D7F4 PRG:57F4 BD 02 03
sta ObjectXHi ; CPU:$D7F7 PRG:57F7 85 38
lda $0303,x ; CPU:$D7F9 PRG:57F9 BD 03 03
sta ObjectXLo ; CPU:$D7FC PRG:57FC 85 37
stx ObjPtr ; CPU:$D7FE PRG:57FE 86 13
ldx ObjectDeltaX ; CPU:$D800 PRG:5800 A6 2D
beq Sub_D82E ; CPU:$D802 PRG:5802 F0 2A
; -----------------------------------------------------------------------------
; Routine: Sub_D804
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D804:
lda (VramPtrLo),y ; CPU:$D804 PRG:5804 B1 04
clc ; CPU:$D806 PRG:5806 18
adc ObjectXHi ; CPU:$D807 PRG:5807 65 38
bcs Sub_D82E ; CPU:$D809 PRG:5809 B0 23
sta $0700,x ; CPU:$D80B PRG:580B 9D 00 07
inx ; CPU:$D80E PRG:580E E8
iny ; CPU:$D80F PRG:580F C8
lda (VramPtrLo),y ; CPU:$D810 PRG:5810 B1 04
sta $0700,x ; CPU:$D812 PRG:5812 9D 00 07
inx ; CPU:$D815 PRG:5815 E8
iny ; CPU:$D816 PRG:5816 C8
lda (VramPtrLo),y ; CPU:$D817 PRG:5817 B1 04
sta $0700,x ; CPU:$D819 PRG:5819 9D 00 07
inx ; CPU:$D81C PRG:581C E8
iny ; CPU:$D81D PRG:581D C8
lda (VramPtrLo),y ; CPU:$D81E PRG:581E B1 04
; -----------------------------------------------------------------------------
; Routine: Sub_D820
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D820:
clc ; CPU:$D820 PRG:5820 18
adc ObjectXLo ; CPU:$D821 PRG:5821 65 37
sta $0700,x ; CPU:$D823 PRG:5823 9D 00 07
iny ; CPU:$D826 PRG:5826 C8
inx ; CPU:$D827 PRG:5827 E8
beq Sub_D82E ; CPU:$D828 PRG:5828 F0 04
dec ObjUpdateFlag ; CPU:$D82A PRG:582A C6 0E
bne Sub_D804 ; CPU:$D82C PRG:582C D0 D6
; -----------------------------------------------------------------------------
; Routine: Sub_D82E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D82E:
stx ObjectDeltaX ; CPU:$D82E PRG:582E 86 2D
ldx ObjPtr ; CPU:$D830 PRG:5830 A6 13
rts ; CPU:$D832 PRG:5832 60
; ---- data $D833-$D83A (8 bytes) ----
; referenced by `lda $D833,y` at $D7E3 (operand $D833 falls inside this region)
; referenced by `lda $D834,y` at $D7E8 (operand $D834 falls inside this region)
; 4 x 16-bit pointers to layout records below (read by lda $D833,y / lda $D834,y
; at $D7E3/$D7E8; the index is masked with #$06).
ObjDataPtrTable:
.byte $40, $D8, $4A, $D8, $64, $D8, $82, $D8 ; CPU:$D833 PRG:5833 40 D8 4A D8 64 D8 82 D8
; ---- data $D83B-$D8DF (165 bytes) ----
; Object layout records addressed by the table at $D833 (4-byte entries; targets
; $D840, $D84A, $D864 and $D882).
ObjLayoutData:
.byte $01, $04, $41, $01, $04, $01, $08, $43, $00, $08, $01, $04, $45, $01, $04, $02 ; CPU:$D83B PRG:583B 01 04 41 01 04 01 08 43 00 08 01 04 45 01 04 02
.byte $07, $47, $00, $07, $0D, $43, $00, $0D, $04, $00, $49, $01, $00, $00, $4B, $C1 ; CPU:$D84B PRG:584B 07 47 00 07 0D 43 00 0D 04 00 49 01 00 00 4B C1
.byte $08, $08, $4B, $01, $00, $08, $4B, $41, $08, $03, $08, $6E, $00, $08, $0A, $47 ; CPU:$D85B PRG:585B 08 08 4B 01 00 08 4B 41 08 03 08 6E 00 08 0A 47
.byte $00, $0A, $10, $43, $00, $10, $04, $00, $4D, $01, $00, $00, $4F, $C1, $08, $08 ; CPU:$D86B PRG:586B 00 0A 10 43 00 10 04 00 4D 01 00 00 4F C1 08 08
.byte $4F, $01, $00, $08, $4F, $41, $08, $05, $0E, $B2, $00, $05, $05, $B3, $00, $0E ; CPU:$D87B PRG:587B 4F 01 00 08 4F 41 08 05 0E B2 00 05 05 B3 00 0E
.byte $0D, $6E, $00, $0D, $0F, $47, $00, $0F, $15, $43, $00, $15, $BD, $00, $03, $48 ; CPU:$D88B PRG:588B 0D 6E 00 0D 0F 47 00 0F 15 43 00 15 BD 00 03 48
.byte $20, $04, $DA, $BD, $00, $03, $C9, $02, $D0, $08, $68, $38, $E9, $16, $9D, $00 ; CPU:$D89B PRG:589B 20 04 DA BD 00 03 C9 02 D0 08 68 38 E9 16 9D 00
.byte $03, $48, $68, $BD, $00, $03, $38, $E9, $40, $B0, $03, $18, $69, $16, $A8, $B9 ; CPU:$D8AB PRG:58AB 03 48 68 BD 00 03 38 E9 40 B0 03 18 69 16 A8 B9
.byte $A7, $D9, $48, $18, $7D, $02, $03, $9D, $02, $03, $B9, $A8, $D9, $48, $18, $7D ; CPU:$D8BB PRG:58BB A7 D9 48 18 7D 02 03 9D 02 03 B9 A8 D9 48 18 7D
.byte $03, $03, $9D, $03, $03, $20, $DC, $DC, $68, $49, $FF, $38, $7D, $03, $03, $9D ; CPU:$D8CB PRG:58CB 03 03 9D 03 03 20 DC DC 68 49 FF 38 7D 03 03 9D
.byte $03, $03, $68, $49, $FF ; CPU:$D8DB PRG:58DB 03 03 68 49 FF
; -----------------------------------------------------------------------------
; Routine: Sub_D8E0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D8E0:
sec ; CPU:$D8E0 PRG:58E0 38
adc $0302,x ; CPU:$D8E1 PRG:58E1 7D 02 03
sta $0302,x ; CPU:$D8E4 PRG:58E4 9D 02 03
lda $0306,x ; CPU:$D8E7 PRG:58E7 BD 06 03
beq Sub_D8F2 ; CPU:$D8EA PRG:58EA F0 06
lda #$10 ; CPU:$D8EC PRG:58EC A9 10
sta $0300,x ; CPU:$D8EE PRG:58EE 9D 00 03
rts ; CPU:$D8F1 PRG:58F1 60
; -----------------------------------------------------------------------------
; Routine: Sub_D8F2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D8F2:
jsr DispatchLdaBne2 ; CPU:$D8F2 PRG:58F2 20 DC DC
lda $0306,x ; CPU:$D8F5 PRG:58F5 BD 06 03
beq Sub_D8FF ; CPU:$D8F8 PRG:58F8 F0 05
inc Zp58 ; CPU:$D8FA PRG:58FA E6 58
jmp DispatchStoreStoreLdaJsrRts; CPU:$D8FC PRG:58FC 4C EC D9
; -----------------------------------------------------------------------------
; Routine: Sub_D8FF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D8FF:
lda $0302,x ; CPU:$D8FF PRG:58FF BD 02 03
cmp Zp91 ; CPU:$D902 PRG:5902 C5 91
bcs Sub_D92B ; CPU:$D904 PRG:5904 B0 25
lda $0307,x ; CPU:$D906 PRG:5906 BD 07 03
; -----------------------------------------------------------------------------
; Routine: Sub_D909
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D909:
bne Sub_D916 ; CPU:$D909 PRG:5909 D0 0B
jsr DispatchLdaEorEorAslAslRol ; CPU:$D90B PRG:590B 20 5C F5
and Zp94 ; CPU:$D90E PRG:590E 25 94
clc ; CPU:$D910 PRG:5910 18
adc #$40 ; CPU:$D911 PRG:5911 69 40
sta $0307,x ; CPU:$D913 PRG:5913 9D 07 03
; -----------------------------------------------------------------------------
; Routine: Sub_D916
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D916:
lda $0300,x ; CPU:$D916 PRG:5916 BD 00 03
cmp #$40 ; CPU:$D919 PRG:5919 C9 40
bcs Sub_D92B ; CPU:$D91B PRG:591B B0 0E
dec $0307,x ; CPU:$D91D PRG:591D DE 07 03
bne Sub_D92B ; CPU:$D920 PRG:5920 D0 09
lda $0300,x ; CPU:$D922 PRG:5922 BD 00 03
clc ; CPU:$D925 PRG:5925 18
adc #$16 ; CPU:$D926 PRG:5926 69 16
sta $0300,x ; CPU:$D928 PRG:5928 9D 00 03
; -----------------------------------------------------------------------------
; Routine: Sub_D92B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D92B:
rts ; CPU:$D92B PRG:592B 60
; ---- data $D92C-$D986 (91 bytes) ----
.byte $8A, $48, $BD, $02, $03, $85, $38, $BD, $03, $03, $85, $37, $A2, $00, $A4, $2D ; CPU:$D92C PRG:592C 8A 48 BD 02 03 85 38 BD 03 03 85 37 A2 00 A4 2D
.byte $F0, $2C, $BD, $AF, $D9, $18, $65, $38, $99, $00, $07, $C8, $E8, $BD, $AF, $D9 ; CPU:$D93C PRG:593C F0 2C BD AF D9 18 65 38 99 00 07 C8 E8 BD AF D9
.byte $99, $00, $07, $C8, $E8, $BD, $AF, $D9, $99, $00, $07, $C8, $E8, $BD, $AF, $D9 ; CPU:$D94C PRG:594C 99 00 07 C8 E8 BD AF D9 99 00 07 C8 E8 BD AF D9
.byte $18, $65, $37, $99, $00, $07, $C8, $E8, $84, $2D, $E0, $14, $D0, $D0, $68, $AA ; CPU:$D95C PRG:595C 18 65 37 99 00 07 C8 E8 84 2D E0 14 D0 D0 68 AA
.byte $20, $DC, $DC, $BD, $06, $03, $F0, $13, $A9, $10, $9D, $00, $03, $A5, $58, $F0 ; CPU:$D96C PRG:596C 20 DC DC BD 06 03 F0 13 A9 10 9D 00 03 A5 58 F0
.byte $05, $A9, $06, $4C, $54, $BF, $A9, $02, $4C, $5B, $BF ; CPU:$D97C PRG:597C 05 A9 06 4C 54 BF A9 02 4C 5B BF
; -----------------------------------------------------------------------------
; Routine: Sub_D987
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D987:
lda $0302,x ; CPU:$D987 PRG:5987 BD 02 03
cmp Zp91 ; CPU:$D98A PRG:598A C5 91
bcs Sub_D9A6 ; CPU:$D98C PRG:598C B0 18
lda $0307,x ; CPU:$D98E PRG:598E BD 07 03
bne Sub_D99E ; CPU:$D991 PRG:5991 D0 0B
jsr DispatchLdaEorEorAslAslRol ; CPU:$D993 PRG:5993 20 5C F5
and Zp92 ; CPU:$D996 PRG:5996 25 92
clc ; CPU:$D998 PRG:5998 18
adc #$40 ; CPU:$D999 PRG:5999 69 40
sta $0307,x ; CPU:$D99B PRG:599B 9D 07 03
; -----------------------------------------------------------------------------
; Routine: Sub_D99E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D99E:
dec $0307,x ; CPU:$D99E PRG:599E DE 07 03
bne Sub_D9A6 ; CPU:$D9A1 PRG:59A1 D0 03
jsr DispatchJsrStoreLdaClc3 ; CPU:$D9A3 PRG:59A3 20 9B CF
; -----------------------------------------------------------------------------
; Routine: Sub_D9A6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D9A6:
rts ; CPU:$D9A6 PRG:59A6 60
; ---- data $D9A7-$D9C2 (28 bytes) ----
.byte $F0, $00, $00, $10, $00, $F0, $10, $00, $04, $3E, $01, $04, $10, $3C, $00, $06 ; CPU:$D9A7 PRG:59A7 F0 00 00 10 00 F0 10 00 04 3E 01 04 10 3C 00 06
.byte $06, $3D, $40, $F8, $06, $3D, $00, $10, $F8, $3C, $80, $06 ; CPU:$D9B7 PRG:59B7 06 3D 40 F8 06 3D 00 10 F8 3C 80 06
jsr DispatchLdaBne2 ; CPU:$D9C3 PRG:59C3 20 DC DC
lda $0301,x ; CPU:$D9C6 PRG:59C6 BD 01 03
bne Sub_D9E7 ; CPU:$D9C9 PRG:59C9 D0 1C
lda $0302,x ; CPU:$D9CB PRG:59CB BD 02 03
cmp Zp91 ; CPU:$D9CE PRG:59CE C5 91
bcs Sub_D9E7 ; CPU:$D9D0 PRG:59D0 B0 15
lda $0307,x ; CPU:$D9D2 PRG:59D2 BD 07 03
bne Sub_D9E2 ; CPU:$D9D5 PRG:59D5 D0 0B
jsr DispatchLdaEorEorAslAslRol ; CPU:$D9D7 PRG:59D7 20 5C F5
and Zp94 ; CPU:$D9DA PRG:59DA 25 94
clc ; CPU:$D9DC PRG:59DC 18
adc #$60 ; CPU:$D9DD PRG:59DD 69 60
sta $0307,x ; CPU:$D9DF PRG:59DF 9D 07 03
; -----------------------------------------------------------------------------
; Routine: Sub_D9E2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D9E2:
dec $0307,x ; CPU:$D9E2 PRG:59E2 DE 07 03
beq Sub_D9F7 ; CPU:$D9E5 PRG:59E5 F0 10
; -----------------------------------------------------------------------------
; Routine: Sub_D9E7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D9E7:
lda $0306,x ; CPU:$D9E7 PRG:59E7 BD 06 03
beq Sub_D9F6 ; CPU:$D9EA PRG:59EA F0 0A
; -----------------------------------------------------------------------------
; Routine: DispatchStoreStoreLdaJsrRts
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchStoreStoreLdaJsrRts:
lda #$10 ; CPU:$D9EC PRG:59EC A9 10
sta $0300,x ; CPU:$D9EE PRG:59EE 9D 00 03
lda #$03 ; CPU:$D9F1 PRG:59F1 A9 03
jsr ObjSpritesInit5 ; CPU:$D9F3 PRG:59F3 20 54 BF
Sub_D9F6:
rts ; CPU:$D9F6 PRG:59F6 60
; referenced by `and $DA00` at $D646 (operand $DA00 falls inside this region)
; -----------------------------------------------------------------------------
; Routine: Sub_D9F7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_D9F7:
lda #$34 ; CPU:$D9F7 PRG:59F7 A9 34
sta $0300,x ; CPU:$D9F9 PRG:59F9 9D 00 03
jsr DispatchLdaBne2 ; CPU:$D9FC PRG:59FC 20 DC DC
lda $0306,x ; CPU:$D9FF PRG:59FF BD 06 03
bne DispatchStoreStoreLdaJsrRts; CPU:$DA02 PRG:5A02 D0 E8
lda $0307,x ; CPU:$DA04 PRG:5A04 BD 07 03
inc $0307,x ; CPU:$DA07 PRG:5A07 FE 07 03
lsr a ; CPU:$DA0A PRG:5A0A 4A
lsr a ; CPU:$DA0B PRG:5A0B 4A
lsr a ; CPU:$DA0C PRG:5A0C 4A
cmp #$02 ; CPU:$DA0D PRG:5A0D C9 02
beq Sub_DA3E ; CPU:$DA0F PRG:5A0F F0 2D
cmp #$06 ; CPU:$DA11 PRG:5A11 C9 06
beq Sub_DA6D ; CPU:$DA13 PRG:5A13 F0 58
tay ; CPU:$DA15 PRG:5A15 A8
lda $DA73,y ; CPU:$DA16 PRG:5A16 B9 73 DA
ldy ObjectDeltaX ; CPU:$DA19 PRG:5A19 A4 2D
beq Sub_DA3D ; CPU:$DA1B PRG:5A1B F0 20
sta $0701,y ; CPU:$DA1D PRG:5A1D 99 01 07
lda $0302,x ; CPU:$DA20 PRG:5A20 BD 02 03
clc ; CPU:$DA23 PRG:5A23 18
adc #$04 ; CPU:$DA24 PRG:5A24 69 04
sta $0700,y ; CPU:$DA26 PRG:5A26 99 00 07
iny ; CPU:$DA29 PRG:5A29 C8
iny ; CPU:$DA2A PRG:5A2A C8
lda #$00 ; CPU:$DA2B PRG:5A2B A9 00
; -----------------------------------------------------------------------------
; Routine: Sub_DA2D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DA2D:
sta $0700,y ; CPU:$DA2D PRG:5A2D 99 00 07
iny ; CPU:$DA30 PRG:5A30 C8
lda $0303,x ; CPU:$DA31 PRG:5A31 BD 03 03
clc ; CPU:$DA34 PRG:5A34 18
adc #$04 ; CPU:$DA35 PRG:5A35 69 04
sta $0700,y ; CPU:$DA37 PRG:5A37 99 00 07
iny ; CPU:$DA3A PRG:5A3A C8
sty ObjectDeltaX ; CPU:$DA3B PRG:5A3B 84 2D
Sub_DA3D:
rts ; CPU:$DA3D PRG:5A3D 60
; -----------------------------------------------------------------------------
; Routine: Sub_DA3E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DA3E:
lda #$20 ; CPU:$DA3E PRG:5A3E A9 20
sta $0307,x ; CPU:$DA40 PRG:5A40 9D 07 03
jsr DispatchJsrStoreLdaClc3 ; CPU:$DA43 PRG:5A43 20 9B CF
ldy ObjectDeltaX ; CPU:$DA46 PRG:5A46 A4 2D
beq Sub_DA3D ; CPU:$DA48 PRG:5A48 F0 F3
lda $0302,x ; CPU:$DA4A PRG:5A4A BD 02 03
clc ; CPU:$DA4D PRG:5A4D 18
adc #$04 ; CPU:$DA4E PRG:5A4E 69 04
sta $0700,y ; CPU:$DA50 PRG:5A50 99 00 07
iny ; CPU:$DA53 PRG:5A53 C8
lda #$3B ; CPU:$DA54 PRG:5A54 A9 3B
sta $0700,y ; CPU:$DA56 PRG:5A56 99 00 07
iny ; CPU:$DA59 PRG:5A59 C8
lda #$00 ; CPU:$DA5A PRG:5A5A A9 00
; -----------------------------------------------------------------------------
; Routine: Sub_DA5C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DA5C:
sta $0700,y ; CPU:$DA5C PRG:5A5C 99 00 07
iny ; CPU:$DA5F PRG:5A5F C8
lda $0303,x ; CPU:$DA60 PRG:5A60 BD 03 03
clc ; CPU:$DA63 PRG:5A63 18
adc #$04 ; CPU:$DA64 PRG:5A64 69 04
sta $0700,y ; CPU:$DA66 PRG:5A66 99 00 07
iny ; CPU:$DA69 PRG:5A69 C8
sty ObjectDeltaX ; CPU:$DA6A PRG:5A6A 84 2D
rts ; CPU:$DA6C PRG:5A6C 60
; -----------------------------------------------------------------------------
; Routine: Sub_DA6D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DA6D:
lda #$02 ; CPU:$DA6D PRG:5A6D A9 02
sta $0300,x ; CPU:$DA6F PRG:5A6F 9D 00 03
rts ; CPU:$DA72 PRG:5A72 60
; ---- data $DA73-$DA90 (30 bytes) ----
.byte $D2, $3F, $3F, $3F, $3F, $D2, $24, $A9, $8D, $20, $78, $DC, $20, $DC, $DC, $BD ; CPU:$DA73 PRG:5A73 D2 3F 3F 3F 3F D2 24 A9 8D 20 78 DC 20 DC DC BD
.byte $06, $03, $F0, $0A, $A9, $10, $9D, $00, $03, $A9, $01, $4C, $5B, $BF ; CPU:$DA83 PRG:5A83 06 03 F0 0A A9 10 9D 00 03 A9 01 4C 5B BF
; -----------------------------------------------------------------------------
; Routine: Sub_DA91
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DA91:
lda $0302,x ; CPU:$DA91 PRG:5A91 BD 02 03
cmp Zp91 ; CPU:$DA94 PRG:5A94 C5 91
bcs Sub_DAB0 ; CPU:$DA96 PRG:5A96 B0 18
lda $0307,x ; CPU:$DA98 PRG:5A98 BD 07 03
bne Sub_DAA8 ; CPU:$DA9B PRG:5A9B D0 0B
jsr DispatchLdaEorEorAslAslRol ; CPU:$DA9D PRG:5A9D 20 5C F5
and Zp92 ; CPU:$DAA0 PRG:5AA0 25 92
clc ; CPU:$DAA2 PRG:5AA2 18
adc #$18 ; CPU:$DAA3 PRG:5AA3 69 18
sta $0307,x ; CPU:$DAA5 PRG:5AA5 9D 07 03
; -----------------------------------------------------------------------------
; Routine: Sub_DAA8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DAA8:
dec $0307,x ; CPU:$DAA8 PRG:5AA8 DE 07 03
bne Sub_DAB0 ; CPU:$DAAB PRG:5AAB D0 03
jsr DispatchJsrStoreLdaClc3 ; CPU:$DAAD PRG:5AAD 20 9B CF
; -----------------------------------------------------------------------------
; Routine: Sub_DAB0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DAB0:
rts ; CPU:$DAB0 PRG:5AB0 60
jsr DispatchLdaBne2 ; CPU:$DAB1 PRG:5AB1 20 DC DC
lda $0306,x ; CPU:$DAB4 PRG:5AB4 BD 06 03
beq Sub_DAB0 ; CPU:$DAB7 PRG:5AB7 F0 F7
lda #$10 ; CPU:$DAB9 PRG:5AB9 A9 10
sta $0300,x ; CPU:$DABB PRG:5ABB 9D 00 03
lda #$01 ; CPU:$DABE PRG:5ABE A9 01
jmp ObjSpritesInit5 ; CPU:$DAC0 PRG:5AC0 4C 54 BF
lda #$8E ; CPU:$DAC3 PRG:5AC3 A9 8E
jsr Sub_DC78 ; CPU:$DAC5 PRG:5AC5 20 78 DC
jsr DispatchLdaBne2 ; CPU:$DAC8 PRG:5AC8 20 DC DC
lda $0306,x ; CPU:$DACB PRG:5ACB BD 06 03
beq Sub_DADD ; CPU:$DACE PRG:5ACE F0 0D
lda #$10 ; CPU:$DAD0 PRG:5AD0 A9 10
sta $0300,x ; CPU:$DAD2 PRG:5AD2 9D 00 03
jsr Sub_C022 ; CPU:$DAD5 PRG:5AD5 20 22 C0
lda #$02 ; CPU:$DAD8 PRG:5AD8 A9 02
jsr ObjSpritesInit5 ; CPU:$DADA PRG:5ADA 20 54 BF
; -----------------------------------------------------------------------------
; Routine: Sub_DADD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DADD:
rts ; CPU:$DADD PRG:5ADD 60
; ---- data $DADE-$DB19 (60 bytes) ----
.byte $20, $DC, $DC, $BD, $06, $03, $F0, $0F, $A9, $12, $9D, $00, $03, $A9, $26, $9D ; CPU:$DADE PRG:5ADE 20 DC DC BD 06 03 F0 0F A9 12 9D 00 03 A9 26 9D
.byte $07, $03, $A9, $03, $20, $54, $BF, $60, $A9, $8C, $20, $78, $DC, $20, $DC, $DC ; CPU:$DAEE PRG:5AEE 07 03 A9 03 20 54 BF 60 A9 8C 20 78 DC 20 DC DC
.byte $BD, $06, $03, $F0, $10, $A9, $14, $9D, $00, $03, $A9, $A8, $9D, $07, $03, $A9 ; CPU:$DAFE PRG:5AFE BD 06 03 F0 10 A9 14 9D 00 03 A9 A8 9D 07 03 A9
.byte $02, $20, $5B, $BF, $60, $BD, $02, $03, $C5, $91, $B0, $23 ; CPU:$DB0E PRG:5B0E 02 20 5B BF 60 BD 02 03 C5 91 B0 23
; -----------------------------------------------------------------------------
; Routine: Sub_DB1A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DB1A:
lda $0307,x ; CPU:$DB1A PRG:5B1A BD 07 03
bne Sub_DB2A ; CPU:$DB1D PRG:5B1D D0 0B
jsr DispatchLdaEorEorAslAslRol ; CPU:$DB1F PRG:5B1F 20 5C F5
and Zp92 ; CPU:$DB22 PRG:5B22 25 92
clc ; CPU:$DB24 PRG:5B24 18
adc #$10 ; CPU:$DB25 PRG:5B25 69 10
sta $0307,x ; CPU:$DB27 PRG:5B27 9D 07 03
; -----------------------------------------------------------------------------
; Routine: Sub_DB2A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DB2A:
dec $0307,x ; CPU:$DB2A PRG:5B2A DE 07 03
bne Sub_DB3D ; CPU:$DB2D PRG:5B2D D0 0E
jsr DispatchJsrStoreLdaClc3 ; CPU:$DB2F PRG:5B2F 20 9B CF
jsr DispatchLdaEorEorAslAslRol ; CPU:$DB32 PRG:5B32 20 5C F5
and Zp92 ; CPU:$DB35 PRG:5B35 25 92
clc ; CPU:$DB37 PRG:5B37 18
adc #$08 ; CPU:$DB38 PRG:5B38 69 08
sta $0307,x ; CPU:$DB3A PRG:5B3A 9D 07 03
; -----------------------------------------------------------------------------
; Routine: Sub_DB3D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DB3D:
rts ; CPU:$DB3D PRG:5B3D 60
ldy ObjectDeltaX ; CPU:$DB3E PRG:5B3E A4 2D
beq Sub_DB6A ; CPU:$DB40 PRG:5B40 F0 28
lda $0302,x ; CPU:$DB42 PRG:5B42 BD 02 03
clc ; CPU:$DB45 PRG:5B45 18
adc #$04 ; CPU:$DB46 PRG:5B46 69 04
sta $0700,y ; CPU:$DB48 PRG:5B48 99 00 07
iny ; CPU:$DB4B PRG:5B4B C8
lda #$EE ; CPU:$DB4C PRG:5B4C A9 EE
sta $0700,y ; CPU:$DB4E PRG:5B4E 99 00 07
iny ; CPU:$DB51 PRG:5B51 C8
lda GameSubMode ; CPU:$DB52 PRG:5B52 A5 1B
and #$04 ; CPU:$DB54 PRG:5B54 29 04
beq Sub_DB5A ; CPU:$DB56 PRG:5B56 F0 02
lda #$03 ; CPU:$DB58 PRG:5B58 A9 03
; -----------------------------------------------------------------------------
; Routine: Sub_DB5A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DB5A:
sta $0700,y ; CPU:$DB5A PRG:5B5A 99 00 07
iny ; CPU:$DB5D PRG:5B5D C8
lda $0303,x ; CPU:$DB5E PRG:5B5E BD 03 03
clc ; CPU:$DB61 PRG:5B61 18
adc #$04 ; CPU:$DB62 PRG:5B62 69 04
sta $0700,y ; CPU:$DB64 PRG:5B64 99 00 07
iny ; CPU:$DB67 PRG:5B67 C8
sty ObjectDeltaX ; CPU:$DB68 PRG:5B68 84 2D
Sub_DB6A:
rts ; CPU:$DB6A PRG:5B6A 60
dec $0306,x ; CPU:$DB6B PRG:5B6B DE 06 03
bne Sub_DBDC ; CPU:$DB6E PRG:5B6E D0 6C
lda #$06 ; CPU:$DB70 PRG:5B70 A9 06
sta $0306,x ; CPU:$DB72 PRG:5B72 9D 06 03
lda #$22 ; CPU:$DB75 PRG:5B75 A9 22
sta $0300,x ; CPU:$DB77 PRG:5B77 9D 00 03
jmp Sub_DBDC ; CPU:$DB7A PRG:5B7A 4C DC DB
; ---- data $DB7D-$DB8B (15 bytes) ----
.byte $DE, $06, $03, $D0, $0A, $A9, $04, $9D, $06, $03, $A9, $18, $9D, $00, $03 ; CPU:$DB7D PRG:5B7D DE 06 03 D0 0A A9 04 9D 06 03 A9 18 9D 00 03
; -----------------------------------------------------------------------------
; Routine: DispatchLdyBeqLdaAdd3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdyBeqLdaAdd3:
ldy ObjectDeltaX ; CPU:$DB8C PRG:5B8C A4 2D
beq Sub_DBB2 ; CPU:$DB8E PRG:5B8E F0 22
lda $0302,x ; CPU:$DB90 PRG:5B90 BD 02 03
clc ; CPU:$DB93 PRG:5B93 18
adc #$04 ; CPU:$DB94 PRG:5B94 69 04
sta $0700,y ; CPU:$DB96 PRG:5B96 99 00 07
iny ; CPU:$DB99 PRG:5B99 C8
lda #$ED ; CPU:$DB9A PRG:5B9A A9 ED
sta $0700,y ; CPU:$DB9C PRG:5B9C 99 00 07
iny ; CPU:$DB9F PRG:5B9F C8
lda #$03 ; CPU:$DBA0 PRG:5BA0 A9 03
; -----------------------------------------------------------------------------
; Routine: Sub_DBA2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DBA2:
sta $0700,y ; CPU:$DBA2 PRG:5BA2 99 00 07
iny ; CPU:$DBA5 PRG:5BA5 C8
lda $0303,x ; CPU:$DBA6 PRG:5BA6 BD 03 03
clc ; CPU:$DBA9 PRG:5BA9 18
adc #$04 ; CPU:$DBAA PRG:5BAA 69 04
sta $0700,y ; CPU:$DBAC PRG:5BAC 99 00 07
iny ; CPU:$DBAF PRG:5BAF C8
sty ObjectDeltaX ; CPU:$DBB0 PRG:5BB0 84 2D
; -----------------------------------------------------------------------------
; Routine: Sub_DBB2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DBB2:
rts ; CPU:$DBB2 PRG:5BB2 60
; -----------------------------------------------------------------------------
; Routine: Sub_DBB3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DBB3:
dec $0306,x ; CPU:$DBB3 PRG:5BB3 DE 06 03
bne DispatchLdyBeqLdaAdd3 ; CPU:$DBB6 PRG:5BB6 D0 D4
lda $0307,x ; CPU:$DBB8 PRG:5BB8 BD 07 03
bpl Sub_DBC7 ; CPU:$DBBB PRG:5BBB 10 0A
and #$7F ; CPU:$DBBD PRG:5BBD 29 7F
beq Sub_DBC7 ; CPU:$DBBF PRG:5BBF F0 06
sta $0300,x ; CPU:$DBC1 PRG:5BC1 9D 00 03
; -----------------------------------------------------------------------------
; Routine: Sub_DBC4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DBC4:
jmp DispatchLdaLdy ; CPU:$DBC4 PRG:5BC4 4C 76 DC
; -----------------------------------------------------------------------------
; Routine: Sub_DBC7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DBC7:
sta $0300,x ; CPU:$DBC7 PRG:5BC7 9D 00 03
jmp DispatchLdyBeqLdaAdd3 ; CPU:$DBCA PRG:5BCA 4C 8C DB
; ---- data $DBCD-$DBDB (15 bytes) ----
.byte $DE, $06, $03, $D0, $0A, $A9, $06, $9D, $06, $03, $A9, $1A, $9D, $00, $03 ; CPU:$DBCD PRG:5BCD DE 06 03 D0 0A A9 06 9D 06 03 A9 1A 9D 00 03
; -----------------------------------------------------------------------------
; Routine: Sub_DBDC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DBDC:
ldy ObjectDeltaX ; CPU:$DBDC PRG:5BDC A4 2D
beq Sub_DBB2 ; CPU:$DBDE PRG:5BDE F0 D2
lda $0302,x ; CPU:$DBE0 PRG:5BE0 BD 02 03
clc ; CPU:$DBE3 PRG:5BE3 18
adc #$04 ; CPU:$DBE4 PRG:5BE4 69 04
sta $0700,y ; CPU:$DBE6 PRG:5BE6 99 00 07
iny ; CPU:$DBE9 PRG:5BE9 C8
lda #$EC ; CPU:$DBEA PRG:5BEA A9 EC
sta $0700,y ; CPU:$DBEC PRG:5BEC 99 00 07
iny ; CPU:$DBEF PRG:5BEF C8
lda #$03 ; CPU:$DBF0 PRG:5BF0 A9 03
; -----------------------------------------------------------------------------
; Routine: Sub_DBF2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DBF2:
sta $0700,y ; CPU:$DBF2 PRG:5BF2 99 00 07
iny ; CPU:$DBF5 PRG:5BF5 C8
lda $0303,x ; CPU:$DBF6 PRG:5BF6 BD 03 03
clc ; CPU:$DBF9 PRG:5BF9 18
adc #$04 ; CPU:$DBFA PRG:5BFA 69 04
sta $0700,y ; CPU:$DBFC PRG:5BFC 99 00 07
iny ; CPU:$DBFF PRG:5BFF C8
sty ObjectDeltaX ; CPU:$DC00 PRG:5C00 84 2D
rts ; CPU:$DC02 PRG:5C02 60
; -----------------------------------------------------------------------------
; Routine: DispatchDecBneLdaStoreLda
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchDecBneLdaStoreLda:
dec $0306,x ; CPU:$DC03 PRG:5C03 DE 06 03
bne Sub_DC12 ; CPU:$DC06 PRG:5C06 D0 0A
lda #$06 ; CPU:$DC08 PRG:5C08 A9 06
sta $0306,x ; CPU:$DC0A PRG:5C0A 9D 06 03
lda #$1C ; CPU:$DC0D PRG:5C0D A9 1C
sta $0300,x ; CPU:$DC0F PRG:5C0F 9D 00 03
; -----------------------------------------------------------------------------
; Routine: Sub_DC12
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DC12:
ldy ObjectDeltaX ; CPU:$DC12 PRG:5C12 A4 2D
beq Sub_DC1E ; CPU:$DC14 PRG:5C14 F0 08
tya ; CPU:$DC16 PRG:5C16 98
clc ; CPU:$DC17 PRG:5C17 18
adc #$10 ; CPU:$DC18 PRG:5C18 69 10
lda #$E8 ; CPU:$DC1A PRG:5C1A A9 E8
bcc Sub_DC1F ; CPU:$DC1C PRG:5C1C 90 01
; -----------------------------------------------------------------------------
; Routine: Sub_DC1E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DC1E:
rts ; CPU:$DC1E PRG:5C1E 60
; -----------------------------------------------------------------------------
; Routine: Sub_DC1F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DC1F:
sta $0701,y ; CPU:$DC1F PRG:5C1F 99 01 07
clc ; CPU:$DC22 PRG:5C22 18
adc #$01 ; CPU:$DC23 PRG:5C23 69 01
sta $0705,y ; CPU:$DC25 PRG:5C25 99 05 07
clc ; CPU:$DC28 PRG:5C28 18
adc #$01 ; CPU:$DC29 PRG:5C29 69 01
sta $0709,y ; CPU:$DC2B PRG:5C2B 99 09 07
clc ; CPU:$DC2E PRG:5C2E 18
adc #$01 ; CPU:$DC2F PRG:5C2F 69 01
sta $070D,y ; CPU:$DC31 PRG:5C31 99 0D 07
lda #$03 ; CPU:$DC34 PRG:5C34 A9 03
; -----------------------------------------------------------------------------
; Routine: Sub_DC36
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DC36:
sta $0702,y ; CPU:$DC36 PRG:5C36 99 02 07
sta $0706,y ; CPU:$DC39 PRG:5C39 99 06 07
sta $070A,y ; CPU:$DC3C PRG:5C3C 99 0A 07
sta $070E,y ; CPU:$DC3F PRG:5C3F 99 0E 07
jmp DispatchStoreStoreStore ; CPU:$DC42 PRG:5C42 4C B1 DC
dec $0306,x ; CPU:$DC45 PRG:5C45 DE 06 03
bne Sub_DC54 ; CPU:$DC48 PRG:5C48 D0 0A
lda #$06 ; CPU:$DC4A PRG:5C4A A9 06
sta $0306,x ; CPU:$DC4C PRG:5C4C 9D 06 03
lda #$1E ; CPU:$DC4F PRG:5C4F A9 1E
sta $0300,x ; CPU:$DC51 PRG:5C51 9D 00 03
; -----------------------------------------------------------------------------
; Routine: Sub_DC54
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DC54:
ldy ObjectDeltaX ; CPU:$DC54 PRG:5C54 A4 2D
tya ; CPU:$DC56 PRG:5C56 98
clc ; CPU:$DC57 PRG:5C57 18
adc #$10 ; CPU:$DC58 PRG:5C58 69 10
lda #$E4 ; CPU:$DC5A PRG:5C5A A9 E4
bcc Sub_DC1F ; CPU:$DC5C PRG:5C5C 90 C1
; ---- data $DC5E-$DC5E (1 bytes) ----
.byte $60 ; CPU:$DC5E PRG:5C5E 60
dec $0306,x ; CPU:$DC5F PRG:5C5F DE 06 03
bne Sub_DC12 ; CPU:$DC62 PRG:5C62 D0 AE
lda #$06 ; CPU:$DC64 PRG:5C64 A9 06
sta $0306,x ; CPU:$DC66 PRG:5C66 9D 06 03
lda #$20 ; CPU:$DC69 PRG:5C69 A9 20
sta $0300,x ; CPU:$DC6B PRG:5C6B 9D 00 03
jmp Sub_DC12 ; CPU:$DC6E PRG:5C6E 4C 12 DC
; ---- data $DC71-$DC75 (5 bytes) ----
.byte $A9, $E2, $4C, $78, $DC ; CPU:$DC71 PRG:5C71 A9 E2 4C 78 DC
; -----------------------------------------------------------------------------
; Routine: DispatchLdaLdy
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaLdy:
lda #$E1 ; CPU:$DC76 PRG:5C76 A9 E1
Sub_DC78:
ldy ObjectDeltaX ; CPU:$DC78 PRG:5C78 A4 2D
beq Sub_DC9C ; CPU:$DC7A PRG:5C7A F0 20
pha ; CPU:$DC7C PRG:5C7C 48
tya ; CPU:$DC7D PRG:5C7D 98
clc ; CPU:$DC7E PRG:5C7E 18
adc #$10 ; CPU:$DC7F PRG:5C7F 69 10
pla ; CPU:$DC81 PRG:5C81 68
bcs Sub_DC9C ; CPU:$DC82 PRG:5C82 B0 18
sta $0701,y ; CPU:$DC84 PRG:5C84 99 01 07
sta $0705,y ; CPU:$DC87 PRG:5C87 99 05 07
sta $0709,y ; CPU:$DC8A PRG:5C8A 99 09 07
sta $070D,y ; CPU:$DC8D PRG:5C8D 99 0D 07
lda $0301,x ; CPU:$DC90 PRG:5C90 BD 01 03
bne Sub_DC9C ; CPU:$DC93 PRG:5C93 D0 07
lda $0302,x ; CPU:$DC95 PRG:5C95 BD 02 03
cmp #$F0 ; CPU:$DC98 PRG:5C98 C9 F0
bcc Sub_DC9D ; CPU:$DC9A PRG:5C9A 90 01
; -----------------------------------------------------------------------------
; Routine: Sub_DC9C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DC9C:
rts ; CPU:$DC9C PRG:5C9C 60
; -----------------------------------------------------------------------------
; Routine: Sub_DC9D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DC9D:
lda #$01 ; CPU:$DC9D PRG:5C9D A9 01
sta $0702,y ; CPU:$DC9F PRG:5C9F 99 02 07
lda #$41 ; CPU:$DCA2 PRG:5CA2 A9 41
sta $0706,y ; CPU:$DCA4 PRG:5CA4 99 06 07
lda #$81 ; CPU:$DCA7 PRG:5CA7 A9 81
sta $070A,y ; CPU:$DCA9 PRG:5CA9 99 0A 07
lda #$C1 ; CPU:$DCAC PRG:5CAC A9 C1
sta $070E,y ; CPU:$DCAE PRG:5CAE 99 0E 07
; -----------------------------------------------------------------------------
; Routine: DispatchStoreStoreStore
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchStoreStoreStore:
lda $0302,x ; CPU:$DCB1 PRG:5CB1 BD 02 03
sta $0700,y ; CPU:$DCB4 PRG:5CB4 99 00 07
sta $0704,y ; CPU:$DCB7 PRG:5CB7 99 04 07
; -----------------------------------------------------------------------------
; Routine: Sub_DCBA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DCBA:
clc ; CPU:$DCBA PRG:5CBA 18
adc #$08 ; CPU:$DCBB PRG:5CBB 69 08
sta $0708,y ; CPU:$DCBD PRG:5CBD 99 08 07
sta $070C,y ; CPU:$DCC0 PRG:5CC0 99 0C 07
lda $0303,x ; CPU:$DCC3 PRG:5CC3 BD 03 03
sta $0703,y ; CPU:$DCC6 PRG:5CC6 99 03 07
sta $070B,y ; CPU:$DCC9 PRG:5CC9 99 0B 07
clc ; CPU:$DCCC PRG:5CCC 18
adc #$08 ; CPU:$DCCD PRG:5CCD 69 08
sta $0707,y ; CPU:$DCCF PRG:5CCF 99 07 07
sta $070F,y ; CPU:$DCD2 PRG:5CD2 99 0F 07
tya ; CPU:$DCD5 PRG:5CD5 98
clc ; CPU:$DCD6 PRG:5CD6 18
adc #$10 ; CPU:$DCD7 PRG:5CD7 69 10
sta ObjectDeltaX ; CPU:$DCD9 PRG:5CD9 85 2D
rts ; CPU:$DCDB PRG:5CDB 60
; -----------------------------------------------------------------------------
; Routine: DispatchLdaBne2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaBne2:
lda $0301,x ; CPU:$DCDC PRG:5CDC BD 01 03
bne Sub_DD27 ; CPU:$DCDF PRG:5CDF D0 46
; -----------------------------------------------------------------------------
; Routine: DispatchSubSecClcAdd
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchSubSecClcAdd:
lda $0302,x ; CPU:$DCE1 PRG:5CE1 BD 02 03
sec ; CPU:$DCE4 PRG:5CE4 38
sbc Zp24 ; CPU:$DCE5 PRG:5CE5 E5 24
clc ; CPU:$DCE7 PRG:5CE7 18
adc #$4B ; CPU:$DCE8 PRG:5CE8 69 4B
cmp #$17 ; CPU:$DCEA PRG:5CEA C9 17
bcs Sub_DCFF ; CPU:$DCEC PRG:5CEC B0 11
lda $0303,x ; CPU:$DCEE PRG:5CEE BD 03 03
sec ; CPU:$DCF1 PRG:5CF1 38
sbc Zp23 ; CPU:$DCF2 PRG:5CF2 E5 23
clc ; CPU:$DCF4 PRG:5CF4 18
adc #$0B ; CPU:$DCF5 PRG:5CF5 69 0B
cmp #$17 ; CPU:$DCF7 PRG:5CF7 C9 17
bcs Sub_DCFF ; CPU:$DCF9 PRG:5CF9 B0 04
lda #$01 ; CPU:$DCFB PRG:5CFB A9 01
sta Zp2E ; CPU:$DCFD PRG:5CFD 85 2E
; -----------------------------------------------------------------------------
; Routine: Sub_DCFF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DCFF:
lda $02A0 ; CPU:$DCFF PRG:5CFF AD A0 02
cmp #$20 ; CPU:$DD02 PRG:5D02 C9 20
bne Sub_DD27 ; CPU:$DD04 PRG:5D04 D0 21
lda $0302,x ; CPU:$DD06 PRG:5D06 BD 02 03
sec ; CPU:$DD09 PRG:5D09 38
sbc $02A4 ; CPU:$DD0A PRG:5D0A ED A4 02
clc ; CPU:$DD0D PRG:5D0D 18
adc #$0C ; CPU:$DD0E PRG:5D0E 69 0C
cmp #$17 ; CPU:$DD10 PRG:5D10 C9 17
bcs Sub_DD27 ; CPU:$DD12 PRG:5D12 B0 13
lda $0303,x ; CPU:$DD14 PRG:5D14 BD 03 03
sec ; CPU:$DD17 PRG:5D17 38
sbc $02A3 ; CPU:$DD18 PRG:5D18 ED A3 02
clc ; CPU:$DD1B PRG:5D1B 18
adc #$0C ; CPU:$DD1C PRG:5D1C 69 0C
cmp #$17 ; CPU:$DD1E PRG:5D1E C9 17
bcs Sub_DD27 ; CPU:$DD20 PRG:5D20 B0 05
lda #$01 ; CPU:$DD22 PRG:5D22 A9 01
sta $0306,x ; CPU:$DD24 PRG:5D24 9D 06 03
; -----------------------------------------------------------------------------
; Routine: Sub_DD27
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DD27:
rts ; CPU:$DD27 PRG:5D27 60
; -----------------------------------------------------------------------------
; Routine: Sub_DD28
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DD28:
ldy Joypad1Press2 ; CPU:$DD28 PRG:5D28 A4 1A
lda $0304,x ; CPU:$DD2A PRG:5D2A BD 04 03
sta $0208,y ; CPU:$DD2D PRG:5D2D 99 08 02
iny ; CPU:$DD30 PRG:5D30 C8
lda $0305,x ; CPU:$DD31 PRG:5D31 BD 05 03
sta $0208,y ; CPU:$DD34 PRG:5D34 99 08 02
iny ; CPU:$DD37 PRG:5D37 C8
lda #$02 ; CPU:$DD38 PRG:5D38 A9 02
sta $0208,y ; CPU:$DD3A PRG:5D3A 99 08 02
iny ; CPU:$DD3D PRG:5D3D C8
lda #$C9 ; CPU:$DD3E PRG:5D3E A9 C9
sta $0208,y ; CPU:$DD40 PRG:5D40 99 08 02
iny ; CPU:$DD43 PRG:5D43 C8
lda #$CC ; CPU:$DD44 PRG:5D44 A9 CC
sta $0208,y ; CPU:$DD46 PRG:5D46 99 08 02
iny ; CPU:$DD49 PRG:5D49 C8
lda $0304,x ; CPU:$DD4A PRG:5D4A BD 04 03
sta $0208,y ; CPU:$DD4D PRG:5D4D 99 08 02
iny ; CPU:$DD50 PRG:5D50 C8
lda $0305,x ; CPU:$DD51 PRG:5D51 BD 05 03
sec ; CPU:$DD54 PRG:5D54 38
sbc #$20 ; CPU:$DD55 PRG:5D55 E9 20
sta $0208,y ; CPU:$DD57 PRG:5D57 99 08 02
bcs Sub_DD79 ; CPU:$DD5A PRG:5D5A B0 1D
lda $0207,y ; CPU:$DD5C PRG:5D5C B9 07 02
sec ; CPU:$DD5F PRG:5D5F 38
sbc #$01 ; CPU:$DD60 PRG:5D60 E9 01
and #$0B ; CPU:$DD62 PRG:5D62 29 0B
ora #$20 ; CPU:$DD64 PRG:5D64 09 20
sta $0207,y ; CPU:$DD66 PRG:5D66 99 07 02
and #$03 ; CPU:$DD69 PRG:5D69 29 03
cmp #$03 ; CPU:$DD6B PRG:5D6B C9 03
bne Sub_DD79 ; CPU:$DD6D PRG:5D6D D0 0A
lda $0208,y ; CPU:$DD6F PRG:5D6F B9 08 02
and #$1F ; CPU:$DD72 PRG:5D72 29 1F
ora #$A0 ; CPU:$DD74 PRG:5D74 09 A0
sta $0208,y ; CPU:$DD76 PRG:5D76 99 08 02
; -----------------------------------------------------------------------------
; Routine: Sub_DD79
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DD79:
iny ; CPU:$DD79 PRG:5D79 C8
lda #$02 ; CPU:$DD7A PRG:5D7A A9 02
sta $0208,y ; CPU:$DD7C PRG:5D7C 99 08 02
iny ; CPU:$DD7F PRG:5D7F C8
lda #$B3 ; CPU:$DD80 PRG:5D80 A9 B3
sta $0208,y ; CPU:$DD82 PRG:5D82 99 08 02
iny ; CPU:$DD85 PRG:5D85 C8
lda #$B6 ; CPU:$DD86 PRG:5D86 A9 B6
sta $0208,y ; CPU:$DD88 PRG:5D88 99 08 02
iny ; CPU:$DD8B PRG:5D8B C8
lda #$00 ; CPU:$DD8C PRG:5D8C A9 00
sta $0208,y ; CPU:$DD8E PRG:5D8E 99 08 02
lda #$1A ; CPU:$DD91 PRG:5D91 A9 1A
sta $0300,x ; CPU:$DD93 PRG:5D93 9D 00 03
lda #$24 ; CPU:$DD96 PRG:5D96 A9 24
sta $0307,x ; CPU:$DD98 PRG:5D98 9D 07 03
lda #$04 ; CPU:$DD9B PRG:5D9B A9 04
sta $0306,x ; CPU:$DD9D PRG:5D9D 9D 06 03
sty Joypad1Press2 ; CPU:$DDA0 PRG:5DA0 84 1A
lda #$01 ; CPU:$DDA2 PRG:5DA2 A9 01
sta $0612 ; CPU:$DDA4 PRG:5DA4 8D 12 06
jmp DispatchDecBneLdaStoreLda ; CPU:$DDA7 PRG:5DA7 4C 03 DC
; ---- data $DDAA-$DEDF (310 bytes) ----
.byte $A4, $1A, $BD, $04, $03, $99, $08, $02, $C8, $BD, $05, $03, $38, $E9, $1F, $99 ; CPU:$DDAA PRG:5DAA A4 1A BD 04 03 99 08 02 C8 BD 05 03 38 E9 1F 99
.byte $08, $02, $B0, $1D, $B9, $07, $02, $38, $E9, $01, $29, $0B, $09, $20, $99, $07 ; CPU:$DDBA PRG:5DBA 08 02 B0 1D B9 07 02 38 E9 01 29 0B 09 20 99 07
.byte $02, $29, $03, $C9, $03, $D0, $0A, $B9, $08, $02, $29, $1F, $09, $A0, $99, $08 ; CPU:$DDCA PRG:5DCA 02 29 03 C9 03 D0 0A B9 08 02 29 1F 09 A0 99 08
.byte $02, $C8, $A9, $02, $99, $08, $02, $C8, $A9, $F2, $99, $08, $02, $C8, $A9, $FF ; CPU:$DDDA PRG:5DDA 02 C8 A9 02 99 08 02 C8 A9 F2 99 08 02 C8 A9 FF
.byte $99, $08, $02, $C8, $B9, $03, $02, $99, $08, $02, $C8, $B9, $03, $02, $38, $E9 ; CPU:$DDEA PRG:5DEA 99 08 02 C8 B9 03 02 99 08 02 C8 B9 03 02 38 E9
.byte $20, $99, $08, $02, $B0, $1D, $B9, $07, $02, $38, $E9, $01, $29, $0B, $09, $20 ; CPU:$DDFA PRG:5DFA 20 99 08 02 B0 1D B9 07 02 38 E9 01 29 0B 09 20
.byte $99, $07, $02, $29, $03, $C9, $03, $D0, $0A, $B9, $08, $02, $29, $1F, $09, $A0 ; CPU:$DE0A PRG:5E0A 99 07 02 29 03 C9 03 D0 0A B9 08 02 29 1F 09 A0
.byte $99, $08, $02, $C8, $A9, $02, $99, $08, $02, $C8, $A9, $DA, $99, $08, $02, $C8 ; CPU:$DE1A PRG:5E1A 99 08 02 C8 A9 02 99 08 02 C8 A9 DA 99 08 02 C8
.byte $A9, $EF, $99, $08, $02, $C8, $A9, $00, $99, $08, $02, $84, $1A, $A9, $1A, $9D ; CPU:$DE2A PRG:5E2A A9 EF 99 08 02 C8 A9 00 99 08 02 84 1A A9 1A 9D
.byte $00, $03, $A9, $04, $9D, $06, $03, $8D, $12, $06, $4C, $03, $DC, $A9, $A5, $20 ; CPU:$DE3A PRG:5E3A 00 03 A9 04 9D 06 03 8D 12 06 4C 03 DC A9 A5 20
.byte $5C, $DE, $A9, $1A, $9D, $00, $03, $A9, $04, $9D, $06, $03, $8D, $12, $06, $4C ; CPU:$DE4A PRG:5E4A 5C DE A9 1A 9D 00 03 A9 04 9D 06 03 8D 12 06 4C
.byte $03, $DC, $85, $13, $A4, $1A, $BD, $04, $03, $99, $08, $02, $C8, $BD, $05, $03 ; CPU:$DE5A PRG:5E5A 03 DC 85 13 A4 1A BD 04 03 99 08 02 C8 BD 05 03
.byte $38, $E9, $1F, $99, $08, $02, $B0, $1D, $B9, $07, $02, $38, $E9, $01, $29, $0B ; CPU:$DE6A PRG:5E6A 38 E9 1F 99 08 02 B0 1D B9 07 02 38 E9 01 29 0B
.byte $09, $20, $99, $07, $02, $29, $03, $C9, $03, $D0, $0A, $B9, $08, $02, $29, $1F ; CPU:$DE7A PRG:5E7A 09 20 99 07 02 29 03 C9 03 D0 0A B9 08 02 29 1F
.byte $09, $A0, $99, $08, $02, $C8, $A9, $02, $99, $08, $02, $C8, $A5, $13, $99, $08 ; CPU:$DE8A PRG:5E8A 09 A0 99 08 02 C8 A9 02 99 08 02 C8 A5 13 99 08
.byte $02, $C8, $99, $08, $02, $C8, $B9, $03, $02, $99, $08, $02, $C8, $B9, $03, $02 ; CPU:$DE9A PRG:5E9A 02 C8 99 08 02 C8 B9 03 02 99 08 02 C8 B9 03 02
.byte $38, $E9, $20, $99, $08, $02, $B0, $1D, $B9, $07, $02, $38, $E9, $01, $29, $0B ; CPU:$DEAA PRG:5EAA 38 E9 20 99 08 02 B0 1D B9 07 02 38 E9 01 29 0B
.byte $09, $20, $99, $07, $02, $29, $03, $C9, $03, $D0, $0A, $B9, $08, $02, $29, $1F ; CPU:$DEBA PRG:5EBA 09 20 99 07 02 29 03 C9 03 D0 0A B9 08 02 29 1F
.byte $09, $A0, $99, $08, $02, $C8, $A9, $02, $99, $08, $02, $C8, $A5, $13, $99, $08 ; CPU:$DECA PRG:5ECA 09 A0 99 08 02 C8 A9 02 99 08 02 C8 A5 13 99 08
.byte $02, $C8, $99, $08, $02, $C8 ; CPU:$DEDA PRG:5EDA 02 C8 99 08 02 C8
; -----------------------------------------------------------------------------
; Routine: Sub_DEE0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DEE0:
lda #$00 ; CPU:$DEE0 PRG:5EE0 A9 00
sta $0208,y ; CPU:$DEE2 PRG:5EE2 99 08 02
sty Joypad1Press2 ; CPU:$DEE5 PRG:5EE5 84 1A
rts ; CPU:$DEE7 PRG:5EE7 60
; -----------------------------------------------------------------------------
; Routine: Sub_DEE8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DEE8:
ldx #$00 ; CPU:$DEE8 PRG:5EE8 A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_DEEA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DEEA:
lda $DF0E ; CPU:$DEEA PRG:5EEA AD 0E DF
sta $0380,x ; CPU:$DEED PRG:5EED 9D 80 03
lda $DF0F ; CPU:$DEF0 PRG:5EF0 AD 0F DF
sta $0381,x ; CPU:$DEF3 PRG:5EF3 9D 81 03
txa ; CPU:$DEF6 PRG:5EF6 8A
clc ; CPU:$DEF7 PRG:5EF7 18
adc #$10 ; CPU:$DEF8 PRG:5EF8 69 10
tax ; CPU:$DEFA PRG:5EFA AA
cpx #$80 ; CPU:$DEFB PRG:5EFB E0 80
bne Sub_DEEA ; CPU:$DEFD PRG:5EFD D0 EB
ldx #$00 ; CPU:$DEFF PRG:5EFF A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_DF01
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DF01:
lda #$00 ; CPU:$DF01 PRG:5F01 A9 00
sta $0400,x ; CPU:$DF03 PRG:5F03 9D 00 04
txa ; CPU:$DF06 PRG:5F06 8A
clc ; CPU:$DF07 PRG:5F07 18
adc #$10 ; CPU:$DF08 PRG:5F08 69 10
tax ; CPU:$DF0A PRG:5F0A AA
bne Sub_DF01 ; CPU:$DF0B PRG:5F0B D0 F4
rts ; CPU:$DF0D PRG:5F0D 60
; ---- data $DF0E-$DF0F (2 bytes) ----
; referenced by `lda $DF0E` at $DEEA (operand $DF0E falls inside this region)
; referenced by `lda $DF0F` at $DEF0 (operand $DF0F falls inside this region)
.byte $14, $DF ; CPU:$DF0E PRG:5F0E 14 DF
; -----------------------------------------------------------------------------
; Routine: Sub_DF10
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DF10:
lda #$00 ; CPU:$DF10 PRG:5F10 A9 00
sta a:$00D8,y ; CPU:$DF12 PRG:5F12 99 D8 00
; -----------------------------------------------------------------------------
; Routine: DispatchJsrTaxLsrs
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrTaxLsrs:
jsr PopXY ; CPU:$DF15 PRG:5F15 20 6F DF
txa ; CPU:$DF18 PRG:5F18 8A
lsr a ; CPU:$DF19 PRG:5F19 4A
lsr a ; CPU:$DF1A PRG:5F1A 4A
lsr a ; CPU:$DF1B PRG:5F1B 4A
lsr a ; CPU:$DF1C PRG:5F1C 4A
tay ; CPU:$DF1D PRG:5F1D A8
asl a ; CPU:$DF1E PRG:5F1E 0A
eor GameSubMode ; CPU:$DF1F PRG:5F1F 45 1B
and #$0E ; CPU:$DF21 PRG:5F21 29 0E
bne DispatchJsrTaxLsrs ; CPU:$DF23 PRG:5F23 D0 F0
lda a:$00D8,y ; CPU:$DF25 PRG:5F25 B9 D8 00
beq DispatchJsrTaxLsrs ; CPU:$DF28 PRG:5F28 F0 EB
bmi Sub_DF10 ; CPU:$DF2A PRG:5F2A 30 E4
lda a:$00D8,y ; CPU:$DF2C PRG:5F2C B9 D8 00
cmp #$2A ; CPU:$DF2F PRG:5F2F C9 2A
bcs Sub_DF10 ; CPU:$DF31 PRG:5F31 B0 DD
ora #$80 ; CPU:$DF33 PRG:5F33 09 80
sta a:$00D8,y ; CPU:$DF35 PRG:5F35 99 D8 00
and #$7E ; CPU:$DF38 PRG:5F38 29 7E
tay ; CPU:$DF3A PRG:5F3A A8
lda Data_DF78,y ; CPU:$DF3B PRG:5F3B B9 78 DF
sta $0380,x ; CPU:$DF3E PRG:5F3E 9D 80 03
lda $DF79,y ; CPU:$DF41 PRG:5F41 B9 79 DF
sta $0381,x ; CPU:$DF44 PRG:5F44 9D 81 03
pha ; CPU:$DF47 PRG:5F47 48
lda $0380,x ; CPU:$DF48 PRG:5F48 BD 80 03
pha ; CPU:$DF4B PRG:5F4B 48
rts ; CPU:$DF4C PRG:5F4C 60
; -----------------------------------------------------------------------------
; Routine: ObjIterLoop
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjIterLoop:
lda Zp32 ; CPU:$DF4D PRG:5F4D A5 32
beq Sub_DEE8 ; CPU:$DF4F PRG:5F4F F0 97
ldx #$00 ; CPU:$DF51 PRG:5F51 A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_DF53
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DF53:
jsr PushXY ; CPU:$DF53 PRG:5F53 20 66 DF
txa ; CPU:$DF56 PRG:5F56 8A
clc ; CPU:$DF57 PRG:5F57 18
adc #$10 ; CPU:$DF58 PRG:5F58 69 10
tax ; CPU:$DF5A PRG:5F5A AA
lsr a ; CPU:$DF5B PRG:5F5B 4A
lsr a ; CPU:$DF5C PRG:5F5C 4A
lsr a ; CPU:$DF5D PRG:5F5D 4A
lsr a ; CPU:$DF5E PRG:5F5E 4A
cmp #$08 ; CPU:$DF5F PRG:5F5F C9 08
bne Sub_DF53 ; CPU:$DF61 PRG:5F61 D0 F0
jmp $CE04 ; CPU:$DF63 PRG:5F63 4C 04 CE
; -----------------------------------------------------------------------------
; Routine: PushXY
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
PushXY:
lda $0381,x ; CPU:$DF66 PRG:5F66 BD 81 03
pha ; CPU:$DF69 PRG:5F69 48
lda $0380,x ; CPU:$DF6A PRG:5F6A BD 80 03
pha ; CPU:$DF6D PRG:5F6D 48
rts ; CPU:$DF6E PRG:5F6E 60
; -----------------------------------------------------------------------------
; Routine: PopXY
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
PopXY:
pla ; CPU:$DF6F PRG:5F6F 68
sta $0380,x ; CPU:$DF70 PRG:5F70 9D 80 03
pla ; CPU:$DF73 PRG:5F73 68
sta $0381,x ; CPU:$DF74 PRG:5F74 9D 81 03
rts ; CPU:$DF77 PRG:5F77 60
ObjPtrTable:
; Object/enemy routine pointer table (16-bit entries read by lda $DF78,y/$DF79,y)
; referenced by `lda $DF78,y` at $DF3B (operand $DF78 falls inside this region)
; referenced by `lda $DF79,y` at $DF41 (operand $DF79 falls inside this region)
Data_DF78:
; ---- data $DF78-$DFA1 (42 bytes) ----
.byte $A1, $DF, $A6, $DF, $83, $E0, $A2, $E0, $77, $E1, $DA, $E1, $2F, $E2, $1F, $E4 ; CPU:$DF78 PRG:5F78 A1 DF A6 DF 83 E0 A2 E0 77 E1 DA E1 2F E2 1F E4
.byte $B9, $E4, $00, $E5, $52, $E5, $7D, $E5, $88, $E0, $87, $E2, $31, $E3, $AE, $E5 ; CPU:$DF88 PRG:5F88 B9 E4 00 E5 52 E5 7D E5 88 E0 87 E2 31 E3 AE E5
.byte $F3, $E5, $D6, $E8, $67, $E6, $88, $E6, $C2, $EA ; CPU:$DF98 PRG:5F98 F3 E5 D6 E8 67 E6 88 E6 C2 EA
lda #$00 ; CPU:$DFA2 PRG:5FA2 A9 00
jmp Sub_DFA9 ; CPU:$DFA4 PRG:5FA4 4C A9 DF
; ---- data $DFA7-$DFA8 (2 bytes) ----
.byte $A9, $01 ; CPU:$DFA7 PRG:5FA7 A9 01
Sub_DFA9:
sta $038B,x ; CPU:$DFA9 PRG:5FA9 9D 8B 03
jsr DispatchCmpLdaBccLda ; CPU:$DFAC PRG:5FAC 20 51 E1
lda #$03 ; CPU:$DFAF PRG:5FAF A9 03
jsr DispatchStoreJsrSubBcsEor ; CPU:$DFB1 PRG:5FB1 20 69 EC
lda #$02 ; CPU:$DFB4 PRG:5FB4 A9 02
sta $038A,x ; CPU:$DFB6 PRG:5FB6 9D 8A 03
lda #$10 ; CPU:$DFB9 PRG:5FB9 A9 10
; -----------------------------------------------------------------------------
; Routine: Sub_DFBB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DFBB:
sta $0382,x ; CPU:$DFBB PRG:5FBB 9D 82 03
; -----------------------------------------------------------------------------
; Routine: DispatchJsrJsrLdaBne
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrJsrLdaBne:
jsr PopXY ; CPU:$DFBE PRG:5FBE 20 6F DF
jsr DispatchAddStoreLda6 ; CPU:$DFC1 PRG:5FC1 20 3C EB
lda $0386,x ; CPU:$DFC4 PRG:5FC4 BD 86 03
bne DispatchJsrJsrLdaBne ; CPU:$DFC7 PRG:5FC7 D0 F5
; -----------------------------------------------------------------------------
; Routine: Sub_DFC9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DFC9:
jsr PopXY ; CPU:$DFC9 PRG:5FC9 20 6F DF
jsr DispatchAddStoreLda6 ; CPU:$DFCC PRG:5FCC 20 3C EB
jsr DispatchLdaI ; CPU:$DFCF PRG:5FCF 20 E5 EB
jsr DispatchLdyE ; CPU:$DFD2 PRG:5FD2 20 87 EB
lsr a ; CPU:$DFD5 PRG:5FD5 4A
bcc Sub_DFDB ; CPU:$DFD6 PRG:5FD6 90 03
jmp DispatchLdaBeqLdaJsr ; CPU:$DFD8 PRG:5FD8 4C 6D E0
; -----------------------------------------------------------------------------
; Routine: Sub_DFDB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DFDB:
lda $0384,x ; CPU:$DFDB PRG:5FDB BD 84 03
sec ; CPU:$DFDE PRG:5FDE 38
sbc Zp23 ; CPU:$DFDF PRG:5FDF E5 23
clc ; CPU:$DFE1 PRG:5FE1 18
adc #$14 ; CPU:$DFE2 PRG:5FE2 69 14
cmp #$29 ; CPU:$DFE4 PRG:5FE4 C9 29
bcs Sub_DFC9 ; CPU:$DFE6 PRG:5FE6 B0 E1
lda $038B,x ; CPU:$DFE8 PRG:5FE8 BD 8B 03
beq Sub_DFF0 ; CPU:$DFEB PRG:5FEB F0 03
jsr DispatchJsrStoreLdaClc ; CPU:$DFED PRG:5FED 20 2F CF
; -----------------------------------------------------------------------------
; Routine: Sub_DFF0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DFF0:
ldy #$01 ; CPU:$DFF0 PRG:5FF0 A0 01
lda $0384,x ; CPU:$DFF2 PRG:5FF2 BD 84 03
sec ; CPU:$DFF5 PRG:5FF5 38
sbc Zp23 ; CPU:$DFF6 PRG:5FF6 E5 23
bcs Sub_DFFC ; CPU:$DFF8 PRG:5FF8 B0 02
ldy #$FF ; CPU:$DFFA PRG:5FFA A0 FF
; -----------------------------------------------------------------------------
; Routine: Sub_DFFC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_DFFC:
tya ; CPU:$DFFC PRG:5FFC 98
sta $038B,x ; CPU:$DFFD PRG:5FFD 9D 8B 03
lda $038A,x ; CPU:$E000 PRG:6000 BD 8A 03
sta $0389,x ; CPU:$E003 PRG:6003 9D 89 03
; -----------------------------------------------------------------------------
; Routine: DispatchJsrJsrJsrLsrsBcs
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrJsrJsrLsrsBcs:
jsr PopXY ; CPU:$E006 PRG:6006 20 6F DF
jsr DispatchAddStoreLda6 ; CPU:$E009 PRG:6009 20 3C EB
jsr DispatchLdyE ; CPU:$E00C PRG:600C 20 87 EB
lsr a ; CPU:$E00F PRG:600F 4A
bcs DispatchLdaBeqLdaJsr ; CPU:$E010 PRG:6010 B0 5B
jsr DispatchLdaI ; CPU:$E012 PRG:6012 20 E5 EB
lda GameSubMode ; CPU:$E015 PRG:6015 A5 1B
and #$01 ; CPU:$E017 PRG:6017 29 01
bne Sub_E032 ; CPU:$E019 PRG:6019 D0 17
lda $0389,x ; CPU:$E01B PRG:601B BD 89 03
clc ; CPU:$E01E PRG:601E 18
adc $038B,x ; CPU:$E01F PRG:601F 7D 8B 03
and #$03 ; CPU:$E022 PRG:6022 29 03
sta $0389,x ; CPU:$E024 PRG:6024 9D 89 03
lda $038A,x ; CPU:$E027 PRG:6027 BD 8A 03
and #$EC ; CPU:$E02A PRG:602A 29 EC
ora $0389,x ; CPU:$E02C PRG:602C 1D 89 03
sta $038A,x ; CPU:$E02F PRG:602F 9D 8A 03
; -----------------------------------------------------------------------------
; Routine: Sub_E032
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E032:
lda $038B,x ; CPU:$E032 PRG:6032 BD 8B 03
bmi Sub_E052 ; CPU:$E035 PRG:6035 30 1B
lda $038C,x ; CPU:$E037 PRG:6037 BD 8C 03
bmi Sub_E040 ; CPU:$E03A PRG:603A 30 04
cmp #$04 ; CPU:$E03C PRG:603C C9 04
bcs DispatchJsrJsrJsrLsrsBcs ; CPU:$E03E PRG:603E B0 C6
; -----------------------------------------------------------------------------
; Routine: Sub_E040
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E040:
lda $038D,x ; CPU:$E040 PRG:6040 BD 8D 03
clc ; CPU:$E043 PRG:6043 18
adc $0382,x ; CPU:$E044 PRG:6044 7D 82 03
sta $038D,x ; CPU:$E047 PRG:6047 9D 8D 03
bcc DispatchJsrJsrJsrLsrsBcs ; CPU:$E04A PRG:604A 90 BA
inc $038C,x ; CPU:$E04C PRG:604C FE 8C 03
jmp DispatchJsrJsrJsrLsrsBcs ; CPU:$E04F PRG:604F 4C 06 E0
; -----------------------------------------------------------------------------
; Routine: Sub_E052
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E052:
lda $038C,x ; CPU:$E052 PRG:6052 BD 8C 03
bpl Sub_E05B ; CPU:$E055 PRG:6055 10 04
cmp #$FD ; CPU:$E057 PRG:6057 C9 FD
bcc DispatchJsrJsrJsrLsrsBcs ; CPU:$E059 PRG:6059 90 AB
; -----------------------------------------------------------------------------
; Routine: Sub_E05B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E05B:
lda $038D,x ; CPU:$E05B PRG:605B BD 8D 03
sec ; CPU:$E05E PRG:605E 38
sbc $0382,x ; CPU:$E05F PRG:605F FD 82 03
sta $038D,x ; CPU:$E062 PRG:6062 9D 8D 03
bcs DispatchJsrJsrJsrLsrsBcs ; CPU:$E065 PRG:6065 B0 9F
dec $038C,x ; CPU:$E067 PRG:6067 DE 8C 03
jmp DispatchJsrJsrJsrLsrsBcs ; CPU:$E06A PRG:606A 4C 06 E0
; -----------------------------------------------------------------------------
; Routine: DispatchLdaBeqLdaJsr
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaBeqLdaJsr:
lda $0382,x ; CPU:$E06D PRG:606D BD 82 03
cmp #$1C ; CPU:$E070 PRG:6070 C9 1C
beq Sub_E07C ; CPU:$E072 PRG:6072 F0 08
lda #$03 ; CPU:$E074 PRG:6074 A9 03
jsr ObjSpritesInit6 ; CPU:$E076 PRG:6076 20 4D BF
jmp DispatchStoreStoreStoreLda ; CPU:$E079 PRG:6079 4C 5B E2
; -----------------------------------------------------------------------------
; Routine: Sub_E07C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E07C:
lda #$0F ; CPU:$E07C PRG:607C A9 0F
jsr ObjSpritesInit6 ; CPU:$E07E PRG:607E 20 4D BF
jmp DispatchStoreStoreStoreLda ; CPU:$E081 PRG:6081 4C 5B E2
; -----------------------------------------------------------------------------
; Routine: Sub_E084
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E084:
lda #$00 ; CPU:$E084 PRG:6084 A9 00
jmp DispatchStoreJsrLdaJsrLda ; CPU:$E086 PRG:6086 4C 8B E0
; ---- data $E089-$E08A (2 bytes) ----
.byte $A9, $01 ; CPU:$E089 PRG:6089 A9 01
; -----------------------------------------------------------------------------
; Routine: DispatchStoreJsrLdaJsrLda
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchStoreJsrLdaJsrLda:
sta $038B,x ; CPU:$E08B PRG:608B 9D 8B 03
jsr DispatchCmpLdaBccLda ; CPU:$E08E PRG:608E 20 51 E1
lda #$06 ; CPU:$E091 PRG:6091 A9 06
jsr DispatchStoreJsrSubBcsEor ; CPU:$E093 PRG:6093 20 69 EC
lda #$0A ; CPU:$E096 PRG:6096 A9 0A
sta $038A,x ; CPU:$E098 PRG:6098 9D 8A 03
lda #$1C ; CPU:$E09B PRG:609B A9 1C
sta $0382,x ; CPU:$E09D PRG:609D 9D 82 03
jmp DispatchJsrJsrLdaBne ; CPU:$E0A0 PRG:60A0 4C BE DF
jsr DispatchCmpLdaBccLda ; CPU:$E0A3 PRG:60A3 20 51 E1
lda #$04 ; CPU:$E0A6 PRG:60A6 A9 04
jsr DispatchStoreJsrSubBcsEor ; CPU:$E0A8 PRG:60A8 20 69 EC
lda #$0C ; CPU:$E0AB PRG:60AB A9 0C
sta $038A,x ; CPU:$E0AD PRG:60AD 9D 8A 03
; -----------------------------------------------------------------------------
; Routine: Sub_E0B0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E0B0:
jsr PopXY ; CPU:$E0B0 PRG:60B0 20 6F DF
jsr DispatchAddStoreLda6 ; CPU:$E0B3 PRG:60B3 20 3C EB
lda $0386,x ; CPU:$E0B6 PRG:60B6 BD 86 03
bmi Sub_E0B0 ; CPU:$E0B9 PRG:60B9 30 F5
jsr DispatchLdaEorEorAslAslRol ; CPU:$E0BB PRG:60BB 20 5C F5
and #$3F ; CPU:$E0BE PRG:60BE 29 3F
clc ; CPU:$E0C0 PRG:60C0 18
adc #$20 ; CPU:$E0C1 PRG:60C1 69 20
sta $0389,x ; CPU:$E0C3 PRG:60C3 9D 89 03
; -----------------------------------------------------------------------------
; Routine: Sub_E0C6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E0C6:
jsr PopXY ; CPU:$E0C6 PRG:60C6 20 6F DF
jsr DispatchAddStoreLda6 ; CPU:$E0C9 PRG:60C9 20 3C EB
jsr DispatchLdaI ; CPU:$E0CC PRG:60CC 20 E5 EB
jsr DispatchLdyE ; CPU:$E0CF PRG:60CF 20 87 EB
lsr a ; CPU:$E0D2 PRG:60D2 4A
bcc Sub_E0DD ; CPU:$E0D3 PRG:60D3 90 08
; -----------------------------------------------------------------------------
; Routine: Sub_E0D5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E0D5:
lda #$05 ; CPU:$E0D5 PRG:60D5 A9 05
jsr ObjSpritesInit6 ; CPU:$E0D7 PRG:60D7 20 4D BF
jmp DispatchStoreStoreStoreLda ; CPU:$E0DA PRG:60DA 4C 5B E2
; referenced by `jsr $E0FF` at $EAAD (operand $E0FF falls inside this region)
; -----------------------------------------------------------------------------
; Routine: Sub_E0DD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E0DD:
dec $0389,x ; CPU:$E0DD PRG:60DD DE 89 03
bne Sub_E0C6 ; CPU:$E0E0 PRG:60E0 D0 E4
jsr DispatchJsrStoreLdaClc ; CPU:$E0E2 PRG:60E2 20 2F CF
lda #$08 ; CPU:$E0E5 PRG:60E5 A9 08
sta $0389,x ; CPU:$E0E7 PRG:60E7 9D 89 03
lda #$06 ; CPU:$E0EA PRG:60EA A9 06
jsr DispatchStoreJsrSubBcsEor ; CPU:$E0EC PRG:60EC 20 69 EC
lda #$00 ; CPU:$E0EF PRG:60EF A9 00
sec ; CPU:$E0F1 PRG:60F1 38
sbc $038D,x ; CPU:$E0F2 PRG:60F2 FD 8D 03
sta $038D,x ; CPU:$E0F5 PRG:60F5 9D 8D 03
lda #$00 ; CPU:$E0F8 PRG:60F8 A9 00
sbc $038C,x ; CPU:$E0FA PRG:60FA FD 8C 03
sta $038C,x ; CPU:$E0FD PRG:60FD 9D 8C 03
; -----------------------------------------------------------------------------
; Routine: Sub_E100
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E100:
lda #$00 ; CPU:$E100 PRG:6100 A9 00
sec ; CPU:$E102 PRG:6102 38
sbc $038F,x ; CPU:$E103 PRG:6103 FD 8F 03
sta $038F,x ; CPU:$E106 PRG:6106 9D 8F 03
lda #$00 ; CPU:$E109 PRG:6109 A9 00
sbc $038E,x ; CPU:$E10B PRG:610B FD 8E 03
sta $038E,x ; CPU:$E10E PRG:610E 9D 8E 03
; -----------------------------------------------------------------------------
; Routine: DispatchJsrJsrJsrLsrsBcs2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrJsrJsrLsrsBcs2:
jsr PopXY ; CPU:$E111 PRG:6111 20 6F DF
jsr DispatchLdaI ; CPU:$E114 PRG:6114 20 E5 EB
jsr DispatchLdyE ; CPU:$E117 PRG:6117 20 87 EB
lsr a ; CPU:$E11A PRG:611A 4A
bcs Sub_E0D5 ; CPU:$E11B PRG:611B B0 B8
dec $0389,x ; CPU:$E11D PRG:611D DE 89 03
bne DispatchJsrJsrJsrLsrsBcs2 ; CPU:$E120 PRG:6120 D0 EF
lda #$08 ; CPU:$E122 PRG:6122 A9 08
sta $0389,x ; CPU:$E124 PRG:6124 9D 89 03
lda $038A,x ; CPU:$E127 PRG:6127 BD 8A 03
cmp #$0F ; CPU:$E12A PRG:612A C9 0F
beq DispatchJsrJsrJsrLsrsBcs3 ; CPU:$E12C PRG:612C F0 06
inc $038A,x ; CPU:$E12E PRG:612E FE 8A 03
jmp DispatchJsrJsrJsrLsrsBcs2 ; CPU:$E131 PRG:6131 4C 11 E1
; -----------------------------------------------------------------------------
; Routine: DispatchJsrJsrJsrLsrsBcs3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrJsrJsrLsrsBcs3:
jsr PopXY ; CPU:$E134 PRG:6134 20 6F DF
jsr DispatchAddStoreLda6 ; CPU:$E137 PRG:6137 20 3C EB
jsr DispatchLdyE ; CPU:$E13A PRG:613A 20 87 EB
lsr a ; CPU:$E13D PRG:613D 4A
bcs Sub_E0D5 ; CPU:$E13E PRG:613E B0 95
jsr DispatchLdaI ; CPU:$E140 PRG:6140 20 E5 EB
jmp DispatchJsrJsrJsrLsrsBcs3 ; CPU:$E143 PRG:6143 4C 34 E1
; ---- data $E146-$E150 (11 bytes) ----
.byte $20, $5C, $F5, $29, $E0, $18, $69, $08, $4C, $65, $E1 ; CPU:$E146 PRG:6146 20 5C F5 29 E0 18 69 08 4C 65 E1
; -----------------------------------------------------------------------------
; Routine: DispatchCmpLdaBccLda
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchCmpLdaBccLda:
lda Zp23 ; CPU:$E151 PRG:6151 A5 23
cmp #$78 ; CPU:$E153 PRG:6153 C9 78
lda #$90 ; CPU:$E155 PRG:6155 A9 90
bcc Sub_E15B ; CPU:$E157 PRG:6157 90 02
lda #$20 ; CPU:$E159 PRG:6159 A9 20
; -----------------------------------------------------------------------------
; Routine: Sub_E15B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E15B:
sta ObjPtr ; CPU:$E15B PRG:615B 85 13
jsr DispatchLdaEorEorAslAslRol ; CPU:$E15D PRG:615D 20 5C F5
and #$3F ; CPU:$E160 PRG:6160 29 3F
clc ; CPU:$E162 PRG:6162 18
adc ObjPtr ; CPU:$E163 PRG:6163 65 13
sta $0384,x ; CPU:$E165 PRG:6165 9D 84 03
lda #$00 ; CPU:$E168 PRG:6168 A9 00
sta $0383,x ; CPU:$E16A PRG:616A 9D 83 03
lda #$DA ; CPU:$E16D PRG:616D A9 DA
sta $0387,x ; CPU:$E16F PRG:616F 9D 87 03
lda #$FF ; CPU:$E172 PRG:6172 A9 FF
sta $0386,x ; CPU:$E174 PRG:6174 9D 86 03
rts ; CPU:$E177 PRG:6177 60
; -----------------------------------------------------------------------------
; Routine: Sub_E178
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E178:
jsr DispatchCmpLdaBccLda ; CPU:$E178 PRG:6178 20 51 E1
lda #$E1 ; CPU:$E17B PRG:617B A9 E1
sta $0387,x ; CPU:$E17D PRG:617D 9D 87 03
lda #$03 ; CPU:$E180 PRG:6180 A9 03
jsr DispatchStoreJsrSubBcsEor ; CPU:$E182 PRG:6182 20 69 EC
lda #$10 ; CPU:$E185 PRG:6185 A9 10
sta $038A,x ; CPU:$E187 PRG:6187 9D 8A 03
jsr DispatchLdaEorEorAslAslRol ; CPU:$E18A PRG:618A 20 5C F5
and Zp95 ; CPU:$E18D PRG:618D 25 95
clc ; CPU:$E18F PRG:618F 18
adc #$30 ; CPU:$E190 PRG:6190 69 30
sta $0389,x ; CPU:$E192 PRG:6192 9D 89 03
; -----------------------------------------------------------------------------
; Routine: Sub_E195
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E195:
jsr PopXY ; CPU:$E195 PRG:6195 20 6F DF
jsr DispatchAddStoreLda6 ; CPU:$E198 PRG:6198 20 3C EB
lda $0386,x ; CPU:$E19B PRG:619B BD 86 03
bmi Sub_E195 ; CPU:$E19E PRG:619E 30 F5
; -----------------------------------------------------------------------------
; Routine: DispatchJsrJsrJsrJsrLsrs
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrJsrJsrJsrLsrs:
jsr PopXY ; CPU:$E1A0 PRG:61A0 20 6F DF
jsr DispatchAddStoreLda6 ; CPU:$E1A3 PRG:61A3 20 3C EB
jsr DispatchLdaI ; CPU:$E1A6 PRG:61A6 20 E5 EB
jsr DispatchLdyE ; CPU:$E1A9 PRG:61A9 20 87 EB
lsr a ; CPU:$E1AC PRG:61AC 4A
bcs Sub_E1D3 ; CPU:$E1AD PRG:61AD B0 24
jsr DispatchAndBeqIncLda ; CPU:$E1AF PRG:61AF 20 40 E2
dec $0389,x ; CPU:$E1B2 PRG:61B2 DE 89 03
bne DispatchJsrJsrJsrJsrLsrs ; CPU:$E1B5 PRG:61B5 D0 E9
jsr DispatchLdaEorEorAslAslRol ; CPU:$E1B7 PRG:61B7 20 5C F5
sta $0382,x ; CPU:$E1BA PRG:61BA 9D 82 03
lda #$03 ; CPU:$E1BD PRG:61BD A9 03
jsr DispatchStoreLdaStoreStoreStore ; CPU:$E1BF PRG:61BF 20 E3 EC
jsr DispatchLdaEorEorAslAslRol ; CPU:$E1C2 PRG:61C2 20 5C F5
and Zp95 ; CPU:$E1C5 PRG:61C5 25 95
clc ; CPU:$E1C7 PRG:61C7 18
adc #$30 ; CPU:$E1C8 PRG:61C8 69 30
sta $0389,x ; CPU:$E1CA PRG:61CA 9D 89 03
jsr DispatchJsrStoreLdaClc ; CPU:$E1CD PRG:61CD 20 2F CF
jmp DispatchJsrJsrJsrJsrLsrs ; CPU:$E1D0 PRG:61D0 4C A0 E1
; -----------------------------------------------------------------------------
; Routine: Sub_E1D3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E1D3:
lda #$07 ; CPU:$E1D3 PRG:61D3 A9 07
jsr ObjSpritesInit6 ; CPU:$E1D5 PRG:61D5 20 4D BF
jmp DispatchStoreStoreStoreLda ; CPU:$E1D8 PRG:61D8 4C 5B E2
; ---- data $E1DB-$E23F (101 bytes) ----
.byte $20, $51, $E1, $A9, $E1, $9D, $87, $03, $A9, $03, $20, $69, $EC, $A9, $10, $9D ; CPU:$E1DB PRG:61DB 20 51 E1 A9 E1 9D 87 03 A9 03 20 69 EC A9 10 9D
.byte $8A, $03, $20, $5C, $F5, $25, $95, $18, $69, $30, $9D, $89, $03, $20, $6F, $DF ; CPU:$E1EB PRG:61EB 8A 03 20 5C F5 25 95 18 69 30 9D 89 03 20 6F DF
.byte $20, $3C, $EB, $BD, $86, $03, $30, $F5, $20, $6F, $DF, $20, $3C, $EB, $20, $E5 ; CPU:$E1FB PRG:61FB 20 3C EB BD 86 03 30 F5 20 6F DF 20 3C EB 20 E5
.byte $EB, $20, $87, $EB, $4A, $B0, $44, $20, $40, $E2, $DE, $89, $03, $D0, $E9, $A9 ; CPU:$E20B PRG:620B EB 20 87 EB 4A B0 44 20 40 E2 DE 89 03 D0 E9 A9
.byte $03, $20, $69, $EC, $20, $5C, $F5, $25, $95, $18, $69, $30, $9D, $89, $03, $20 ; CPU:$E21B PRG:621B 03 20 69 EC 20 5C F5 25 95 18 69 30 9D 89 03 20
.byte $2F, $CF, $4C, $03, $E2, $20, $51, $E1, $A9, $00, $9D, $86, $03, $A9, $F6, $9D ; CPU:$E22B PRG:622B 2F CF 4C 03 E2 20 51 E1 A9 00 9D 86 03 A9 F6 9D
.byte $87, $03, $4C, $DE, $E1 ; CPU:$E23B PRG:623B 87 03 4C DE E1
; -----------------------------------------------------------------------------
; Routine: DispatchAndBeqIncLda
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchAndBeqIncLda:
lda GameSubMode ; CPU:$E240 PRG:6240 A5 1B
and #$01 ; CPU:$E242 PRG:6242 29 01
beq Sub_E255 ; CPU:$E244 PRG:6244 F0 0F
inc $038A,x ; CPU:$E246 PRG:6246 FE 8A 03
lda $038A,x ; CPU:$E249 PRG:6249 BD 8A 03
cmp #$13 ; CPU:$E24C PRG:624C C9 13
bne Sub_E255 ; CPU:$E24E PRG:624E D0 05
lda #$10 ; CPU:$E250 PRG:6250 A9 10
sta $038A,x ; CPU:$E252 PRG:6252 9D 8A 03
; -----------------------------------------------------------------------------
; Routine: Sub_E255
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E255:
rts ; CPU:$E255 PRG:6255 60
; ---- data $E256-$E25A (5 bytes) ----
.byte $A9, $01, $20, $54, $BF ; CPU:$E256 PRG:6256 A9 01 20 54 BF
; -----------------------------------------------------------------------------
; Routine: DispatchStoreStoreStoreLda
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchStoreStoreStoreLda:
lda #$04 ; CPU:$E25B PRG:625B A9 04
sta $0389,x ; CPU:$E25D PRG:625D 9D 89 03
sta $0609 ; CPU:$E260 PRG:6260 8D 09 06
sta $060A ; CPU:$E263 PRG:6263 8D 0A 06
lda #$14 ; CPU:$E266 PRG:6266 A9 14
sta $038A,x ; CPU:$E268 PRG:6268 9D 8A 03
; -----------------------------------------------------------------------------
; Routine: Sub_E26B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E26B:
jsr PopXY ; CPU:$E26B PRG:626B 20 6F DF
jsr DispatchLdaI ; CPU:$E26E PRG:626E 20 E5 EB
dec $0389,x ; CPU:$E271 PRG:6271 DE 89 03
bne Sub_E26B ; CPU:$E274 PRG:6274 D0 F5
lda #$04 ; CPU:$E276 PRG:6276 A9 04
sta $0389,x ; CPU:$E278 PRG:6278 9D 89 03
inc $038A,x ; CPU:$E27B PRG:627B FE 8A 03
lda $038A,x ; CPU:$E27E PRG:627E BD 8A 03
cmp #$18 ; CPU:$E281 PRG:6281 C9 18
bne Sub_E26B ; CPU:$E283 PRG:6283 D0 E6
jmp DispatchJsrTaxLsrs ; CPU:$E285 PRG:6285 4C 15 DF
; ---- data $E288-$E2CE (71 bytes) ----
.byte $20, $51, $E1, $A9, $04, $20, $69, $EC, $A9, $18, $9D, $8A, $03, $20, $5C, $F5 ; CPU:$E288 PRG:6288 20 51 E1 A9 04 20 69 EC A9 18 9D 8A 03 20 5C F5
.byte $29, $1F, $18, $69, $20, $9D, $89, $03, $A9, $00, $9D, $8B, $03, $20, $6F, $DF ; CPU:$E298 PRG:6298 29 1F 18 69 20 9D 89 03 A9 00 9D 8B 03 20 6F DF
.byte $20, $3C, $EB, $BD, $86, $03, $30, $F5, $20, $6F, $DF, $20, $3C, $EB, $20, $87 ; CPU:$E2A8 PRG:62A8 20 3C EB BD 86 03 30 F5 20 6F DF 20 3C EB 20 87
.byte $EB, $4A, $90, $03, $4C, $0A, $E3, $20, $E5, $EB, $DE, $89, $03, $D0, $E9, $A9 ; CPU:$E2B8 PRG:62B8 EB 4A 90 03 4C 0A E3 20 E5 EB DE 89 03 D0 E9 A9
.byte $18, $9D, $89, $03, $FD, $82, $03 ; CPU:$E2C8 PRG:62C8 18 9D 89 03 FD 82 03
; -----------------------------------------------------------------------------
; Routine: DispatchJsrLdaBneJsrAnd
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrLdaBneJsrAnd:
jsr PopXY ; CPU:$E2CF PRG:62CF 20 6F DF
lda $038B,x ; CPU:$E2D2 PRG:62D2 BD 8B 03
bne Sub_E2E2 ; CPU:$E2D5 PRG:62D5 D0 0B
jsr DispatchLdaEorEorAslAslRol ; CPU:$E2D7 PRG:62D7 20 5C F5
and Zp96 ; CPU:$E2DA PRG:62DA 25 96
clc ; CPU:$E2DC PRG:62DC 18
adc #$10 ; CPU:$E2DD PRG:62DD 69 10
sta $038B,x ; CPU:$E2DF PRG:62DF 9D 8B 03
; -----------------------------------------------------------------------------
; Routine: Sub_E2E2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E2E2:
dec $038B,x ; CPU:$E2E2 PRG:62E2 DE 8B 03
bne Sub_E2EA ; CPU:$E2E5 PRG:62E5 D0 03
jsr DispatchJsrStoreLdaClc ; CPU:$E2E7 PRG:62E7 20 2F CF
; -----------------------------------------------------------------------------
; Routine: Sub_E2EA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E2EA:
lda $038E,x ; CPU:$E2EA PRG:62EA BD 8E 03
bpl Sub_E2F3 ; CPU:$E2ED PRG:62ED 10 04
cmp #$FD ; CPU:$E2EF PRG:62EF C9 FD
bcc Sub_E301 ; CPU:$E2F1 PRG:62F1 90 0E
; -----------------------------------------------------------------------------
; Routine: Sub_E2F3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E2F3:
lda $038F,x ; CPU:$E2F3 PRG:62F3 BD 8F 03
sec ; CPU:$E2F6 PRG:62F6 38
sbc #$20 ; CPU:$E2F7 PRG:62F7 E9 20
sta $038F,x ; CPU:$E2F9 PRG:62F9 9D 8F 03
bcs Sub_E301 ; CPU:$E2FC PRG:62FC B0 03
dec $038E,x ; CPU:$E2FE PRG:62FE DE 8E 03
; -----------------------------------------------------------------------------
; Routine: Sub_E301
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E301:
jsr DispatchAddStoreLda6 ; CPU:$E301 PRG:6301 20 3C EB
jsr DispatchLdyE ; CPU:$E304 PRG:6304 20 87 EB
lsr a ; CPU:$E307 PRG:6307 4A
; -----------------------------------------------------------------------------
; Routine: Sub_E308
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E308:
bcc Sub_E312 ; CPU:$E308 PRG:6308 90 08
lda #$03 ; CPU:$E30A PRG:630A A9 03
jsr ObjSpritesInit5 ; CPU:$E30C PRG:630C 20 54 BF
jmp DispatchStoreStoreStoreLda ; CPU:$E30F PRG:630F 4C 5B E2
; -----------------------------------------------------------------------------
; Routine: Sub_E312
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E312:
jsr DispatchLdaI ; CPU:$E312 PRG:6312 20 E5 EB
jsr DispatchLdaEorEorAslAslRol ; CPU:$E315 PRG:6315 20 5C F5
dec $0389,x ; CPU:$E318 PRG:6318 DE 89 03
bne DispatchJsrLdaBneJsrAnd ; CPU:$E31B PRG:631B D0 B2
lda #$08 ; CPU:$E31D PRG:631D A9 08
sta $0389,x ; CPU:$E31F PRG:631F 9D 89 03
lda $038A,x ; CPU:$E322 PRG:6322 BD 8A 03
clc ; CPU:$E325 PRG:6325 18
adc #$01 ; CPU:$E326 PRG:6326 69 01
cmp #$1C ; CPU:$E328 PRG:6328 C9 1C
beq DispatchJsrLdaBneJsrAnd ; CPU:$E32A PRG:632A F0 A3
sta $038A,x ; CPU:$E32C PRG:632C 9D 8A 03
jmp DispatchJsrLdaBneJsrAnd ; CPU:$E32F PRG:632F 4C CF E2
; -----------------------------------------------------------------------------
; Routine: Sub_E332
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E332:
jsr DispatchCmpLdaBccLda ; CPU:$E332 PRG:6332 20 51 E1
lda #$05 ; CPU:$E335 PRG:6335 A9 05
jsr DispatchStoreJsrSubBcsEor ; CPU:$E337 PRG:6337 20 69 EC
lda #$1C ; CPU:$E33A PRG:633A A9 1C
sta $038A,x ; CPU:$E33C PRG:633C 9D 8A 03
lda #$00 ; CPU:$E33F PRG:633F A9 00
; -----------------------------------------------------------------------------
; Routine: Sub_E341
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E341:
sta $038B,x ; CPU:$E341 PRG:6341 9D 8B 03
; -----------------------------------------------------------------------------
; Routine: Sub_E344
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E344:
jsr PopXY ; CPU:$E344 PRG:6344 20 6F DF
jsr DispatchAddStoreLda6 ; CPU:$E347 PRG:6347 20 3C EB
lda $0386,x ; CPU:$E34A PRG:634A BD 86 03
bmi Sub_E344 ; CPU:$E34D PRG:634D 30 F5
; -----------------------------------------------------------------------------
; Routine: Sub_E34F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E34F:
jsr PopXY ; CPU:$E34F PRG:634F 20 6F DF
jsr DispatchAddStoreLda6 ; CPU:$E352 PRG:6352 20 3C EB
jsr DispatchLdyE ; CPU:$E355 PRG:6355 20 87 EB
lsr a ; CPU:$E358 PRG:6358 4A
bcc Sub_E35E ; CPU:$E359 PRG:6359 90 03
jmp DispatchLdaJsrJmpF ; CPU:$E35B PRG:635B 4C FB E3
; -----------------------------------------------------------------------------
; Routine: Sub_E35E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E35E:
jsr DispatchLdaI ; CPU:$E35E PRG:635E 20 E5 EB
lda $038B,x ; CPU:$E361 PRG:6361 BD 8B 03
bne Sub_E371 ; CPU:$E364 PRG:6364 D0 0B
jsr DispatchLdaEorEorAslAslRol ; CPU:$E366 PRG:6366 20 5C F5
and Zp98 ; CPU:$E369 PRG:6369 25 98
clc ; CPU:$E36B PRG:636B 18
adc #$10 ; CPU:$E36C PRG:636C 69 10
sta $038B,x ; CPU:$E36E PRG:636E 9D 8B 03
; -----------------------------------------------------------------------------
; Routine: Sub_E371
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E371:
dec $038B,x ; CPU:$E371 PRG:6371 DE 8B 03
bne Sub_E379 ; CPU:$E374 PRG:6374 D0 03
jsr DispatchJsrStoreLdaClc ; CPU:$E376 PRG:6376 20 2F CF
; -----------------------------------------------------------------------------
; Routine: Sub_E379
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E379:
lda $0384,x ; CPU:$E379 PRG:6379 BD 84 03
sec ; CPU:$E37C PRG:637C 38
sbc Zp23 ; CPU:$E37D PRG:637D E5 23
clc ; CPU:$E37F PRG:637F 18
adc #$20 ; CPU:$E380 PRG:6380 69 20
cmp #$41 ; CPU:$E382 PRG:6382 C9 41
bcs Sub_E34F ; CPU:$E384 PRG:6384 B0 C9
lda #$18 ; CPU:$E386 PRG:6386 A9 18
sta $0389,x ; CPU:$E388 PRG:6388 9D 89 03
ldy #$20 ; CPU:$E38B PRG:638B A0 20
lda $0384,x ; CPU:$E38D PRG:638D BD 84 03
sec ; CPU:$E390 PRG:6390 38
sbc Zp23 ; CPU:$E391 PRG:6391 E5 23
bcs Sub_E397 ; CPU:$E393 PRG:6393 B0 02
ldy #$E0 ; CPU:$E395 PRG:6395 A0 E0
; -----------------------------------------------------------------------------
; Routine: Sub_E397
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E397:
tya ; CPU:$E397 PRG:6397 98
sta $0382,x ; CPU:$E398 PRG:6398 9D 82 03
; -----------------------------------------------------------------------------
; Routine: DispatchJsrLdaBneJsrAnd3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrLdaBneJsrAnd3:
jsr PopXY ; CPU:$E39B PRG:639B 20 6F DF
lda $038B,x ; CPU:$E39E PRG:639E BD 8B 03
bne Sub_E3AE ; CPU:$E3A1 PRG:63A1 D0 0B
jsr DispatchLdaEorEorAslAslRol ; CPU:$E3A3 PRG:63A3 20 5C F5
and Zp98 ; CPU:$E3A6 PRG:63A6 25 98
clc ; CPU:$E3A8 PRG:63A8 18
adc #$10 ; CPU:$E3A9 PRG:63A9 69 10
sta $038B,x ; CPU:$E3AB PRG:63AB 9D 8B 03
; -----------------------------------------------------------------------------
; Routine: Sub_E3AE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E3AE:
dec $038B,x ; CPU:$E3AE PRG:63AE DE 8B 03
bne Sub_E3B6 ; CPU:$E3B1 PRG:63B1 D0 03
jsr DispatchJsrStoreLdaClc ; CPU:$E3B3 PRG:63B3 20 2F CF
; -----------------------------------------------------------------------------
; Routine: Sub_E3B6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E3B6:
lda $038E,x ; CPU:$E3B6 PRG:63B6 BD 8E 03
bpl Sub_E3BF ; CPU:$E3B9 PRG:63B9 10 04
cmp #$FD ; CPU:$E3BB PRG:63BB C9 FD
bcc Sub_E3CD ; CPU:$E3BD PRG:63BD 90 0E
; -----------------------------------------------------------------------------
; Routine: Sub_E3BF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E3BF:
lda $038F,x ; CPU:$E3BF PRG:63BF BD 8F 03
sec ; CPU:$E3C2 PRG:63C2 38
sbc #$40 ; CPU:$E3C3 PRG:63C3 E9 40
sta $038F,x ; CPU:$E3C5 PRG:63C5 9D 8F 03
bcs Sub_E3CD ; CPU:$E3C8 PRG:63C8 B0 03
dec $038E,x ; CPU:$E3CA PRG:63CA DE 8E 03
; -----------------------------------------------------------------------------
; Routine: Sub_E3CD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E3CD:
lda $038C,x ; CPU:$E3CD PRG:63CD BD 8C 03
cmp #$04 ; CPU:$E3D0 PRG:63D0 C9 04
beq Sub_E3F2 ; CPU:$E3D2 PRG:63D2 F0 1E
cmp #$FC ; CPU:$E3D4 PRG:63D4 C9 FC
beq Sub_E3F2 ; CPU:$E3D6 PRG:63D6 F0 1A
lda $038D,x ; CPU:$E3D8 PRG:63D8 BD 8D 03
clc ; CPU:$E3DB PRG:63DB 18
adc $0382,x ; CPU:$E3DC PRG:63DC 7D 82 03
sta $038D,x ; CPU:$E3DF PRG:63DF 9D 8D 03
ldy #$00 ; CPU:$E3E2 PRG:63E2 A0 00
lda $0382,x ; CPU:$E3E4 PRG:63E4 BD 82 03
bpl Sub_E3EB ; CPU:$E3E7 PRG:63E7 10 02
ldy #$FF ; CPU:$E3E9 PRG:63E9 A0 FF
; -----------------------------------------------------------------------------
; Routine: Sub_E3EB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E3EB:
tya ; CPU:$E3EB PRG:63EB 98
adc $038C,x ; CPU:$E3EC PRG:63EC 7D 8C 03
sta $038C,x ; CPU:$E3EF PRG:63EF 9D 8C 03
; -----------------------------------------------------------------------------
; Routine: Sub_E3F2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E3F2:
jsr DispatchAddStoreLda6 ; CPU:$E3F2 PRG:63F2 20 3C EB
jsr DispatchLdyE ; CPU:$E3F5 PRG:63F5 20 87 EB
lsr a ; CPU:$E3F8 PRG:63F8 4A
bcc Sub_E403 ; CPU:$E3F9 PRG:63F9 90 08
; -----------------------------------------------------------------------------
; Routine: DispatchLdaJsrJmpF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaJsrJmpF:
lda #$07 ; CPU:$E3FB PRG:63FB A9 07
jsr ObjSpritesInit5 ; CPU:$E3FD PRG:63FD 20 54 BF
jmp DispatchStoreStoreStoreLda ; CPU:$E400 PRG:6400 4C 5B E2
; -----------------------------------------------------------------------------
; Routine: Sub_E403
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E403:
jsr DispatchLdaI ; CPU:$E403 PRG:6403 20 E5 EB
dec $0389,x ; CPU:$E406 PRG:6406 DE 89 03
; ---- data $E409-$E409 (1 bytes) ----
.byte $D0 ; CPU:$E409 PRG:6409 D0
; -----------------------------------------------------------------------------
; Routine: Sub_E40A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E40A:
.byte $90, $A9 ; CPU:$E40A PRG:640A 90 A9 -- bcc $E3B5 (target falls inside jsr operand at $E3B3; dead code)
php ; CPU:$E40C PRG:640C 08
sta $0389,x ; CPU:$E40D PRG:640D 9D 89 03
lda $038A,x ; CPU:$E410 PRG:6410 BD 8A 03
clc ; CPU:$E413 PRG:6413 18
adc #$01 ; CPU:$E414 PRG:6414 69 01
cmp #$20 ; CPU:$E416 PRG:6416 C9 20
beq DispatchJsrLdaBneJsrAnd3 ; CPU:$E418 PRG:6418 F0 81
sta $038A,x ; CPU:$E41A PRG:641A 9D 8A 03
jmp DispatchJsrLdaBneJsrAnd3 ; CPU:$E41D PRG:641D 4C 9B E3
; ---- data $E420-$E44B (44 bytes) ----
.byte $20, $51, $E1, $A9, $08, $20, $69, $EC, $A9, $2C, $9D, $8A, $03, $BD, $82, $03 ; CPU:$E420 PRG:6420 20 51 E1 A9 08 20 69 EC A9 2C 9D 8A 03 BD 82 03
.byte $18, $69, $03, $29, $1F, $C9, $07, $90, $13, $BD, $82, $03, $C9, $10, $A9, $03 ; CPU:$E430 PRG:6430 18 69 03 29 1F C9 07 90 13 BD 82 03 C9 10 A9 03
.byte $90, $02, $A9, $1D, $9D, $82, $03, $A9, $08, $20, $E3, $EC ; CPU:$E440 PRG:6440 90 02 A9 1D 9D 82 03 A9 08 20 E3 EC
; -----------------------------------------------------------------------------
; Routine: DispatchJsrJsrLdaBmiJsr
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrJsrLdaBmiJsr:
jsr PopXY ; CPU:$E44C PRG:644C 20 6F DF
jsr DispatchAddStoreLda6 ; CPU:$E44F PRG:644F 20 3C EB
lda $0386,x ; CPU:$E452 PRG:6452 BD 86 03
bmi DispatchJsrJsrLdaBmiJsr ; CPU:$E455 PRG:6455 30 F5
jsr DispatchLdyD ; CPU:$E457 PRG:6457 20 CC E9
lsr a ; CPU:$E45A PRG:645A 4A
bcc Sub_E465 ; CPU:$E45B PRG:645B 90 08
lda #$01 ; CPU:$E45D PRG:645D A9 01
jsr ObjSpritesInit6 ; CPU:$E45F PRG:645F 20 4D BF
jmp DispatchStoreStoreStoreLda ; CPU:$E462 PRG:6462 4C 5B E2
; -----------------------------------------------------------------------------
; Routine: Sub_E465
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E465:
jsr DispatchLdaI ; CPU:$E465 PRG:6465 20 E5 EB
inc $0389,x ; CPU:$E468 PRG:6468 FE 89 03
lda $0389,x ; CPU:$E46B PRG:646B BD 89 03
and #$03 ; CPU:$E46E PRG:646E 29 03
bne DispatchJsrJsrLdaBmiJsr ; CPU:$E470 PRG:6470 D0 DA
inc $038A,x ; CPU:$E472 PRG:6472 FE 8A 03
lda $038A,x ; CPU:$E475 PRG:6475 BD 8A 03
and #$03 ; CPU:$E478 PRG:6478 29 03
ora #$2C ; CPU:$E47A PRG:647A 09 2C
sta $038A,x ; CPU:$E47C PRG:647C 9D 8A 03
jmp DispatchJsrJsrLdaBmiJsr ; CPU:$E47F PRG:647F 4C 4C E4
; ---- data $E482-$E4E3 (98 bytes) ----
.byte $A9, $30, $9D, $8A, $03, $20, $5C, $F5, $29, $7F, $C9, $60, $B0, $04, $C9, $20 ; CPU:$E482 PRG:6482 A9 30 9D 8A 03 20 5C F5 29 7F C9 60 B0 04 C9 20
.byte $B0, $08, $20, $5C, $F5, $29, $3F, $18, $69, $20, $9D, $87, $03, $20, $5C, $F5 ; CPU:$E492 PRG:6492 B0 08 20 5C F5 29 3F 18 69 20 9D 87 03 20 5C F5
.byte $C9, $F0, $90, $08, $20, $5C, $F5, $29, $7F, $18, $69, $60, $9D, $84, $03, $A9 ; CPU:$E4A2 PRG:64A2 C9 F0 90 08 20 5C F5 29 7F 18 69 60 9D 84 03 A9
.byte $00, $9D, $83, $03, $9D, $86, $03, $60, $20, $82, $E4, $A9, $0A, $9D, $8B, $03 ; CPU:$E4B2 PRG:64B2 00 9D 83 03 9D 86 03 60 20 82 E4 A9 0A 9D 8B 03
.byte $20, $6F, $DF, $20, $9E, $E5, $BD, $8A, $03, $C9, $3C, $D0, $F3, $EE, $0D, $06 ; CPU:$E4C2 PRG:64C2 20 6F DF 20 9E E5 BD 8A 03 C9 3C D0 F3 EE 0D 06
.byte $20, $5C, $F5, $29, $3F, $18, $69, $10, $9D, $89, $03, $A9, $00, $9D, $82, $03 ; CPU:$E4D2 PRG:64D2 20 5C F5 29 3F 18 69 10 9D 89 03 A9 00 9D 82 03
.byte $A9, $03 ; CPU:$E4E2 PRG:64E2 A9 03
; -----------------------------------------------------------------------------
; Routine: Sub_E4E4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E4E4:
jsr DispatchStoreLdaStoreStoreStore ; CPU:$E4E4 PRG:64E4 20 E3 EC
; -----------------------------------------------------------------------------
; Routine: Sub_E4E7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E4E7:
jsr PopXY ; CPU:$E4E7 PRG:64E7 20 6F DF
jsr DispatchAddStoreLda6 ; CPU:$E4EA PRG:64EA 20 3C EB
jsr DispatchLdaI ; CPU:$E4ED PRG:64ED 20 E5 EB
jsr DispatchLdyD ; CPU:$E4F0 PRG:64F0 20 CC E9
lsr a ; CPU:$E4F3 PRG:64F3 4A
bcc Sub_E4F9 ; CPU:$E4F4 PRG:64F4 90 03
jmp DispatchLdaJsrJmpG ; CPU:$E4F6 PRG:64F6 4C 32 E5
; -----------------------------------------------------------------------------
; Routine: Sub_E4F9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E4F9:
dec $0389,x ; CPU:$E4F9 PRG:64F9 DE 89 03
bne Sub_E4E7 ; CPU:$E4FC PRG:64FC D0 E9
jmp DispatchJsrJsrJmp3 ; CPU:$E4FE PRG:64FE 4C 48 E5
; ---- data $E501-$E51F (31 bytes) ----
.byte $20, $82, $E4, $A9, $14, $9D, $8B, $03, $20, $6F, $DF, $20, $9E, $E5, $BD, $8A ; CPU:$E501 PRG:6501 20 82 E4 A9 14 9D 8B 03 20 6F DF 20 9E E5 BD 8A
.byte $03, $C9, $3C, $D0, $F3, $EE, $0D, $06, $A9, $00, $9D, $82, $03, $A9, $03 ; CPU:$E511 PRG:6511 03 C9 3C D0 F3 EE 0D 06 A9 00 9D 82 03 A9 03
; -----------------------------------------------------------------------------
; Routine: Sub_E520
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E520:
jsr DispatchStoreLdaStoreStoreStore ; CPU:$E520 PRG:6520 20 E3 EC
; -----------------------------------------------------------------------------
; Routine: Sub_E523
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E523:
jsr PopXY ; CPU:$E523 PRG:6523 20 6F DF
jsr DispatchAddStoreLda6 ; CPU:$E526 PRG:6526 20 3C EB
jsr DispatchLdaI ; CPU:$E529 PRG:6529 20 E5 EB
jsr DispatchLdyD ; CPU:$E52C PRG:652C 20 CC E9
lsr a ; CPU:$E52F PRG:652F 4A
bcc Sub_E53B ; CPU:$E530 PRG:6530 90 09
; -----------------------------------------------------------------------------
; Routine: DispatchLdaJsrJmpG
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaJsrJmpG:
lda $038B,x ; CPU:$E532 PRG:6532 BD 8B 03
jsr ObjSpritesInit6 ; CPU:$E535 PRG:6535 20 4D BF
jmp DispatchStoreStoreStoreLda ; CPU:$E538 PRG:6538 4C 5B E2
; -----------------------------------------------------------------------------
; Routine: Sub_E53B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E53B:
lda Zp23 ; CPU:$E53B PRG:653B A5 23
sec ; CPU:$E53D PRG:653D 38
sbc $0384,x ; CPU:$E53E PRG:653E FD 84 03
clc ; CPU:$E541 PRG:6541 18
adc #$15 ; CPU:$E542 PRG:6542 69 15
cmp #$33 ; CPU:$E544 PRG:6544 C9 33
bcs Sub_E523 ; CPU:$E546 PRG:6546 B0 DB
; -----------------------------------------------------------------------------
; Routine: DispatchJsrJsrJmp3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrJsrJmp3:
lda #$01 ; CPU:$E548 PRG:6548 A9 01
jsr DispatchStoreJsrSubBcsEor ; CPU:$E54A PRG:654A 20 69 EC
jsr DispatchLdaA ; CPU:$E54D PRG:654D 20 FB CE
jmp DispatchJsrLdaCmpBccLda ; CPU:$E550 PRG:6550 4C 3C E6
; ---- data $E553-$E599 (71 bytes) ----
.byte $20, $82, $E4, $A9, $0F, $9D, $8B, $03, $20, $6F, $DF, $20, $9E, $E5, $BD, $8A ; CPU:$E553 PRG:6553 20 82 E4 A9 0F 9D 8B 03 20 6F DF 20 9E E5 BD 8A
.byte $03, $C9, $3C, $D0, $F3, $EE, $0D, $06, $20, $5C, $F5, $29, $3F, $18, $69, $10 ; CPU:$E563 PRG:6563 03 C9 3C D0 F3 EE 0D 06 20 5C F5 29 3F 18 69 10
.byte $9D, $89, $03, $A9, $03, $20, $69, $EC, $4C, $E7, $E4, $20, $82, $E4, $A9, $1E ; CPU:$E573 PRG:6573 9D 89 03 A9 03 20 69 EC 4C E7 E4 20 82 E4 A9 1E
.byte $9D, $8B, $03, $20, $6F, $DF, $20, $9E, $E5, $BD, $8A, $03, $C9, $3C, $D0, $F3 ; CPU:$E583 PRG:6583 9D 8B 03 20 6F DF 20 9E E5 BD 8A 03 C9 3C D0 F3
.byte $EE, $0D, $06, $A9, $03, $20, $69 ; CPU:$E593 PRG:6593 EE 0D 06 A9 03 20 69
; -----------------------------------------------------------------------------
; Routine: Sub_E59A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E59A:
cpx $234C ; CPU:$E59A PRG:659A EC 4C 23
sbc Zp20 ; CPU:$E59D PRG:659D E5 20
sbc ZpEB ; CPU:$E59F PRG:659F E5 EB
inc $0389,x ; CPU:$E5A1 PRG:65A1 FE 89 03
lda $0389,x ; CPU:$E5A4 PRG:65A4 BD 89 03
and #$01 ; CPU:$E5A7 PRG:65A7 29 01
bne Sub_E5AE ; CPU:$E5A9 PRG:65A9 D0 03
inc $038A,x ; CPU:$E5AB PRG:65AB FE 8A 03
; -----------------------------------------------------------------------------
; Routine: Sub_E5AE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E5AE:
rts ; CPU:$E5AE PRG:65AE 60
; ---- data $E5AF-$E63B (141 bytes) ----
.byte $20, $82, $E4, $20, $6F, $DF, $20, $9E, $E5, $BD, $8A, $03, $C9, $3C, $D0, $F3 ; CPU:$E5AF PRG:65AF 20 82 E4 20 6F DF 20 9E E5 BD 8A 03 C9 3C D0 F3
.byte $EE, $0D, $06, $FE, $8A, $03, $20, $5C, $F5, $29, $3F, $18, $69, $10, $9D, $89 ; CPU:$E5BF PRG:65BF EE 0D 06 FE 8A 03 20 5C F5 29 3F 18 69 10 9D 89
.byte $03, $A9, $03, $20, $69, $EC, $20, $6F, $DF, $20, $3C, $EB, $20, $E5, $EB, $20 ; CPU:$E5CF PRG:65CF 03 A9 03 20 69 EC 20 6F DF 20 3C EB 20 E5 EB 20
.byte $CC, $E9, $4A, $90, $08, $A9, $06, $20, $54, $BF, $4C, $5B, $E2, $DE, $89, $03 ; CPU:$E5DF PRG:65DF CC E9 4A 90 08 A9 06 20 54 BF 4C 5B E2 DE 89 03
.byte $D0, $E4, $4C, $34, $E6, $20, $82, $E4, $20, $6F, $DF, $20, $9E, $E5, $BD, $8A ; CPU:$E5EF PRG:65EF D0 E4 4C 34 E6 20 82 E4 20 6F DF 20 9E E5 BD 8A
.byte $03, $C9, $3C, $D0, $F3, $EE, $0D, $06, $FE, $8A, $03, $A9, $03, $20, $69, $EC ; CPU:$E5FF PRG:65FF 03 C9 3C D0 F3 EE 0D 06 FE 8A 03 A9 03 20 69 EC
.byte $20, $6F, $DF, $20, $3C, $EB, $20, $E5, $EB, $20, $CC, $E9, $4A, $90, $08, $A9 ; CPU:$E60F PRG:660F 20 6F DF 20 3C EB 20 E5 EB 20 CC E9 4A 90 08 A9
.byte $0F, $20, $54, $BF, $4C, $5B, $E2, $20, $F8, $D0, $38, $FD, $84, $03, $18, $69 ; CPU:$E61F PRG:661F 0F 20 54 BF 4C 5B E2 20 F8 D0 38 FD 84 03 18 69
.byte $15, $C9, $33, $B0, $DB, $A9, $01, $20, $69, $EC, $20, $C3, $CE ; CPU:$E62F PRG:662F 15 C9 33 B0 DB A9 01 20 69 EC 20 C3 CE
; -----------------------------------------------------------------------------
; Routine: DispatchJsrLdaCmpBccLda
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrLdaCmpBccLda:
jsr PopXY ; CPU:$E63C PRG:663C 20 6F DF
lda $038A,x ; CPU:$E63F PRG:663F BD 8A 03
cmp #$3C ; CPU:$E642 PRG:6642 C9 3C
bcc Sub_E64B ; CPU:$E644 PRG:6644 90 05
lda #$3B ; CPU:$E646 PRG:6646 A9 3B
; -----------------------------------------------------------------------------
; Routine: Sub_E648
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E648:
sta $038A,x ; CPU:$E648 PRG:6648 9D 8A 03
; -----------------------------------------------------------------------------
; Routine: Sub_E64B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E64B:
jsr DispatchLdaI ; CPU:$E64B PRG:664B 20 E5 EB
jsr PopXY ; CPU:$E64E PRG:664E 20 6F DF
dec $0389,x ; CPU:$E651 PRG:6651 DE 89 03
lda $0389,x ; CPU:$E654 PRG:6654 BD 89 03
and #$01 ; CPU:$E657 PRG:6657 29 01
bne Sub_E64B ; CPU:$E659 PRG:6659 D0 F0
dec $038A,x ; CPU:$E65B PRG:665B DE 8A 03
lda $038A,x ; CPU:$E65E PRG:665E BD 8A 03
cmp #$2F ; CPU:$E661 PRG:6661 C9 2F
bne Sub_E64B ; CPU:$E663 PRG:6663 D0 E6
jmp DispatchJsrTaxLsrs ; CPU:$E665 PRG:6665 4C 15 DF
; ---- data $E668-$E6B8 (81 bytes) ----
; referenced by `lda $E680,y` at $E86D (operand $E680 falls inside this region)
.byte $A9, $F0, $9D, $8B, $03, $A9, $E0, $9D, $84, $03, $20, $6F, $DF, $A5, $3A, $F0 ; CPU:$E668 PRG:6668 A9 F0 9D 8B 03 A9 E0 9D 84 03 20 6F DF A5 3A F0
.byte $F9, $A9, $00, $85, $3A, $4C, $9C, $E6, $24, $27, $26, $25, $24, $27, $26, $25 ; CPU:$E678 PRG:6678 F9 A9 00 85 3A 4C 9C E6 24 27 26 25 24 27 26 25
.byte $24, $A9, $10, $9D, $84, $03, $9D, $8B, $03, $A9, $01, $85, $3A, $20, $6F, $DF ; CPU:$E688 PRG:6688 24 A9 10 9D 84 03 9D 8B 03 A9 01 85 3A 20 6F DF
.byte $A5, $3A, $D0, $F9, $A9, $00, $9D, $83, $03, $9D, $85, $03, $9D, $88, $03, $A9 ; CPU:$E698 PRG:6698 A5 3A D0 F9 A9 00 9D 83 03 9D 85 03 9D 88 03 A9
.byte $20, $9D, $8A, $03, $A9, $FF, $9D, $86, $03, $A5, $24, $18, $69, $20, $9D, $87 ; CPU:$E6A8 PRG:66A8 20 9D 8A 03 A9 FF 9D 86 03 A5 24 18 69 20 9D 87
.byte $03 ; CPU:$E6B8 PRG:66B8 03
; -----------------------------------------------------------------------------
; Routine: DispatchJsrLdaOraBneLda
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrLdaOraBneLda:
jsr PopXY ; CPU:$E6B9 PRG:66B9 20 6F DF
lda $0386,x ; CPU:$E6BC PRG:66BC BD 86 03
ora $0383,x ; CPU:$E6BF PRG:66BF 1D 83 03
bne Sub_E6CE ; CPU:$E6C2 PRG:66C2 D0 0A
lda $0384,x ; CPU:$E6C4 PRG:66C4 BD 84 03
cmp #$F1 ; CPU:$E6C7 PRG:66C7 C9 F1
bcs Sub_E6CE ; CPU:$E6C9 PRG:66C9 B0 03
jsr DispatchLdaI ; CPU:$E6CB PRG:66CB 20 E5 EB
; -----------------------------------------------------------------------------
; Routine: Sub_E6CE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E6CE:
ldy #$03 ; CPU:$E6CE PRG:66CE A0 03
lda Zp24 ; CPU:$E6D0 PRG:66D0 A5 24
sec ; CPU:$E6D2 PRG:66D2 38
sbc #$10 ; CPU:$E6D3 PRG:66D3 E9 10
sec ; CPU:$E6D5 PRG:66D5 38
sbc $0387,x ; CPU:$E6D6 PRG:66D6 FD 87 03
sta ObjectXLo ; CPU:$E6D9 PRG:66D9 85 37
lda $0386,x ; CPU:$E6DB PRG:66DB BD 86 03
bmi Sub_E6FD ; CPU:$E6DE PRG:66DE 30 1D
lda ObjectXLo ; CPU:$E6E0 PRG:66E0 A5 37
cmp #$03 ; CPU:$E6E2 PRG:66E2 C9 03
bcc Sub_E744 ; CPU:$E6E4 PRG:66E4 90 5E
cmp #$FE ; CPU:$E6E6 PRG:66E6 C9 FE
bcs Sub_E744 ; CPU:$E6E8 PRG:66E8 B0 5A
lda Zp24 ; CPU:$E6EA PRG:66EA A5 24
sec ; CPU:$E6EC PRG:66EC 38
sbc #$10 ; CPU:$E6ED PRG:66ED E9 10
sec ; CPU:$E6EF PRG:66EF 38
sbc $0387,x ; CPU:$E6F0 PRG:66F0 FD 87 03
bcs Sub_E6FD ; CPU:$E6F3 PRG:66F3 B0 08
eor #$FF ; CPU:$E6F5 PRG:66F5 49 FF
sta ObjectXLo ; CPU:$E6F7 PRG:66F7 85 37
inc ObjectXLo ; CPU:$E6F9 PRG:66F9 E6 37
ldy #$FF ; CPU:$E6FB PRG:66FB A0 FF
; -----------------------------------------------------------------------------
; Routine: Sub_E6FD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E6FD:
tya ; CPU:$E6FD PRG:66FD 98
clc ; CPU:$E6FE PRG:66FE 18
adc $0387,x ; CPU:$E6FF PRG:66FF 7D 87 03
sta $0387,x ; CPU:$E702 PRG:6702 9D 87 03
bcc Sub_E70D ; CPU:$E705 PRG:6705 90 06
tya ; CPU:$E707 PRG:6707 98
bmi Sub_E70D ; CPU:$E708 PRG:6708 30 03
inc $0386,x ; CPU:$E70A PRG:670A FE 86 03
; -----------------------------------------------------------------------------
; Routine: Sub_E70D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E70D:
jsr DispatchDecLdaBplIncInc ; CPU:$E70D PRG:670D 20 87 E8
lda Zp23 ; CPU:$E710 PRG:6710 A5 23
clc ; CPU:$E712 PRG:6712 18
adc $038B,x ; CPU:$E713 PRG:6713 7D 8B 03
cmp #$F1 ; CPU:$E716 PRG:6716 C9 F1
; -----------------------------------------------------------------------------
; Routine: Sub_E718
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E718:
bcc Sub_E722 ; CPU:$E718 PRG:6718 90 08
lda $038B,x ; CPU:$E71A PRG:671A BD 8B 03
eor #$FF ; CPU:$E71D PRG:671D 49 FF
clc ; CPU:$E71F PRG:671F 18
adc #$01 ; CPU:$E720 PRG:6720 69 01
; -----------------------------------------------------------------------------
; Routine: Sub_E722
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E722:
sec ; CPU:$E722 PRG:6722 38
sbc $0384,x ; CPU:$E723 PRG:6723 FD 84 03
beq DispatchJsrLdaOraBneLda ; CPU:$E726 PRG:6726 F0 91
sta ObjectXHi ; CPU:$E728 PRG:6728 85 38
bcs Sub_E73B ; CPU:$E72A PRG:672A B0 0F
eor #$FF ; CPU:$E72C PRG:672C 49 FF
sta ObjectXHi ; CPU:$E72E PRG:672E 85 38
inc ObjectXHi ; CPU:$E730 PRG:6730 E6 38
jsr DispatchLdaStoreLdaStoreLdy; CPU:$E732 PRG:6732 20 3F ED
jsr DispatchLdyB ; CPU:$E735 PRG:6735 20 A9 E8
jmp DispatchJsrLdaOraBneLda ; CPU:$E738 PRG:6738 4C B9 E6
; -----------------------------------------------------------------------------
; Routine: Sub_E73B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E73B:
jsr DispatchLdaStoreLdaStoreLdy; CPU:$E73B PRG:673B 20 3F ED
jsr DispatchLdyC ; CPU:$E73E PRG:673E 20 C0 E8
jmp DispatchJsrLdaOraBneLda ; CPU:$E741 PRG:6741 4C B9 E6
; -----------------------------------------------------------------------------
; Routine: Sub_E744
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E744:
lda #$F0 ; CPU:$E744 PRG:6744 A9 F0
sta $0389,x ; CPU:$E746 PRG:6746 9D 89 03
; -----------------------------------------------------------------------------
; Routine: Sub_E749
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E749:
jsr PopXY ; CPU:$E749 PRG:6749 20 6F DF
lda $0384,x ; CPU:$E74C PRG:674C BD 84 03
cmp #$F1 ; CPU:$E74F PRG:674F C9 F1
bcs Sub_E756 ; CPU:$E751 PRG:6751 B0 03
jsr DispatchLdaI ; CPU:$E753 PRG:6753 20 E5 EB
; -----------------------------------------------------------------------------
; Routine: Sub_E756
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E756:
lda Zp23 ; CPU:$E756 PRG:6756 A5 23
clc ; CPU:$E758 PRG:6758 18
adc $038B,x ; CPU:$E759 PRG:6759 7D 8B 03
sta $0384,x ; CPU:$E75C PRG:675C 9D 84 03
lda Zp24 ; CPU:$E75F PRG:675F A5 24
sec ; CPU:$E761 PRG:6761 38
sbc #$10 ; CPU:$E762 PRG:6762 E9 10
sta $0387,x ; CPU:$E764 PRG:6764 9D 87 03
jsr DispatchLdaCmpBcsCmpBcs ; CPU:$E767 PRG:6767 20 55 E8
dec $0389,x ; CPU:$E76A PRG:676A DE 89 03
bne Sub_E749 ; CPU:$E76D PRG:676D D0 DA
ldy #$28 ; CPU:$E76F PRG:676F A0 28
lda $038B,x ; CPU:$E771 PRG:6771 BD 8B 03
bpl Sub_E778 ; CPU:$E774 PRG:6774 10 02
ldy #$24 ; CPU:$E776 PRG:6776 A0 24
; -----------------------------------------------------------------------------
; Routine: Sub_E778
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E778:
tya ; CPU:$E778 PRG:6778 98
sta $038A,x ; CPU:$E779 PRG:6779 9D 8A 03
lda #$20 ; CPU:$E77C PRG:677C A9 20
sta $0389,x ; CPU:$E77E PRG:677E 9D 89 03
; -----------------------------------------------------------------------------
; Routine: Sub_E781
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E781:
jsr PopXY ; CPU:$E781 PRG:6781 20 6F DF
lda $0384,x ; CPU:$E784 PRG:6784 BD 84 03
cmp #$F1 ; CPU:$E787 PRG:6787 C9 F1
bcs Sub_E78E ; CPU:$E789 PRG:6789 B0 03
jsr DispatchLdaI ; CPU:$E78B PRG:678B 20 E5 EB
; -----------------------------------------------------------------------------
; Routine: Sub_E78E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E78E:
lda Zp23 ; CPU:$E78E PRG:678E A5 23
clc ; CPU:$E790 PRG:6790 18
adc $038B,x ; CPU:$E791 PRG:6791 7D 8B 03
sta $0384,x ; CPU:$E794 PRG:6794 9D 84 03
lda Zp24 ; CPU:$E797 PRG:6797 A5 24
sec ; CPU:$E799 PRG:6799 38
sbc #$10 ; CPU:$E79A PRG:679A E9 10
sta $0387,x ; CPU:$E79C PRG:679C 9D 87 03
dec $0389,x ; CPU:$E79F PRG:679F DE 89 03
bne Sub_E781 ; CPU:$E7A2 PRG:67A2 D0 DD
lda #$04 ; CPU:$E7A4 PRG:67A4 A9 04
sta $0389,x ; CPU:$E7A6 PRG:67A6 9D 89 03
inc $038A,x ; CPU:$E7A9 PRG:67A9 FE 8A 03
lda $038A,x ; CPU:$E7AC PRG:67AC BD 8A 03
and #$03 ; CPU:$E7AF PRG:67AF 29 03
cmp #$03 ; CPU:$E7B1 PRG:67B1 C9 03
bne Sub_E781 ; CPU:$E7B3 PRG:67B3 D0 CC
lda $038B,x ; CPU:$E7B5 PRG:67B5 BD 8B 03
sta $0389,x ; CPU:$E7B8 PRG:67B8 9D 89 03
; -----------------------------------------------------------------------------
; Routine: Sub_E7BB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E7BB:
jsr PopXY ; CPU:$E7BB PRG:67BB 20 6F DF
lda $0384,x ; CPU:$E7BE PRG:67BE BD 84 03
cmp #$F1 ; CPU:$E7C1 PRG:67C1 C9 F1
bcs Sub_E7C8 ; CPU:$E7C3 PRG:67C3 B0 03
jsr DispatchLdaI ; CPU:$E7C5 PRG:67C5 20 E5 EB
; -----------------------------------------------------------------------------
; Routine: Sub_E7C8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E7C8:
lda $0389,x ; CPU:$E7C8 PRG:67C8 BD 89 03
clc ; CPU:$E7CB PRG:67CB 18
adc Zp23 ; CPU:$E7CC PRG:67CC 65 23
sta $0384,x ; CPU:$E7CE PRG:67CE 9D 84 03
lda Zp24 ; CPU:$E7D1 PRG:67D1 A5 24
sec ; CPU:$E7D3 PRG:67D3 38
sbc #$10 ; CPU:$E7D4 PRG:67D4 E9 10
sta $0387,x ; CPU:$E7D6 PRG:67D6 9D 87 03
dec $0389,x ; CPU:$E7D9 PRG:67D9 DE 89 03
lda $038B,x ; CPU:$E7DC PRG:67DC BD 8B 03
bpl Sub_E7E7 ; CPU:$E7DF PRG:67DF 10 06
inc $0389,x ; CPU:$E7E1 PRG:67E1 FE 89 03
inc $0389,x ; CPU:$E7E4 PRG:67E4 FE 89 03
; -----------------------------------------------------------------------------
; Routine: Sub_E7E7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E7E7:
lda $0389,x ; CPU:$E7E7 PRG:67E7 BD 89 03
and #$07 ; CPU:$E7EA PRG:67EA 29 07
bne Sub_E7BB ; CPU:$E7EC PRG:67EC D0 CD
; -----------------------------------------------------------------------------
; Routine: Sub_E7EE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E7EE:
jsr PopXY ; CPU:$E7EE PRG:67EE 20 6F DF
lda $0384,x ; CPU:$E7F1 PRG:67F1 BD 84 03
cmp #$F1 ; CPU:$E7F4 PRG:67F4 C9 F1
; -----------------------------------------------------------------------------
; Routine: Sub_E7F6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E7F6:
bcs Sub_E7FB ; CPU:$E7F6 PRG:67F6 B0 03
jsr DispatchLdaI ; CPU:$E7F8 PRG:67F8 20 E5 EB
; -----------------------------------------------------------------------------
; Routine: Sub_E7FB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E7FB:
lda $038B,x ; CPU:$E7FB PRG:67FB BD 8B 03
cmp #$80 ; CPU:$E7FE PRG:67FE C9 80
ror a ; CPU:$E800 PRG:6800 6A
adc Zp23 ; CPU:$E801 PRG:6801 65 23
sta $0384,x ; CPU:$E803 PRG:6803 9D 84 03
lda Zp24 ; CPU:$E806 PRG:6806 A5 24
sec ; CPU:$E808 PRG:6808 38
sbc #$10 ; CPU:$E809 PRG:6809 E9 10
sta $0387,x ; CPU:$E80B PRG:680B 9D 87 03
lda $038B,x ; CPU:$E80E PRG:680E BD 8B 03
bpl Sub_E81B ; CPU:$E811 PRG:6811 10 08
inc $0389,x ; CPU:$E813 PRG:6813 FE 89 03
bne Sub_E7EE ; CPU:$E816 PRG:6816 D0 D6
jmp DispatchJsrTaxLsrs ; CPU:$E818 PRG:6818 4C 15 DF
; -----------------------------------------------------------------------------
; Routine: Sub_E81B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E81B:
dec $0389,x ; CPU:$E81B PRG:681B DE 89 03
bne Sub_E7EE ; CPU:$E81E PRG:681E D0 CE
lda $0384,x ; CPU:$E820 PRG:6820 BD 84 03
sec ; CPU:$E823 PRG:6823 38
sbc #$08 ; CPU:$E824 PRG:6824 E9 08
sta $0384,x ; CPU:$E826 PRG:6826 9D 84 03
lda #$20 ; CPU:$E829 PRG:6829 A9 20
; -----------------------------------------------------------------------------
; Routine: Sub_E82B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E82B:
sta $038A,x ; CPU:$E82B PRG:682B 9D 8A 03
sta $0606 ; CPU:$E82E PRG:682E 8D 06 06
; -----------------------------------------------------------------------------
; Routine: DispatchJsrLdaSubStore
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrLdaSubStore:
jsr PopXY ; CPU:$E831 PRG:6831 20 6F DF
lda $0387,x ; CPU:$E834 PRG:6834 BD 87 03
sec ; CPU:$E837 PRG:6837 38
sbc #$08 ; CPU:$E838 PRG:6838 E9 08
sta $0387,x ; CPU:$E83A PRG:683A 9D 87 03
bcs Sub_E845 ; CPU:$E83D PRG:683D B0 06
dec $0386,x ; CPU:$E83F PRG:683F DE 86 03
jmp DispatchJsrG ; CPU:$E842 PRG:6842 4C 4F E8
; -----------------------------------------------------------------------------
; Routine: Sub_E845
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E845:
lda $0384,x ; CPU:$E845 PRG:6845 BD 84 03
cmp #$F1 ; CPU:$E848 PRG:6848 C9 F1
bcc DispatchJsrG ; CPU:$E84A PRG:684A 90 03
jmp DispatchJsrLdaSubStore ; CPU:$E84C PRG:684C 4C 31 E8
; -----------------------------------------------------------------------------
; Routine: DispatchJsrG
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrG:
jsr DispatchLdaI ; CPU:$E84F PRG:684F 20 E5 EB
; ---- data $E852-$E852 (1 bytes) ----
.byte $4C ; CPU:$E852 PRG:6852 4C
; -----------------------------------------------------------------------------
; Routine: Sub_E853
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E853:
and (SpriteAttr),y ; CPU:$E853 PRG:6853 31 E8
; -----------------------------------------------------------------------------
; Routine: DispatchLdaCmpBcsCmpBcs
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaCmpBcsCmpBcs:
lda $0389,x ; CPU:$E855 PRG:6855 BD 89 03
cmp #$78 ; CPU:$E858 PRG:6858 C9 78
bcs DispatchDecLdaBplIncInc ; CPU:$E85A PRG:685A B0 2B
cmp #$5A ; CPU:$E85C PRG:685C C9 5A
bcs Sub_E883 ; CPU:$E85E PRG:685E B0 23
cmp #$41 ; CPU:$E860 PRG:6860 C9 41
bcs Sub_E87E ; CPU:$E862 PRG:6862 B0 1A
lsr a ; CPU:$E864 PRG:6864 4A
lsr a ; CPU:$E865 PRG:6865 4A
lsr a ; CPU:$E866 PRG:6866 4A
tay ; CPU:$E867 PRG:6867 A8
lda $038B,x ; CPU:$E868 PRG:6868 BD 8B 03
bpl Sub_E873 ; CPU:$E86B PRG:686B 10 06
lda $E680,y ; CPU:$E86D PRG:686D B9 80 E6
jmp DispatchCmpBeqLda ; CPU:$E870 PRG:6870 4C 76 E8
; -----------------------------------------------------------------------------
; Routine: Sub_E873
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E873:
lda $E8A0,y ; CPU:$E873 PRG:6873 B9 A0 E8
; -----------------------------------------------------------------------------
; Routine: DispatchCmpBeqLda
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchCmpBeqLda:
cmp $038A,x ; CPU:$E876 PRG:6876 DD 8A 03
beq Sub_E89F ; CPU:$E879 PRG:6879 F0 24
lda $0389,x ; CPU:$E87B PRG:687B BD 89 03
; -----------------------------------------------------------------------------
; Routine: Sub_E87E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E87E:
and #$03 ; CPU:$E87E PRG:687E 29 03
beq DispatchDecLdaBplIncInc ; CPU:$E880 PRG:6880 F0 05
rts ; CPU:$E882 PRG:6882 60
; -----------------------------------------------------------------------------
; Routine: Sub_E883
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E883:
and #$01 ; CPU:$E883 PRG:6883 29 01
bne Sub_E89F ; CPU:$E885 PRG:6885 D0 18
; -----------------------------------------------------------------------------
; Routine: DispatchDecLdaBplIncInc
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchDecLdaBplIncInc:
dec $038A,x ; CPU:$E887 PRG:6887 DE 8A 03
lda $038B,x ; CPU:$E88A PRG:688A BD 8B 03
bpl Sub_E895 ; CPU:$E88D PRG:688D 10 06
inc $038A,x ; CPU:$E88F PRG:688F FE 8A 03
inc $038A,x ; CPU:$E892 PRG:6892 FE 8A 03
; -----------------------------------------------------------------------------
; Routine: Sub_E895
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E895:
lda $038A,x ; CPU:$E895 PRG:6895 BD 8A 03
and #$03 ; CPU:$E898 PRG:6898 29 03
ora #$20 ; CPU:$E89A PRG:689A 09 20
sta $038A,x ; CPU:$E89C PRG:689C 9D 8A 03
; -----------------------------------------------------------------------------
; Routine: Sub_E89F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E89F:
rts ; CPU:$E89F PRG:689F 60
; ---- data $E8A0-$E8A8 (9 bytes) ----
; referenced by `lda $E8A0,y` at $E873 (operand $E8A0 falls inside this region)
.byte $24, $25, $26, $27, $24, $25, $26, $27, $24 ; CPU:$E8A0 PRG:68A0 24 25 26 27 24 25 26 27 24
; -----------------------------------------------------------------------------
; Routine: DispatchLdyB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdyB:
ldy #$03 ; CPU:$E8A9 PRG:68A9 A0 03
; -----------------------------------------------------------------------------
; Routine: Sub_E8AB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E8AB:
lda $0385,x ; CPU:$E8AB PRG:68AB BD 85 03
sec ; CPU:$E8AE PRG:68AE 38
sbc ObjectYLo ; CPU:$E8AF PRG:68AF E5 35
sta $0385,x ; CPU:$E8B1 PRG:68B1 9D 85 03
lda $0384,x ; CPU:$E8B4 PRG:68B4 BD 84 03
sbc ObjectYHi ; CPU:$E8B7 PRG:68B7 E5 36
sta $0384,x ; CPU:$E8B9 PRG:68B9 9D 84 03
dey ; CPU:$E8BC PRG:68BC 88
bne Sub_E8AB ; CPU:$E8BD PRG:68BD D0 EC
rts ; CPU:$E8BF PRG:68BF 60
; -----------------------------------------------------------------------------
; Routine: DispatchLdyC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdyC:
ldy #$03 ; CPU:$E8C0 PRG:68C0 A0 03
; -----------------------------------------------------------------------------
; Routine: Sub_E8C2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E8C2:
lda $0385,x ; CPU:$E8C2 PRG:68C2 BD 85 03
clc ; CPU:$E8C5 PRG:68C5 18
adc ObjectYLo ; CPU:$E8C6 PRG:68C6 65 35
sta $0385,x ; CPU:$E8C8 PRG:68C8 9D 85 03
lda $0384,x ; CPU:$E8CB PRG:68CB BD 84 03
adc ObjectYHi ; CPU:$E8CE PRG:68CE 65 36
sta $0384,x ; CPU:$E8D0 PRG:68D0 9D 84 03
dey ; CPU:$E8D3 PRG:68D3 88
bne Sub_E8C2 ; CPU:$E8D4 PRG:68D4 D0 EC
rts ; CPU:$E8D6 PRG:68D6 60
; ---- data $E8D7-$E982 (172 bytes) ----
.byte $20, $46, $E1, $A9, $00, $9D, $82, $03, $A9, $06, $20, $E3, $EC, $20, $5C, $F5 ; CPU:$E8D7 PRG:68D7 20 46 E1 A9 00 9D 82 03 A9 06 20 E3 EC 20 5C F5
.byte $29, $1F, $18, $69, $14, $9D, $89, $03, $A9, $13, $9D, $8A, $03, $20, $6F, $DF ; CPU:$E8E7 PRG:68E7 29 1F 18 69 14 9D 89 03 A9 13 9D 8A 03 20 6F DF
.byte $20, $3C, $EB, $BD, $86, $03, $30, $F5, $20, $E5, $EB, $20, $87, $EB, $4A, $90 ; CPU:$E8F7 PRG:68F7 20 3C EB BD 86 03 30 F5 20 E5 EB 20 87 EB 4A 90
.byte $08, $A9, $01, $20, $5B, $BF, $4C, $5B, $E2, $BD, $87, $03, $C5, $24, $B0, $05 ; CPU:$E907 PRG:6907 08 A9 01 20 5B BF 4C 5B E2 BD 87 03 C5 24 B0 05
.byte $DE, $89, $03, $D0, $D8, $BD, $84, $03, $18, $69, $04, $85, $37, $BD, $87, $03 ; CPU:$E917 PRG:6917 DE 89 03 D0 D8 BD 84 03 18 69 04 85 37 BD 87 03
.byte $18, $69, $04, $85, $38, $A2, $00, $A0, $00, $B9, $93, $EA, $9D, $80, $03, $C8 ; CPU:$E927 PRG:6927 18 69 04 85 38 A2 00 A0 00 B9 93 EA 9D 80 03 C8
.byte $B9, $93, $EA, $9D, $81, $03, $C8, $B9, $93, $EA, $9D, $8D, $03, $C8, $B9, $93 ; CPU:$E937 PRG:6937 B9 93 EA 9D 81 03 C8 B9 93 EA 9D 8D 03 C8 B9 93
.byte $EA, $9D, $8C, $03, $C8, $B9, $93, $EA, $9D, $8F, $03, $C8, $B9, $93, $EA, $9D ; CPU:$E947 PRG:6947 EA 9D 8C 03 C8 B9 93 EA 9D 8F 03 C8 B9 93 EA 9D
.byte $8E, $03, $C8, $A9, $00, $9D, $83, $03, $9D, $86, $03, $A5, $37, $9D, $84, $03 ; CPU:$E957 PRG:6957 8E 03 C8 A9 00 9D 83 03 9D 86 03 A5 37 9D 84 03
.byte $A5, $38, $9D, $87, $03, $A9, $08, $9D, $89, $03, $8A, $18, $69, $10, $AA, $4A ; CPU:$E967 PRG:6967 A5 38 9D 87 03 A9 08 9D 89 03 8A 18 69 10 AA 4A
.byte $4A, $4A, $4A, $C9, $08, $D0, $B2, $20, $14, $D0, $A9, $00 ; CPU:$E977 PRG:6977 4A 4A 4A C9 08 D0 B2 20 14 D0 A9 00
; -----------------------------------------------------------------------------
; Routine: Sub_E983
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E983:
sta Zp30 ; CPU:$E983 PRG:6983 85 30
ldx #$F0 ; CPU:$E985 PRG:6985 A2 F0
stx $060C ; CPU:$E987 PRG:6987 8E 0C 06
rts ; CPU:$E98A PRG:698A 60
; -----------------------------------------------------------------------------
; Routine: DispatchLdaOraBeq
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaOraBeq:
lda $0386,x ; CPU:$E98B PRG:698B BD 86 03
ora $0383,x ; CPU:$E98E PRG:698E 1D 83 03
beq Sub_E998 ; CPU:$E991 PRG:6991 F0 05
; -----------------------------------------------------------------------------
; Routine: Sub_E993
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E993:
pla ; CPU:$E993 PRG:6993 68
pla ; CPU:$E994 PRG:6994 68
jmp DispatchJsrTaxLsrs ; CPU:$E995 PRG:6995 4C 15 DF
; -----------------------------------------------------------------------------
; Routine: Sub_E998
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E998:
lda $0384,x ; CPU:$E998 PRG:6998 BD 84 03
cmp #$F8 ; CPU:$E99B PRG:699B C9 F8
bcs Sub_E993 ; CPU:$E99D PRG:699D B0 F4
lda $0387,x ; CPU:$E99F PRG:699F BD 87 03
ldy ObjectDeltaX ; CPU:$E9A2 PRG:69A2 A4 2D
beq Sub_E9CB ; CPU:$E9A4 PRG:69A4 F0 25
sta $0700,y ; CPU:$E9A6 PRG:69A6 99 00 07
iny ; CPU:$E9A9 PRG:69A9 C8
lda #$DC ; CPU:$E9AA PRG:69AA A9 DC
sta $0700,y ; CPU:$E9AC PRG:69AC 99 00 07
iny ; CPU:$E9AF PRG:69AF C8
; -----------------------------------------------------------------------------
; Routine: Sub_E9B0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E9B0:
lda GameSubMode ; CPU:$E9B0 PRG:69B0 A5 1B
lsr a ; CPU:$E9B2 PRG:69B2 4A
and #$08 ; CPU:$E9B3 PRG:69B3 29 08
eor GameSubMode ; CPU:$E9B5 PRG:69B5 45 1B
asl a ; CPU:$E9B7 PRG:69B7 0A
asl a ; CPU:$E9B8 PRG:69B8 0A
asl a ; CPU:$E9B9 PRG:69B9 0A
and #$C0 ; CPU:$E9BA PRG:69BA 29 C0
ora #$03 ; CPU:$E9BC PRG:69BC 09 03
sta $0700,y ; CPU:$E9BE PRG:69BE 99 00 07
iny ; CPU:$E9C1 PRG:69C1 C8
lda $0384,x ; CPU:$E9C2 PRG:69C2 BD 84 03
sta $0700,y ; CPU:$E9C5 PRG:69C5 99 00 07
iny ; CPU:$E9C8 PRG:69C8 C8
sty ObjectDeltaX ; CPU:$E9C9 PRG:69C9 84 2D
; -----------------------------------------------------------------------------
; Routine: Sub_E9CB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E9CB:
rts ; CPU:$E9CB PRG:69CB 60
; -----------------------------------------------------------------------------
; Routine: DispatchLdyD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdyD:
ldy #$00 ; CPU:$E9CC PRG:69CC A0 00
; -----------------------------------------------------------------------------
; Routine: Sub_E9CE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E9CE:
lda $02A6,y ; CPU:$E9CE PRG:69CE B9 A6 02
beq Sub_E9F5 ; CPU:$E9D1 PRG:69D1 F0 22
lda $0384,x ; CPU:$E9D3 PRG:69D3 BD 84 03
sec ; CPU:$E9D6 PRG:69D6 38
sbc $02A7,y ; CPU:$E9D7 PRG:69D7 F9 A7 02
clc ; CPU:$E9DA PRG:69DA 18
adc #$06 ; CPU:$E9DB PRG:69DB 69 06
cmp #$15 ; CPU:$E9DD PRG:69DD C9 15
bcs Sub_E9F5 ; CPU:$E9DF PRG:69DF B0 14
lda $0387,x ; CPU:$E9E1 PRG:69E1 BD 87 03
sec ; CPU:$E9E4 PRG:69E4 38
sbc $02A8,y ; CPU:$E9E5 PRG:69E5 F9 A8 02
clc ; CPU:$E9E8 PRG:69E8 18
adc #$06 ; CPU:$E9E9 PRG:69E9 69 06
cmp #$1D ; CPU:$E9EB PRG:69EB C9 1D
; ---- data $E9ED-$E9ED (1 bytes) ----
.byte $B0 ; CPU:$E9ED PRG:69ED B0
; -----------------------------------------------------------------------------
; Routine: Sub_E9EE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E9EE:
asl ZpA9 ; CPU:$E9EE PRG:69EE 06 A9
ora (Zp99,x) ; CPU:$E9F0 PRG:69F0 01 99
ldx ScrollX ; CPU:$E9F2 PRG:69F2 A6 02
rts ; CPU:$E9F4 PRG:69F4 60
; -----------------------------------------------------------------------------
; Routine: Sub_E9F5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_E9F5:
iny ; CPU:$E9F5 PRG:69F5 C8
iny ; CPU:$E9F6 PRG:69F6 C8
iny ; CPU:$E9F7 PRG:69F7 C8
cpy #$09 ; CPU:$E9F8 PRG:69F8 C0 09
bne Sub_E9CE ; CPU:$E9FA PRG:69FA D0 D2
lda Zp3B ; CPU:$E9FC PRG:69FC A5 3B
bne Sub_EA1F ; CPU:$E9FE PRG:69FE D0 1F
lda $0384,x ; CPU:$EA00 PRG:6A00 BD 84 03
sec ; CPU:$EA03 PRG:6A03 38
sbc Zp23 ; CPU:$EA04 PRG:6A04 E5 23
clc ; CPU:$EA06 PRG:6A06 18
adc #$02 ; CPU:$EA07 PRG:6A07 69 02
cmp #$0D ; CPU:$EA09 PRG:6A09 C9 0D
bcs Sub_EA1F ; CPU:$EA0B PRG:6A0B B0 12
lda $0387,x ; CPU:$EA0D PRG:6A0D BD 87 03
sec ; CPU:$EA10 PRG:6A10 38
sbc Zp24 ; CPU:$EA11 PRG:6A11 E5 24
clc ; CPU:$EA13 PRG:6A13 18
adc #$02 ; CPU:$EA14 PRG:6A14 69 02
cmp #$0D ; CPU:$EA16 PRG:6A16 C9 0D
bcs Sub_EA1F ; CPU:$EA18 PRG:6A18 B0 05
inc $0611 ; CPU:$EA1A PRG:6A1A EE 11 06
inc Zp3B ; CPU:$EA1D PRG:6A1D E6 3B
; -----------------------------------------------------------------------------
; Routine: Sub_EA1F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EA1F:
lda #$00 ; CPU:$EA1F PRG:6A1F A9 00
rts ; CPU:$EA21 PRG:6A21 60
; -----------------------------------------------------------------------------
; Routine: DispatchJsrJsrJsrJsrLsrs4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrJsrJsrJsrLsrs4:
jsr PopXY ; CPU:$EA22 PRG:6A22 20 6F DF
jsr DispatchAddStoreLda6 ; CPU:$EA25 PRG:6A25 20 3C EB
jsr DispatchLdaOraBeq ; CPU:$EA28 PRG:6A28 20 8B E9
jsr DispatchLdyD ; CPU:$EA2B PRG:6A2B 20 CC E9
lsr a ; CPU:$EA2E PRG:6A2E 4A
bcc Sub_EA3E ; CPU:$EA2F PRG:6A2F 90 0D
lda #$01 ; CPU:$EA31 PRG:6A31 A9 01
sta $0609 ; CPU:$EA33 PRG:6A33 8D 09 06
sta $060A ; CPU:$EA36 PRG:6A36 8D 0A 06
lda #$05 ; CPU:$EA39 PRG:6A39 A9 05
; -----------------------------------------------------------------------------
; Routine: Sub_EA3B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EA3B:
jsr ObjSpritesInit5 ; CPU:$EA3B PRG:6A3B 20 54 BF
; -----------------------------------------------------------------------------
; Routine: Sub_EA3E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EA3E:
jsr DispatchCheckLdaRts ; CPU:$EA3E PRG:6A3E 20 F8 D0
cmp $0384,x ; CPU:$EA41 PRG:6A41 DD 84 03
beq DispatchJsrCmpBeqBcsLda2 ; CPU:$EA44 PRG:6A44 F0 21
bcs Sub_EA59 ; CPU:$EA46 PRG:6A46 B0 11
lda $038D,x ; CPU:$EA48 PRG:6A48 BD 8D 03
sec ; CPU:$EA4B PRG:6A4B 38
sbc #$20 ; CPU:$EA4C PRG:6A4C E9 20
sta $038D,x ; CPU:$EA4E PRG:6A4E 9D 8D 03
bcs DispatchJsrCmpBeqBcsLda2 ; CPU:$EA51 PRG:6A51 B0 14
dec $038C,x ; CPU:$EA53 PRG:6A53 DE 8C 03
jmp DispatchJsrCmpBeqBcsLda2 ; CPU:$EA56 PRG:6A56 4C 67 EA
; -----------------------------------------------------------------------------
; Routine: Sub_EA59
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EA59:
lda $038D,x ; CPU:$EA59 PRG:6A59 BD 8D 03
clc ; CPU:$EA5C PRG:6A5C 18
adc #$20 ; CPU:$EA5D PRG:6A5D 69 20
sta $038D,x ; CPU:$EA5F PRG:6A5F 9D 8D 03
bcc DispatchJsrCmpBeqBcsLda2 ; CPU:$EA62 PRG:6A62 90 03
inc $038C,x ; CPU:$EA64 PRG:6A64 FE 8C 03
; -----------------------------------------------------------------------------
; Routine: DispatchJsrCmpBeqBcsLda2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrCmpBeqBcsLda2:
jsr DispatchCheckLdaRts2 ; CPU:$EA67 PRG:6A67 20 02 D1
cmp $0387,x ; CPU:$EA6A PRG:6A6A DD 87 03
beq DispatchJsrJsrJsrJsrLsrs4 ; CPU:$EA6D PRG:6A6D F0 B3
bcs Sub_EA82 ; CPU:$EA6F PRG:6A6F B0 11
lda $038F,x ; CPU:$EA71 PRG:6A71 BD 8F 03
sec ; CPU:$EA74 PRG:6A74 38
sbc #$20 ; CPU:$EA75 PRG:6A75 E9 20
sta $038F,x ; CPU:$EA77 PRG:6A77 9D 8F 03
bcs DispatchJsrJsrJsrJsrLsrs4 ; CPU:$EA7A PRG:6A7A B0 A6
dec $038E,x ; CPU:$EA7C PRG:6A7C DE 8E 03
jmp DispatchJsrJsrJsrJsrLsrs4 ; CPU:$EA7F PRG:6A7F 4C 22 EA
; -----------------------------------------------------------------------------
; Routine: Sub_EA82
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EA82:
lda $038F,x ; CPU:$EA82 PRG:6A82 BD 8F 03
clc ; CPU:$EA85 PRG:6A85 18
adc #$20 ; CPU:$EA86 PRG:6A86 69 20
sta $038F,x ; CPU:$EA88 PRG:6A88 9D 8F 03
bcc DispatchJsrJsrJsrJsrLsrs4 ; CPU:$EA8B PRG:6A8B 90 95
inc $038E,x ; CPU:$EA8D PRG:6A8D FE 8E 03
jmp DispatchJsrJsrJsrJsrLsrs4 ; CPU:$EA90 PRG:6A90 4C 22 EA
; ---- data $EA93-$EA9E (12 bytes) ----
.byte $14, $DF, $00, $00, $00, $00, $14, $DF, $00, $00, $00, $00 ; CPU:$EA93 PRG:6A93 14 DF 00 00 00 00 14 DF 00 00 00 00
; -----------------------------------------------------------------------------
; Routine: Sub_EA9F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EA9F:
and (ZpEA,x) ; CPU:$EA9F PRG:6A9F 21 EA
cpx #$00 ; CPU:$EAA1 PRG:6AA1 E0 00
cpx #$00 ; CPU:$EAA3 PRG:6AA3 E0 00
and (ZpEA,x) ; CPU:$EAA5 PRG:6AA5 21 EA
cpx #$00 ; CPU:$EAA7 PRG:6AA7 E0 00
jsr $21FF ; CPU:$EAA9 PRG:6AA9 20 FF 21
nop ; CPU:$EAAC PRG:6AAC EA
jsr $E0FF ; CPU:$EAAD PRG:6AAD 20 FF E0
brk ; CPU:$EAB0 PRG:6AB0 00
; ---- data $EAB1-$EAE2 (50 bytes) ----
.byte $21, $EA, $20, $FF, $20, $FF, $14, $DF, $00, $00, $00, $00, $14, $DF, $00, $00 ; CPU:$EAB1 PRG:6AB1 21 EA 20 FF 20 FF 14 DF 00 00 00 00 14 DF 00 00
.byte $00, $00, $A9, $E9, $9D, $87, $03, $A9, $FF, $9D, $86, $03, $20, $5C, $F5, $C9 ; CPU:$EAC1 PRG:6AC1 00 00 A9 E9 9D 87 03 A9 FF 9D 86 03 20 5C F5 C9
.byte $D2, $90, $03, $38, $E9, $80, $C9, $0A, $B0, $03, $18, $69, $50, $9D, $84, $03 ; CPU:$EAD1 PRG:6AD1 D2 90 03 38 E9 80 C9 0A B0 03 18 69 50 9D 84 03
.byte $A9, $00 ; CPU:$EAE1 PRG:6AE1 A9 00
; -----------------------------------------------------------------------------
; Routine: Sub_EAE3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EAE3:
sta $0383,x ; CPU:$EAE3 PRG:6AE3 9D 83 03
sta $0382,x ; CPU:$EAE6 PRG:6AE6 9D 82 03
; -----------------------------------------------------------------------------
; Routine: DispatchJsrIncBneInc
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrIncBneInc:
jsr PopXY ; CPU:$EAE9 PRG:6AE9 20 6F DF
inc $0387,x ; CPU:$EAEC PRG:6AEC FE 87 03
bne Sub_EAF4 ; CPU:$EAEF PRG:6AEF D0 03
inc $0386,x ; CPU:$EAF1 PRG:6AF1 FE 86 03
; -----------------------------------------------------------------------------
; Routine: Sub_EAF4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EAF4:
lda $0386,x ; CPU:$EAF4 PRG:6AF4 BD 86 03
beq Sub_EAFE ; CPU:$EAF7 PRG:6AF7 F0 05
bmi DispatchJsrIncBneInc ; CPU:$EAF9 PRG:6AF9 30 EE
jmp DispatchJsrTaxLsrs ; CPU:$EAFB PRG:6AFB 4C 15 DF
; -----------------------------------------------------------------------------
; Routine: Sub_EAFE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EAFE:
jsr DispatchLdyE ; CPU:$EAFE PRG:6AFE 20 87 EB
lsr a ; CPU:$EB01 PRG:6B01 4A
bcc Sub_EB0C ; CPU:$EB02 PRG:6B02 90 08
lda #$01 ; CPU:$EB04 PRG:6B04 A9 01
sta $0607 ; CPU:$EB06 PRG:6B06 8D 07 06
sta $0608 ; CPU:$EB09 PRG:6B09 8D 08 06
; -----------------------------------------------------------------------------
; Routine: Sub_EB0C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EB0C:
lda $0384,x ; CPU:$EB0C PRG:6B0C BD 84 03
clc ; CPU:$EB0F PRG:6B0F 18
adc #$08 ; CPU:$EB10 PRG:6B10 69 08
sta $0384,x ; CPU:$EB12 PRG:6B12 9D 84 03
jsr DispatchLdyE ; CPU:$EB15 PRG:6B15 20 87 EB
lsr a ; CPU:$EB18 PRG:6B18 4A
bcc Sub_EB21 ; CPU:$EB19 PRG:6B19 90 06
inc $0607 ; CPU:$EB1B PRG:6B1B EE 07 06
; -----------------------------------------------------------------------------
; Routine: Sub_EB1E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EB1E:
inc $0608 ; CPU:$EB1E PRG:6B1E EE 08 06
; -----------------------------------------------------------------------------
; Routine: Sub_EB21
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EB21:
lda $0384,x ; CPU:$EB21 PRG:6B21 BD 84 03
sec ; CPU:$EB24 PRG:6B24 38
sbc #$08 ; CPU:$EB25 PRG:6B25 E9 08
sta $0384,x ; CPU:$EB27 PRG:6B27 9D 84 03
txa ; CPU:$EB2A PRG:6B2A 8A
lsr a ; CPU:$EB2B PRG:6B2B 4A
clc ; CPU:$EB2C PRG:6B2C 18
adc GameSubMode ; CPU:$EB2D PRG:6B2D 65 1B
lsr a ; CPU:$EB2F PRG:6B2F 4A
; -----------------------------------------------------------------------------
; Routine: Sub_EB30
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EB30:
lsr a ; CPU:$EB30 PRG:6B30 4A
lsr a ; CPU:$EB31 PRG:6B31 4A
and #$03 ; CPU:$EB32 PRG:6B32 29 03
ora #$04 ; CPU:$EB34 PRG:6B34 09 04
jsr DispatchLsrsTayStoreLda ; CPU:$EB36 PRG:6B36 20 E8 EB
jmp DispatchJsrIncBneInc ; CPU:$EB39 PRG:6B39 4C E9 EA
; -----------------------------------------------------------------------------
; Routine: DispatchAddStoreLda6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchAddStoreLda6:
lda $038D,x ; CPU:$EB3C PRG:6B3C BD 8D 03
clc ; CPU:$EB3F PRG:6B3F 18
adc $0385,x ; CPU:$EB40 PRG:6B40 7D 85 03
sta $0385,x ; CPU:$EB43 PRG:6B43 9D 85 03
lda $038C,x ; CPU:$EB46 PRG:6B46 BD 8C 03
adc $0384,x ; CPU:$EB49 PRG:6B49 7D 84 03
sta $0384,x ; CPU:$EB4C PRG:6B4C 9D 84 03
lda $038C,x ; CPU:$EB4F PRG:6B4F BD 8C 03
bpl Sub_EB59 ; CPU:$EB52 PRG:6B52 10 05
lda #$FF ; CPU:$EB54 PRG:6B54 A9 FF
jmp DispatchAdcStoreLdaAdd2 ; CPU:$EB56 PRG:6B56 4C 5B EB
; -----------------------------------------------------------------------------
; Routine: Sub_EB59
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EB59:
lda #$00 ; CPU:$EB59 PRG:6B59 A9 00
; -----------------------------------------------------------------------------
; Routine: DispatchAdcStoreLdaAdd2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchAdcStoreLdaAdd2:
adc $0383,x ; CPU:$EB5B PRG:6B5B 7D 83 03
sta $0383,x ; CPU:$EB5E PRG:6B5E 9D 83 03
lda $038F,x ; CPU:$EB61 PRG:6B61 BD 8F 03
clc ; CPU:$EB64 PRG:6B64 18
adc $0388,x ; CPU:$EB65 PRG:6B65 7D 88 03
sta $0388,x ; CPU:$EB68 PRG:6B68 9D 88 03
lda $038E,x ; CPU:$EB6B PRG:6B6B BD 8E 03
adc $0387,x ; CPU:$EB6E PRG:6B6E 7D 87 03
sta $0387,x ; CPU:$EB71 PRG:6B71 9D 87 03
lda $038E,x ; CPU:$EB74 PRG:6B74 BD 8E 03
bpl Sub_EB7E ; CPU:$EB77 PRG:6B77 10 05
lda #$FF ; CPU:$EB79 PRG:6B79 A9 FF
jmp DispatchAdcStoreRts2 ; CPU:$EB7B PRG:6B7B 4C 80 EB
; -----------------------------------------------------------------------------
; Routine: Sub_EB7E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EB7E:
lda #$00 ; CPU:$EB7E PRG:6B7E A9 00
; -----------------------------------------------------------------------------
; Routine: DispatchAdcStoreRts2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchAdcStoreRts2:
adc $0386,x ; CPU:$EB80 PRG:6B80 7D 86 03
sta $0386,x ; CPU:$EB83 PRG:6B83 9D 86 03
rts ; CPU:$EB86 PRG:6B86 60
; -----------------------------------------------------------------------------
; Routine: DispatchLdyE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdyE:
ldy #$00 ; CPU:$EB87 PRG:6B87 A0 00
; -----------------------------------------------------------------------------
; Routine: Sub_EB89
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EB89:
lda $02A6,y ; CPU:$EB89 PRG:6B89 B9 A6 02
beq Sub_EBB8 ; CPU:$EB8C PRG:6B8C F0 2A
lda $0384,x ; CPU:$EB8E PRG:6B8E BD 84 03
sec ; CPU:$EB91 PRG:6B91 38
sbc $02A7,y ; CPU:$EB92 PRG:6B92 F9 A7 02
clc ; CPU:$EB95 PRG:6B95 18
adc #$0E ; CPU:$EB96 PRG:6B96 69 0E
cmp #$1D ; CPU:$EB98 PRG:6B98 C9 1D
bcs Sub_EBB8 ; CPU:$EB9A PRG:6B9A B0 1C
lda $0387,x ; CPU:$EB9C PRG:6B9C BD 87 03
cmp #$F0 ; CPU:$EB9F PRG:6B9F C9 F0
bcs Sub_EBB8 ; CPU:$EBA1 PRG:6BA1 B0 15
cmp #$10 ; CPU:$EBA3 PRG:6BA3 C9 10
bcc Sub_EBB8 ; CPU:$EBA5 PRG:6BA5 90 11
sec ; CPU:$EBA7 PRG:6BA7 38
sbc $02A8,y ; CPU:$EBA8 PRG:6BA8 F9 A8 02
clc ; CPU:$EBAB PRG:6BAB 18
adc #$0E ; CPU:$EBAC PRG:6BAC 69 0E
cmp #$25 ; CPU:$EBAE PRG:6BAE C9 25
bcs Sub_EBB8 ; CPU:$EBB0 PRG:6BB0 B0 06
lda #$01 ; CPU:$EBB2 PRG:6BB2 A9 01
sta $02A6,y ; CPU:$EBB4 PRG:6BB4 99 A6 02
rts ; CPU:$EBB7 PRG:6BB7 60
; -----------------------------------------------------------------------------
; Routine: Sub_EBB8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EBB8:
iny ; CPU:$EBB8 PRG:6BB8 C8
iny ; CPU:$EBB9 PRG:6BB9 C8
iny ; CPU:$EBBA PRG:6BBA C8
cpy #$09 ; CPU:$EBBB PRG:6BBB C0 09
bne Sub_EB89 ; CPU:$EBBD PRG:6BBD D0 CA
lda Zp3B ; CPU:$EBBF PRG:6BBF A5 3B
bne Sub_EBE2 ; CPU:$EBC1 PRG:6BC1 D0 1F
lda $0384,x ; CPU:$EBC3 PRG:6BC3 BD 84 03
sec ; CPU:$EBC6 PRG:6BC6 38
sbc Zp23 ; CPU:$EBC7 PRG:6BC7 E5 23
clc ; CPU:$EBC9 PRG:6BC9 18
adc #$0B ; CPU:$EBCA PRG:6BCA 69 0B
cmp #$17 ; CPU:$EBCC PRG:6BCC C9 17
bcs Sub_EBE2 ; CPU:$EBCE PRG:6BCE B0 12
lda $0387,x ; CPU:$EBD0 PRG:6BD0 BD 87 03
sec ; CPU:$EBD3 PRG:6BD3 38
sbc Zp24 ; CPU:$EBD4 PRG:6BD4 E5 24
clc ; CPU:$EBD6 PRG:6BD6 18
adc #$0B ; CPU:$EBD7 PRG:6BD7 69 0B
cmp #$17 ; CPU:$EBD9 PRG:6BD9 C9 17
bcs Sub_EBE2 ; CPU:$EBDB PRG:6BDB B0 05
inc $0611 ; CPU:$EBDD PRG:6BDD EE 11 06
inc Zp3B ; CPU:$EBE0 PRG:6BE0 E6 3B
; -----------------------------------------------------------------------------
; Routine: Sub_EBE2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EBE2:
lda #$00 ; CPU:$EBE2 PRG:6BE2 A9 00
rts ; CPU:$EBE4 PRG:6BE4 60
; -----------------------------------------------------------------------------
; Routine: DispatchLdaI
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaI:
lda $038A,x ; CPU:$EBE5 PRG:6BE5 BD 8A 03
; -----------------------------------------------------------------------------
; Routine: DispatchLsrsTayStoreLda
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLsrsTayStoreLda:
asl a ; CPU:$EBE8 PRG:6BE8 0A
tay ; CPU:$EBE9 PRG:6BE9 A8
lda $ED8C,y ; CPU:$EBEA PRG:6BEA B9 8C ED
sta VramPtrLo ; CPU:$EBED PRG:6BED 85 04
lda $ED8D,y ; CPU:$EBEF PRG:6BEF B9 8D ED
sta VramCopyCount ; CPU:$EBF2 PRG:6BF2 85 05
lda $0386,x ; CPU:$EBF4 PRG:6BF4 BD 86 03
ora $0383,x ; CPU:$EBF7 PRG:6BF7 1D 83 03
bne Sub_EC03 ; CPU:$EBFA PRG:6BFA D0 07
lda $0384,x ; CPU:$EBFC PRG:6BFC BD 84 03
cmp #$F1 ; CPU:$EBFF PRG:6BFF C9 F1
bcc Sub_EC08 ; CPU:$EC01 PRG:6C01 90 05
; -----------------------------------------------------------------------------
; Routine: Sub_EC03
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EC03:
pla ; CPU:$EC03 PRG:6C03 68
pla ; CPU:$EC04 PRG:6C04 68
jmp DispatchJsrTaxLsrs ; CPU:$EC05 PRG:6C05 4C 15 DF
; -----------------------------------------------------------------------------
; Routine: Sub_EC08
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EC08:
lda $0387,x ; CPU:$EC08 PRG:6C08 BD 87 03
ldy #$00 ; CPU:$EC0B PRG:6C0B A0 00
lda (VramPtrLo),y ; CPU:$EC0D PRG:6C0D B1 04
sta ObjUpdateFlag ; CPU:$EC0F PRG:6C0F 85 0E
lda $0384,x ; CPU:$EC11 PRG:6C11 BD 84 03
sta Zp33 ; CPU:$EC14 PRG:6C14 85 33
lda $0387,x ; CPU:$EC16 PRG:6C16 BD 87 03
sta Zp34 ; CPU:$EC19 PRG:6C19 85 34
stx ObjPtr ; CPU:$EC1B PRG:6C1B 86 13
ldx ObjectDeltaX ; CPU:$EC1D PRG:6C1D A6 2D
beq Sub_EC2A ; CPU:$EC1F PRG:6C1F F0 09
lda ObjUpdateFlag ; CPU:$EC21 PRG:6C21 A5 0E
asl a ; CPU:$EC23 PRG:6C23 0A
asl a ; CPU:$EC24 PRG:6C24 0A
clc ; CPU:$EC25 PRG:6C25 18
adc ObjectDeltaX ; CPU:$EC26 PRG:6C26 65 2D
bcc Sub_EC34 ; CPU:$EC28 PRG:6C28 90 0A
; -----------------------------------------------------------------------------
; Routine: Sub_EC2A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EC2A:
ldx ObjPtr ; CPU:$EC2A PRG:6C2A A6 13
rts ; CPU:$EC2C PRG:6C2C 60
; -----------------------------------------------------------------------------
; Routine: Sub_EC2D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EC2D:
iny ; CPU:$EC2D PRG:6C2D C8
iny ; CPU:$EC2E PRG:6C2E C8
iny ; CPU:$EC2F PRG:6C2F C8
dec ObjUpdateFlag ; CPU:$EC30 PRG:6C30 C6 0E
beq Sub_EC64 ; CPU:$EC32 PRG:6C32 F0 30
; -----------------------------------------------------------------------------
; Routine: Sub_EC34
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EC34:
iny ; CPU:$EC34 PRG:6C34 C8
lda (VramPtrLo),y ; CPU:$EC35 PRG:6C35 B1 04
bmi Sub_EC41 ; CPU:$EC37 PRG:6C37 30 08
clc ; CPU:$EC39 PRG:6C39 18
adc Zp34 ; CPU:$EC3A PRG:6C3A 65 34
bcs Sub_EC2D ; CPU:$EC3C PRG:6C3C B0 EF
jmp DispatchStoreIncIncLdaStoreInc ; CPU:$EC3E PRG:6C3E 4C 44 EC
; -----------------------------------------------------------------------------
; Routine: Sub_EC41
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EC41:
clc ; CPU:$EC41 PRG:6C41 18
adc Zp34 ; CPU:$EC42 PRG:6C42 65 34
; -----------------------------------------------------------------------------
; Routine: DispatchStoreIncIncLdaStoreInc
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchStoreIncIncLdaStoreInc:
sta $0700,x ; CPU:$EC44 PRG:6C44 9D 00 07
inx ; CPU:$EC47 PRG:6C47 E8
iny ; CPU:$EC48 PRG:6C48 C8
lda (VramPtrLo),y ; CPU:$EC49 PRG:6C49 B1 04
sta $0700,x ; CPU:$EC4B PRG:6C4B 9D 00 07
inx ; CPU:$EC4E PRG:6C4E E8
iny ; CPU:$EC4F PRG:6C4F C8
lda (VramPtrLo),y ; CPU:$EC50 PRG:6C50 B1 04
sta $0700,x ; CPU:$EC52 PRG:6C52 9D 00 07
inx ; CPU:$EC55 PRG:6C55 E8
iny ; CPU:$EC56 PRG:6C56 C8
lda (VramPtrLo),y ; CPU:$EC57 PRG:6C57 B1 04
clc ; CPU:$EC59 PRG:6C59 18
adc Zp33 ; CPU:$EC5A PRG:6C5A 65 33
sta $0700,x ; CPU:$EC5C PRG:6C5C 9D 00 07
inx ; CPU:$EC5F PRG:6C5F E8
dec ObjUpdateFlag ; CPU:$EC60 PRG:6C60 C6 0E
bne Sub_EC34 ; CPU:$EC62 PRG:6C62 D0 D0
; -----------------------------------------------------------------------------
; Routine: Sub_EC64
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EC64:
stx ObjectDeltaX ; CPU:$EC64 PRG:6C64 86 2D
ldx ObjPtr ; CPU:$EC66 PRG:6C66 A6 13
rts ; CPU:$EC68 PRG:6C68 60
; -----------------------------------------------------------------------------
; Routine: DispatchStoreJsrSubBcsEor
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchStoreJsrSubBcsEor:
sta Zp39 ; CPU:$EC69 PRG:6C69 85 39
jsr DispatchCheckLdaRts ; CPU:$EC6B PRG:6C6B 20 F8 D0
sec ; CPU:$EC6E PRG:6C6E 38
sbc $0384,x ; CPU:$EC6F PRG:6C6F FD 84 03
bcs Sub_ECA0 ; CPU:$EC72 PRG:6C72 B0 2C
eor #$FF ; CPU:$EC74 PRG:6C74 49 FF
clc ; CPU:$EC76 PRG:6C76 18
adc #$01 ; CPU:$EC77 PRG:6C77 69 01
sta ObjectXLo ; CPU:$EC79 PRG:6C79 85 37
jsr DispatchCheckLdaRts2 ; CPU:$EC7B PRG:6C7B 20 02 D1
sec ; CPU:$EC7E PRG:6C7E 38
sbc $0387,x ; CPU:$EC7F PRG:6C7F FD 87 03
bcs Sub_ECC3 ; CPU:$EC82 PRG:6C82 B0 3F
ldy $0386,x ; CPU:$EC84 PRG:6C84 BC 86 03
bmi Sub_ECC3 ; CPU:$EC87 PRG:6C87 30 3A
eor #$FF ; CPU:$EC89 PRG:6C89 49 FF
clc ; CPU:$EC8B PRG:6C8B 18
adc #$01 ; CPU:$EC8C PRG:6C8C 69 01
sta ObjectXHi ; CPU:$EC8E PRG:6C8E 85 38
jsr DispatchJsrLdaCmpBccBneLda ; CPU:$EC90 PRG:6C90 20 5D ED
sta ObjPtr ; CPU:$EC93 PRG:6C93 85 13
; ---- data $EC95-$EC95 (1 bytes) ----
.byte $A9 ; CPU:$EC95 PRG:6C95 A9
; -----------------------------------------------------------------------------
; Routine: Sub_EC96
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EC96:
clc ; CPU:$EC96 PRG:6C96 18
sec ; CPU:$EC97 PRG:6C97 38
sbc ObjPtr ; CPU:$EC98 PRG:6C98 E5 13
sta $0382,x ; CPU:$EC9A PRG:6C9A 9D 82 03
jmp Sub_ECE5 ; CPU:$EC9D PRG:6C9D 4C E5 EC
; -----------------------------------------------------------------------------
; Routine: Sub_ECA0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_ECA0:
sta ObjectXLo ; CPU:$ECA0 PRG:6CA0 85 37
jsr DispatchCheckLdaRts2 ; CPU:$ECA2 PRG:6CA2 20 02 D1
sec ; CPU:$ECA5 PRG:6CA5 38
sbc $0387,x ; CPU:$ECA6 PRG:6CA6 FD 87 03
bcs Sub_ECD1 ; CPU:$ECA9 PRG:6CA9 B0 26
ldy $0386,x ; CPU:$ECAB PRG:6CAB BC 86 03
bmi Sub_ECD1 ; CPU:$ECAE PRG:6CAE 30 21
eor #$FF ; CPU:$ECB0 PRG:6CB0 49 FF
clc ; CPU:$ECB2 PRG:6CB2 18
adc #$01 ; CPU:$ECB3 PRG:6CB3 69 01
sta ObjectXHi ; CPU:$ECB5 PRG:6CB5 85 38
jsr DispatchJsrLdaCmpBccBneLda ; CPU:$ECB7 PRG:6CB7 20 5D ED
clc ; CPU:$ECBA PRG:6CBA 18
adc #$08 ; CPU:$ECBB PRG:6CBB 69 08
sta $0382,x ; CPU:$ECBD PRG:6CBD 9D 82 03
jmp Sub_ECE5 ; CPU:$ECC0 PRG:6CC0 4C E5 EC
; -----------------------------------------------------------------------------
; Routine: Sub_ECC3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_ECC3:
sta ObjectXHi ; CPU:$ECC3 PRG:6CC3 85 38
jsr DispatchJsrLdaCmpBccBneLda ; CPU:$ECC5 PRG:6CC5 20 5D ED
clc ; CPU:$ECC8 PRG:6CC8 18
adc #$18 ; CPU:$ECC9 PRG:6CC9 69 18
sta $0382,x ; CPU:$ECCB PRG:6CCB 9D 82 03
jmp Sub_ECE5 ; CPU:$ECCE PRG:6CCE 4C E5 EC
; -----------------------------------------------------------------------------
; Routine: Sub_ECD1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_ECD1:
sta ObjectXHi ; CPU:$ECD1 PRG:6CD1 85 38
jsr DispatchJsrLdaCmpBccBneLda ; CPU:$ECD3 PRG:6CD3 20 5D ED
sta ObjPtr ; CPU:$ECD6 PRG:6CD6 85 13
lda #$08 ; CPU:$ECD8 PRG:6CD8 A9 08
sec ; CPU:$ECDA PRG:6CDA 38
sbc ObjPtr ; CPU:$ECDB PRG:6CDB E5 13
sta $0382,x ; CPU:$ECDD PRG:6CDD 9D 82 03
jmp Sub_ECE5 ; CPU:$ECE0 PRG:6CE0 4C E5 EC
; -----------------------------------------------------------------------------
; Routine: DispatchStoreLdaStoreStoreStore
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchStoreLdaStoreStoreStore:
sta Zp39 ; CPU:$ECE3 PRG:6CE3 85 39
Sub_ECE5:
lda #$00 ; CPU:$ECE5 PRG:6CE5 A9 00
sta $038C,x ; CPU:$ECE7 PRG:6CE7 9D 8C 03
sta $038D,x ; CPU:$ECEA PRG:6CEA 9D 8D 03
sta $038E,x ; CPU:$ECED PRG:6CED 9D 8E 03
sta $038F,x ; CPU:$ECF0 PRG:6CF0 9D 8F 03
lda Zp39 ; CPU:$ECF3 PRG:6CF3 A5 39
bne Sub_ECF8 ; CPU:$ECF5 PRG:6CF5 D0 01
rts ; CPU:$ECF7 PRG:6CF7 60
; -----------------------------------------------------------------------------
; Routine: Sub_ECF8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_ECF8:
lda $0382,x ; CPU:$ECF8 PRG:6CF8 BD 82 03
asl a ; CPU:$ECFB PRG:6CFB 0A
asl a ; CPU:$ECFC PRG:6CFC 0A
and #$7F ; CPU:$ECFD PRG:6CFD 29 7F
tay ; CPU:$ECFF PRG:6CFF A8
; -----------------------------------------------------------------------------
; Routine: Sub_ED00
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_ED00:
lda $F136,y ; CPU:$ED00 PRG:6D00 B9 36 F1
clc ; CPU:$ED03 PRG:6D03 18
adc $038D,x ; CPU:$ED04 PRG:6D04 7D 8D 03
sta $038D,x ; CPU:$ED07 PRG:6D07 9D 8D 03
lda $F137,y ; CPU:$ED0A PRG:6D0A B9 37 F1
adc $038C,x ; CPU:$ED0D PRG:6D0D 7D 8C 03
sta $038C,x ; CPU:$ED10 PRG:6D10 9D 8C 03
lda $F138,y ; CPU:$ED13 PRG:6D13 B9 38 F1
clc ; CPU:$ED16 PRG:6D16 18
; -----------------------------------------------------------------------------
; Routine: Sub_ED17
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_ED17:
adc $038F,x ; CPU:$ED17 PRG:6D17 7D 8F 03
sta $038F,x ; CPU:$ED1A PRG:6D1A 9D 8F 03
lda $F139,y ; CPU:$ED1D PRG:6D1D B9 39 F1
adc $038E,x ; CPU:$ED20 PRG:6D20 7D 8E 03
sta $038E,x ; CPU:$ED23 PRG:6D23 9D 8E 03
dec Zp39 ; CPU:$ED26 PRG:6D26 C6 39
bne Sub_ED00 ; CPU:$ED28 PRG:6D28 D0 D6
lda $038C,x ; CPU:$ED2A PRG:6D2A BD 8C 03
asl a ; CPU:$ED2D PRG:6D2D 0A
ror $038C,x ; CPU:$ED2E PRG:6D2E 7E 8C 03
ror $038D,x ; CPU:$ED31 PRG:6D31 7E 8D 03
lda $038E,x ; CPU:$ED34 PRG:6D34 BD 8E 03
asl a ; CPU:$ED37 PRG:6D37 0A
ror $038E,x ; CPU:$ED38 PRG:6D38 7E 8E 03
ror $038F,x ; CPU:$ED3B PRG:6D3B 7E 8F 03
rts ; CPU:$ED3E PRG:6D3E 60
; -----------------------------------------------------------------------------
; Routine: DispatchLdaStoreLdaStoreLdy
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaStoreLdaStoreLdy:
lda ObjectXHi ; CPU:$ED3F PRG:6D3F A5 38
sta ObjectYHi ; CPU:$ED41 PRG:6D41 85 36
lda #$00 ; CPU:$ED43 PRG:6D43 A9 00
sta ObjectYLo ; CPU:$ED45 PRG:6D45 85 35
ldy #$10 ; CPU:$ED47 PRG:6D47 A0 10
; -----------------------------------------------------------------------------
; Routine: Sub_ED49
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_ED49:
asl ObjectYLo ; CPU:$ED49 PRG:6D49 06 35
rol ObjectYHi ; CPU:$ED4B PRG:6D4B 26 36
rol a ; CPU:$ED4D PRG:6D4D 2A
bcs Sub_ED54 ; CPU:$ED4E PRG:6D4E B0 04
cmp ObjectXLo ; CPU:$ED50 PRG:6D50 C5 37
bcc Sub_ED59 ; CPU:$ED52 PRG:6D52 90 05
; -----------------------------------------------------------------------------
; Routine: Sub_ED54
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_ED54:
sec ; CPU:$ED54 PRG:6D54 38
sbc ObjectXLo ; CPU:$ED55 PRG:6D55 E5 37
inc ObjectYLo ; CPU:$ED57 PRG:6D57 E6 35
; -----------------------------------------------------------------------------
; Routine: Sub_ED59
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_ED59:
dey ; CPU:$ED59 PRG:6D59 88
bne Sub_ED49 ; CPU:$ED5A PRG:6D5A D0 ED
rts ; CPU:$ED5C PRG:6D5C 60
; -----------------------------------------------------------------------------
; Routine: DispatchJsrLdaCmpBccBneLda
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrLdaCmpBccBneLda:
jsr DispatchLdaStoreLdaStoreLdy; CPU:$ED5D PRG:6D5D 20 3F ED
; -----------------------------------------------------------------------------
; Routine: Sub_ED60
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_ED60:
lda $ED7D,y ; CPU:$ED60 PRG:6D60 B9 7D ED
cmp ObjectYHi ; CPU:$ED63 PRG:6D63 C5 36
bcc Sub_ED73 ; CPU:$ED65 PRG:6D65 90 0C
bne Sub_ED70 ; CPU:$ED67 PRG:6D67 D0 07
lda $ED7C,y ; CPU:$ED69 PRG:6D69 B9 7C ED
cmp ObjectYLo ; CPU:$ED6C PRG:6D6C C5 35
bcc Sub_ED73 ; CPU:$ED6E PRG:6D6E 90 03
; -----------------------------------------------------------------------------
; Routine: Sub_ED70
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_ED70:
tya ; CPU:$ED70 PRG:6D70 98
lsr a ; CPU:$ED71 PRG:6D71 4A
rts ; CPU:$ED72 PRG:6D72 60
; -----------------------------------------------------------------------------
; Routine: Sub_ED73
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_ED73:
iny ; CPU:$ED73 PRG:6D73 C8
iny ; CPU:$ED74 PRG:6D74 C8
cpy #$10 ; CPU:$ED75 PRG:6D75 C0 10
bne Sub_ED60 ; CPU:$ED77 PRG:6D77 D0 E7
lda #$08 ; CPU:$ED79 PRG:6D79 A9 08
rts ; CPU:$ED7B PRG:6D7B 60
EnemyPtrTable:
; Enemy routine pointer table (16-bit entries mostly in $F0xx-$F1xx)
; ---- data $ED7C-$EE27 (172 bytes) ----
; referenced by `lda $ED8C,y` at $EBEA (operand $ED8C falls inside this region)
; referenced by `lda $ED8D,y` at $EBEF (operand $ED8D falls inside this region)
; referenced by `lda $ED7D,y` at $ED60 (operand $ED7D falls inside this region)
; referenced by `lda $ED7C,y` at $ED69 (operand $ED7C falls inside this region)
.byte $19, $00, $4E, $00, $89, $00, $D2, $00, $38, $01, $DF, $01, $4C, $03, $27, $0A ; CPU:$ED7C PRG:6D7C 19 00 4E 00 89 00 D2 00 38 01 DF 01 4C 03 27 0A
.byte $02, $F1, $29, $F1, $18, $F1, $0B, $F1, $AA, $F0, $C3, $F0, $DC, $F0, $E9, $F0 ; CPU:$ED8C PRG:6D8C 02 F1 29 F1 18 F1 0B F1 AA F0 C3 F0 DC F0 E9 F0
.byte $90, $F0, $9D, $F0, $6E, $F0, $7F, $F0, $1A, $F0, $2F, $F0, $44, $F0, $59, $F0 ; CPU:$ED9C PRG:6D9C 90 F0 9D F0 6E F0 7F F0 1A F0 2F F0 44 F0 59 F0
.byte $E7, $EF, $F8, $EF, $09, $F0, $66, $EE, $AF, $EF, $C0, $EF, $D1, $EF, $E2, $EF ; CPU:$EDAC PRG:6DAC E7 EF F8 EF 09 F0 66 EE AF EF C0 EF D1 EF E2 EF
.byte $73, $EF, $84, $EF, $91, $EF, $9E, $EF, $3B, $EF, $4C, $EF, $59, $EF, $62, $EF ; CPU:$EDBC PRG:6DBC 73 EF 84 EF 91 EF 9E EF 3B EF 4C EF 59 EF 62 EF
.byte $87, $EE, $98, $EE, $A9, $EE, $BA, $EE, $CB, $EE, $DC, $EE, $ED, $EE, $FA, $EE ; CPU:$EDCC PRG:6DCC 87 EE 98 EE A9 EE BA EE CB EE DC EE ED EE FA EE
.byte $03, $EF, $14, $EF, $25, $EF, $32, $EF, $52, $EE, $57, $EE, $5C, $EE, $61, $EE ; CPU:$EDDC PRG:6DDC 03 EF 14 EF 25 EF 32 EF 52 EE 57 EE 5C EE 61 EE
.byte $16, $EE, $1B, $EE, $20, $EE, $25, $EE, $2A, $EE, $2F, $EE, $34, $EE, $39, $EE ; CPU:$EDEC PRG:6DEC 16 EE 1B EE 20 EE 25 EE 2A EE 2F EE 34 EE 39 EE
.byte $3E, $EE, $43, $EE, $48, $EE, $4D, $EE, $08, $EE, $0D, $EE, $01, $00, $D7, $00 ; CPU:$EDFC PRG:6DFC 3E EE 43 EE 48 EE 4D EE 08 EE 0D EE 01 00 D7 00
.byte $00, $02, $00, $D2, $03, $00, $00, $D7, $00, $00, $01, $00, $D4, $00, $00, $01 ; CPU:$EE0C PRG:6E0C 00 02 00 D2 03 00 00 D7 00 00 01 00 D4 00 00 01
.byte $00, $D4, $40, $00, $01, $00, $D4, $80, $00, $01, $00, $D4 ; CPU:$EE1C PRG:6E1C 00 D4 40 00 01 00 D4 80 00 01 00 D4
; -----------------------------------------------------------------------------
; Routine: Sub_EE28
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EE28:
cpy #$00 ; CPU:$EE28 PRG:6E28 C0 00
ora (PPUCTRLShadow,x) ; CPU:$EE2A PRG:6E2A 01 00
cmp PPUCTRLShadow,x ; CPU:$EE2C PRG:6E2C D5 00
brk ; CPU:$EE2E PRG:6E2E 00
; ---- data $EE2F-$EE3B (13 bytes) ----
.byte $01, $00, $D5, $40, $00, $01, $00, $D5, $80, $00, $01, $00, $D5 ; CPU:$EE2F PRG:6E2F 01 00 D5 40 00 01 00 D5 80 00 01 00 D5
; -----------------------------------------------------------------------------
; Routine: Sub_EE3C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EE3C:
cpy #$00 ; CPU:$EE3C PRG:6E3C C0 00
ora (PPUCTRLShadow,x) ; CPU:$EE3E PRG:6E3E 01 00
dec PPUCTRLShadow,x ; CPU:$EE40 PRG:6E40 D6 00
brk ; CPU:$EE42 PRG:6E42 00
; ---- data $EE43-$EE4F (13 bytes) ----
.byte $01, $00, $D6, $40, $00, $01, $00, $D6, $80, $00, $01, $00, $D6 ; CPU:$EE43 PRG:6E43 01 00 D6 40 00 01 00 D6 80 00 01 00 D6
; -----------------------------------------------------------------------------
; Routine: Sub_EE50
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EE50:
cpy #$00 ; CPU:$EE50 PRG:6E50 C0 00
ora (PPUCTRLShadow,x) ; CPU:$EE52 PRG:6E52 01 00
cpx #$02 ; CPU:$EE54 PRG:6E54 E0 02
brk ; CPU:$EE56 PRG:6E56 00
; ---- data $EE57-$EE6B (21 bytes) ----
.byte $01, $00, $E0, $42, $00, $01, $00, $E0, $03, $00, $01, $00, $E0, $43, $00, $08 ; CPU:$EE57 PRG:6E57 01 00 E0 42 00 01 00 E0 03 00 01 00 E0 43 00 08
.byte $00, $94, $01, $00, $00 ; CPU:$EE67 PRG:6E67 00 94 01 00 00
; -----------------------------------------------------------------------------
; Routine: Sub_EE6C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EE6C:
stx ZpC1,y ; CPU:$EE6C PRG:6E6C 96 C1
php ; CPU:$EE6E PRG:6E6E 08
php ; CPU:$EE6F PRG:6E6F 08
stx PPUMASKShadow,y ; CPU:$EE70 PRG:6E70 96 01
brk ; CPU:$EE72 PRG:6E72 00
; -----------------------------------------------------------------------------
; Routine: Sub_EE73
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EE73:
php ; CPU:$EE73 PRG:6E73 08
stx Zp41,y ; CPU:$EE74 PRG:6E74 96 41
php ; CPU:$EE76 PRG:6E76 08
brk ; CPU:$EE77 PRG:6E77 00
; ---- data $EE78-$EE7B (4 bytes) ----
.byte $86, $00, $00, $00 ; CPU:$EE78 PRG:6E78 86 00 00 00
; -----------------------------------------------------------------------------
; Routine: Sub_EE7C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EE7C:
stx Zp40 ; CPU:$EE7C PRG:6E7C 86 40
php ; CPU:$EE7E PRG:6E7E 08
php ; CPU:$EE7F PRG:6E7F 08
stx Zp80 ; CPU:$EE80 PRG:6E80 86 80
brk ; CPU:$EE82 PRG:6E82 00
; ---- data $EE83-$EE8C (10 bytes) ----
.byte $08, $86, $C0, $08, $04, $00, $B0, $01, $00, $00 ; CPU:$EE83 PRG:6E83 08 86 C0 08 04 00 B0 01 00 00
; -----------------------------------------------------------------------------
; Routine: Sub_EE8D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EE8D:
lda (PPUMASKShadow),y ; CPU:$EE8D PRG:6E8D B1 01
php ; CPU:$EE8F PRG:6E8F 08
php ; CPU:$EE90 PRG:6E90 08
lda (ZpC1),y ; CPU:$EE91 PRG:6E91 B1 C1
brk ; CPU:$EE93 PRG:6E93 00
; ---- data $EE94-$EE9D (10 bytes) ----
.byte $08, $B1, $81, $08, $04, $00, $B4, $01, $00, $00 ; CPU:$EE94 PRG:6E94 08 B1 81 08 04 00 B4 01 00 00
; -----------------------------------------------------------------------------
; Routine: Sub_EE9E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EE9E:
lda PPUMASKShadow,x ; CPU:$EE9E PRG:6E9E B5 01
php ; CPU:$EEA0 PRG:6EA0 08
php ; CPU:$EEA1 PRG:6EA1 08
ldx PPUMASKShadow,y ; CPU:$EEA2 PRG:6EA2 B6 01
brk ; CPU:$EEA4 PRG:6EA4 00
; ---- data $EEA5-$EED0 (44 bytes) ----
.byte $08, $B7, $01, $08, $04, $00, $B8, $01, $00, $00, $B9, $01, $08, $08, $BA, $01 ; CPU:$EEA5 PRG:6EA5 08 B7 01 08 04 00 B8 01 00 00 B9 01 08 08 BA 01
.byte $00, $08, $BB, $01, $08, $04, $00, $BC, $01, $00, $00, $BD, $01, $08, $08, $BE ; CPU:$EEB5 PRG:6EB5 00 08 BB 01 08 04 00 BC 01 00 00 BD 01 08 08 BE
.byte $01, $00, $08, $BF, $01, $08, $04, $00, $B0, $01, $00, $00 ; CPU:$EEC5 PRG:6EC5 01 00 08 BF 01 08 04 00 B0 01 00 00
; -----------------------------------------------------------------------------
; Routine: Sub_EED1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EED1:
lda (PPUMASKShadow),y ; CPU:$EED1 PRG:6ED1 B1 01
php ; CPU:$EED3 PRG:6ED3 08
php ; CPU:$EED4 PRG:6ED4 08
lda (ZpC1),y ; CPU:$EED5 PRG:6ED5 B1 C1
brk ; CPU:$EED7 PRG:6ED7 00
; ---- data $EED8-$EF08 (49 bytes) ----
.byte $08, $B1, $81, $08, $04, $00, $C0, $41, $08, $00, $C1, $41, $00, $08, $C2, $41 ; CPU:$EED8 PRG:6ED8 08 B1 81 08 04 00 C0 41 08 00 C1 41 00 08 C2 41
.byte $08, $08, $C3, $41, $00, $03, $00, $C4, $41, $08, $04, $C5, $41, $00, $08, $C6 ; CPU:$EEE8 PRG:6EE8 08 08 C3 41 00 03 00 C4 41 08 04 C5 41 00 08 C6
.byte $41, $08, $02, $00, $B0, $01, $08, $08, $B1, $C1, $08, $04, $00, $B0, $01, $00 ; CPU:$EEF8 PRG:6EF8 41 08 02 00 B0 01 08 08 B1 C1 08 04 00 B0 01 00
.byte $00 ; CPU:$EF08 PRG:6F08 00
; -----------------------------------------------------------------------------
; Routine: Sub_EF09
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EF09:
lda (PPUMASKShadow),y ; CPU:$EF09 PRG:6F09 B1 01
php ; CPU:$EF0B PRG:6F0B 08
php ; CPU:$EF0C PRG:6F0C 08
lda (ZpC1),y ; CPU:$EF0D PRG:6F0D B1 C1
brk ; CPU:$EF0F PRG:6F0F 00
; ---- data $EF10-$EF2A (27 bytes) ----
.byte $08, $B1, $81, $08, $04, $00, $C0, $01, $00, $00, $C1, $01, $08, $08, $C2, $01 ; CPU:$EF10 PRG:6F10 08 B1 81 08 04 00 C0 01 00 00 C1 01 08 08 C2 01
.byte $00, $08, $C3, $01, $08, $03, $00, $C4, $01, $00, $04 ; CPU:$EF20 PRG:6F20 00 08 C3 01 08 03 00 C4 01 00 04
; -----------------------------------------------------------------------------
; Routine: Sub_EF2B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EF2B:
cmp PPUMASKShadow ; CPU:$EF2B PRG:6F2B C5 01
php ; CPU:$EF2D PRG:6F2D 08
php ; CPU:$EF2E PRG:6F2E 08
dec PPUMASKShadow ; CPU:$EF2F PRG:6F2F C6 01
brk ; CPU:$EF31 PRG:6F31 00
; ---- data $EF32-$EF34 (3 bytes) ----
.byte $02, $00, $B1 ; CPU:$EF32 PRG:6F32 02 00 B1
; -----------------------------------------------------------------------------
; Routine: Sub_EF35
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EF35:
ora (PPUCTRLShadow,x) ; CPU:$EF35 PRG:6F35 01 00
php ; CPU:$EF37 PRG:6F37 08
lda (Zp81),y ; CPU:$EF38 PRG:6F38 B1 81
brk ; CPU:$EF3A PRG:6F3A 00
SpriteLayoutData2:
; Sprite layout records: 4-byte entries (x offset, y offset, tile index, attribute),
; e.g. $04 $00 $7C $01 at $EF3B; the same record format as the table at $F9BD.
; No instruction reference is known: the only operand found, `and $EF3D` at $D63E,
; sits in a misdecoded data region (see the Pass 1 residue notes in README.md).
; ---- data $EF3B-$EFC5 (139 bytes) ----
.byte $04, $00, $7C, $01, $00, $00, $7D, $01, $08, $08, $7E, $01, $00, $08, $7F, $01 ; CPU:$EF3B PRG:6F3B 04 00 7C 01 00 00 7D 01 08 08 7E 01 00 08 7F 01
.byte $08, $03, $04, $80, $01, $00, $04, $81, $01, $08, $0C, $82, $01, $04, $02, $04 ; CPU:$EF4B PRG:6F4B 08 03 04 80 01 00 04 81 01 08 0C 82 01 04 02 04
.byte $84, $01, $00, $04, $85, $01, $08, $04, $00, $88, $01, $00, $00, $89, $01, $08 ; CPU:$EF5B PRG:6F5B 84 01 00 04 85 01 08 04 00 88 01 00 00 89 01 08
.byte $08, $8A, $01, $00, $08, $8B, $01, $08, $04, $00, $5C, $01, $00, $00, $5D, $01 ; CPU:$EF6B PRG:6F6B 08 8A 01 00 08 8B 01 08 04 00 5C 01 00 00 5D 01
.byte $08, $08, $5F, $41, $00, $08, $5F, $01, $08, $03, $04, $60, $01, $00, $04, $61 ; CPU:$EF7B PRG:6F7B 08 08 5F 41 00 08 5F 01 08 03 04 60 01 00 04 61
.byte $01, $08, $0C, $62, $01, $04, $03, $04, $64, $01, $04, $0C, $66, $01, $00, $0C ; CPU:$EF8B PRG:6F8B 01 08 0C 62 01 04 03 04 64 01 04 0C 66 01 00 0C
.byte $67, $01, $08, $04, $00, $69, $41, $00, $00, $69, $01, $08, $08, $6A, $01, $00 ; CPU:$EF9B PRG:6F9B 67 01 08 04 00 69 41 00 00 69 01 08 08 6A 01 00
.byte $08, $6B, $01, $08, $04, $00, $63, $01, $00, $00, $63, $41, $08, $08, $63, $81 ; CPU:$EFAB PRG:6FAB 08 6B 01 08 04 00 63 01 00 00 63 41 08 08 63 81
.byte $00, $08, $63, $C1, $08, $04, $00, $65, $01, $00, $00 ; CPU:$EFBB PRG:6FBB 00 08 63 C1 08 04 00 65 01 00 00
; ---- data $EFC6-$EFCC (7 bytes) ----
.byte $65, $41, $08, $08, $65, $81, $00 ; CPU:$EFC6 PRG:6FC6 65 41 08 08 65 81 00
; ---- data $EFCD-$EFFD (49 bytes) ----
.byte $08, $65, $C1, $08, $04, $00, $77, $01, $00, $00, $77, $41, $08, $08, $77, $81 ; CPU:$EFCD PRG:6FCD 08 65 C1 08 04 00 77 01 00 00 77 41 08 08 77 81
.byte $00, $08, $77, $C1, $08, $01, $04, $7B, $01, $04, $04, $00, $50, $01, $00, $00 ; CPU:$EFDD PRG:6FDD 00 08 77 C1 08 01 04 7B 01 04 04 00 50 01 00 00
.byte $51, $01, $08, $08, $52, $01, $00, $08, $53, $01, $08, $04, $00, $54, $01, $00 ; CPU:$EFED PRG:6FED 51 01 08 08 52 01 00 08 53 01 08 04 00 54 01 00
.byte $00 ; CPU:$EFFD PRG:6FFD 00
; -----------------------------------------------------------------------------
; Routine: Sub_EFFE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_EFFE:
eor PPUMASKShadow,x ; CPU:$EFFE PRG:6FFE 55 01
php ; CPU:$F000 PRG:7000 08
php ; CPU:$F001 PRG:7001 08
lsr PPUMASKShadow,x ; CPU:$F002 PRG:7002 56 01
brk ; CPU:$F004 PRG:7004 00
; ---- data $F005-$F017 (19 bytes) ----
.byte $08, $57, $01, $08, $04, $00, $58, $01, $00, $00, $59, $01, $08, $08, $5A, $01 ; CPU:$F005 PRG:7005 08 57 01 08 04 00 58 01 00 00 59 01 08 08 5A 01
.byte $00, $08, $5B ; CPU:$F015 PRG:7015 00 08 5B
; -----------------------------------------------------------------------------
; Routine: Sub_F018
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F018:
ora (Joypad2Cur,x) ; CPU:$F018 PRG:7018 01 08
; ---- data $F01A-$F01F (6 bytes) ----
.byte $05, $00, $FD, $01, $FE, $00 ; CPU:$F01A PRG:701A 05 00 FD 01 FE 00
; ---- data $F020-$F029 (10 bytes) ----
.byte $40, $01, $06, $08, $FF, $01, $FE, $08, $42, $01 ; CPU:$F020 PRG:7020 40 01 06 08 FF 01 FE 08 42 01
; ---- data $F02A-$F034 (11 bytes) ----
.byte $06, $03, $38, $01, $07, $05, $00, $FD, $01, $FE, $00 ; CPU:$F02A PRG:702A 06 03 38 01 07 05 00 FD 01 FE 00
; ---- data $F035-$F039 (5 bytes) ----
.byte $44, $01, $06, $08, $FF ; CPU:$F035 PRG:7035 44 01 06 08 FF
; ---- data $F03A-$F049 (16 bytes) ----
.byte $01, $FE, $08, $46, $01, $06, $03, $38, $01, $07, $05, $00, $FD, $01, $FE, $00 ; CPU:$F03A PRG:703A 01 FE 08 46 01 06 03 38 01 07 05 00 FD 01 FE 00
; ---- data $F04A-$F053 (10 bytes) ----
.byte $48, $01, $06, $08, $FF, $01, $FE, $08, $4A, $01 ; CPU:$F04A PRG:704A 48 01 06 08 FF 01 FE 08 4A 01
; ---- data $F054-$F058 (5 bytes) ----
.byte $06, $03, $38, $01, $07 ; CPU:$F054 PRG:7054 06 03 38 01 07
ora PPUCTRLShadow ; CPU:$F059 PRG:7059 05 00
sbc $FE01,x ; CPU:$F05B PRG:705B FD 01 FE
brk ; CPU:$F05E PRG:705E 00
; ---- data $F05F-$F0E1 (131 bytes) ----
.byte $4C, $01, $06, $08, $FF, $01, $FE, $08, $4E, $01, $06, $03, $38, $01, $07, $04 ; CPU:$F05F PRG:705F 4C 01 06 08 FF 01 FE 08 4E 01 06 03 38 01 07 04
.byte $03, $6C, $01, $FC, $00, $6D, $01, $04, $03, $6C, $01, $08, $08, $6F, $01, $04 ; CPU:$F06F PRG:706F 03 6C 01 FC 00 6D 01 04 03 6C 01 08 08 6F 01 04
.byte $04, $00, $70, $01, $00, $00, $71, $01, $08, $08, $72, $01, $00, $08, $73, $01 ; CPU:$F07F PRG:707F 04 00 70 01 00 00 71 01 08 08 72 01 00 08 73 01
.byte $08, $03, $00, $74, $01, $00, $00, $75, $01, $08, $08, $76, $01, $04, $03, $00 ; CPU:$F08F PRG:708F 08 03 00 74 01 00 00 75 01 08 08 76 01 04 03 00
.byte $78, $01, $00, $00, $79, $01, $08, $08, $7A, $01, $04, $06, $00, $83, $00, $FE ; CPU:$F09F PRG:709F 78 01 00 00 79 01 08 08 7A 01 04 06 00 83 00 FE
.byte $00, $8F, $00, $06, $00, $8F, $00, $0E, $08, $83, $00, $FE, $08, $8F, $00, $06 ; CPU:$F0AF PRG:70AF 00 8F 00 06 00 8F 00 0E 08 83 00 FE 08 8F 00 06
.byte $08, $8F, $00, $0E, $06, $FE, $91, $00, $00, $FE, $91, $00, $08, $FE, $91, $00 ; CPU:$F0BF PRG:70BF 08 8F 00 0E 06 FE 91 00 00 FE 91 00 08 FE 91 00
.byte $10, $06, $92, $00, $00, $06, $93, $00, $08, $06, $92, $40, $10, $03, $01, $90 ; CPU:$F0CF PRG:70CF 10 06 92 00 00 06 93 00 08 06 92 40 10 03 01 90
.byte $00, $00, $01 ; CPU:$F0DF PRG:70DF 00 00 01
; -----------------------------------------------------------------------------
; Routine: Sub_F0E2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F0E2:
bcc Sub_F0E4 ; CPU:$F0E2 PRG:70E2 90 00
; -----------------------------------------------------------------------------
; Routine: Sub_F0E4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F0E4:
php ; CPU:$F0E4 PRG:70E4 08
ora (Zp90,x) ; CPU:$F0E5 PRG:70E5 01 90
brk ; CPU:$F0E7 PRG:70E7 00
EnemySpawnTable:
; Enemy spawn parameter table (4-byte entries read by lda $F136..$F139,y)
; referenced by `lda $F136,y` at $D129 (operand $F136 falls inside this region)
; referenced by `lda $F137,y` at $D133 (operand $F137 falls inside this region)
; referenced by `lda $F138,y` at $D13C (operand $F138 falls inside this region)
; referenced by `lda $F139,y` at $D146 (operand $F139 falls inside this region)
; referenced by `lda $F136,y` at $ED00 (operand $F136 falls inside this region)
; referenced by `lda $F137,y` at $ED0A (operand $F137 falls inside this region)
; ... and 4 further references from decoded code
; ---- data $F0E8-$F1D9 (242 bytes) ----
.byte $10, $06, $02, $95, $00, $00, $02, $8F, $00, $08, $02, $95, $40, $10, $0A, $97 ; CPU:$F0E8 PRG:70E8 10 06 02 95 00 00 02 8F 00 08 02 95 40 10 0A 97
.byte $00, $00, $0A, $97, $00, $08, $0A, $97, $00, $10, $02, $00, $38, $01, $01, $08 ; CPU:$F0F8 PRG:70F8 00 00 0A 97 00 08 0A 97 00 10 02 00 38 01 01 08
.byte $3A, $01, $01, $03, $00, $36, $81, $04, $08, $36, $01, $04, $04, $35, $01, $0B ; CPU:$F108 PRG:7108 3A 01 01 03 00 36 81 04 08 36 01 04 04 35 01 0B
.byte $04, $00, $30, $01, $00, $00, $31, $01, $08, $08, $32, $01, $00, $08, $33, $01 ; CPU:$F118 PRG:7118 04 00 30 01 00 00 31 01 08 08 32 01 00 08 33 01
.byte $08, $03, $00, $34, $01, $04, $08, $34, $81, $04, $04, $35, $01, $03, $00, $00 ; CPU:$F128 PRG:7128 08 03 00 34 01 04 08 34 81 04 04 35 01 03 00 00
.byte $00, $01, $32, $00, $FA, $00, $62, $00, $EC, $00, $8E, $00, $D4, $00, $B4, $00 ; CPU:$F138 PRG:7138 00 01 32 00 FA 00 62 00 EC 00 8E 00 D4 00 B4 00
.byte $B4, $00, $D4, $00, $8E, $00, $EC, $00, $62, $00, $FA, $00, $32, $00, $00, $01 ; CPU:$F148 PRG:7148 B4 00 D4 00 8E 00 EC 00 62 00 FA 00 32 00 00 01
.byte $00, $00, $FA, $00, $CE, $FF, $EC, $00, $9E, $FF, $D4, $00, $72, $FF, $B4, $00 ; CPU:$F158 PRG:7158 00 00 FA 00 CE FF EC 00 9E FF D4 00 72 FF B4 00
.byte $4C, $FF, $8E, $00, $2C, $FF, $62, $00, $14, $FF, $32, $00, $06, $FF, $00, $00 ; CPU:$F168 PRG:7168 4C FF 8E 00 2C FF 62 00 14 FF 32 00 06 FF 00 00
.byte $00, $FF, $CE, $FF, $06, $FF, $9E, $FF, $14, $FF, $72, $FF, $2C, $FF, $4C, $FF ; CPU:$F178 PRG:7178 00 FF CE FF 06 FF 9E FF 14 FF 72 FF 2C FF 4C FF
.byte $4C, $FF, $2C, $FF, $72, $FF, $14, $FF, $9E, $FF, $06, $FF, $CE, $FF, $00, $FF ; CPU:$F188 PRG:7188 4C FF 2C FF 72 FF 14 FF 9E FF 06 FF CE FF 00 FF
.byte $00, $00, $06, $FF, $32, $00, $14, $FF, $62, $00, $2C, $FF, $8E, $00, $4C, $FF ; CPU:$F198 PRG:7198 00 00 06 FF 32 00 14 FF 62 00 2C FF 8E 00 4C FF
.byte $B4, $00, $72, $FF, $D4, $00, $9E, $FF, $EC, $00, $CE, $FF, $FA, $00, $C5, $F1 ; CPU:$F1A8 PRG:71A8 B4 00 72 FF D4 00 9E FF EC 00 CE FF FA 00 C5 F1
.byte $CF, $F1, $D9, $F1, $E0, $F1, $E0, $F1, $ED, $F1, $ED, $F1, $ED, $F1, $20, $DA ; CPU:$F1B8 PRG:71B8 CF F1 D9 F1 E0 F1 E0 F1 ED F1 ED F1 ED F1 20 DA
.byte $F1, $A9, $01, $A0, $00, $4C, $93, $F5, $20, $DA, $F1, $A9, $02, $A0, $00, $4C ; CPU:$F1C8 PRG:71C8 F1 A9 01 A0 00 4C 93 F5 20 DA F1 A9 02 A0 00 4C
.byte $93, $F5 ; CPU:$F1D8 PRG:71D8 93 F5
ldx #$40 ; CPU:$F1DA PRG:71DA A2 40
; -----------------------------------------------------------------------------
; Routine: DispatchLdyJmp
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdyJmp:
ldy #$01 ; CPU:$F1DC PRG:71DC A0 01
jmp DispatchStoreLdaTayLdaStoreIny ; CPU:$F1DE PRG:71DE 4C 93 F5
; ---- data $F1E1-$F1ED (13 bytes) ----
.byte $A5, $5B, $10, $08, $A9, $B4, $85, $5A, $A9, $02, $85, $5B, $60 ; CPU:$F1E1 PRG:71E1 A5 5B 10 08 A9 B4 85 5A A9 02 85 5B 60
lda #$00 ; CPU:$F1EE PRG:71EE A9 00
sta GameMode ; CPU:$F1F0 PRG:71F0 85 10
sta Zp42 ; CPU:$F1F2 PRG:71F2 85 42
rts ; CPU:$F1F4 PRG:71F4 60
; -----------------------------------------------------------------------------
; Routine: Sub_F1F5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F1F5:
jsr DispatchLdaBneStoreStoreLdxLdy ; CPU:$F1F5 PRG:71F5 20 1D F6
lda Zp5B ; CPU:$F1F8 PRG:71F8 A5 5B
dec Zp5A ; CPU:$F1FA PRG:71FA C6 5A
bne Sub_F201 ; CPU:$F1FC PRG:71FC D0 03
clc ; CPU:$F1FE PRG:71FE 18
adc #$03 ; CPU:$F1FF PRG:71FF 69 03
; -----------------------------------------------------------------------------
; Routine: Sub_F201
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F201:
and #$07 ; CPU:$F201 PRG:7201 29 07
asl a ; CPU:$F203 PRG:7203 0A
tax ; CPU:$F204 PRG:7204 AA
lda $F1B7,x ; CPU:$F205 PRG:7205 BD B7 F1
pha ; CPU:$F208 PRG:7208 48
lda $F1B6,x ; CPU:$F209 PRG:7209 BD B6 F1
pha ; CPU:$F20C PRG:720C 48
rts ; CPU:$F20D PRG:720D 60
; -----------------------------------------------------------------------------
; Routine: Sub_F20E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F20E:
stx Zp3B ; CPU:$F20E PRG:720E 86 3B
lda Zp42 ; CPU:$F210 PRG:7210 A5 42
asl a ; CPU:$F212 PRG:7212 0A
tax ; CPU:$F213 PRG:7213 AA
lda $A3F1,x ; CPU:$F214 PRG:7214 BD F1 A3
pha ; CPU:$F217 PRG:7217 48
lda $A3F0,x ; CPU:$F218 PRG:7218 BD F0 A3
pha ; CPU:$F21B PRG:721B 48
rts ; CPU:$F21C PRG:721C 60
; -----------------------------------------------------------------------------
; Routine: InputRead
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
InputRead:
ldx GameMode ; CPU:$F21D PRG:721D A6 10
beq Sub_F20E ; CPU:$F21F PRG:721F F0 ED
dex ; CPU:$F221 PRG:7221 CA
beq Sub_F227 ; CPU:$F222 PRG:7222 F0 03
jmp DispatchLdaBeqDecLdxStx ; CPU:$F224 PRG:7224 4C 4D F3
; -----------------------------------------------------------------------------
; Routine: Sub_F227
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F227:
lda Zp5A ; CPU:$F227 PRG:7227 A5 5A
bne Sub_F1F5 ; CPU:$F229 PRG:7229 D0 CA
sta PPUMASK ; CPU:$F22B PRG:722B 8D 01 20
; -----------------------------------------------------------------------------
; Routine: Sub_F22E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F22E:
jsr DispatchLdaStoreStoreStoreDec ; CPU:$F22E PRG:722E 20 55 F2
lda Zp14 ; CPU:$F231 PRG:7231 A5 14
beq Sub_F252 ; CPU:$F233 PRG:7233 F0 1D
jsr NmiOamDmaCopy ; CPU:$F235 PRG:7235 20 0A FE
lda Zp14 ; CPU:$F238 PRG:7238 A5 14
cmp #$01 ; CPU:$F23A PRG:723A C9 01
bne Sub_F22E ; CPU:$F23C PRG:723C D0 F0
lda Zp3B ; CPU:$F23E PRG:723E A5 3B
beq Sub_F251 ; CPU:$F240 PRG:7240 F0 0F
lda ResetHi ; CPU:$F242 PRG:7242 A5 3C
and #$01 ; CPU:$F244 PRG:7244 29 01
eor #$01 ; CPU:$F246 PRG:7246 49 01
ldx ZpA7 ; CPU:$F248 PRG:7248 A6 A7
beq Sub_F251 ; CPU:$F24A PRG:724A F0 05
sta ResetHi ; CPU:$F24C PRG:724C 85 3C
jsr DispatchLdxLdaTayLdaStoreTya ; CPU:$F24E PRG:724E 20 7F F8
; -----------------------------------------------------------------------------
; Routine: Sub_F251
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F251:
rts ; CPU:$F251 PRG:7251 60
; -----------------------------------------------------------------------------
; Routine: Sub_F252
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F252:
jmp ObjSpawnInit ; CPU:$F252 PRG:7252 4C 10 C0
; -----------------------------------------------------------------------------
; Routine: DispatchLdaStoreStoreStoreDec
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaStoreStoreStoreDec:
lda #$01 ; CPU:$F255 PRG:7255 A9 01
sta $0600 ; CPU:$F257 PRG:7257 8D 00 06
sta $0601 ; CPU:$F25A PRG:725A 8D 01 06
sta $0602 ; CPU:$F25D PRG:725D 8D 02 06
dec Zp14 ; CPU:$F260 PRG:7260 C6 14
bne DispatchLdyJsrLdxLdaStoreIny ; CPU:$F262 PRG:7262 D0 4B
lda Zp60 ; CPU:$F264 PRG:7264 A5 60
bne Sub_F26C ; CPU:$F266 PRG:7266 D0 04
lda #$D2 ; CPU:$F268 PRG:7268 A9 D2
sta Zp3D ; CPU:$F26A PRG:726A 85 3D
; -----------------------------------------------------------------------------
; Routine: Sub_F26C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F26C:
lda #$02 ; CPU:$F26C PRG:726C A9 02
sta GameMode ; CPU:$F26E PRG:726E 85 10
lda Zp99 ; CPU:$F270 PRG:7270 A5 99
cmp #$40 ; CPU:$F272 PRG:7272 C9 40
bcc Sub_F278 ; CPU:$F274 PRG:7274 90 02
dec Zp90 ; CPU:$F276 PRG:7276 C6 90
; -----------------------------------------------------------------------------
; Routine: Sub_F278
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F278:
lda #$01 ; CPU:$F278 PRG:7278 A9 01
sta Zp14 ; CPU:$F27A PRG:727A 85 14
lda #$78 ; CPU:$F27C PRG:727C A9 78
sta Zp23 ; CPU:$F27E PRG:727E 85 23
lda #$D0 ; CPU:$F280 PRG:7280 A9 D0
sta Zp24 ; CPU:$F282 PRG:7282 85 24
lda PPUCTRLShadow ; CPU:$F284 PRG:7284 A5 00
eor #$FF ; CPU:$F286 PRG:7286 49 FF
and #$10 ; CPU:$F288 PRG:7288 29 10
ora #$02 ; CPU:$F28A PRG:728A 09 02
sta NmiToggle ; CPU:$F28C PRG:728C 85 0F
ldx #$00 ; CPU:$F28E PRG:728E A2 00
lda #$00 ; CPU:$F290 PRG:7290 A9 00
sta Zp3F ; CPU:$F292 PRG:7292 85 3F
sta Zp3E ; CPU:$F294 PRG:7294 85 3E
sta Zp44 ; CPU:$F296 PRG:7296 85 44
sta Zp3A ; CPU:$F298 PRG:7298 85 3A
sta Zp99 ; CPU:$F29A PRG:729A 85 99
sta Zp3B ; CPU:$F29C PRG:729C 85 3B
sta Zp32 ; CPU:$F29E PRG:729E 85 32
; -----------------------------------------------------------------------------
; Routine: Sub_F2A0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F2A0:
sta $0300,x ; CPU:$F2A0 PRG:72A0 9D 00 03
sta $0400,x ; CPU:$F2A3 PRG:72A3 9D 00 04
sta $0500,x ; CPU:$F2A6 PRG:72A6 9D 00 05
inx ; CPU:$F2A9 PRG:72A9 E8
bne Sub_F2A0 ; CPU:$F2AA PRG:72AA D0 F4
jmp ObjSpawnInit ; CPU:$F2AC PRG:72AC 4C 10 C0
; -----------------------------------------------------------------------------
; Routine: DispatchLdyJsrLdxLdaStoreIny
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdyJsrLdxLdaStoreIny:
ldy Joypad1Press2 ; CPU:$F2AF PRG:72AF A4 1A
jsr DispatchDecLdaBplLdaStore ; CPU:$F2B1 PRG:72B1 20 00 F3
ldx #$20 ; CPU:$F2B4 PRG:72B4 A2 20
lda #$20 ; CPU:$F2B6 PRG:72B6 A9 20
sta $0208,y ; CPU:$F2B8 PRG:72B8 99 08 02
iny ; CPU:$F2BB PRG:72BB C8
; -----------------------------------------------------------------------------
; Routine: Sub_F2BC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F2BC:
jsr DispatchLdaEorEorAslAslRol ; CPU:$F2BC PRG:72BC 20 5C F5
and #$03 ; CPU:$F2BF PRG:72BF 29 03
ora #$54 ; CPU:$F2C1 PRG:72C1 09 54
sta $0208,y ; CPU:$F2C3 PRG:72C3 99 08 02
iny ; CPU:$F2C6 PRG:72C6 C8
dex ; CPU:$F2C7 PRG:72C7 CA
bne Sub_F2BC ; CPU:$F2C8 PRG:72C8 D0 F2
jsr DispatchLdaCmpBmiClcAdd ; CPU:$F2CA PRG:72CA 20 31 F3
lda Zp15 ; CPU:$F2CD PRG:72CD A5 15
lsr a ; CPU:$F2CF PRG:72CF 4A
ldx #$F0 ; CPU:$F2D0 PRG:72D0 A2 F0
cmp #$0F ; CPU:$F2D2 PRG:72D2 C9 0F
bmi Sub_F2D9 ; CPU:$F2D4 PRG:72D4 30 03
clc ; CPU:$F2D6 PRG:72D6 18
adc #$01 ; CPU:$F2D7 PRG:72D7 69 01
; -----------------------------------------------------------------------------
; Routine: Sub_F2D9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F2D9:
and #$01 ; CPU:$F2D9 PRG:72D9 29 01
beq Sub_F2DF ; CPU:$F2DB PRG:72DB F0 02
ldx #$0F ; CPU:$F2DD PRG:72DD A2 0F
; -----------------------------------------------------------------------------
; Routine: Sub_F2DF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F2DF:
stx ObjectX ; CPU:$F2DF PRG:72DF 86 18
lda #$08 ; CPU:$F2E1 PRG:72E1 A9 08
sta $0208,y ; CPU:$F2E3 PRG:72E3 99 08 02
iny ; CPU:$F2E6 PRG:72E6 C8
ldx #$00 ; CPU:$F2E7 PRG:72E7 A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_F2E9
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F2E9:
lda $0200,x ; CPU:$F2E9 PRG:72E9 BD 00 02
and ObjectX ; CPU:$F2EC PRG:72EC 25 18
sta $0208,y ; CPU:$F2EE PRG:72EE 99 08 02
sta $0200,x ; CPU:$F2F1 PRG:72F1 9D 00 02
iny ; CPU:$F2F4 PRG:72F4 C8
inx ; CPU:$F2F5 PRG:72F5 E8
cpx #$08 ; CPU:$F2F6 PRG:72F6 E0 08
bne Sub_F2E9 ; CPU:$F2F8 PRG:72F8 D0 EF
sty Joypad1Press2 ; CPU:$F2FA PRG:72FA 84 1A
sta $0208,y ; CPU:$F2FC PRG:72FC 99 08 02
rts ; CPU:$F2FF PRG:72FF 60
; -----------------------------------------------------------------------------
; Routine: DispatchDecLdaBplLdaStore
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchDecLdaBplLdaStore:
dec Zp15 ; CPU:$F300 PRG:7300 C6 15
lda Zp15 ; CPU:$F302 PRG:7302 A5 15
bpl Sub_F30A ; CPU:$F304 PRG:7304 10 04
lda #$3B ; CPU:$F306 PRG:7306 A9 3B
sta Zp15 ; CPU:$F308 PRG:7308 85 15
; -----------------------------------------------------------------------------
; Routine: Sub_F30A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F30A:
cmp #$1E ; CPU:$F30A PRG:730A C9 1E
bcc Sub_F311 ; CPU:$F30C PRG:730C 90 03
clc ; CPU:$F30E PRG:730E 18
adc #$22 ; CPU:$F30F PRG:730F 69 22
; -----------------------------------------------------------------------------
; Routine: Sub_F311
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F311:
sta ObjectYLo ; CPU:$F311 PRG:7311 85 35
lda #$00 ; CPU:$F313 PRG:7313 A9 00
sta ObjectYHi ; CPU:$F315 PRG:7315 85 36
sec ; CPU:$F317 PRG:7317 38
ror ObjectYLo ; CPU:$F318 PRG:7318 66 35
ror ObjectYHi ; CPU:$F31A PRG:731A 66 36
lsr ObjectYLo ; CPU:$F31C PRG:731C 46 35
ror ObjectYHi ; CPU:$F31E PRG:731E 66 36
lsr ObjectYLo ; CPU:$F320 PRG:7320 46 35
ror ObjectYHi ; CPU:$F322 PRG:7322 66 36
lda ObjectYLo ; CPU:$F324 PRG:7324 A5 35
sta $0208,y ; CPU:$F326 PRG:7326 99 08 02
iny ; CPU:$F329 PRG:7329 C8
lda ObjectYHi ; CPU:$F32A PRG:732A A5 36
sta $0208,y ; CPU:$F32C PRG:732C 99 08 02
iny ; CPU:$F32F PRG:732F C8
rts ; CPU:$F330 PRG:7330 60
; -----------------------------------------------------------------------------
; Routine: DispatchLdaCmpBmiClcAdd
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaCmpBmiClcAdd:
lda Zp15 ; CPU:$F331 PRG:7331 A5 15
cmp #$1E ; CPU:$F333 PRG:7333 C9 1E
bmi Sub_F33A ; CPU:$F335 PRG:7335 30 03
clc ; CPU:$F337 PRG:7337 18
adc #$02 ; CPU:$F338 PRG:7338 69 02
; -----------------------------------------------------------------------------
; Routine: Sub_F33A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F33A:
ror a ; CPU:$F33A PRG:733A 6A
and #$1E ; CPU:$F33B PRG:733B 29 1E
tax ; CPU:$F33D PRG:733D AA
lda $F53D,x ; CPU:$F33E PRG:733E BD 3D F5
sta $0208,y ; CPU:$F341 PRG:7341 99 08 02
iny ; CPU:$F344 PRG:7344 C8
lda $F53C,x ; CPU:$F345 PRG:7345 BD 3C F5
sta $0208,y ; CPU:$F348 PRG:7348 99 08 02
iny ; CPU:$F34B PRG:734B C8
rts ; CPU:$F34C PRG:734C 60
; -----------------------------------------------------------------------------
; Routine: DispatchLdaBeqDecLdxStx
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaBeqDecLdxStx:
lda Zp3D ; CPU:$F34D PRG:734D A5 3D
beq Sub_F381 ; CPU:$F34F PRG:734F F0 30
dec Zp3D ; CPU:$F351 PRG:7351 C6 3D
ldx #$00 ; CPU:$F353 PRG:7353 A2 00
stx Zp32 ; CPU:$F355 PRG:7355 86 32
ldx #$80 ; CPU:$F357 PRG:7357 A2 80
lda ResetHi ; CPU:$F359 PRG:7359 A5 3C
and #$01 ; CPU:$F35B PRG:735B 29 01
clc ; CPU:$F35D PRG:735D 18
adc #$01 ; CPU:$F35E PRG:735E 69 01
ldy #$00 ; CPU:$F360 PRG:7360 A0 00
jsr DispatchStoreLdaTayLdaStoreIny ; CPU:$F362 PRG:7362 20 93 F5
ldy #$02 ; CPU:$F365 PRG:7365 A0 02
jsr DispatchStoreLdaTayLdaStoreIny ; CPU:$F367 PRG:7367 20 93 F5
lda Zp8D ; CPU:$F36A PRG:736A A5 8D
sec ; CPU:$F36C PRG:736C 38
sbc #$01 ; CPU:$F36D PRG:736D E9 01
ldy #$03 ; CPU:$F36F PRG:736F A0 03
jsr DispatchStoreLdaTayLdaStoreIny ; CPU:$F371 PRG:7371 20 93 F5
ldy #$04 ; CPU:$F374 PRG:7374 A0 04
jsr DispatchStoreLdaTayLdaStoreIny ; CPU:$F376 PRG:7376 20 93 F5
ldy #$05 ; CPU:$F379 PRG:7379 A0 05
jsr DispatchStoreLdaTayLdaStoreIny ; CPU:$F37B PRG:737B 20 93 F5
jmp DispatchLdaStoreLdaClcAddStore ; CPU:$F37E PRG:737E 4C 85 F3
; -----------------------------------------------------------------------------
; Routine: Sub_F381
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F381:
lda #$01 ; CPU:$F381 PRG:7381 A9 01
sta Zp32 ; CPU:$F383 PRG:7383 85 32
; -----------------------------------------------------------------------------
; Routine: DispatchLdaStoreLdaClcAddStore
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaStoreLdaClcAddStore:
lda #$01 ; CPU:$F385 PRG:7385 A9 01
sta $0610 ; CPU:$F387 PRG:7387 8D 10 06
lda Zp26 ; CPU:$F38A PRG:738A A5 26
clc ; CPU:$F38C PRG:738C 18
adc Zp27 ; CPU:$F38D PRG:738D 65 27
sta Zp25 ; CPU:$F38F PRG:738F 85 25
and #$0F ; CPU:$F391 PRG:7391 29 0F
sta Zp26 ; CPU:$F393 PRG:7393 85 26
lsr Zp25 ; CPU:$F395 PRG:7395 46 25
lsr Zp25 ; CPU:$F397 PRG:7397 46 25
lsr Zp25 ; CPU:$F399 PRG:7399 46 25
lsr Zp25 ; CPU:$F39B PRG:739B 46 25
bne Sub_F3A0 ; CPU:$F39D PRG:739D D0 01
rts ; CPU:$F39F PRG:739F 60
; -----------------------------------------------------------------------------
; Routine: Sub_F3A0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F3A0:
lda ScrollY ; CPU:$F3A0 PRG:73A0 A5 03
sec ; CPU:$F3A2 PRG:73A2 38
sbc Zp25 ; CPU:$F3A3 PRG:73A3 E5 25
cmp #$F0 ; CPU:$F3A5 PRG:73A5 C9 F0
bcc Sub_F3B0 ; CPU:$F3A7 PRG:73A7 90 07
ldx #$02 ; CPU:$F3A9 PRG:73A9 A2 02
stx NmiToggle ; CPU:$F3AB PRG:73AB 86 0F
sec ; CPU:$F3AD PRG:73AD 38
sbc #$10 ; CPU:$F3AE PRG:73AE E9 10
; -----------------------------------------------------------------------------
; Routine: Sub_F3B0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F3B0:
sta ScrollY ; CPU:$F3B0 PRG:73B0 85 03
lda #$00 ; CPU:$F3B2 PRG:73B2 A9 00
sta Zp6E ; CPU:$F3B4 PRG:73B4 85 6E
lda Zp29 ; CPU:$F3B6 PRG:73B6 A5 29
clc ; CPU:$F3B8 PRG:73B8 18
adc Zp25 ; CPU:$F3B9 PRG:73B9 65 25
sta Zp29 ; CPU:$F3BB PRG:73BB 85 29
sec ; CPU:$F3BD PRG:73BD 38
sbc #$08 ; CPU:$F3BE PRG:73BE E9 08
bcs Sub_F3C7 ; CPU:$F3C0 PRG:73C0 B0 05
Sub_F3C2:
lda #$01 ; CPU:$F3C2 PRG:73C2 A9 01
sta Zp6E ; CPU:$F3C4 PRG:73C4 85 6E
rts ; CPU:$F3C6 PRG:73C6 60
; -----------------------------------------------------------------------------
; Routine: Sub_F3C7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F3C7:
sta Zp29 ; CPU:$F3C7 PRG:73C7 85 29
lda Zp99 ; CPU:$F3C9 PRG:73C9 A5 99
bne Sub_F3FA ; CPU:$F3CB PRG:73CB D0 2D
lda Zp14 ; CPU:$F3CD PRG:73CD A5 14
beq Sub_F3D6 ; CPU:$F3CF PRG:73CF F0 05
dec Zp14 ; CPU:$F3D1 PRG:73D1 C6 14
jmp DispatchLdyJsrLdxLdaStoreIny ; CPU:$F3D3 PRG:73D3 4C AF F2
; -----------------------------------------------------------------------------
; Routine: Sub_F3D6
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F3D6:
inc Zp90 ; CPU:$F3D6 PRG:73D6 E6 90
lda Zp90 ; CPU:$F3D8 PRG:73D8 A5 90
cmp #$10 ; CPU:$F3DA PRG:73DA C9 10
bne Sub_F3E2 ; CPU:$F3DC PRG:73DC D0 04
lda #$06 ; CPU:$F3DE PRG:73DE A9 06
sta Zp90 ; CPU:$F3E0 PRG:73E0 85 90
; -----------------------------------------------------------------------------
; Routine: Sub_F3E2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F3E2:
asl a ; CPU:$F3E2 PRG:73E2 0A
tax ; CPU:$F3E3 PRG:73E3 AA
lda $A8D5,x ; CPU:$F3E4 PRG:73E4 BD D5 A8
sta Zp2A ; CPU:$F3E7 PRG:73E7 85 2A
lda $A8D6,x ; CPU:$F3E9 PRG:73E9 BD D6 A8
sta Zp2B ; CPU:$F3EC PRG:73EC 85 2B
ldy #$00 ; CPU:$F3EE PRG:73EE A0 00
lda (Zp2A),y ; CPU:$F3F0 PRG:73F0 B1 2A
sta Zp12 ; CPU:$F3F2 PRG:73F2 85 12
inc Zp2A ; CPU:$F3F4 PRG:73F4 E6 2A
bne Sub_F3FA ; CPU:$F3F6 PRG:73F6 D0 02
inc Zp2B ; CPU:$F3F8 PRG:73F8 E6 2B
; -----------------------------------------------------------------------------
; Routine: Sub_F3FA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F3FA:
lda #$04 ; CPU:$F3FA PRG:73FA A9 04
sta Zp14 ; CPU:$F3FC PRG:73FC 85 14
ldy Joypad1Press2 ; CPU:$F3FE PRG:73FE A4 1A
jsr DispatchDecLdaBplLdaStore ; CPU:$F400 PRG:7400 20 00 F3
lda #$20 ; CPU:$F403 PRG:7403 A9 20
sta $0208,y ; CPU:$F405 PRG:7405 99 08 02
iny ; CPU:$F408 PRG:7408 C8
dec Zp99 ; CPU:$F409 PRG:7409 C6 99
lda Zp99 ; CPU:$F40B PRG:740B A5 99
and #$FE ; CPU:$F40D PRG:740D 29 FE
sta VramPtrLo ; CPU:$F40F PRG:740F 85 04
lda #$04 ; CPU:$F411 PRG:7411 A9 04
sta VramCopyCount ; CPU:$F413 PRG:7413 85 05
ldx #$05 ; CPU:$F415 PRG:7415 A2 05
; -----------------------------------------------------------------------------
; Routine: Sub_F417
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F417:
asl VramPtrLo ; CPU:$F417 PRG:7417 06 04
rol VramCopyCount ; CPU:$F419 PRG:7419 26 05
dex ; CPU:$F41B PRG:741B CA
bne Sub_F417 ; CPU:$F41C PRG:741C D0 F9
lda VramPtrLo ; CPU:$F41E PRG:741E A5 04
adc Zp12 ; CPU:$F420 PRG:7420 65 12
sta VramPtrLo ; CPU:$F422 PRG:7422 85 04
lda Zp15 ; CPU:$F424 PRG:7424 A5 15
lsr a ; CPU:$F426 PRG:7426 4A
ldx #$03 ; CPU:$F427 PRG:7427 A2 03
cmp #$0F ; CPU:$F429 PRG:7429 C9 0F
bmi Sub_F430 ; CPU:$F42B PRG:742B 30 03
clc ; CPU:$F42D PRG:742D 18
adc #$01 ; CPU:$F42E PRG:742E 69 01
; -----------------------------------------------------------------------------
; Routine: Sub_F430
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F430:
and #$01 ; CPU:$F430 PRG:7430 29 01
beq Sub_F436 ; CPU:$F432 PRG:7432 F0 02
ldx #$30 ; CPU:$F434 PRG:7434 A2 30
; -----------------------------------------------------------------------------
; Routine: Sub_F436
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F436:
txa ; CPU:$F436 PRG:7436 8A
sta ObjectX ; CPU:$F437 PRG:7437 85 18
asl a ; CPU:$F439 PRG:7439 0A
asl a ; CPU:$F43A PRG:743A 0A
sta ObjectY ; CPU:$F43B PRG:743B 85 19
lda #$08 ; CPU:$F43D PRG:743D A9 08
sta ObjUpdateFlag ; CPU:$F43F PRG:743F 85 0E
lda Zp99 ; CPU:$F441 PRG:7441 A5 99
and #$01 ; CPU:$F443 PRG:7443 29 01
beq Sub_F4AA ; CPU:$F445 PRG:7445 F0 63
; -----------------------------------------------------------------------------
; Routine: Sub_F447
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F447:
ldx #$00 ; CPU:$F447 PRG:7447 A2 00
lda (VramPtrLo,x) ; CPU:$F449 PRG:7449 A1 04
tax ; CPU:$F44B PRG:744B AA
lda $A1EE,x ; CPU:$F44C PRG:744C BD EE A1
sta $0208,y ; CPU:$F44F PRG:744F 99 08 02
iny ; CPU:$F452 PRG:7452 C8
lda $A2E5,x ; CPU:$F453 PRG:7453 BD E5 A2
sta $0208,y ; CPU:$F456 PRG:7456 99 08 02
iny ; CPU:$F459 PRG:7459 C8
jsr DispatchTaxLdxCmpBccInxInx ; CPU:$F45A PRG:745A 20 2B F5
and ObjectX ; CPU:$F45D PRG:745D 25 18
sta ObjPtr ; CPU:$F45F PRG:745F 85 13
lda #$08 ; CPU:$F461 PRG:7461 A9 08
sec ; CPU:$F463 PRG:7463 38
sbc ObjUpdateFlag ; CPU:$F464 PRG:7464 E5 0E
tax ; CPU:$F466 PRG:7466 AA
lda ObjectX ; CPU:$F467 PRG:7467 A5 18
eor #$FF ; CPU:$F469 PRG:7469 49 FF
and $0200,x ; CPU:$F46B PRG:746B 3D 00 02
ora ObjPtr ; CPU:$F46E PRG:746E 05 13
sta $0200,x ; CPU:$F470 PRG:7470 9D 00 02
inc VramPtrLo ; CPU:$F473 PRG:7473 E6 04
ldx #$00 ; CPU:$F475 PRG:7475 A2 00
lda (VramPtrLo,x) ; CPU:$F477 PRG:7477 A1 04
tax ; CPU:$F479 PRG:7479 AA
lda $A1EE,x ; CPU:$F47A PRG:747A BD EE A1
sta $0208,y ; CPU:$F47D PRG:747D 99 08 02
iny ; CPU:$F480 PRG:7480 C8
lda $A2E5,x ; CPU:$F481 PRG:7481 BD E5 A2
sta $0208,y ; CPU:$F484 PRG:7484 99 08 02
iny ; CPU:$F487 PRG:7487 C8
jsr DispatchTaxLdxCmpBccInxInx ; CPU:$F488 PRG:7488 20 2B F5
and ObjectY ; CPU:$F48B PRG:748B 25 19
sta ObjPtr ; CPU:$F48D PRG:748D 85 13
lda #$08 ; CPU:$F48F PRG:748F A9 08
sec ; CPU:$F491 PRG:7491 38
sbc ObjUpdateFlag ; CPU:$F492 PRG:7492 E5 0E
tax ; CPU:$F494 PRG:7494 AA
lda ObjectY ; CPU:$F495 PRG:7495 A5 19
eor #$FF ; CPU:$F497 PRG:7497 49 FF
and $0200,x ; CPU:$F499 PRG:7499 3D 00 02
ora ObjPtr ; CPU:$F49C PRG:749C 05 13
sta $0200,x ; CPU:$F49E PRG:749E 9D 00 02
inc VramPtrLo ; CPU:$F4A1 PRG:74A1 E6 04
dec ObjUpdateFlag ; CPU:$F4A3 PRG:74A3 C6 0E
bne Sub_F447 ; CPU:$F4A5 PRG:74A5 D0 A0
jmp DispatchJsrLdaStoreInyLdx ; CPU:$F4A7 PRG:74A7 4C 0A F5
; -----------------------------------------------------------------------------
; Routine: Sub_F4AA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F4AA:
ldx #$00 ; CPU:$F4AA PRG:74AA A2 00
lda (VramPtrLo,x) ; CPU:$F4AC PRG:74AC A1 04
tax ; CPU:$F4AE PRG:74AE AA
lda $A000,x ; CPU:$F4AF PRG:74AF BD 00 A0
sta $0208,y ; CPU:$F4B2 PRG:74B2 99 08 02
iny ; CPU:$F4B5 PRG:74B5 C8
lda $A0F7,x ; CPU:$F4B6 PRG:74B6 BD F7 A0
sta $0208,y ; CPU:$F4B9 PRG:74B9 99 08 02
iny ; CPU:$F4BC PRG:74BC C8
jsr DispatchTaxLdxCmpBccInxInx ; CPU:$F4BD PRG:74BD 20 2B F5
and ObjectX ; CPU:$F4C0 PRG:74C0 25 18
sta ObjPtr ; CPU:$F4C2 PRG:74C2 85 13
lda #$08 ; CPU:$F4C4 PRG:74C4 A9 08
sec ; CPU:$F4C6 PRG:74C6 38
sbc ObjUpdateFlag ; CPU:$F4C7 PRG:74C7 E5 0E
tax ; CPU:$F4C9 PRG:74C9 AA
lda ObjectX ; CPU:$F4CA PRG:74CA A5 18
eor #$FF ; CPU:$F4CC PRG:74CC 49 FF
and $0200,x ; CPU:$F4CE PRG:74CE 3D 00 02
ora ObjPtr ; CPU:$F4D1 PRG:74D1 05 13
sta $0200,x ; CPU:$F4D3 PRG:74D3 9D 00 02
inc VramPtrLo ; CPU:$F4D6 PRG:74D6 E6 04
ldx #$00 ; CPU:$F4D8 PRG:74D8 A2 00
lda (VramPtrLo,x) ; CPU:$F4DA PRG:74DA A1 04
tax ; CPU:$F4DC PRG:74DC AA
lda $A000,x ; CPU:$F4DD PRG:74DD BD 00 A0
sta $0208,y ; CPU:$F4E0 PRG:74E0 99 08 02
iny ; CPU:$F4E3 PRG:74E3 C8
lda $A0F7,x ; CPU:$F4E4 PRG:74E4 BD F7 A0
sta $0208,y ; CPU:$F4E7 PRG:74E7 99 08 02
iny ; CPU:$F4EA PRG:74EA C8
jsr DispatchTaxLdxCmpBccInxInx ; CPU:$F4EB PRG:74EB 20 2B F5
and ObjectY ; CPU:$F4EE PRG:74EE 25 19
sta ObjPtr ; CPU:$F4F0 PRG:74F0 85 13
lda #$08 ; CPU:$F4F2 PRG:74F2 A9 08
sec ; CPU:$F4F4 PRG:74F4 38
sbc ObjUpdateFlag ; CPU:$F4F5 PRG:74F5 E5 0E
tax ; CPU:$F4F7 PRG:74F7 AA
lda ObjectY ; CPU:$F4F8 PRG:74F8 A5 19
eor #$FF ; CPU:$F4FA PRG:74FA 49 FF
and $0200,x ; CPU:$F4FC PRG:74FC 3D 00 02
ora ObjPtr ; CPU:$F4FF PRG:74FF 05 13
sta $0200,x ; CPU:$F501 PRG:7501 9D 00 02
inc VramPtrLo ; CPU:$F504 PRG:7504 E6 04
dec ObjUpdateFlag ; CPU:$F506 PRG:7506 C6 0E
bne Sub_F4AA ; CPU:$F508 PRG:7508 D0 A0
; -----------------------------------------------------------------------------
; Routine: DispatchJsrLdaStoreInyLdx
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrLdaStoreInyLdx:
jsr DispatchLdaCmpBmiClcAdd ; CPU:$F50A PRG:750A 20 31 F3
lda #$08 ; CPU:$F50D PRG:750D A9 08
sta $0208,y ; CPU:$F50F PRG:750F 99 08 02
iny ; CPU:$F512 PRG:7512 C8
ldx #$00 ; CPU:$F513 PRG:7513 A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_F515
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F515:
lda $0200,x ; CPU:$F515 PRG:7515 BD 00 02
sta $0208,y ; CPU:$F518 PRG:7518 99 08 02
iny ; CPU:$F51B PRG:751B C8
inx ; CPU:$F51C PRG:751C E8
cpx #$08 ; CPU:$F51D PRG:751D E0 08
bne Sub_F515 ; CPU:$F51F PRG:751F D0 F4
sty Joypad1Press2 ; CPU:$F521 PRG:7521 84 1A
lda #$00 ; CPU:$F523 PRG:7523 A9 00
sta $0208,y ; CPU:$F525 PRG:7525 99 08 02
jmp C9bcCheck ; CPU:$F528 PRG:7528 4C BC C9
; -----------------------------------------------------------------------------
; Routine: DispatchTaxLdxCmpBccInxInx
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchTaxLdxCmpBccInxInx:
txa ; CPU:$F52B PRG:752B 8A
ldx #$00 ; CPU:$F52C PRG:752C A2 00
; -----------------------------------------------------------------------------
; Routine: DispatchCmpBccInxInxJmpLda
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchCmpBccInxInxJmpLda:
cmp $A3DC,x ; CPU:$F52E PRG:752E DD DC A3
bcc Sub_F538 ; CPU:$F531 PRG:7531 90 05
inx ; CPU:$F533 PRG:7533 E8
inx ; CPU:$F534 PRG:7534 E8
jmp DispatchCmpBccInxInxJmpLda ; CPU:$F535 PRG:7535 4C 2E F5
; -----------------------------------------------------------------------------
; Routine: Sub_F538
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F538:
lda $A3DD,x ; CPU:$F538 PRG:7538 BD DD A3
rts ; CPU:$F53B PRG:753B 60
AttrAddrTable:
; 16 x 16-bit PPU attribute-table addresses ($23C0-$23F8 and $2BC0-$2BF8), read by
; lda $F53C,x / lda $F53D,x at $F345 / $F33E and stored into the $0208 buffer.
; ---- data $F53C-$F55B (32 bytes) ----
; referenced by `lda $F53D,x` at $F33E (operand $F53D falls inside this region)
; referenced by `lda $F53C,x` at $F345 (operand $F53C falls inside this region)
.byte $C0, $23, $C8, $23, $D0, $23, $D8, $23, $E0, $23, $E8, $23, $F0, $23, $F8, $23 ; CPU:$F53C PRG:753C C0 23 C8 23 D0 23 D8 23 E0 23 E8 23 F0 23 F8 23
.byte $C0, $2B, $C8, $2B, $D0, $2B, $D8, $2B, $E0, $2B, $E8, $2B, $F0, $2B, $F8, $2B ; CPU:$F54C PRG:754C C0 2B C8 2B D0 2B D8 2B E0 2B E8 2B F0 2B F8 2B
; -----------------------------------------------------------------------------
; Routine: DispatchLdaEorEorAslAslRol
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaEorEorAslAslRol:
lda Zp1C ; CPU:$F55C PRG:755C A5 1C
eor Zp1D ; CPU:$F55E PRG:755E 45 1D
eor #$FF ; CPU:$F560 PRG:7560 49 FF
asl a ; CPU:$F562 PRG:7562 0A
asl a ; CPU:$F563 PRG:7563 0A
rol Zp1C ; CPU:$F564 PRG:7564 26 1C
rol Zp1D ; CPU:$F566 PRG:7566 26 1D
lda Zp1E ; CPU:$F568 PRG:7568 A5 1E
asl a ; CPU:$F56A PRG:756A 0A
asl a ; CPU:$F56B PRG:756B 0A
sec ; CPU:$F56C PRG:756C 38
adc Zp1E ; CPU:$F56D PRG:756D 65 1E
sta Zp1E ; CPU:$F56F PRG:756F 85 1E
adc Zp1C ; CPU:$F571 PRG:7571 65 1C
rts ; CPU:$F573 PRG:7573 60
; -----------------------------------------------------------------------------
; Routine: DispatchLdxLdaStoreLdaCmpBcs
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdxLdaStoreLdaCmpBcs:
ldx #$00 ; CPU:$F574 PRG:7574 A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_F576
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F576:
lda #$F0 ; CPU:$F576 PRG:7576 A9 F0
sta $0714,x ; CPU:$F578 PRG:7578 9D 14 07
lda $0721,x ; CPU:$F57B PRG:757B BD 21 07
cmp #$24 ; CPU:$F57E PRG:757E C9 24
bcs Sub_F587 ; CPU:$F580 PRG:7580 B0 05
lda #$F0 ; CPU:$F582 PRG:7582 A9 F0
sta $0720,x ; CPU:$F584 PRG:7584 9D 20 07
; -----------------------------------------------------------------------------
; Routine: Sub_F587
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F587:
inx ; CPU:$F587 PRG:7587 E8
inx ; CPU:$F588 PRG:7588 E8
inx ; CPU:$F589 PRG:7589 E8
inx ; CPU:$F58A PRG:758A E8
cpx #$0C ; CPU:$F58B PRG:758B E0 0C
bne Sub_F576 ; CPU:$F58D PRG:758D D0 E7
ldy #$06 ; CPU:$F58F PRG:758F A0 06
ldx #$00 ; CPU:$F591 PRG:7591 A2 00
; -----------------------------------------------------------------------------
; Routine: DispatchStoreLdaTayLdaStoreIny
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchStoreLdaTayLdaStoreIny:
sta ObjPtr ; CPU:$F593 PRG:7593 85 13
lda $F5D8,y ; CPU:$F595 PRG:7595 B9 D8 F5
tay ; CPU:$F598 PRG:7598 A8
lda $F5DF,y ; CPU:$F599 PRG:7599 B9 DF F5
sta ObjectXHi ; CPU:$F59C PRG:759C 85 38
iny ; CPU:$F59E PRG:759E C8
lda $F5DF,y ; CPU:$F59F PRG:759F B9 DF F5
sta ObjectXLo ; CPU:$F5A2 PRG:75A2 85 37
iny ; CPU:$F5A4 PRG:75A4 C8
; -----------------------------------------------------------------------------
; Routine: DispatchLdaCmpBeqCmpBneRts
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaCmpBeqCmpBneRts:
lda $F5DF,y ; CPU:$F5A5 PRG:75A5 B9 DF F5
cmp #$24 ; CPU:$F5A8 PRG:75A8 C9 24
beq Sub_F5CD ; CPU:$F5AA PRG:75AA F0 21
cmp #$FF ; CPU:$F5AC PRG:75AC C9 FF
bne Sub_F5B1 ; CPU:$F5AE PRG:75AE D0 01
rts ; CPU:$F5B0 PRG:75B0 60
; -----------------------------------------------------------------------------
; Routine: Sub_F5B1
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F5B1:
cmp #$FE ; CPU:$F5B1 PRG:75B1 C9 FE
bne Sub_F5B7 ; CPU:$F5B3 PRG:75B3 D0 02
lda ObjPtr ; CPU:$F5B5 PRG:75B5 A5 13
; -----------------------------------------------------------------------------
; Routine: Sub_F5B7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F5B7:
sta $0701,x ; CPU:$F5B7 PRG:75B7 9D 01 07
lda ObjectXHi ; CPU:$F5BA PRG:75BA A5 38
sta $0700,x ; CPU:$F5BC PRG:75BC 9D 00 07
inx ; CPU:$F5BF PRG:75BF E8
inx ; CPU:$F5C0 PRG:75C0 E8
lda #$00 ; CPU:$F5C1 PRG:75C1 A9 00
sta $0700,x ; CPU:$F5C3 PRG:75C3 9D 00 07
inx ; CPU:$F5C6 PRG:75C6 E8
lda ObjectXLo ; CPU:$F5C7 PRG:75C7 A5 37
sta $0700,x ; CPU:$F5C9 PRG:75C9 9D 00 07
inx ; CPU:$F5CC PRG:75CC E8
; -----------------------------------------------------------------------------
; Routine: Sub_F5CD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F5CD:
lda ObjectXLo ; CPU:$F5CD PRG:75CD A5 37
clc ; CPU:$F5CF PRG:75CF 18
adc #$08 ; CPU:$F5D0 PRG:75D0 69 08
sta ObjectXLo ; CPU:$F5D2 PRG:75D2 85 37
iny ; CPU:$F5D4 PRG:75D4 C8
jmp DispatchLdaCmpBeqCmpBneRts ; CPU:$F5D5 PRG:75D5 4C A5 F5
TextTileData:
; Text strings as font tile indices (tile $0A = 'A', $0B = 'B', ... $24 = space).
; $FE/$FF and $5C/$6x/$7x/$8x/$9x/$A5 bytes are control codes. Decoded strings:
; "PLAYER", "GAME OVER", "READY", "SOLVALOU", "LEFT", "PAUSE".
; ---- data $F5D8-$F61C (69 bytes) ----
; referenced by `lda $F5D8,y` at $F595 (operand $F5D8 falls inside this region)
; referenced by `lda $F5DF,y` at $F599 (operand $F5DF falls inside this region)
; referenced by `lda $F5DF,y` at $F59F (operand $F5DF falls inside this region)
; referenced by `lda $F5DF,y` at $F5A5 (operand $F5DF falls inside this region)
.byte $00, $0B, $17, $20, $24, $2F, $36, $58, $60, $19, $15, $0A, $22, $0E, $1B, $24 ; CPU:$F5D8 PRG:75D8 00 0B 17 20 24 2F 36 58 60 19 15 0A 22 0E 1B 24
.byte $FE, $FF, $68, $5C, $10, $0A, $16, $0E, $24, $18, $1F, $0E, $1B, $FF, $68, $68 ; CPU:$F5E8 PRG:75E8 FE FF 68 5C 10 0A 16 0E 24 18 1F 0E 1B FF 68 68
.byte $1B, $0E, $0A, $0D, $22, $27, $FF, $78, $80, $FE, $FF, $88, $60, $1C, $18, $15 ; CPU:$F5F8 PRG:75F8 1B 0E 0A 0D 22 27 FF 78 80 FE FF 88 60 1C 18 15
.byte $1F, $0A, $15, $18, $1E, $FF, $98, $70, $15, $0E, $0F, $1D, $FF, $70, $68, $19 ; CPU:$F608 PRG:7608 1F 0A 15 18 1E FF 98 70 15 0E 0F 1D FF 70 68 19
.byte $0A, $1E, $1C, $0E, $FF ; CPU:$F618 PRG:7618 0A 1E 1C 0E FF
; -----------------------------------------------------------------------------
; Routine: DispatchLdaBneStoreStoreLdxLdy
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaBneStoreStoreLdxLdy:
lda Zp60 ; CPU:$F61D PRG:761D A5 60
bne Sub_F634 ; CPU:$F61F PRG:761F D0 13
sta ObjectXLo ; CPU:$F621 PRG:7621 85 37
sta ObjectXHi ; CPU:$F623 PRG:7623 85 38
ldx #$20 ; CPU:$F625 PRG:7625 A2 20
ldy #$22 ; CPU:$F627 PRG:7627 A0 22
lda ResetHi ; CPU:$F629 PRG:7629 A5 3C
and #$01 ; CPU:$F62B PRG:762B 29 01
beq Sub_F631 ; CPU:$F62D PRG:762D F0 02
ldy #$24 ; CPU:$F62F PRG:762F A0 24
; -----------------------------------------------------------------------------
; Routine: Sub_F631
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F631:
jmp DispatchLdaStoreLdaStoreLdyLda ; CPU:$F631 PRG:7631 4C 20 F9
; -----------------------------------------------------------------------------
; Routine: Sub_F634
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F634:
rts ; CPU:$F634 PRG:7634 60
; -----------------------------------------------------------------------------
; Routine: ObjUpdateCall
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ObjUpdateCall:
ldx #$20 ; CPU:$F635 PRG:7635 A2 20
lda GameSubMode ; CPU:$F637 PRG:7637 A5 1B
and #$10 ; CPU:$F639 PRG:7639 29 10
bne Sub_F640 ; CPU:$F63B PRG:763B D0 03
jsr DispatchLdaBneStoreStoreLdxLdy ; CPU:$F63D PRG:763D 20 1D F6
; -----------------------------------------------------------------------------
; Routine: Sub_F640
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F640:
lda Zp3B ; CPU:$F640 PRG:7640 A5 3B
beq Sub_F650 ; CPU:$F642 PRG:7642 F0 0C
lda ZpEE ; CPU:$F644 PRG:7644 A5 EE
beq Sub_F64E ; CPU:$F646 PRG:7646 F0 06
jsr ObjSpawnInit ; CPU:$F648 PRG:7648 20 10 C0
jmp DispatchJsrStxLdaStoreStoreLda2 ; CPU:$F64B PRG:764B 4C F8 F6
; -----------------------------------------------------------------------------
; Routine: Sub_F64E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F64E:
sta Zp3B ; CPU:$F64E PRG:764E 85 3B
; -----------------------------------------------------------------------------
; Routine: Sub_F650
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F650:
lda ResetHi ; CPU:$F650 PRG:7650 A5 3C
and #$01 ; CPU:$F652 PRG:7652 29 01
asl a ; CPU:$F654 PRG:7654 0A
asl a ; CPU:$F655 PRG:7655 0A
tay ; CPU:$F656 PRG:7656 A8
lda a:$0006,y ; CPU:$F657 PRG:7657 B9 06 00
ldy Zp60 ; CPU:$F65A PRG:765A A4 60
beq Sub_F6DC ; CPU:$F65C PRG:765C F0 7E
ldy #$00 ; CPU:$F65E PRG:765E A0 00
; -----------------------------------------------------------------------------
; Routine: Sub_F660
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F660:
lda $0300,y ; CPU:$F660 PRG:7660 B9 00 03
beq Sub_F669 ; CPU:$F663 PRG:7663 F0 04
cmp #$24 ; CPU:$F665 PRG:7665 C9 24
bne Sub_F694 ; CPU:$F667 PRG:7667 D0 2B
; -----------------------------------------------------------------------------
; Routine: Sub_F669
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F669:
tya ; CPU:$F669 PRG:7669 98
clc ; CPU:$F66A PRG:766A 18
adc #$08 ; CPU:$F66B PRG:766B 69 08
tay ; CPU:$F66D PRG:766D A8
cmp #$80 ; CPU:$F66E PRG:766E C9 80
bne Sub_F660 ; CPU:$F670 PRG:7670 D0 EE
lda GameSubMode ; CPU:$F672 PRG:7672 A5 1B
and #$1F ; CPU:$F674 PRG:7674 29 1F
bne Sub_F6D8 ; CPU:$F676 PRG:7676 D0 60
lda Zp23 ; CPU:$F678 PRG:7678 A5 23
cmp #$30 ; CPU:$F67A PRG:767A C9 30
bcc Sub_F68A ; CPU:$F67C PRG:767C 90 0C
cmp #$C8 ; CPU:$F67E PRG:767E C9 C8
bcs Sub_F68F ; CPU:$F680 PRG:7680 B0 0D
jsr DispatchLdaEorEorAslAslRol ; CPU:$F682 PRG:7682 20 5C F5
and #$F2 ; CPU:$F685 PRG:7685 29 F2
jmp DispatchStoreLdaOraStaJsrLda ; CPU:$F687 PRG:7687 4C D6 F6
; -----------------------------------------------------------------------------
; Routine: Sub_F68A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F68A:
lda #$A2 ; CPU:$F68A PRG:768A A9 A2
jmp DispatchStoreLdaOraStaJsrLda ; CPU:$F68C PRG:768C 4C D6 F6
; -----------------------------------------------------------------------------
; Routine: Sub_F68F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F68F:
lda #$62 ; CPU:$F68F PRG:768F A9 62
jmp DispatchStoreLdaOraStaJsrLda ; CPU:$F691 PRG:7691 4C D6 F6
; -----------------------------------------------------------------------------
; Routine: Sub_F694
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F694:
lda #$03 ; CPU:$F694 PRG:7694 A9 03
sta Zp59 ; CPU:$F696 PRG:7696 85 59
lda $0301,y ; CPU:$F698 PRG:7698 B9 01 03
bne Sub_F669 ; CPU:$F69B PRG:769B D0 CC
lda $0302,y ; CPU:$F69D PRG:769D B9 02 03
clc ; CPU:$F6A0 PRG:76A0 18
adc #$40 ; CPU:$F6A1 PRG:76A1 69 40
bcs Sub_F6B7 ; CPU:$F6A3 PRG:76A3 B0 12
sec ; CPU:$F6A5 PRG:76A5 38
sbc Zp24 ; CPU:$F6A6 PRG:76A6 E5 24
bcs Sub_F6B3 ; CPU:$F6A8 PRG:76A8 B0 09
cmp #$F8 ; CPU:$F6AA PRG:76AA C9 F8
bcs Sub_F6BB ; CPU:$F6AC PRG:76AC B0 0D
lda #$10 ; CPU:$F6AE PRG:76AE A9 10
jmp DispatchStoreLdaSecSbcBcsCmp ; CPU:$F6B0 PRG:76B0 4C B9 F6
; -----------------------------------------------------------------------------
; Routine: Sub_F6B3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F6B3:
cmp #$08 ; CPU:$F6B3 PRG:76B3 C9 08
bcc Sub_F6BB ; CPU:$F6B5 PRG:76B5 90 04
; -----------------------------------------------------------------------------
; Routine: Sub_F6B7
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F6B7:
lda #$20 ; CPU:$F6B7 PRG:76B7 A9 20
; -----------------------------------------------------------------------------
; Routine: DispatchStoreLdaSecSbcBcsCmp
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchStoreLdaSecSbcBcsCmp:
sta Zp59 ; CPU:$F6B9 PRG:76B9 85 59
; -----------------------------------------------------------------------------
; Routine: Sub_F6BB
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F6BB:
lda $0303,y ; CPU:$F6BB PRG:76BB B9 03 03
sec ; CPU:$F6BE PRG:76BE 38
sbc Zp23 ; CPU:$F6BF PRG:76BF E5 23
bcs Sub_F6CC ; CPU:$F6C1 PRG:76C1 B0 09
cmp #$F8 ; CPU:$F6C3 PRG:76C3 C9 F8
bcs Sub_F6D8 ; CPU:$F6C5 PRG:76C5 B0 11
lda #$40 ; CPU:$F6C7 PRG:76C7 A9 40
jmp DispatchOraAndStore ; CPU:$F6C9 PRG:76C9 4C D2 F6
; -----------------------------------------------------------------------------
; Routine: Sub_F6CC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F6CC:
cmp #$08 ; CPU:$F6CC PRG:76CC C9 08
bcc Sub_F6D8 ; CPU:$F6CE PRG:76CE 90 08
lda #$80 ; CPU:$F6D0 PRG:76D0 A9 80
; -----------------------------------------------------------------------------
; Routine: DispatchOraAndStore
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchOraAndStore:
ora Zp59 ; CPU:$F6D2 PRG:76D2 05 59
and #$FE ; CPU:$F6D4 PRG:76D4 29 FE
; -----------------------------------------------------------------------------
; Routine: DispatchStoreLdaOraStaJsrLda
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchStoreLdaOraStaJsrLda:
sta Zp59 ; CPU:$F6D6 PRG:76D6 85 59
; -----------------------------------------------------------------------------
; Routine: Sub_F6D8
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F6D8:
lda Zp59 ; CPU:$F6D8 PRG:76D8 A5 59
ora Zp2E ; CPU:$F6DA PRG:76DA 05 2E
; -----------------------------------------------------------------------------
; Routine: Sub_F6DC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F6DC:
sta Zp59 ; CPU:$F6DC PRG:76DC 85 59
jsr DispatchLsrsLsrsLsrsAndTayLda ; CPU:$F6DE PRG:76DE 20 8F F8
lda #$07 ; CPU:$F6E1 PRG:76E1 A9 07
jsr DispatchAslTayLdaStoreLdaStore2 ; CPU:$F6E3 PRG:76E3 20 16 F9
jsr DispatchLdaBneLdaRorBcsLda2; CPU:$F6E6 PRG:76E6 20 65 F7
jsr DispatchLdyLdaAndBneLdaStore ; CPU:$F6E9 PRG:76E9 20 F4 F7
stx ObjectDeltaX ; CPU:$F6EC PRG:76EC 86 2D
rts ; CPU:$F6EE PRG:76EE 60
; -----------------------------------------------------------------------------
; Routine: Sub_F6EF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F6EF:
lda #$00 ; CPU:$F6EF PRG:76EF A9 00
sta GameMode ; CPU:$F6F1 PRG:76F1 85 10
sta Zp42 ; CPU:$F6F3 PRG:76F3 85 42
sta Zp3B ; CPU:$F6F5 PRG:76F5 85 3B
rts ; CPU:$F6F7 PRG:76F7 60
; -----------------------------------------------------------------------------
; Routine: DispatchJsrStxLdaStoreStoreLda2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchJsrStxLdaStoreStoreLda2:
jsr DispatchLdaBneStoreStoreLdxLdy ; CPU:$F6F8 PRG:76F8 20 1D F6
stx ObjectDeltaX ; CPU:$F6FB PRG:76FB 86 2D
lda #$00 ; CPU:$F6FD PRG:76FD A9 00
sta Zp30 ; CPU:$F6FF PRG:76FF 85 30
sta Zp59 ; CPU:$F701 PRG:7701 85 59
lda Zp3B ; CPU:$F703 PRG:7703 A5 3B
inc Zp3B ; CPU:$F705 PRG:7705 E6 3B
lsr a ; CPU:$F707 PRG:7707 4A
lsr a ; CPU:$F708 PRG:7708 4A
cmp #$07 ; CPU:$F709 PRG:7709 C9 07
bcc Sub_F759 ; CPU:$F70B PRG:770B 90 4C
cmp #$0F ; CPU:$F70D PRG:770D C9 0F
bcc Sub_F758 ; CPU:$F70F PRG:770F 90 47
jsr ClearOamInit ; CPU:$F711 PRG:7711 20 D3 B8
lda Zp60 ; CPU:$F714 PRG:7714 A5 60
bne Sub_F6EF ; CPU:$F716 PRG:7716 D0 D7
dec Zp3B ; CPU:$F718 PRG:7718 C6 3B
lda Zp15 ; CPU:$F71A PRG:771A A5 15
and #$01 ; CPU:$F71C PRG:771C 29 01
beq Sub_F758 ; CPU:$F71E PRG:771E F0 38
lda ScrollY ; CPU:$F720 PRG:7720 A5 03
sec ; CPU:$F722 PRG:7722 38
sbc #$01 ; CPU:$F723 PRG:7723 E9 01
and #$07 ; CPU:$F725 PRG:7725 29 07
bne Sub_F758 ; CPU:$F727 PRG:7727 D0 2F
lda Zp8F ; CPU:$F729 PRG:7729 A5 8F
sec ; CPU:$F72B PRG:772B 38
sbc Zp66 ; CPU:$F72C PRG:772C E5 66
bpl Sub_F732 ; CPU:$F72E PRG:772E 10 02
lda #$00 ; CPU:$F730 PRG:7730 A9 00
; -----------------------------------------------------------------------------
; Routine: Sub_F732
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F732:
sta Zp8F ; CPU:$F732 PRG:7732 85 8F
lda #$00 ; CPU:$F734 PRG:7734 A9 00
sta Zp5A ; CPU:$F736 PRG:7736 85 5A
inc Zp8E ; CPU:$F738 PRG:7738 E6 8E
dec Zp8D ; CPU:$F73A PRG:773A C6 8D
bne Sub_F750 ; CPU:$F73C PRG:773C D0 12
lda #$96 ; CPU:$F73E PRG:773E A9 96
sta Zp5A ; CPU:$F740 PRG:7740 85 5A
lda ResetHi ; CPU:$F742 PRG:7742 A5 3C
and #$01 ; CPU:$F744 PRG:7744 29 01
sta Zp5B ; CPU:$F746 PRG:7746 85 5B
lda ZpA7 ; CPU:$F748 PRG:7748 A5 A7
bne Sub_F750 ; CPU:$F74A PRG:774A D0 04
lda #$02 ; CPU:$F74C PRG:774C A9 02
sta Zp5B ; CPU:$F74E PRG:774E 85 5B
; -----------------------------------------------------------------------------
; Routine: Sub_F750
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F750:
lda #$1F ; CPU:$F750 PRG:7750 A9 1F
sta Zp14 ; CPU:$F752 PRG:7752 85 14
lda #$01 ; CPU:$F754 PRG:7754 A9 01
sta GameMode ; CPU:$F756 PRG:7756 85 10
; -----------------------------------------------------------------------------
; Routine: Sub_F758
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F758:
rts ; CPU:$F758 PRG:7758 60
; -----------------------------------------------------------------------------
; Routine: Sub_F759
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F759:
jsr DispatchAslTayLdaStoreLdaStore2 ; CPU:$F759 PRG:7759 20 16 F9
jsr DispatchLdaBneLdaRorBcsLda2; CPU:$F75C PRG:775C 20 65 F7
jsr DispatchLdyLdaAndBneLdaStore ; CPU:$F75F PRG:775F 20 F4 F7
stx ObjectDeltaX ; CPU:$F762 PRG:7762 86 2D
rts ; CPU:$F764 PRG:7764 60
; -----------------------------------------------------------------------------
; Routine: DispatchLdaBneLdaRorBcsLda2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaBneLdaRorBcsLda2:
lda $02A0 ; CPU:$F765 PRG:7765 AD A0 02
bne Sub_F79E ; CPU:$F768 PRG:7768 D0 34
lda Zp59 ; CPU:$F76A PRG:776A A5 59
ror a ; CPU:$F76C PRG:776C 6A
bcs Sub_F77F ; CPU:$F76D PRG:776D B0 10
lda Zp2E ; CPU:$F76F PRG:776F A5 2E
beq Sub_F779 ; CPU:$F771 PRG:7771 F0 06
lda GameSubMode ; CPU:$F773 PRG:7773 A5 1B
lsr a ; CPU:$F775 PRG:7775 4A
lsr a ; CPU:$F776 PRG:7776 4A
and #$01 ; CPU:$F777 PRG:7777 29 01
; -----------------------------------------------------------------------------
; Routine: Sub_F779
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F779:
clc ; CPU:$F779 PRG:7779 18
adc #$08 ; CPU:$F77A PRG:777A 69 08
jmp DispatchAslTayLdaStoreLdaStore2 ; CPU:$F77C PRG:777C 4C 16 F9
; -----------------------------------------------------------------------------
; Routine: Sub_F77F
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F77F:
inc $02A0 ; CPU:$F77F PRG:777F EE A0 02
lda Zp23 ; CPU:$F782 PRG:7782 A5 23
sta $02A3 ; CPU:$F784 PRG:7784 8D A3 02
inc $02A3 ; CPU:$F787 PRG:7787 EE A3 02
clc ; CPU:$F78A PRG:778A 18
adc #$04 ; CPU:$F78B PRG:778B 69 04
sta $02A1 ; CPU:$F78D PRG:778D 8D A1 02
lda Zp24 ; CPU:$F790 PRG:7790 A5 24
sta $02A2 ; CPU:$F792 PRG:7792 8D A2 02
sec ; CPU:$F795 PRG:7795 38
sbc #$3F ; CPU:$F796 PRG:7796 E9 3F
sta $02A4 ; CPU:$F798 PRG:7798 8D A4 02
inc $060F ; CPU:$F79B PRG:779B EE 0F 06
; -----------------------------------------------------------------------------
; Routine: Sub_F79E
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F79E:
lda #$0A ; CPU:$F79E PRG:779E A9 0A
jsr DispatchAslTayLdaStoreLdaStore2 ; CPU:$F7A0 PRG:77A0 20 16 F9
ldy #$16 ; CPU:$F7A3 PRG:77A3 A0 16
lda $02A3 ; CPU:$F7A5 PRG:77A5 AD A3 02
sta ObjectXLo ; CPU:$F7A8 PRG:77A8 85 37
lda $02A4 ; CPU:$F7AA PRG:77AA AD A4 02
sta ObjectXHi ; CPU:$F7AD PRG:77AD 85 38
clc ; CPU:$F7AF PRG:77AF 18
adc Zp25 ; CPU:$F7B0 PRG:77B0 65 25
sta $02A4 ; CPU:$F7B2 PRG:77B2 8D A4 02
jsr DispatchLdaStoreLdaStoreLdyLda ; CPU:$F7B5 PRG:77B5 20 20 F9
ldy $02A0 ; CPU:$F7B8 PRG:77B8 AC A0 02
lda $02A2 ; CPU:$F7BB PRG:77BB AD A2 02
sta $0700,x ; CPU:$F7BE PRG:77BE 9D 00 07
clc ; CPU:$F7C1 PRG:77C1 18
adc Zp25 ; CPU:$F7C2 PRG:77C2 65 25
sec ; CPU:$F7C4 PRG:77C4 38
sbc $F976,y ; CPU:$F7C5 PRG:77C5 F9 76 F9
sta $02A2 ; CPU:$F7C8 PRG:77C8 8D A2 02
inx ; CPU:$F7CB PRG:77CB E8
lda $F956,y ; CPU:$F7CC PRG:77CC B9 56 F9
sta $0700,x ; CPU:$F7CF PRG:77CF 9D 00 07
inx ; CPU:$F7D2 PRG:77D2 E8
lda GameSubMode ; CPU:$F7D3 PRG:77D3 A5 1B
and #$01 ; CPU:$F7D5 PRG:77D5 29 01
ora #$02 ; CPU:$F7D7 PRG:77D7 09 02
sta $0700,x ; CPU:$F7D9 PRG:77D9 9D 00 07
inx ; CPU:$F7DC PRG:77DC E8
lda $02A1 ; CPU:$F7DD PRG:77DD AD A1 02
sta $0700,x ; CPU:$F7E0 PRG:77E0 9D 00 07
inx ; CPU:$F7E3 PRG:77E3 E8
inc $02A0 ; CPU:$F7E4 PRG:77E4 EE A0 02
lda $02A0 ; CPU:$F7E7 PRG:77E7 AD A0 02
cmp #$21 ; CPU:$F7EA PRG:77EA C9 21
bne Sub_F7F3 ; CPU:$F7EC PRG:77EC D0 05
lda #$00 ; CPU:$F7EE PRG:77EE A9 00
sta $02A0 ; CPU:$F7F0 PRG:77F0 8D A0 02
; -----------------------------------------------------------------------------
; Routine: Sub_F7F3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F7F3:
rts ; CPU:$F7F3 PRG:77F3 60
; -----------------------------------------------------------------------------
; Routine: DispatchLdyLdaAndBneLdaStore
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdyLdaAndBneLdaStore:
ldy #$00 ; CPU:$F7F4 PRG:77F4 A0 00
lda Zp59 ; CPU:$F7F6 PRG:77F6 A5 59
and #$02 ; CPU:$F7F8 PRG:77F8 29 02
bne Sub_F804 ; CPU:$F7FA PRG:77FA D0 08
lda #$FE ; CPU:$F7FC PRG:77FC A9 FE
sta $02A5 ; CPU:$F7FE PRG:77FE 8D A5 02
jmp DispatchLdyJsrLdyJsrLdyLda ; CPU:$F801 PRG:7801 4C 35 F8
; -----------------------------------------------------------------------------
; Routine: Sub_F804
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F804:
inc $02A5 ; CPU:$F804 PRG:7804 EE A5 02
bne DispatchLdyJsrLdyJsrLdyLda ; CPU:$F807 PRG:7807 D0 2C
lda #$F0 ; CPU:$F809 PRG:7809 A9 F0
clc ; CPU:$F80B PRG:780B 18
adc Zp60 ; CPU:$F80C PRG:780C 65 60
sta $02A5 ; CPU:$F80E PRG:780E 8D A5 02
; -----------------------------------------------------------------------------
; Routine: Sub_F811
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F811:
lda $02A6,y ; CPU:$F811 PRG:7811 B9 A6 02
beq Sub_F820 ; CPU:$F814 PRG:7814 F0 0A
iny ; CPU:$F816 PRG:7816 C8
iny ; CPU:$F817 PRG:7817 C8
iny ; CPU:$F818 PRG:7818 C8
cpy #$09 ; CPU:$F819 PRG:7819 C0 09
bne Sub_F811 ; CPU:$F81B PRG:781B D0 F4
jmp DispatchLdyJsrLdyJsrLdyLda ; CPU:$F81D PRG:781D 4C 35 F8
; -----------------------------------------------------------------------------
; Routine: Sub_F820
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F820:
lda #$FF ; CPU:$F820 PRG:7820 A9 FF
sta $02A6,y ; CPU:$F822 PRG:7822 99 A6 02
lda Zp23 ; CPU:$F825 PRG:7825 A5 23
sta $02A7,y ; CPU:$F827 PRG:7827 99 A7 02
lda Zp24 ; CPU:$F82A PRG:782A A5 24
clc ; CPU:$F82C PRG:782C 18
adc #$0A ; CPU:$F82D PRG:782D 69 0A
sta $02A8,y ; CPU:$F82F PRG:782F 99 A8 02
inc $060E ; CPU:$F832 PRG:7832 EE 0E 06
; -----------------------------------------------------------------------------
; Routine: DispatchLdyJsrLdyJsrLdyLda
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdyJsrLdyJsrLdyLda:
ldy #$00 ; CPU:$F835 PRG:7835 A0 00
jsr DispatchLdaBmiBeqLdaStoreLda2 ; CPU:$F837 PRG:7837 20 41 F8
ldy #$03 ; CPU:$F83A PRG:783A A0 03
jsr DispatchLdaBmiBeqLdaStoreLda2 ; CPU:$F83C PRG:783C 20 41 F8
ldy #$06 ; CPU:$F83F PRG:783F A0 06
; -----------------------------------------------------------------------------
; Routine: DispatchLdaBmiBeqLdaStoreLda2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaBmiBeqLdaStoreLda2:
lda $02A6,y ; CPU:$F841 PRG:7841 B9 A6 02
bmi Sub_F85D ; CPU:$F844 PRG:7844 30 17
beq Sub_F85C ; CPU:$F846 PRG:7846 F0 14
lda #$00 ; CPU:$F848 PRG:7848 A9 00
sta $02A6,y ; CPU:$F84A PRG:784A 99 A6 02
lda $02A7,y ; CPU:$F84D PRG:784D B9 A7 02
sta ObjectXLo ; CPU:$F850 PRG:7850 85 37
lda $02A8,y ; CPU:$F852 PRG:7852 B9 A8 02
sta ObjectXHi ; CPU:$F855 PRG:7855 85 38
ldy #$20 ; CPU:$F857 PRG:7857 A0 20
jsr DispatchLdaStoreLdaStoreLdyLda ; CPU:$F859 PRG:7859 20 20 F9
; -----------------------------------------------------------------------------
; Routine: Sub_F85C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F85C:
rts ; CPU:$F85C PRG:785C 60
; -----------------------------------------------------------------------------
; Routine: Sub_F85D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F85D:
lda $02A7,y ; CPU:$F85D PRG:785D B9 A7 02
sta ObjectXLo ; CPU:$F860 PRG:7860 85 37
lda $02A8,y ; CPU:$F862 PRG:7862 B9 A8 02
sta ObjectXHi ; CPU:$F865 PRG:7865 85 38
clc ; CPU:$F867 PRG:7867 18
adc Zp28 ; CPU:$F868 PRG:7868 65 28
bcs Sub_F871 ; CPU:$F86A PRG:786A B0 05
lda #$00 ; CPU:$F86C PRG:786C A9 00
sta $02A6,y ; CPU:$F86E PRG:786E 99 A6 02
; -----------------------------------------------------------------------------
; Routine: Sub_F871
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F871:
sta $02A8,y ; CPU:$F871 PRG:7871 99 A8 02
lda GameSubMode ; CPU:$F874 PRG:7874 A5 1B
and #$03 ; CPU:$F876 PRG:7876 29 03
ora #$0C ; CPU:$F878 PRG:7878 09 0C
asl a ; CPU:$F87A PRG:787A 0A
tay ; CPU:$F87B PRG:787B A8
jmp DispatchLdaStoreLdaStoreLdyLda ; CPU:$F87C PRG:787C 4C 20 F9
; -----------------------------------------------------------------------------
; Routine: DispatchLdxLdaTayLdaStoreTya
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdxLdaTayLdaStoreTya:
ldx #$19 ; CPU:$F87F PRG:787F A2 19
; -----------------------------------------------------------------------------
; Routine: Sub_F881
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F881:
lda Zp80,x ; CPU:$F881 PRG:7881 B5 80
tay ; CPU:$F883 PRG:7883 A8
lda Zp9A,x ; CPU:$F884 PRG:7884 B5 9A
sta Zp80,x ; CPU:$F886 PRG:7886 95 80
tya ; CPU:$F888 PRG:7888 98
sta Zp9A,x ; CPU:$F889 PRG:7889 95 9A
dex ; CPU:$F88B PRG:788B CA
bpl Sub_F881 ; CPU:$F88C PRG:788C 10 F3
rts ; CPU:$F88E PRG:788E 60
; -----------------------------------------------------------------------------
; Routine: DispatchLsrsLsrsLsrsAndTayLda
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLsrsLsrsLsrsAndTayLda:
lsr a ; CPU:$F88F PRG:788F 4A
lsr a ; CPU:$F890 PRG:7890 4A
lsr a ; CPU:$F891 PRG:7891 4A
and #$1E ; CPU:$F892 PRG:7892 29 1E
tay ; CPU:$F894 PRG:7894 A8
lda $F89F,y ; CPU:$F895 PRG:7895 B9 9F F8
pha ; CPU:$F898 PRG:7898 48
lda $F89E,y ; CPU:$F899 PRG:7899 B9 9E F8
pha ; CPU:$F89C PRG:789C 48
rts ; CPU:$F89D PRG:789D 60
HandlerPtrTable:
; 16 x 16-bit handler pointers called through pha/pha/rts; each stored value is the
; target address minus one, because RTS adds one to the popped address.
; referenced by `lda $F89F,y` at $F895 (operand $F89F falls inside this region)
; referenced by `lda $F89E,y` at $F899 (operand $F89E falls inside this region)
; ---- data $F89E-$F8BD (32 bytes) ----
.byte $DC, $F8, $C0, $F8, $D0, $F8, $DC, $F8, $DD, $F8, $BD, $F8, $E9, $F8, $DC, $F8 ; CPU:$F89E PRG:789E DC F8 C0 F8 D0 F8 DC F8 DD F8 BD F8 E9 F8 DC F8
.byte $F9, $F8, $05, $F9, $CD, $F8, $DC, $F8, $DC, $F8, $DC, $F8, $DC, $F8, $DC, $F8 ; CPU:$F8AE PRG:78AE F9 F8 05 F9 CD F8 DC F8 DC F8 DC F8 DC F8 DC F8
jsr Sub_F8ED ; CPU:$F8BE PRG:78BE 20 ED F8
Sub_F8C1:
dec Zp24 ; CPU:$F8C1 PRG:78C1 C6 24
lda Zp24 ; CPU:$F8C3 PRG:78C3 A5 24
cmp #$50 ; CPU:$F8C5 PRG:78C5 C9 50
bcs Sub_F8DD ; CPU:$F8C7 PRG:78C7 B0 14
lda #$50 ; CPU:$F8C9 PRG:78C9 A9 50
sta Zp24 ; CPU:$F8CB PRG:78CB 85 24
rts ; CPU:$F8CD PRG:78CD 60
jsr Sub_F909 ; CPU:$F8CE PRG:78CE 20 09 F9
Sub_F8D1:
inc Zp24 ; CPU:$F8D1 PRG:78D1 E6 24
lda Zp24 ; CPU:$F8D3 PRG:78D3 A5 24
cmp #$D8 ; CPU:$F8D5 PRG:78D5 C9 D8
bcc Sub_F8DD ; CPU:$F8D7 PRG:78D7 90 04
lda #$D8 ; CPU:$F8D9 PRG:78D9 A9 D8
sta Zp24 ; CPU:$F8DB PRG:78DB 85 24
; -----------------------------------------------------------------------------
; Routine: Sub_F8DD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F8DD:
rts ; CPU:$F8DD PRG:78DD 60
lda GameSubMode ; CPU:$F8DE PRG:78DE A5 1B
and #$01 ; CPU:$F8E0 PRG:78E0 29 01
bne Sub_F8ED ; CPU:$F8E2 PRG:78E2 D0 09
jsr Sub_F8ED ; CPU:$F8E4 PRG:78E4 20 ED F8
jmp Sub_F8ED ; CPU:$F8E7 PRG:78E7 4C ED F8
jsr Sub_F8D1 ; CPU:$F8EA PRG:78EA 20 D1 F8
; -----------------------------------------------------------------------------
; Routine: Sub_F8ED
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F8ED:
dec Zp23 ; CPU:$F8ED PRG:78ED C6 23
lda Zp23 ; CPU:$F8EF PRG:78EF A5 23
cmp #$04 ; CPU:$F8F1 PRG:78F1 C9 04
bcs Sub_F8DD ; CPU:$F8F3 PRG:78F3 B0 E8
; ---- data $F8F5-$F8F9 (5 bytes) ----
.byte $A9, $04, $85, $23, $60 ; CPU:$F8F5 PRG:78F5 A9 04 85 23 60
lda GameSubMode ; CPU:$F8FA PRG:78FA A5 1B
and #$01 ; CPU:$F8FC PRG:78FC 29 01
bne Sub_F909 ; CPU:$F8FE PRG:78FE D0 09
jsr Sub_F909 ; CPU:$F900 PRG:7900 20 09 F9
jmp Sub_F909 ; CPU:$F903 PRG:7903 4C 09 F9
jsr Sub_F8C1 ; CPU:$F906 PRG:7906 20 C1 F8
; -----------------------------------------------------------------------------
; Routine: Sub_F909
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F909:
inc Zp23 ; CPU:$F909 PRG:7909 E6 23
lda Zp23 ; CPU:$F90B PRG:790B A5 23
cmp #$EC ; CPU:$F90D PRG:790D C9 EC
bcc Sub_F8DD ; CPU:$F90F PRG:790F 90 CC
; ---- data $F911-$F915 (5 bytes) ----
.byte $A9, $EC, $85, $23, $60 ; CPU:$F911 PRG:7911 A9 EC 85 23 60
; -----------------------------------------------------------------------------
; Routine: DispatchAslTayLdaStoreLdaStore2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchAslTayLdaStoreLdaStore2:
asl a ; CPU:$F916 PRG:7916 0A
tay ; CPU:$F917 PRG:7917 A8
lda Zp23 ; CPU:$F918 PRG:7918 A5 23
sta ObjectXLo ; CPU:$F91A PRG:791A 85 37
lda Zp24 ; CPU:$F91C PRG:791C A5 24
sta ObjectXHi ; CPU:$F91E PRG:791E 85 38
; -----------------------------------------------------------------------------
; Routine: DispatchLdaStoreLdaStoreLdyLda
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaStoreLdaStoreLdyLda:
lda $F997,y ; CPU:$F920 PRG:7920 B9 97 F9
sta VramPtrLo ; CPU:$F923 PRG:7923 85 04
lda $F998,y ; CPU:$F925 PRG:7925 B9 98 F9
sta VramCopyCount ; CPU:$F928 PRG:7928 85 05
ldy #$00 ; CPU:$F92A PRG:792A A0 00
lda (VramPtrLo),y ; CPU:$F92C PRG:792C B1 04
sta ObjUpdateFlag ; CPU:$F92E PRG:792E 85 0E
; -----------------------------------------------------------------------------
; Routine: Sub_F930
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_F930:
iny ; CPU:$F930 PRG:7930 C8
lda (VramPtrLo),y ; CPU:$F931 PRG:7931 B1 04
clc ; CPU:$F933 PRG:7933 18
adc ObjectXHi ; CPU:$F934 PRG:7934 65 38
sta $0700,x ; CPU:$F936 PRG:7936 9D 00 07
inx ; CPU:$F939 PRG:7939 E8
iny ; CPU:$F93A PRG:793A C8
lda (VramPtrLo),y ; CPU:$F93B PRG:793B B1 04
sta $0700,x ; CPU:$F93D PRG:793D 9D 00 07
inx ; CPU:$F940 PRG:7940 E8
iny ; CPU:$F941 PRG:7941 C8
lda (VramPtrLo),y ; CPU:$F942 PRG:7942 B1 04
sta $0700,x ; CPU:$F944 PRG:7944 9D 00 07
inx ; CPU:$F947 PRG:7947 E8
iny ; CPU:$F948 PRG:7948 C8
lda (VramPtrLo),y ; CPU:$F949 PRG:7949 B1 04
clc ; CPU:$F94B PRG:794B 18
adc ObjectXLo ; CPU:$F94C PRG:794C 65 37
sta $0700,x ; CPU:$F94E PRG:794E 9D 00 07
inx ; CPU:$F951 PRG:7951 E8
dec ObjUpdateFlag ; CPU:$F952 PRG:7952 C6 0E
bne Sub_F930 ; CPU:$F954 PRG:7954 D0 DA
rts ; CPU:$F956 PRG:7956 60
; ---- data $F957-$F976 (32 bytes) ----
; referenced by `sbc $F976,y` at $F7C5 (operand $F976 falls inside this region)
; 32 speed bytes indexed by object number through the base $F956 (index 1 -> $F957);
; read by lda $F956,y at $F7CC and stored to $0700,x.
ObjSpeedTable:
.byte $D0, $D0, $D0, $D0, $D0, $D0, $D0, $D0, $D0, $D0, $D1, $D1, $D1, $D1, $D1, $D1 ; CPU:$F957 PRG:7957 D0 D0 D0 D0 D0 D0 D0 D0 D0 D0 D1 D1 D1 D1 D1 D1
.byte $DF, $DF, $DF, $DF, $DF, $DE, $DE, $DE, $DE, $DE, $D3, $D3, $D3, $D3, $D2, $D2 ; CPU:$F967 PRG:7967 DF DF DF DF DF DE DE DE DE DE D3 D3 D3 D3 D2 D2
; ---- data $F977-$F996 (32 bytes) ----
; 32 speed bytes indexed through the base $F976 (index 1 -> $F977); subtracted
; from $02A2 by sbc $F976,y at $F7C5.
ObjSpeedTable2:
.byte $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $01, $02 ; CPU:$F977 PRG:7977 01 01 01 01 01 01 01 01 01 01 01 01 01 01 01 02
.byte $02, $02, $02, $02, $02, $02, $03, $03, $03, $03, $03, $03, $04, $04, $04, $04 ; CPU:$F987 PRG:7987 02 02 02 02 02 02 03 03 03 03 03 03 04 04 04 04
; ---- data $F997-$F9BC (38 bytes) ----
; referenced by `lda $F997,y` at $F920 (operand $F997 falls inside this region)
; referenced by `lda $F998,y` at $F925 (operand $F998 falls inside this region)
; 19 x 16-bit pointers to the records at $F9BD-$FAF5 (read by lda $F997,y /
; lda $F998,y at $F920 / $F925).
SpriteLayoutPtrTable:
.byte $BD, $F9, $DE, $F9, $EF, $F9, $00, $FA, $29, $FA, $EF, $F9, $DE, $F9, $6A, $FA ; CPU:$F997 PRG:7997 BD F9 DE F9 EF F9 00 FA 29 FA EF F9 DE F9 6A FA
.byte $7B, $FA, $8C, $FA, $9D, $FA, $A6, $FA, $AF, $FA, $B8, $FA, $C1, $FA, $CA, $FA ; CPU:$F9A7 PRG:79A7 7B FA 8C FA 9D FA A6 FA AF FA B8 FA C1 FA CA FA
.byte $D3, $FA, $DC, $FA, $E9, $FA ; CPU:$F9B7 PRG:79B7 D3 FA DC FA E9 FA
; ---- data $F9BD-$FAF5 (313 bytes) ----
; Sprite layout records: 4-byte entries (x offset, y offset, tile index, attribute).
SpriteLayoutData:
.byte $08, $00, $37, $03, $00, $00, $39, $03, $08, $08, $5E, $03, $00, $08, $3B, $03 ; CPU:$F9BD PRG:79BD 08 00 37 03 00 00 39 03 08 08 5E 03 00 08 3B 03
.byte $08, $00, $2A, $82, $00, $00, $2B, $82, $08, $08, $28, $82, $00, $08, $29, $82 ; CPU:$F9CD PRG:79CD 08 00 2A 82 00 00 2B 82 08 08 28 82 00 08 29 82
.byte $08, $04, $00, $39, $43, $00, $00, $37, $43, $08, $08, $3B, $43, $00, $08, $39 ; CPU:$F9DD PRG:79DD 08 04 00 39 43 00 00 37 43 08 08 3B 43 00 08 39
.byte $83, $08, $04, $00, $68, $03, $00, $00, $3B, $83, $08, $08, $37, $83, $00, $08 ; CPU:$F9ED PRG:79ED 83 08 04 00 68 03 00 00 3B 83 08 08 37 83 00 08
.byte $68, $C3, $08, $0A, $00, $FC, $03, $00, $F8, $C8, $03, $08, $F8, $C9, $03, $10 ; CPU:$F9FD PRG:79FD 68 C3 08 0A 00 FC 03 00 F8 C8 03 08 F8 C9 03 10
.byte $00, $CA, $03, $08, $00, $CB, $03, $10, $08, $CB, $C3, $F8, $08, $CA, $C3, $00 ; CPU:$FA0D PRG:7A0D 00 CA 03 08 00 CB 03 10 08 CB C3 F8 08 CA C3 00
.byte $08, $FC, $C3, $08, $10, $C9, $C3, $F8, $10, $C8, $C3, $00, $10, $F8, $C9, $43 ; CPU:$FA1D PRG:7A1D 08 FC C3 08 10 C9 C3 F8 10 C8 C3 00 10 F8 C9 43
.byte $F8, $F8, $C8, $43, $00, $F8, $C8, $03, $08, $F8, $C9, $03, $10, $00, $CB, $43 ; CPU:$FA2D PRG:7A2D F8 F8 C8 43 00 F8 C8 03 08 F8 C9 03 10 00 CB 43
.byte $F8, $00, $CA, $43, $00, $00, $CA, $03, $08, $00, $CB, $03, $10, $08, $CB, $C3 ; CPU:$FA3D PRG:7A3D F8 00 CA 43 00 00 CA 03 08 00 CB 03 10 08 CB C3
.byte $F8, $08, $CA, $C3, $00, $08, $CA, $83, $08, $08, $CB, $83, $10, $10, $C9, $C3 ; CPU:$FA4D PRG:7A4D F8 08 CA C3 00 08 CA 83 08 08 CB 83 10 10 C9 C3
.byte $F8, $10, $C8, $C3, $00, $10, $C8, $83, $08, $10, $C9, $83, $10, $04, $00, $28 ; CPU:$FA5D PRG:7A5D F8 10 C8 C3 00 10 C8 83 08 10 C9 83 10 04 00 28
.byte $02, $00, $00, $29, $02, $08, $08, $2A, $02, $00, $08, $2B, $02, $08, $04, $C0 ; CPU:$FA6D PRG:7A6D 02 00 00 29 02 08 08 2A 02 00 08 2B 02 08 04 C0
.byte $2C, $02, $00, $C0, $2C, $42, $08, $C8, $2C, $82, $00, $C8, $2C, $C2, $08, $04 ; CPU:$FA7D PRG:7A7D 2C 02 00 C0 2C 42 08 C8 2C 82 00 C8 2C C2 08 04
.byte $C0, $2F, $02, $00, $C0, $2F, $42, $08, $C8, $2F, $82, $00, $C8, $2F, $C2, $08 ; CPU:$FA8D PRG:7A8D C0 2F 02 00 C0 2F 42 08 C8 2F 82 00 C8 2F C2 08
.byte $02, $C1, $2D, $02, $01, $C7, $2D, $C2, $07, $02, $00, $2E, $03, $00, $06, $2E ; CPU:$FA9D PRG:7A9D 02 C1 2D 02 01 C7 2D C2 07 02 00 2E 03 00 06 2E
.byte $C3, $06, $02, $00, $DE, $02, $00, $00, $DF, $03, $08, $02, $00, $DE, $03, $00 ; CPU:$FAAD PRG:7AAD C3 06 02 00 DE 02 00 00 DF 03 08 02 00 DE 03 00
.byte $00, $DF, $02, $08, $02, $00, $DF, $02, $00, $00, $DE, $03, $08, $02, $00, $DF ; CPU:$FABD PRG:7ABD 00 DF 02 08 02 00 DF 02 00 00 DE 03 08 02 00 DF
.byte $03, $00, $00, $DE, $02, $08, $02, $00, $7B, $01, $00, $00, $7B, $01, $08, $03 ; CPU:$FACD PRG:7ACD 03 00 00 DE 02 08 02 00 7B 01 00 00 7B 01 08 03
.byte $10, $01, $02, $18, $10, $1E, $02, $20, $10, $19, $02, $28, $03, $10, $02, $02 ; CPU:$FADD PRG:7ADD 10 01 02 18 10 1E 02 20 10 19 02 28 03 10 02 02
.byte $A8, $10, $1E, $02, $B0, $10, $19, $02, $B8 ; CPU:$FAED PRG:7AED A8 10 1E 02 B0 10 19 02 B8
; -----------------------------------------------------------------------------
; Routine: Reset
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Reset:
sei ; CPU:$FAF6 PRG:7AF6 78
cld ; CPU:$FAF7 PRG:7AF7 D8
ldx #$FF ; CPU:$FAF8 PRG:7AF8 A2 FF
txs ; CPU:$FAFA PRG:7AFA 9A
lda #$10 ; CPU:$FAFB PRG:7AFB A9 10
sta PPUCTRL ; CPU:$FAFD PRG:7AFD 8D 00 20
; -----------------------------------------------------------------------------
; Routine: WaitVblank
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
WaitVblank:
lda PPUSTATUS ; CPU:$FB00 PRG:7B00 AD 02 20
bpl WaitVblank ; CPU:$FB03 PRG:7B03 10 FB
ldx #$07 ; CPU:$FB05 PRG:7B05 A2 07
; -----------------------------------------------------------------------------
; Routine: CopyResetVars
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
CopyResetVars:
lda Zp4B,x ; CPU:$FB07 PRG:7B07 B5 4B
sta $0110,x ; CPU:$FB09 PRG:7B09 9D 10 01
lda Zp80,x ; CPU:$FB0C PRG:7B0C B5 80
sta $0120,x ; CPU:$FB0E PRG:7B0E 9D 20 01
lda Zp9A,x ; CPU:$FB11 PRG:7B11 B5 9A
sta $0130,x ; CPU:$FB13 PRG:7B13 9D 30 01
dex ; CPU:$FB16 PRG:7B16 CA
bpl CopyResetVars ; CPU:$FB17 PRG:7B17 10 EE
lda Zp5E ; CPU:$FB19 PRG:7B19 A5 5E
sta $0140 ; CPU:$FB1B PRG:7B1B 8D 40 01
lda ObjIndex ; CPU:$FB1E PRG:7B1E A5 63
sta $0141 ; CPU:$FB20 PRG:7B20 8D 41 01
lda ResetHi ; CPU:$FB23 PRG:7B23 A5 3C
sta $0142 ; CPU:$FB25 PRG:7B25 8D 42 01
ldy #$07 ; CPU:$FB28 PRG:7B28 A0 07
sty VramCopyCount ; CPU:$FB2A PRG:7B2A 84 05
ldy #$00 ; CPU:$FB2C PRG:7B2C A0 00
sty VramPtrLo ; CPU:$FB2E PRG:7B2E 84 04
; -----------------------------------------------------------------------------
; Routine: ClearVramByte
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ClearVramByte:
lda #$00 ; CPU:$FB30 PRG:7B30 A9 00
; -----------------------------------------------------------------------------
; Routine: ClearVramLoop
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ClearVramLoop:
sta (VramPtrLo),y ; CPU:$FB32 PRG:7B32 91 04
iny ; CPU:$FB34 PRG:7B34 C8
bne ClearVramLoop ; CPU:$FB35 PRG:7B35 D0 FB
; -----------------------------------------------------------------------------
; Routine: VramClearLoop
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
VramClearLoop:
dec VramCopyCount ; CPU:$FB37 PRG:7B37 C6 05
lda VramCopyCount ; CPU:$FB39 PRG:7B39 A5 05
cmp #$01 ; CPU:$FB3B PRG:7B3B C9 01
beq VramClearLoop ; CPU:$FB3D PRG:7B3D F0 F8
lda VramCopyCount ; CPU:$FB3F PRG:7B3F A5 05
bpl ClearVramByte ; CPU:$FB41 PRG:7B41 10 ED
jsr SetOamPtrs ; CPU:$FB43 PRG:7B43 20 AB B8
lda #$06 ; CPU:$FB46 PRG:7B46 A9 06
sta PPUMASK ; CPU:$FB48 PRG:7B48 8D 01 20
lda #$1E ; CPU:$FB4B PRG:7B4B A9 1E
sta PPUMASKShadow ; CPU:$FB4D PRG:7B4D 85 01
lda #$10 ; CPU:$FB4F PRG:7B4F A9 10
sta PPUCTRL ; CPU:$FB51 PRG:7B51 8D 00 20
sta PPUCTRLShadow ; CPU:$FB54 PRG:7B54 85 00
lda #$00 ; CPU:$FB56 PRG:7B56 A9 00
sta PPUSCROLL ; CPU:$FB58 PRG:7B58 8D 05 20
sta ScrollX ; CPU:$FB5B PRG:7B5B 85 02
sta PPUSCROLL ; CPU:$FB5D PRG:7B5D 8D 05 20
sta ScrollY ; CPU:$FB60 PRG:7B60 85 03
lda #$00 ; CPU:$FB62 PRG:7B62 A9 00
sta PPUMASK ; CPU:$FB64 PRG:7B64 8D 01 20
lda PPUSTATUS ; CPU:$FB67 PRG:7B67 AD 02 20
lda #$3F ; CPU:$FB6A PRG:7B6A A9 3F
sta PPUADDR ; CPU:$FB6C PRG:7B6C 8D 06 20
lda #$00 ; CPU:$FB6F PRG:7B6F A9 00
sta PPUADDR ; CPU:$FB71 PRG:7B71 8D 06 20
ldy #$00 ; CPU:$FB74 PRG:7B74 A0 00
; -----------------------------------------------------------------------------
; Routine: CopyPaletteToOam
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
CopyPaletteToOam:
lda PaletteData,y ; CPU:$FB76 PRG:7B76 B9 E6 FE
sta $0280,y ; CPU:$FB79 PRG:7B79 99 80 02
sta PPUDATA ; CPU:$FB7C PRG:7B7C 8D 07 20
iny ; CPU:$FB7F PRG:7B7F C8
cpy #$20 ; CPU:$FB80 PRG:7B80 C0 20
bne CopyPaletteToOam ; CPU:$FB82 PRG:7B82 D0 F2
lda #$F8 ; CPU:$FB84 PRG:7B84 A9 F8
sta Zp28 ; CPU:$FB86 PRG:7B86 85 28
lda #$08 ; CPU:$FB88 PRG:7B88 A9 08
sta Zp27 ; CPU:$FB8A PRG:7B8A 85 27
sta SpriteAttr ; CPU:$FB8C PRG:7B8C 85 E8
lda #$02 ; CPU:$FB8E PRG:7B8E A9 02
sta Zp4E ; CPU:$FB90 PRG:7B90 85 4E
inc Zp5E ; CPU:$FB92 PRG:7B92 E6 5E
ldx #$08 ; CPU:$FB94 PRG:7B94 A2 08
; -----------------------------------------------------------------------------
; Routine: CompareResetVars
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
CompareResetVars:
lda $0100,x ; CPU:$FB96 PRG:7B96 BD 00 01
cmp $FC45,x ; CPU:$FB99 PRG:7B99 DD 45 FC
bne CopyResetLoop ; CPU:$FB9C PRG:7B9C D0 26
dex ; CPU:$FB9E PRG:7B9E CA
bpl CompareResetVars ; CPU:$FB9F PRG:7B9F 10 F5
ldx #$07 ; CPU:$FBA1 PRG:7BA1 A2 07
; -----------------------------------------------------------------------------
; Routine: CopyResetVars2
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
CopyResetVars2:
lda $0110,x ; CPU:$FBA3 PRG:7BA3 BD 10 01
sta Zp4B,x ; CPU:$FBA6 PRG:7BA6 95 4B
lda $0120,x ; CPU:$FBA8 PRG:7BA8 BD 20 01
sta Zp80,x ; CPU:$FBAB PRG:7BAB 95 80
lda $0130,x ; CPU:$FBAD PRG:7BAD BD 30 01
sta Zp9A,x ; CPU:$FBB0 PRG:7BB0 95 9A
dex ; CPU:$FBB2 PRG:7BB2 CA
bpl CopyResetVars2 ; CPU:$FBB3 PRG:7BB3 10 EE
lda $0140 ; CPU:$FBB5 PRG:7BB5 AD 40 01
sta Zp5E ; CPU:$FBB8 PRG:7BB8 85 5E
lda $0141 ; CPU:$FBBA PRG:7BBA AD 41 01
sta ObjIndex ; CPU:$FBBD PRG:7BBD 85 63
lda $0142 ; CPU:$FBBF PRG:7BBF AD 42 01
sta ResetHi ; CPU:$FBC2 PRG:7BC2 85 3C
; -----------------------------------------------------------------------------
; Routine: CopyResetLoop
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
CopyResetLoop:
ldx #$08 ; CPU:$FBC4 PRG:7BC4 A2 08
; -----------------------------------------------------------------------------
; Routine: CopyResetByte
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
CopyResetByte:
lda $FC45,x ; CPU:$FBC6 PRG:7BC6 BD 45 FC
sta $0100,x ; CPU:$FBC9 PRG:7BC9 9D 00 01
dex ; CPU:$FBCC PRG:7BCC CA
bpl CopyResetByte ; CPU:$FBCD PRG:7BCD 10 F7
lda ObjIndex ; CPU:$FBCF PRG:7BCF A5 63
and #$80 ; CPU:$FBD1 PRG:7BD1 29 80
eor #$80 ; CPU:$FBD3 PRG:7BD3 49 80
sta ZpEE ; CPU:$FBD5 PRG:7BD5 85 EE
lda ObjIndex ; CPU:$FBD7 PRG:7BD7 A5 63
lsr a ; CPU:$FBD9 PRG:7BD9 4A
lsr a ; CPU:$FBDA PRG:7BDA 4A
and #$1C ; CPU:$FBDB PRG:7BDB 29 1C
tax ; CPU:$FBDD PRG:7BDD AA
lda $FC25,x ; CPU:$FBDE PRG:7BDE BD 25 FC
sta Zp53 ; CPU:$FBE1 PRG:7BE1 85 53
lda $FC26,x ; CPU:$FBE3 PRG:7BE3 BD 26 FC
sta Zp54 ; CPU:$FBE6 PRG:7BE6 85 54
lda $FC27,x ; CPU:$FBE8 PRG:7BE8 BD 27 FC
sta Zp55 ; CPU:$FBEB PRG:7BEB 85 55
lda $FC28,x ; CPU:$FBED PRG:7BED BD 28 FC
sta Zp56 ; CPU:$FBF0 PRG:7BF0 85 56
lda ObjIndex ; CPU:$FBF2 PRG:7BF2 A5 63
and #$03 ; CPU:$FBF4 PRG:7BF4 29 03
tax ; CPU:$FBF6 PRG:7BF6 AA
lda $FC21,x ; CPU:$FBF7 PRG:7BF7 BD 21 FC
sta Zp5F ; CPU:$FBFA PRG:7BFA 85 5F
lda ObjIndex ; CPU:$FBFC PRG:7BFC A5 63
lsr a ; CPU:$FBFE PRG:7BFE 4A
lsr a ; CPU:$FBFF PRG:7BFF 4A
and #$03 ; CPU:$FC00 PRG:7C00 29 03
tax ; CPU:$FC02 PRG:7C02 AA
lda $FC19,x ; CPU:$FC03 PRG:7C03 BD 19 FC
sta Zp40 ; CPU:$FC06 PRG:7C06 85 40
lda $FC1D,x ; CPU:$FC08 PRG:7C08 BD 1D FC
sta Zp66 ; CPU:$FC0B PRG:7C0B 85 66
lda PPUCTRLShadow ; CPU:$FC0D PRG:7C0D A5 00
ora #$80 ; CPU:$FC0F PRG:7C0F 09 80
sta PPUCTRLShadow ; CPU:$FC11 PRG:7C11 85 00
sta PPUCTRL ; CPU:$FC13 PRG:7C13 8D 00 20
; -----------------------------------------------------------------------------
; Routine: NmiSpinLoop
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
NmiSpinLoop:
jmp NmiSpinLoop ; CPU:$FC16 PRG:7C16 4C 16 FC
; ---- data $FC19-$FC4D (53 bytes) ----
ResetVarTable:
; referenced by `cmp $FC45,x` at $FB99 (operand $FC45 falls inside this region)
; referenced by `lda $FC45,x` at $FBC6 (operand $FC45 falls inside this region)
; referenced by `lda $FC25,x` at $FBDE (operand $FC25 falls inside this region)
; referenced by `lda $FC26,x` at $FBE3 (operand $FC26 falls inside this region)
; referenced by `lda $FC27,x` at $FBE8 (operand $FC27 falls inside this region)
; referenced by `lda $FC28,x` at $FBED (operand $FC28 falls inside this region)
; ... and 3 further references from decoded code
.byte $01, $FF, $05, $09, $10, $18, $08, $00, $03, $01, $02, $05, $00, $02, $00, $06 ; CPU:$FC19 PRG:7C19 01 FF 05 09 10 18 08 00 03 01 02 05 00 02 00 06
.byte $00, $02, $00, $05, $00, $02, $00, $08, $00, $03, $00, $08, $00, $03, $01, $02 ; CPU:$FC29 PRG:7C29 00 02 00 05 00 02 00 08 00 03 00 08 00 03 01 02
.byte $00, $04, $00, $08, $00, $04, $01, $00, $00, $05, $01, $05, $4B, $65, $69, $20 ; CPU:$FC39 PRG:7C39 00 04 00 08 00 04 01 00 00 05 01 05 4B 65 69 20
.byte $43, $72, $6F, $73, $73 ; CPU:$FC49 PRG:7C49 43 72 6F 73 73
; -----------------------------------------------------------------------------
; Routine: NmiHandler
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
NmiHandler:
lda PPUCTRLShadow ; CPU:$FC4E PRG:7C4E A5 00
eor NmiToggle ; CPU:$FC50 PRG:7C50 45 0F
and #$7F ; CPU:$FC52 PRG:7C52 29 7F
sta PPUCTRL ; CPU:$FC54 PRG:7C54 8D 00 20
sta PPUCTRLShadow ; CPU:$FC57 PRG:7C57 85 00
lda #$00 ; CPU:$FC59 PRG:7C59 A9 00
sta OAMADDR ; CPU:$FC5B PRG:7C5B 8D 03 20
lda #$07 ; CPU:$FC5E PRG:7C5E A9 07
sta OAMDMA ; CPU:$FC60 PRG:7C60 8D 14 40
lda #$00 ; CPU:$FC63 PRG:7C63 A9 00
sta PPUMASK ; CPU:$FC65 PRG:7C65 8D 01 20
jsr NmiOamDmaCopy ; CPU:$FC68 PRG:7C68 20 0A FE
lda #$3F ; CPU:$FC6B PRG:7C6B A9 3F
sta PPUADDR ; CPU:$FC6D PRG:7C6D 8D 06 20
lda #$00 ; CPU:$FC70 PRG:7C70 A9 00
sta PPUADDR ; CPU:$FC72 PRG:7C72 8D 06 20
sta PPUADDR ; CPU:$FC75 PRG:7C75 8D 06 20
sta PPUADDR ; CPU:$FC78 PRG:7C78 8D 06 20
lda PPUSTATUS ; CPU:$FC7B PRG:7C7B AD 02 20
lda ScrollX ; CPU:$FC7E PRG:7C7E A5 02
sta PPUSCROLL ; CPU:$FC80 PRG:7C80 8D 05 20
lda ScrollY ; CPU:$FC83 PRG:7C83 A5 03
sta PPUSCROLL ; CPU:$FC85 PRG:7C85 8D 05 20
lda PPUCTRLShadow ; CPU:$FC88 PRG:7C88 A5 00
sta PPUCTRL ; CPU:$FC8A PRG:7C8A 8D 00 20
lda PPUMASKShadow ; CPU:$FC8D PRG:7C8D A5 01
sta PPUMASK ; CPU:$FC8F PRG:7C8F 8D 01 20
lda #$00 ; CPU:$FC92 PRG:7C92 A9 00
sta Zp25 ; CPU:$FC94 PRG:7C94 85 25
sta NmiToggle ; CPU:$FC96 PRG:7C96 85 0F
jsr ReadJoypad ; CPU:$FC98 PRG:7C98 20 37 FE
lda GameMode ; CPU:$FC9B PRG:7C9B A5 10
bne Sub_FCCA ; CPU:$FC9D PRG:7C9D D0 2B
sta FrameToggle ; CPU:$FC9F PRG:7C9F 85 22
lda Joypad2Cur2 ; CPU:$FCA1 PRG:7CA1 A5 0A
and #$03 ; CPU:$FCA3 PRG:7CA3 29 03
beq NmiClearOam ; CPU:$FCA5 PRG:7CA5 F0 67
lda NmiFrameFlag ; CPU:$FCA7 PRG:7CA7 A5 0D
beq NmiClearOam ; CPU:$FCA9 PRG:7CA9 F0 63
ldy NmiCounter ; CPU:$FCAB PRG:7CAB A4 ED
lda $FF06,y ; CPU:$FCAD PRG:7CAD B9 06 FF
beq NmiClearOam ; CPU:$FCB0 PRG:7CB0 F0 5C
sta SpriteAttr ; CPU:$FCB2 PRG:7CB2 85 E8
cmp NmiFrameFlag ; CPU:$FCB4 PRG:7CB4 C5 0D
beq Sub_FCBF ; CPU:$FCB6 PRG:7CB6 F0 07
lda #$00 ; CPU:$FCB8 PRG:7CB8 A9 00
sta NmiCounter ; CPU:$FCBA PRG:7CBA 85 ED
jmp NmiClearOam ; CPU:$FCBC PRG:7CBC 4C 0E FD
; -----------------------------------------------------------------------------
; Routine: Sub_FCBF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FCBF:
inc NmiCounter ; CPU:$FCBF PRG:7CBF E6 ED
iny ; CPU:$FCC1 PRG:7CC1 C8
lda $FF06,y ; CPU:$FCC2 PRG:7CC2 B9 06 FF
sta SpriteAttr ; CPU:$FCC5 PRG:7CC5 85 E8
jmp NmiClearOam ; CPU:$FCC7 PRG:7CC7 4C 0E FD
; -----------------------------------------------------------------------------
; Routine: Sub_FCCA
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FCCA:
lda Zp60 ; CPU:$FCCA PRG:7CCA A5 60
beq Sub_FCDC ; CPU:$FCCC PRG:7CCC F0 0E
lda Joypad1Press ; CPU:$FCCE PRG:7CCE A5 09
and #$0C ; CPU:$FCD0 PRG:7CD0 29 0C
beq Sub_FCDC ; CPU:$FCD2 PRG:7CD2 F0 08
lda #$00 ; CPU:$FCD4 PRG:7CD4 A9 00
sta GameMode ; CPU:$FCD6 PRG:7CD6 85 10
lda #$07 ; CPU:$FCD8 PRG:7CD8 A9 07
sta Zp42 ; CPU:$FCDA PRG:7CDA 85 42
; -----------------------------------------------------------------------------
; Routine: Sub_FCDC
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FCDC:
lda Zp3D ; CPU:$FCDC PRG:7CDC A5 3D
ora Zp5A ; CPU:$FCDE PRG:7CDE 05 5A
ora Zp3B ; CPU:$FCE0 PRG:7CE0 05 3B
bne Sub_FD0A ; CPU:$FCE2 PRG:7CE2 D0 26
lda GameMode ; CPU:$FCE4 PRG:7CE4 A5 10
cmp #$02 ; CPU:$FCE6 PRG:7CE6 C9 02
bne Sub_FD0A ; CPU:$FCE8 PRG:7CE8 D0 20
lda Joypad1Press ; CPU:$FCEA PRG:7CEA A5 09
and #$08 ; CPU:$FCEC PRG:7CEC 29 08
beq Sub_FCFF ; CPU:$FCEE PRG:7CEE F0 0F
inc FrameToggle ; CPU:$FCF0 PRG:7CF0 E6 22
jsr ClearOamInit ; CPU:$FCF2 PRG:7CF2 20 D3 B8
lda FrameToggle ; CPU:$FCF5 PRG:7CF5 A5 22
ror a ; CPU:$FCF7 PRG:7CF7 6A
bcc Sub_FCFF ; CPU:$FCF8 PRG:7CF8 90 05
lda #$01 ; CPU:$FCFA PRG:7CFA A9 01
sta $0613 ; CPU:$FCFC PRG:7CFC 8D 13 06
; -----------------------------------------------------------------------------
; Routine: Sub_FCFF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FCFF:
lda FrameToggle ; CPU:$FCFF PRG:7CFF A5 22
ror a ; CPU:$FD01 PRG:7D01 6A
bcc NmiClearOam ; CPU:$FD02 PRG:7D02 90 0A
jsr JoypadRts ; CPU:$FD04 PRG:7D04 20 B9 FE
jmp NmiGameModeCheck ; CPU:$FD07 PRG:7D07 4C 3E FD
; -----------------------------------------------------------------------------
; Routine: Sub_FD0A
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FD0A:
lda #$00 ; CPU:$FD0A PRG:7D0A A9 00
sta FrameToggle ; CPU:$FD0C PRG:7D0C 85 22
; -----------------------------------------------------------------------------
; Routine: NmiClearOam
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
NmiClearOam:
ldx #$00 ; CPU:$FD0E PRG:7D0E A2 00
lda #$F0 ; CPU:$FD10 PRG:7D10 A9 F0
; -----------------------------------------------------------------------------
; Routine: NmiClearOamLoop
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
NmiClearOamLoop:
sta $0700,x ; CPU:$FD12 PRG:7D12 9D 00 07
inx ; CPU:$FD15 PRG:7D15 E8
inx ; CPU:$FD16 PRG:7D16 E8
inx ; CPU:$FD17 PRG:7D17 E8
inx ; CPU:$FD18 PRG:7D18 E8
bne NmiClearOamLoop ; CPU:$FD19 PRG:7D19 D0 F7
jsr InputRead ; CPU:$FD1B PRG:7D1B 20 1D F2
lda GameMode ; CPU:$FD1E PRG:7D1E A5 10
cmp #$02 ; CPU:$FD20 PRG:7D20 C9 02
beq NmiGameMode2Update ; CPU:$FD22 PRG:7D22 F0 0B
cmp #$01 ; CPU:$FD24 PRG:7D24 C9 01
bne NmiGameModeCheck ; CPU:$FD26 PRG:7D26 D0 16
lda #$80 ; CPU:$FD28 PRG:7D28 A9 80
sta ObjectDeltaX ; CPU:$FD2A PRG:7D2A 85 2D
jmp NmiCallObjMove ; CPU:$FD2C PRG:7D2C 4C 3B FD
; -----------------------------------------------------------------------------
; Routine: NmiGameMode2Update
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
NmiGameMode2Update:
jsr ObjUpdateCall ; CPU:$FD2F PRG:7D2F 20 35 F6
jsr ObjInitCall ; CPU:$FD32 PRG:7D32 20 FE C1
jsr ObjIterLoop ; CPU:$FD35 PRG:7D35 20 4D DF
jsr ObjDrawCall ; CPU:$FD38 PRG:7D38 20 C6 C3
; -----------------------------------------------------------------------------
; Routine: NmiCallObjMove
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
NmiCallObjMove:
jsr ObjMoveCall ; CPU:$FD3B PRG:7D3B 20 67 D1
; -----------------------------------------------------------------------------
; Routine: NmiGameModeCheck
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
NmiGameModeCheck:
lda GameMode ; CPU:$FD3E PRG:7D3E A5 10
beq Sub_FD87 ; CPU:$FD40 PRG:7D40 F0 45
lda GameSubMode ; CPU:$FD42 PRG:7D42 A5 1B
lsr a ; CPU:$FD44 PRG:7D44 4A
lsr a ; CPU:$FD45 PRG:7D45 4A
and #$07 ; CPU:$FD46 PRG:7D46 29 07
tax ; CPU:$FD48 PRG:7D48 AA
lda $FE02,x ; CPU:$FD49 PRG:7D49 BD 02 FE
sta $0295 ; CPU:$FD4C PRG:7D4C 8D 95 02
lda Zp6E ; CPU:$FD4F PRG:7D4F A5 6E
beq Sub_FD7C ; CPU:$FD51 PRG:7D51 F0 29
ldy Joypad1Press2 ; CPU:$FD53 PRG:7D53 A4 1A
lda #$3F ; CPU:$FD55 PRG:7D55 A9 3F
sta $0208,y ; CPU:$FD57 PRG:7D57 99 08 02
iny ; CPU:$FD5A PRG:7D5A C8
lda #$00 ; CPU:$FD5B PRG:7D5B A9 00
sta $0208,y ; CPU:$FD5D PRG:7D5D 99 08 02
iny ; CPU:$FD60 PRG:7D60 C8
lda #$20 ; CPU:$FD61 PRG:7D61 A9 20
sta $0208,y ; CPU:$FD63 PRG:7D63 99 08 02
iny ; CPU:$FD66 PRG:7D66 C8
ldx #$00 ; CPU:$FD67 PRG:7D67 A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_FD69
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FD69:
lda $0280,x ; CPU:$FD69 PRG:7D69 BD 80 02
sta $0208,y ; CPU:$FD6C PRG:7D6C 99 08 02
iny ; CPU:$FD6F PRG:7D6F C8
inx ; CPU:$FD70 PRG:7D70 E8
cpx #$20 ; CPU:$FD71 PRG:7D71 E0 20
bne Sub_FD69 ; CPU:$FD73 PRG:7D73 D0 F4
lda #$00 ; CPU:$FD75 PRG:7D75 A9 00
sta $0208,y ; CPU:$FD77 PRG:7D77 99 08 02
sty Joypad1Press2 ; CPU:$FD7A PRG:7D7A 84 1A
; -----------------------------------------------------------------------------
; Routine: Sub_FD7C
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FD7C:
jsr GameModeDispatch ; CPU:$FD7C PRG:7D7C 20 FB BE
lda FrameToggle ; CPU:$FD7F PRG:7D7F A5 22
ror a ; CPU:$FD81 PRG:7D81 6A
bcc Sub_FD87 ; CPU:$FD82 PRG:7D82 90 03
jsr DispatchLdxLdaStoreLdaCmpBcs ; CPU:$FD84 PRG:7D84 20 74 F5
; -----------------------------------------------------------------------------
; Routine: Sub_FD87
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FD87:
inc GameSubMode ; CPU:$FD87 PRG:7D87 E6 1B
lda Zp60 ; CPU:$FD89 PRG:7D89 A5 60
beq Sub_FD90 ; CPU:$FD8B PRG:7D8B F0 03
jsr ClearOamInit ; CPU:$FD8D PRG:7D8D 20 D3 B8
; -----------------------------------------------------------------------------
; Routine: Sub_FD90
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FD90:
jsr DispatchLdaBneStoreLdaOraBeq ; CPU:$FD90 PRG:7D90 20 BD FD
jsr ClearZpVars ; CPU:$FD93 PRG:7D93 20 EF B8
lda SpriteAttr ; CPU:$FD96 PRG:7D96 A5 E8
bne Sub_FD9D ; CPU:$FD98 PRG:7D98 D0 03
jsr ObjNullRoutine ; CPU:$FD9A PRG:7D9A 20 0F C0
; -----------------------------------------------------------------------------
; Routine: Sub_FD9D
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FD9D:
lda GameSubMode ; CPU:$FD9D PRG:7D9D A5 1B
lsr a ; CPU:$FD9F PRG:7D9F 4A
ldx #$00 ; CPU:$FDA0 PRG:7DA0 A2 00
bcc Sub_FDAE ; CPU:$FDA2 PRG:7DA2 90 0A
ldx #$80 ; CPU:$FDA4 PRG:7DA4 A2 80
lda Zp3D ; CPU:$FDA6 PRG:7DA6 A5 3D
ora Zp5A ; CPU:$FDA8 PRG:7DA8 05 5A
bne Sub_FDAE ; CPU:$FDAA PRG:7DAA D0 02
ldx #$20 ; CPU:$FDAC PRG:7DAC A2 20
; -----------------------------------------------------------------------------
; Routine: Sub_FDAE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FDAE:
stx Zp2F ; CPU:$FDAE PRG:7DAE 86 2F
jsr JoypadDone ; CPU:$FDB0 PRG:7DB0 20 7E FE
lda PPUCTRLShadow ; CPU:$FDB3 PRG:7DB3 A5 00
ora #$80 ; CPU:$FDB5 PRG:7DB5 09 80
sta PPUCTRLShadow ; CPU:$FDB7 PRG:7DB7 85 00
sta PPUCTRL ; CPU:$FDB9 PRG:7DB9 8D 00 20
rti ; CPU:$FDBC PRG:7DBC 40
; -----------------------------------------------------------------------------
; Routine: DispatchLdaBneStoreLdaOraBeq
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
DispatchLdaBneStoreLdaOraBeq:
lda $060B ; CPU:$FDBD PRG:7DBD AD 0B 06
bne Sub_FDC4 ; CPU:$FDC0 PRG:7DC0 D0 02
sta Zp61 ; CPU:$FDC2 PRG:7DC2 85 61
; -----------------------------------------------------------------------------
; Routine: Sub_FDC4
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FDC4:
lda Zp3B ; CPU:$FDC4 PRG:7DC4 A5 3B
ora Zp5A ; CPU:$FDC6 PRG:7DC6 05 5A
beq Sub_FDCE ; CPU:$FDC8 PRG:7DC8 F0 04
lda #$00 ; CPU:$FDCA PRG:7DCA A9 00
sta Zp61 ; CPU:$FDCC PRG:7DCC 85 61
; -----------------------------------------------------------------------------
; Routine: Sub_FDCE
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FDCE:
lda Zp61 ; CPU:$FDCE PRG:7DCE A5 61
beq Sub_FDE0 ; CPU:$FDD0 PRG:7DD0 F0 0E
bpl Sub_FDEF ; CPU:$FDD2 PRG:7DD2 10 1B
dec Zp62 ; CPU:$FDD4 PRG:7DD4 C6 62
bne Sub_FDDF ; CPU:$FDD6 PRG:7DD6 D0 07
inc Zp61 ; CPU:$FDD8 PRG:7DD8 E6 61
beq Sub_FDDF ; CPU:$FDDA PRG:7DDA F0 03
jsr ObjSpawnInit ; CPU:$FDDC PRG:7DDC 20 10 C0
; -----------------------------------------------------------------------------
; Routine: Sub_FDDF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FDDF:
rts ; CPU:$FDDF PRG:7DDF 60
; -----------------------------------------------------------------------------
; Routine: Sub_FDE0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FDE0:
lda Zp27 ; CPU:$FDE0 PRG:7DE0 A5 27
cmp #$08 ; CPU:$FDE2 PRG:7DE2 C9 08
beq Sub_FDDF ; CPU:$FDE4 PRG:7DE4 F0 F9
lda GameSubMode ; CPU:$FDE6 PRG:7DE6 A5 1B
and #$07 ; CPU:$FDE8 PRG:7DE8 29 07
bne Sub_FDDF ; CPU:$FDEA PRG:7DEA D0 F3
inc Zp27 ; CPU:$FDEC PRG:7DEC E6 27
rts ; CPU:$FDEE PRG:7DEE 60
; -----------------------------------------------------------------------------
; Routine: Sub_FDEF
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FDEF:
lda GameSubMode ; CPU:$FDEF PRG:7DEF A5 1B
and #$0F ; CPU:$FDF1 PRG:7DF1 29 0F
bne Sub_FDDF ; CPU:$FDF3 PRG:7DF3 D0 EA
dec Zp27 ; CPU:$FDF5 PRG:7DF5 C6 27
bpl Sub_FDDF ; CPU:$FDF7 PRG:7DF7 10 E6
inc Zp27 ; CPU:$FDF9 PRG:7DF9 E6 27
lda #$FE ; CPU:$FDFB PRG:7DFB A9 FE
sta Zp61 ; CPU:$FDFD PRG:7DFD 85 61
sta Zp62 ; CPU:$FDFF PRG:7DFF 85 62
rts ; CPU:$FE01 PRG:7E01 60
OamIndexTable:
; OAM sprite index table (read by lda $FE02,x)
; ---- data $FE02-$FE09 (8 bytes) ----
; referenced by `lda $FE02,x` at $FD49 (operand $FE02 falls inside this region)
.byte $1F, $08, $07, $06, $16, $06, $07, $08 ; CPU:$FE02 PRG:7E02 1F 08 07 06 16 06 07 08
; -----------------------------------------------------------------------------
; Routine: NmiOamDmaCopy
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
NmiOamDmaCopy:
ldy #$00 ; CPU:$FE0A PRG:7E0A A0 00
; -----------------------------------------------------------------------------
; Routine: NmiOamAddrLoop
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
NmiOamAddrLoop:
lda PPUSTATUS ; CPU:$FE0C PRG:7E0C AD 02 20
lda $0208,y ; CPU:$FE0F PRG:7E0F B9 08 02
beq Sub_FE31 ; CPU:$FE12 PRG:7E12 F0 1D
sta PPUADDR ; CPU:$FE14 PRG:7E14 8D 06 20
iny ; CPU:$FE17 PRG:7E17 C8
lda $0208,y ; CPU:$FE18 PRG:7E18 B9 08 02
sta PPUADDR ; CPU:$FE1B PRG:7E1B 8D 06 20
iny ; CPU:$FE1E PRG:7E1E C8
lda $0208,y ; CPU:$FE1F PRG:7E1F B9 08 02
tax ; CPU:$FE22 PRG:7E22 AA
iny ; CPU:$FE23 PRG:7E23 C8
; -----------------------------------------------------------------------------
; Routine: Sub_FE24
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FE24:
lda $0208,y ; CPU:$FE24 PRG:7E24 B9 08 02
sta PPUDATA ; CPU:$FE27 PRG:7E27 8D 07 20
iny ; CPU:$FE2A PRG:7E2A C8
dex ; CPU:$FE2B PRG:7E2B CA
bne Sub_FE24 ; CPU:$FE2C PRG:7E2C D0 F6
jmp NmiOamAddrLoop ; CPU:$FE2E PRG:7E2E 4C 0C FE
; -----------------------------------------------------------------------------
; Routine: Sub_FE31
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FE31:
sta Joypad1Press2 ; CPU:$FE31 PRG:7E31 85 1A
sta $0208 ; CPU:$FE33 PRG:7E33 8D 08 02
rts ; CPU:$FE36 PRG:7E36 60
; -----------------------------------------------------------------------------
; Routine: ReadJoypad
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
ReadJoypad:
ldx #$02 ; CPU:$FE37 PRG:7E37 A2 02
; -----------------------------------------------------------------------------
; Routine: Sub_FE39
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FE39:
lda Joypad1Cur,x ; CPU:$FE39 PRG:7E39 B5 06
sta Joypad1Prev,x ; CPU:$FE3B PRG:7E3B 95 07
lda Joypad2Cur2,x ; CPU:$FE3D PRG:7E3D B5 0A
sta Joypad2Prev,x ; CPU:$FE3F PRG:7E3F 95 0B
dex ; CPU:$FE41 PRG:7E41 CA
bpl Sub_FE39 ; CPU:$FE42 PRG:7E42 10 F5
lda #$01 ; CPU:$FE44 PRG:7E44 A9 01
sta JOY1 ; CPU:$FE46 PRG:7E46 8D 16 40
lda #$00 ; CPU:$FE49 PRG:7E49 A9 00
sta JOY1 ; CPU:$FE4B PRG:7E4B 8D 16 40
ldx #$08 ; CPU:$FE4E PRG:7E4E A2 08
; -----------------------------------------------------------------------------
; Routine: Sub_FE50
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FE50:
lda JOY1 ; CPU:$FE50 PRG:7E50 AD 16 40
ror a ; CPU:$FE53 PRG:7E53 6A
bcs Sub_FE57 ; CPU:$FE54 PRG:7E54 B0 01
ror a ; CPU:$FE56 PRG:7E56 6A
; -----------------------------------------------------------------------------
; Routine: Sub_FE57
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FE57:
ror Joypad1Cur ; CPU:$FE57 PRG:7E57 66 06
lda $4017 ; CPU:$FE59 PRG:7E59 AD 17 40
ror a ; CPU:$FE5C PRG:7E5C 6A
bcs Sub_FE60 ; CPU:$FE5D PRG:7E5D B0 01
ror a ; CPU:$FE5F PRG:7E5F 6A
; -----------------------------------------------------------------------------
; Routine: Sub_FE60
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FE60:
ror Joypad2Cur2 ; CPU:$FE60 PRG:7E60 66 0A
dex ; CPU:$FE62 PRG:7E62 CA
bne Sub_FE50 ; CPU:$FE63 PRG:7E63 D0 EB
lda Joypad1Press ; CPU:$FE65 PRG:7E65 A5 09
ora Joypad2Cur ; CPU:$FE67 PRG:7E67 05 08
eor #$FF ; CPU:$FE69 PRG:7E69 49 FF
and Joypad1Prev ; CPU:$FE6B PRG:7E6B 25 07
and Joypad1Cur ; CPU:$FE6D PRG:7E6D 25 06
sta Joypad1Press ; CPU:$FE6F PRG:7E6F 85 09
lda NmiFrameFlag ; CPU:$FE71 PRG:7E71 A5 0D
ora UnusedZp0C ; CPU:$FE73 PRG:7E73 05 0C
eor #$FF ; CPU:$FE75 PRG:7E75 49 FF
and Joypad2Prev ; CPU:$FE77 PRG:7E77 25 0B
and Joypad2Cur2 ; CPU:$FE79 PRG:7E79 25 0A
sta NmiFrameFlag ; CPU:$FE7B PRG:7E7B 85 0D
rts ; CPU:$FE7D PRG:7E7D 60
; -----------------------------------------------------------------------------
; Routine: JoypadDone
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
JoypadDone:
lda Zp2F ; CPU:$FE7E PRG:7E7E A5 2F
bne Sub_FE83 ; CPU:$FE80 PRG:7E80 D0 01
rts ; CPU:$FE82 PRG:7E82 60
; -----------------------------------------------------------------------------
; Routine: Sub_FE83
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FE83:
bmi Sub_FEA3 ; CPU:$FE83 PRG:7E83 30 1E
tax ; CPU:$FE85 PRG:7E85 AA
; -----------------------------------------------------------------------------
; Routine: Sub_FE86
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FE86:
lda $06FF,x ; CPU:$FE86 PRG:7E86 BD FF 06
pha ; CPU:$FE89 PRG:7E89 48
dex ; CPU:$FE8A PRG:7E8A CA
bne Sub_FE86 ; CPU:$FE8B PRG:7E8B D0 F9
ldy #$00 ; CPU:$FE8D PRG:7E8D A0 00
ldx Zp2F ; CPU:$FE8F PRG:7E8F A6 2F
; -----------------------------------------------------------------------------
; Routine: Sub_FE91
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FE91:
lda $0700,x ; CPU:$FE91 PRG:7E91 BD 00 07
sta $0700,y ; CPU:$FE94 PRG:7E94 99 00 07
iny ; CPU:$FE97 PRG:7E97 C8
inx ; CPU:$FE98 PRG:7E98 E8
bne Sub_FE91 ; CPU:$FE99 PRG:7E99 D0 F6
; -----------------------------------------------------------------------------
; Routine: Sub_FE9B
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FE9B:
pla ; CPU:$FE9B PRG:7E9B 68
sta $0700,y ; CPU:$FE9C PRG:7E9C 99 00 07
iny ; CPU:$FE9F PRG:7E9F C8
bne Sub_FE9B ; CPU:$FEA0 PRG:7EA0 D0 F9
rts ; CPU:$FEA2 PRG:7EA2 60
; -----------------------------------------------------------------------------
; Routine: Sub_FEA3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FEA3:
ldx #$00 ; CPU:$FEA3 PRG:7EA3 A2 00
; -----------------------------------------------------------------------------
; Routine: Sub_FEA5
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FEA5:
lda $0700,x ; CPU:$FEA5 PRG:7EA5 BD 00 07
pha ; CPU:$FEA8 PRG:7EA8 48
lda $0780,x ; CPU:$FEA9 PRG:7EA9 BD 80 07
sta $0700,x ; CPU:$FEAC PRG:7EAC 9D 00 07
pla ; CPU:$FEAF PRG:7EAF 68
sta $0780,x ; CPU:$FEB0 PRG:7EB0 9D 80 07
inx ; CPU:$FEB3 PRG:7EB3 E8
cpx #$80 ; CPU:$FEB4 PRG:7EB4 E0 80
bne Sub_FEA5 ; CPU:$FEB6 PRG:7EB6 D0 ED
rts ; CPU:$FEB8 PRG:7EB8 60
; -----------------------------------------------------------------------------
; Routine: JoypadRts
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
JoypadRts:
lda Zp2F ; CPU:$FEB9 PRG:7EB9 A5 2F
bmi Sub_FEA3 ; CPU:$FEBB PRG:7EBB 30 E6
bne Sub_FEC0 ; CPU:$FEBD PRG:7EBD D0 01
rts ; CPU:$FEBF PRG:7EBF 60
; -----------------------------------------------------------------------------
; Routine: Sub_FEC0
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FEC0:
tay ; CPU:$FEC0 PRG:7EC0 A8
ldx #$FF ; CPU:$FEC1 PRG:7EC1 A2 FF
; -----------------------------------------------------------------------------
; Routine: Sub_FEC3
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FEC3:
lda $0700,x ; CPU:$FEC3 PRG:7EC3 BD 00 07
pha ; CPU:$FEC6 PRG:7EC6 48
dex ; CPU:$FEC7 PRG:7EC7 CA
dey ; CPU:$FEC8 PRG:7EC8 88
bne Sub_FEC3 ; CPU:$FEC9 PRG:7EC9 D0 F8
ldy #$FF ; CPU:$FECB PRG:7ECB A0 FF
; -----------------------------------------------------------------------------
; Routine: Sub_FECD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FECD:
lda $0700,x ; CPU:$FECD PRG:7ECD BD 00 07
sta $0700,y ; CPU:$FED0 PRG:7ED0 99 00 07
dex ; CPU:$FED3 PRG:7ED3 CA
dey ; CPU:$FED4 PRG:7ED4 88
cpx #$FF ; CPU:$FED5 PRG:7ED5 E0 FF
bne Sub_FECD ; CPU:$FED7 PRG:7ED7 D0 F4
ldy #$00 ; CPU:$FED9 PRG:7ED9 A0 00
ldx Zp2F ; CPU:$FEDB PRG:7EDB A6 2F
; -----------------------------------------------------------------------------
; Routine: Sub_FEDD
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
Sub_FEDD:
pla ; CPU:$FEDD PRG:7EDD 68
sta $0700,y ; CPU:$FEDE PRG:7EDE 99 00 07
iny ; CPU:$FEE1 PRG:7EE1 C8
dex ; CPU:$FEE2 PRG:7EE2 CA
bne Sub_FEDD ; CPU:$FEE3 PRG:7EE3 D0 F8
rts ; CPU:$FEE5 PRG:7EE5 60
; ---- data $FEE6-$FF05 (32 bytes) ----
; referenced by `lda $FEE6,y` at $FB76 (operand $FEE6 falls inside this region)
; 32 bytes of palette data copied to PPUDATA and the $0280 mirror by the routine
; that reads it with lda $FEE6,y at $FB76.
PaletteData:
.byte $0F, $0A, $27, $1A, $0F, $0A, $1A, $11, $0F, $30, $00, $07, $0F, $30, $00, $11 ; CPU:$FEE6 PRG:7EE6 0F 0A 27 1A 0F 0A 1A 11 0F 30 00 07 0F 30 00 11
.byte $0F, $3F, $30, $00, $0F, $3F, $00, $10, $0F, $02, $16, $30, $0F, $16, $28, $30 ; CPU:$FEF6 PRG:7EF6 0F 3F 30 00 0F 3F 00 10 0F 02 16 30 0F 16 28 30
; ---- data $FF06-$FF1C (23 bytes) ----
; referenced by `lda $FF06,y` at $FCAD (operand $FF06 falls inside this region)
; referenced by `lda $FF06,y` at $FCC2 (operand $FF06 falls inside this region)
; OAM attribute bytes read with lda $FF06,y at $FCAD / $FCC2.
OamAttrTable:
.byte $80, $80, $80, $80, $80, $80, $80, $80, $80, $10, $10, $40, $40, $20, $20, $20 ; CPU:$FF06 PRG:7F06 80 80 80 80 80 80 80 80 80 10 10 40 40 20 20 20
.byte $20, $20, $20, $20, $20, $20, $00 ; CPU:$FF16 PRG:7F16 20 20 20 20 20 20 00
; -----------------------------------------------------------------------------
; Routine: IrqHandler
; Global: Contextual control-flow entry identified from its parent routine and incoming branch usage.
; Local: Continues its parent routine along the condition or operation encoded in this label,
; then returns, branches again, or rejoins shared code as documented by the instructions.
; Parameters: Undetermined in Pass 1 unless implied by the caller.
; Returns: Undetermined in Pass 1; status flags and registers may carry results.
; Clobbers: Undetermined in Pass 1.
; -----------------------------------------------------------------------------
IrqHandler:
rti ; CPU:$FF1D PRG:7F1D 40
; ---- data $FF1E-$FFFF (226 bytes) ----
.byte $43, $4F, $50, $59, $52, $49, $47, $48, $54, $20, $31, $39, $38, $33, $20, $31 ; CPU:$FF1E PRG:7F1E 43 4F 50 59 52 49 47 48 54 20 31 39 38 33 20 31
.byte $39, $38, $34, $20, $4E, $41, $4D, $43, $4F, $20, $4C, $54, $44, $2E, $20, $41 ; CPU:$FF2E PRG:7F2E 39 38 34 20 4E 41 4D 43 4F 20 4C 54 44 2E 20 41
.byte $4C, $4C, $20, $52, $49, $47, $48, $54, $53, $20, $52, $45, $53, $45, $52, $56 ; CPU:$FF3E PRG:7F3E 4C 4C 20 52 49 47 48 54 53 20 52 45 53 45 52 56
.byte $45, $44, $20, $20, $4D, $41, $49, $4E, $3A, $20, $4B, $45, $49, $20, $43, $52 ; CPU:$FF4E PRG:7F4E 45 44 20 20 4D 41 49 4E 3A 20 4B 45 49 20 43 52
.byte $4F, $53, $53, $0D, $20, $53, $4F, $55, $4E, $44, $3A, $20, $55, $48, $4F, $48 ; CPU:$FF5E PRG:7F5E 4F 53 53 0D 20 53 4F 55 4E 44 3A 20 55 48 4F 48
.byte $4F, $59, $20, $4F, $48, $4E, $4F, $47, $49, $0D, $41, $53, $53, $49, $53, $54 ; CPU:$FF6E PRG:7F6E 4F 59 20 4F 48 4E 4F 47 49 0D 41 53 53 49 53 54
.byte $3A, $20, $45, $56, $45, $5A, $4F, $4F, $20, $45, $4E, $44, $20, $26, $20, $48 ; CPU:$FF7E PRG:7F7E 3A 20 45 56 45 5A 4F 4F 20 45 4E 44 20 26 20 48
.byte $41, $4C, $20, $55, $44, $41, $47, $41, $57, $41, $0D, $54, $45, $53, $54, $45 ; CPU:$FF8E PRG:7F8E 41 4C 20 55 44 41 47 41 57 41 0D 54 45 53 54 45
.byte $52, $3A, $20, $53, $48, $49, $44, $41, $53, $48, $49, $20, $59, $41, $4D, $41 ; CPU:$FF9E PRG:7F9E 52 3A 20 53 48 49 44 41 53 48 49 20 59 41 4D 41
.byte $4D, $4F, $0D, $0C ; CPU:$FFAE PRG:7FAE 4D 4F 0D 0C
.res $0048, $FF
.byte $4E, $FC, $F6, $FA ; CPU:$FFFA PRG:7FFA 4E FC F6 FA
.byte $1D, $FF ; CPU:$FFFE PRG:7FFE 1D FF